summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kolab-webclient/ChangeLog7
-rw-r--r--kolab-webclient/kolab-webclient.spec4
-rw-r--r--patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch85
-rw-r--r--patches/horde-webmail/1.2.0/tg/series1
-rw-r--r--patches/horde-webmail/1.2.0/tg/t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff85
-rw-r--r--release-notes.txt3
6 files changed, 183 insertions, 2 deletions
diff --git a/kolab-webclient/ChangeLog b/kolab-webclient/ChangeLog
index 7bf5f13..5fb933d 100644
--- a/kolab-webclient/ChangeLog
+++ b/kolab-webclient/ChangeLog
@@ -1,3 +1,10 @@
+2009-04-02 Gunnar Wrobel <p@rdus.de>
+
+ * kolab-webclient.spec:
+ kolab/issue3520 (calendar with certain entries does not display in
+ web client)
+ kolab/issue3528 (Events with broken encoding should work)
+
2009-03-27 Gunnar Wrobel <p@rdus.de>
* kolab-webclient.spec, webclient-*.php.template:
diff --git a/kolab-webclient/kolab-webclient.spec b/kolab-webclient/kolab-webclient.spec
index e3f7d8c..725f497 100644
--- a/kolab-webclient/kolab-webclient.spec
+++ b/kolab-webclient/kolab-webclient.spec
@@ -2,8 +2,8 @@
%define V_horde_name horde-webmail
%define V_package kolab-webclient
%define V_year 2009
-%define V_month 03
-%define V_day 27
+%define V_month 04
+%define V_day 02
%define V_version 1.2.0
%define V_source_version 1.2
%define V_passwd_version 3.0.1
diff --git a/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch b/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch
index cf5baf4..697cf19 100644
--- a/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch
+++ b/patches/horde-webmail/1.2.0/horde-webmail-1.2.0_kolab_openpkg.patch
@@ -19915,6 +19915,91 @@ Author: Gunnar Wrobel <p@rdus.de>
Date: Sun Mar 8 07:23:20 2009 +0000
Fix [#7438] Failed login not passed back to login screen
+From: Gunnar Wrobel <p@rdus.de>
+Subject: [PATCH] t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn
+
+Correct handling of empty return values from the XML parser. An empty
+return might occur if the XML document is broken (e.g. broken encoding).
+
+ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client)
+ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events)
+ISSUE: kolab/issue3528 (Events with broken encoding should work)
+
+LINK: https://www.intevation.de/roundup/kolab/issue3520
+LINK: https://www.intevation.de/roundup/kolab/issue3525
+LINK: https://www.intevation.de/roundup/kolab/issue3528
+
+STATUS: COMMIT
+
+REF:
+
+Signed-off-by: Gunnar Wrobel <p@rdus.de>
+
+---
+ horde-webmail/lib/Horde/Kolab/Format/XML.php | 14 ++++++++++++--
+ 1 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php
+index d3d7def..30320c9 100644
+--- a/horde-webmail/lib/Horde/Kolab/Format/XML.php
++++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php
+@@ -364,6 +364,9 @@ class Horde_Kolab_Format_XML
+ /**
+ * Load an object based on the given XML string.
+ *
++ * @todo Check encoding of the returned array. It seems to be ISO-8859-1 at
++ * the moment and UTF-8 would seem more appropriate.
++ *
+ * @param string $xmltext The XML of the message as string.
+ *
+ * @return array|PEAR_Error The data array representing the object.
+@@ -371,7 +374,10 @@ class Horde_Kolab_Format_XML
+ function load(&$xmltext)
+ {
+ $noderoot = $this->_parseXml($xmltext);
+- if ($noderoot === false) {
++ if (is_a($noderoot, 'PEAR_Error')) {
++ return $noderoot;
++ }
++ if (empty($noderoot)) {
+ return false;
+ }
+
+@@ -530,9 +536,13 @@ class Horde_Kolab_Format_XML
+ */
+ function _parseXml(&$xmltext)
+ {
++ if (strcasecmp(mb_detect_encoding($xmltext, 'UTF-8, ISO-8859-1'), 'UTF-8') !== 0) {
++ $xmltext = mb_convert_encoding($xmltext, 'UTF-8', 'ISO-8859-1');
++ }
++
+ $params = array(
+ 'xml' => $xmltext,
+- 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS,
++ 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS | HORDE_DOM_LOAD_RECOVER,
+ );
+
+ $result = Horde_DOM_Document::factory($params);
+--
+tg: (2d1588f..) t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn (depends on: t/kronolith/HK/GW/XfbAccess)
+--
+TOPGIT patch commit log
+=======================
+
+commit 1883efc257b2e50646e11da79cc47fb0f7f328ca
+Author: Gunnar Wrobel <p@rdus.de>
+Date: Thu Apr 2 11:36:17 2009 +0200
+
+ Correct handling of empty return values from the XML parser. An empty
+ return might occur if the XML document is broken (e.g. broken encoding).
+
+ ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client)
+ ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events)
+ ISSUE: kolab/issue3528 (Events with broken encoding should work)
+
+ LINK: https://www.intevation.de/roundup/kolab/issue3520
+ LINK: https://www.intevation.de/roundup/kolab/issue3525
+ LINK: https://www.intevation.de/roundup/kolab/issue3528
diff -c a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php
--- a/horde-webmail/lib/Horde/Kolab/Storage/Folder.php
+++ b/horde-webmail/lib/Horde/Kolab/Storage/Folder.php
diff --git a/patches/horde-webmail/1.2.0/tg/series b/patches/horde-webmail/1.2.0/tg/series
index 5020dec..b496142 100644
--- a/patches/horde-webmail/1.2.0/tg/series
+++ b/patches/horde-webmail/1.2.0/tg/series
@@ -67,3 +67,4 @@ t_imp_H_GW_DefaultLoginView.diff -p1
t_imp_H_GW_LoginRetries.diff -p1
t_imp_H_JS_bug7739.diff -p1
t_imp_H_MS_bug7438.diff -p1
+t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff -p1
diff --git a/patches/horde-webmail/1.2.0/tg/t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff b/patches/horde-webmail/1.2.0/tg/t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff
new file mode 100644
index 0000000..9a308c3
--- /dev/null
+++ b/patches/horde-webmail/1.2.0/tg/t_Kolab__Format_HK_GW_HandleEmptyXmlParserReturn.diff
@@ -0,0 +1,85 @@
+From: Gunnar Wrobel <p@rdus.de>
+Subject: [PATCH] t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn
+
+Correct handling of empty return values from the XML parser. An empty
+return might occur if the XML document is broken (e.g. broken encoding).
+
+ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client)
+ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events)
+ISSUE: kolab/issue3528 (Events with broken encoding should work)
+
+LINK: https://www.intevation.de/roundup/kolab/issue3520
+LINK: https://www.intevation.de/roundup/kolab/issue3525
+LINK: https://www.intevation.de/roundup/kolab/issue3528
+
+STATUS: COMMIT
+
+REF:
+
+Signed-off-by: Gunnar Wrobel <p@rdus.de>
+
+---
+ horde-webmail/lib/Horde/Kolab/Format/XML.php | 14 ++++++++++++--
+ 1 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/horde-webmail/lib/Horde/Kolab/Format/XML.php b/horde-webmail/lib/Horde/Kolab/Format/XML.php
+index d3d7def..30320c9 100644
+--- a/horde-webmail/lib/Horde/Kolab/Format/XML.php
++++ b/horde-webmail/lib/Horde/Kolab/Format/XML.php
+@@ -364,6 +364,9 @@ class Horde_Kolab_Format_XML
+ /**
+ * Load an object based on the given XML string.
+ *
++ * @todo Check encoding of the returned array. It seems to be ISO-8859-1 at
++ * the moment and UTF-8 would seem more appropriate.
++ *
+ * @param string $xmltext The XML of the message as string.
+ *
+ * @return array|PEAR_Error The data array representing the object.
+@@ -371,7 +374,10 @@ class Horde_Kolab_Format_XML
+ function load(&$xmltext)
+ {
+ $noderoot = $this->_parseXml($xmltext);
+- if ($noderoot === false) {
++ if (is_a($noderoot, 'PEAR_Error')) {
++ return $noderoot;
++ }
++ if (empty($noderoot)) {
+ return false;
+ }
+
+@@ -530,9 +536,13 @@ class Horde_Kolab_Format_XML
+ */
+ function _parseXml(&$xmltext)
+ {
++ if (strcasecmp(mb_detect_encoding($xmltext, 'UTF-8, ISO-8859-1'), 'UTF-8') !== 0) {
++ $xmltext = mb_convert_encoding($xmltext, 'UTF-8', 'ISO-8859-1');
++ }
++
+ $params = array(
+ 'xml' => $xmltext,
+- 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS,
++ 'options' => HORDE_DOM_LOAD_REMOVE_BLANKS | HORDE_DOM_LOAD_RECOVER,
+ );
+
+ $result = Horde_DOM_Document::factory($params);
+--
+tg: (2d1588f..) t/Kolab_Format/HK/GW/HandleEmptyXmlParserReturn (depends on: t/kronolith/HK/GW/XfbAccess)
+--
+TOPGIT patch commit log
+=======================
+
+commit 1883efc257b2e50646e11da79cc47fb0f7f328ca
+Author: Gunnar Wrobel <p@rdus.de>
+Date: Thu Apr 2 11:36:17 2009 +0200
+
+ Correct handling of empty return values from the XML parser. An empty
+ return might occur if the XML document is broken (e.g. broken encoding).
+
+ ISSUE: kolab/issue3520 (calendar with certain entries does not display in web client)
+ ISSUE: kolab/issue3525 (free/busy regeneration aborts for unparsable events)
+ ISSUE: kolab/issue3528 (Events with broken encoding should work)
+
+ LINK: https://www.intevation.de/roundup/kolab/issue3520
+ LINK: https://www.intevation.de/roundup/kolab/issue3525
+ LINK: https://www.intevation.de/roundup/kolab/issue3528
diff --git a/release-notes.txt b/release-notes.txt
index 6b3e7ab..90906f7 100644
--- a/release-notes.txt
+++ b/release-notes.txt
@@ -97,6 +97,9 @@ Changes between 2.2.1-rc-1 and 2.2.1:
creating a new folder)
kolab/issue3452 (Allow to configure the default imp view offered
to the user)
+ kolab/issue3520 (calendar with certain entries does not display in
+ web client)
+ kolab/issue3528 (Events with broken encoding should work)
- openpkg-20071227-20071227_kolab1