jonsger pushed a commit to branch master
in repository guix.

commit 15a96bd6e981f37b7304b1803dbafc75acc0b8f6
Author: Jonathan Brielmaier <[email protected]>
AuthorDate: Sun Apr 28 21:29:37 2024 +0200

    gnu: icu4c: Add patch for VTIMEZONE bug.
    
    Icedove@115 does not properly work without this patch. See:
    https://bugzilla.mozilla.org/show_bug.cgi?id=1843007
    
    * gnu/packages/icu4c.scm (icu4c-73)[source]: Use patch.
    * gnu/packages/patches/icu4c-icu-22132-fix-vtimezone.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Register patch.
    Change-Id: Ie64d1e33afedbaedbaafaeb607a201eb671ac7bd
    
    Change-Id: I6d753eacc7daac5663128b20a550044d0fd0ddb7
---
 gnu/local.mk                                       |  1 +
 gnu/packages/icu4c.scm                             |  5 ++--
 .../patches/icu4c-icu-22132-fix-vtimezone.patch    | 31 ++++++++++++++++++++++
 3 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 86ff662efa..3b0a3858f7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1511,6 +1511,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/icecat-use-system-wide-dir.patch                \
   %D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch       \
   %D%/packages/patches/icedtea-7-hotspot-pointer-comparison.patch      \
+  %D%/packages/patches/icu4c-icu-22132-fix-vtimezone.patch     \
   %D%/packages/patches/icu4c-fix-TestHebrewCalendarInTemporalLeapYear.patch    
\
   %D%/packages/patches/id3lib-CVE-2007-4460.patch                      \
   %D%/packages/patches/id3lib-UTF16-writing-bug.patch                  \
diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index 2031d72768..6f09fae65c 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -126,8 +126,9 @@ C/C++ part.")
                (base32
                 "0iccpdvc0kvpww5a31k9gjkqigyz016i7v80r9zamd34w4fl6mx4"))
               (patches
-               (cons
-                (search-patch
+               (append
+                (search-patches
+                 "icu4c-icu-22132-fix-vtimezone.patch"
                  "icu4c-fix-TestHebrewCalendarInTemporalLeapYear.patch")
                 (origin-patches (package-source icu4c))))))))
 
diff --git a/gnu/packages/patches/icu4c-icu-22132-fix-vtimezone.patch 
b/gnu/packages/patches/icu4c-icu-22132-fix-vtimezone.patch
new file mode 100644
index 0000000000..4fe520318a
--- /dev/null
+++ b/gnu/packages/patches/icu4c-icu-22132-fix-vtimezone.patch
@@ -0,0 +1,31 @@
+Source: 
https://unicode-org.atlassian.net/browse/ICU-22132?focusedCommentId=166752
+Author: Sean Burke
+License:
+Fixes: https://bugzilla.mozilla.org/show_bug.cgi?id=1843007
+
+diff --git a/icu4c/source/i18n/vtzone.cpp b/icu4c/source/i18n/vtzone.cpp
+index 3035106701..5e738e11fa 100644
+--- a/source/i18n/vtzone.cpp
++++ b/source/i18n/vtzone.cpp
+@@ -1735,14 +1735,14 @@ VTimeZone::write(VTZWriter& writer, UErrorCode& 
status) const {
+             }
+         }
+     } else {
+-        UnicodeString icutzprop;
+-        UVector customProps(nullptr, uhash_compareUnicodeString, status);
++        UVector customProps(uprv_deleteUObject, uhash_compareUnicodeString, 
status);
+         if (olsonzid.length() > 0 && icutzver.length() > 0) {
+-            icutzprop.append(olsonzid);
+-            icutzprop.append(u'[');
+-            icutzprop.append(icutzver);
+-            icutzprop.append(u']');
+-            customProps.addElement(&icutzprop, status);
++            LocalPointer<UnicodeString> icutzprop(new 
UnicodeString(ICU_TZINFO_PROP), status);
++            icutzprop->append(olsonzid);
++            icutzprop->append(u'[');
++            icutzprop->append(icutzver);
++            icutzprop->append(u']');
++            customProps.adoptElement(icutzprop.orphan(), status);
+         }
+         writeZone(writer, *tz, &customProps, status);
+     }

Reply via email to