summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Walter <stefan@FreeBSD.org>2011-09-01 11:59:44 +0000
committerStefan Walter <stefan@FreeBSD.org>2011-09-01 11:59:44 +0000
commitf742683ea96a2cfb33e860ea382e99d60a6e6e1c (patch)
tree4539dbebe76c086893f0a8b0e75c85fcb281e636
parentRelinquish to the pool. (diff)
Patch a bug in php-libawl that prevents iCal to display any calendar entries.
PR: 155120 Submitted by: Matthias Fechner <idefix@fechner.net> Approved by: maintainer
Notes
Notes: svn path=/head/; revision=280955
-rw-r--r--devel/php-libawl/Makefile4
-rw-r--r--devel/php-libawl/files/patch-inc-iCalendar.php37
-rw-r--r--devel/php-libawl/files/patch-inc-vComponents.php28
3 files changed, 69 insertions, 0 deletions
diff --git a/devel/php-libawl/Makefile b/devel/php-libawl/Makefile
index a0b8d5a9ae62..2b2423f4eb30 100644
--- a/devel/php-libawl/Makefile
+++ b/devel/php-libawl/Makefile
@@ -5,6 +5,7 @@
PORTNAME= php-libawl
PORTVERSION= 0.46
+PORTREVISION= 1
CATEGORIES= devel
MASTER_SITES= http://debian.mcmillan.net.nz/packages/awl/ \
SF/rscds/awl/${PORTVERSION}
@@ -26,6 +27,9 @@ pre-everything::
@${ECHO_CMD} "# you can customize the installation directory"
@${ECHO_CMD} "# by setting LIBAWLDIR in /etc/make.conf"
+post-patch:
+ ${RM} -f ${WRKSRC}/inc/*.orig
+
do-install:
${MKDIR} ${PREFIX}/${LIBAWLDIR}/
cd ${WRKSRC} && ${CP} -pR dba inc ${PREFIX}/${LIBAWLDIR}/
diff --git a/devel/php-libawl/files/patch-inc-iCalendar.php b/devel/php-libawl/files/patch-inc-iCalendar.php
new file mode 100644
index 000000000000..8c2e1b8cda9b
--- /dev/null
+++ b/devel/php-libawl/files/patch-inc-iCalendar.php
@@ -0,0 +1,37 @@
+--- inc/iCalendar.php.old 2011-02-28 14:10:05.863011862 +0100
++++ inc/iCalendar.php 2011-02-28 14:10:54.276562796 +0100
+@@ -233,7 +233,7 @@
+ function RenderParameters() {
+ $rendered = "";
+ foreach( $this->parameters AS $k => $v ) {
+- $escaped = preg_replace( "/([;:\"])/", '\\\\$1', $v);
++ $escaped = preg_replace( "/([;:])/", '\\\\$1', $v);
+ $rendered .= sprintf( ";%s=%s", $k, $escaped );
+ }
+ return $rendered;
+@@ -273,7 +273,7 @@
+ default:
+ $escaped = str_replace( '\\', '\\\\', $escaped);
+ $escaped = preg_replace( '/\r?\n/', '\\n', $escaped);
+- $escaped = preg_replace( "/([,;\"])/", '\\\\$1', $escaped);
++ $escaped = preg_replace( "/([,;])/", '\\\\$1', $escaped);
+ }
+ $property = sprintf( "%s%s:", $this->name, $this->RenderParameters() );
+ if ( (strlen($property) + strlen($escaped)) <= 72 ) {
+@@ -786,7 +786,7 @@
+ */
+ function CloneConfidential() {
+ $confidential = clone($this);
+- $keep_properties = array( 'DTSTAMP', 'DTSTART', 'RRULE', 'DURATION', 'DTEND', 'UID', 'CLASS', 'TRANSP' );
++ $keep_properties = array( 'DTSTAMP', 'DTSTART', 'RRULE', 'DURATION', 'DTEND', 'DUE', 'UID', 'CLASS', 'TRANSP', 'CREATED', 'LAST-MODIFIED' );
+ $resource_components = array( 'VEVENT', 'VTODO', 'VJOURNAL' );
+ $confidential->MaskComponents(array( 'VTIMEZONE', 'VEVENT', 'VTODO', 'VJOURNAL' ));
+ $confidential->MaskProperties($keep_properties, $resource_components );
+@@ -822,6 +822,7 @@
+ foreach( $this->components AS $v ) { $rendered .= $v->Render(); }
+ $rendered .= "END:$this->type\r\n";
+
++ $rendered = preg_replace('{(?<!\r)\n}', '\r\n', $rendered);
+ if ( $unrestricted ) $this->rendered = $rendered;
+
+ return $rendered;
diff --git a/devel/php-libawl/files/patch-inc-vComponents.php b/devel/php-libawl/files/patch-inc-vComponents.php
new file mode 100644
index 000000000000..36f33b699748
--- /dev/null
+++ b/devel/php-libawl/files/patch-inc-vComponents.php
@@ -0,0 +1,28 @@
+--- inc/vComponent.php.old 2010-12-01 04:18:52.000000000 +0100
++++ inc/vComponent.php 2011-02-28 14:11:24.757189028 +0100
+@@ -203,7 +203,7 @@
+ function RenderParameters() {
+ $rendered = "";
+ foreach( $this->parameters AS $k => $v ) {
+- $escaped = preg_replace( "/([;:\"])/", '\\\\$1', $v);
++ $escaped = preg_replace( "/([;:])/", '\\\\$1', $v);
+ $rendered .= sprintf( ";%s=%s", $k, $escaped );
+ }
+ return $rendered;
+@@ -235,7 +235,7 @@
+ default:
+ $escaped = str_replace( '\\', '\\\\', $escaped);
+ $escaped = preg_replace( '/\r?\n/', '\\n', $escaped);
+- $escaped = preg_replace( "/([,;\"])/", '\\\\$1', $escaped);
++ $escaped = preg_replace( "/([,;])/", '\\\\$1', $escaped);
+ }
+
+ $property = sprintf( "%s%s:", $this->name, $this->RenderParameters() );
+@@ -800,6 +800,7 @@
+ foreach( $this->components AS $v ) { $rendered .= $v->Render(); }
+ $rendered .= "END:$this->type\r\n";
+
++ $rendered = preg_replace('{(?<!\r)\n}', '\r\n', $rendered);
+ if ( $unrestricted ) $this->rendered = $rendered;
+
+ return $rendered;