commit 09295ebd1dfb7ab08e8b8ad94f0a7302f5ceebe6
parent 446248523d95999f658d8571493e3be0abfe5597
Author: André Bargull <andre.bargull@gmail.com>
Date: Sat, 29 Nov 2025 11:19:20 +0000
Bug 2002997 - Part 1: Add patch for ICU-23278. r=spidermonkey-reviewers,mgaudet
Adds a patch for <https://unicode-org.atlassian.net/browse/ICU-23278>.
It appears that the CLDR to ICU data export script doesn't like the changes
from <https://github.com/unicode-org/cldr/pull/4991>, so as a workaround add
back the meta zones entries for "Europe/Dublin" and "Africa/Windhoek".
Part 3 covers "Europe/Dublin", but "Africa/Windhoek" can't be easily tested,
because <https://unicode-org.atlassian.net/browse/CLDR-18858> removed the
daylight time zone name entries for "Africa_Western". That means
`Temporal.ZonedDateTime.from("2000-01-01[Africa/Windhoek]").toLocaleString("en", {timeZoneName: "long"})`
still returns `"1/1/2000, 12:00:00 AM GMT+02:00"`, instead of
`"1/1/2000, 12:00:00 AM West Africa Summer Time"` when using ICU 77.
Differential Revision: https://phabricator.services.mozilla.com/D274421
Diffstat:
3 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/intl/icu-patches/bug-2002997-ICU-23278-metazone-with-offset.diff b/intl/icu-patches/bug-2002997-ICU-23278-metazone-with-offset.diff
@@ -0,0 +1,54 @@
+diff --git a/intl/icu/source/data/misc/metaZones.txt b/intl/icu/source/data/misc/metaZones.txt
+--- a/intl/icu/source/data/misc/metaZones.txt
++++ b/intl/icu/source/data/misc/metaZones.txt
+@@ -1257,16 +1257,21 @@ metaZones:table(nofallback){
+ "1990-03-20 22:00",
+ }
+ {
+ "Africa_Central",
+ "1990-03-20 22:00",
+ "1994-03-20 22:00",
+ }
+ {
++ "Africa_Western",
++ "1994-03-20 22:00",
++ "2017-10-23 22:00",
++ }
++ {
+ "Africa_Central",
+ "2017-10-23 22:00",
+ "9999-12-31 23:59",
+ }
+ }
+ "America:Adak"{
+ {
+ "Bering",
+@@ -3832,16 +3837,28 @@ metaZones:table(nofallback){
+ "9999-12-31 23:59",
+ }
+ }
+ "Europe:Copenhagen"{
+ {
+ "Europe_Central",
+ }
+ }
++ "Europe:Dublin"{
++ {
++ "Irish",
++ "1970-01-01 00:00",
++ "1971-10-31 02:00",
++ }
++ {
++ "GMT",
++ "1971-10-31 02:00",
++ "9999-12-31 23:59",
++ }
++ }
+ "Europe:Gibraltar"{
+ {
+ "Europe_Central",
+ }
+ }
+ "Europe:Guernsey"{
+ {
+ "British",
diff --git a/intl/icu/source/data/misc/metaZones.txt b/intl/icu/source/data/misc/metaZones.txt
@@ -1262,6 +1262,11 @@ metaZones:table(nofallback){
"1994-03-20 22:00",
}
{
+ "Africa_Western",
+ "1994-03-20 22:00",
+ "2017-10-23 22:00",
+ }
+ {
"Africa_Central",
"2017-10-23 22:00",
"9999-12-31 23:59",
@@ -3837,6 +3842,18 @@ metaZones:table(nofallback){
"Europe_Central",
}
}
+ "Europe:Dublin"{
+ {
+ "Irish",
+ "1970-01-01 00:00",
+ "1971-10-31 02:00",
+ }
+ {
+ "GMT",
+ "1971-10-31 02:00",
+ "9999-12-31 23:59",
+ }
+ }
"Europe:Gibraltar"{
{
"Europe_Central",
diff --git a/intl/update-icu.sh b/intl/update-icu.sh
@@ -64,6 +64,7 @@ for patch in \
bug-1972781-chinese-based-calendar.diff \
bug-2000225-ICU-23264-increase-measure-unit-capacity.diff \
bug-2000225-ICU-23262-missing-resource-error-for-iso8601-era.diff \
+ bug-2002997-ICU-23278-metazone-with-offset.diff \
; do
echo "Applying local patch $patch"
patch -d ${icu_dir}/../../ -p1 --no-backup-if-mismatch < ${icu_dir}/../icu-patches/$patch