diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index acb4ae4..714f3b0 100644 --- a/.gitignore +++ b/.gitignore @@ -166,3 +166,59 @@ noarch/ /tzdata2018e.tar.gz /tzcode2018g.tar.gz /tzdata2018g.tar.gz +/tzcode2018i.tar.gz +/tzdata2018i.tar.gz +/tzcode2019a.tar.gz +/tzdata2019a.tar.gz +/tzcode2019b.tar.gz +/tzdata2019b.tar.gz +/tzcode2019c.tar.gz +/tzdata2019c.tar.gz +/tzcode2020a.tar.gz +/tzdata2020a.tar.gz +/tzcode2020b.tar.gz +/tzdata2020b.tar.gz +/tzcode2020d.tar.gz +/tzdata2020d.tar.gz +/tzcode2020f.tar.gz +/tzdata2020f.tar.gz +/tzcode2021a.tar.gz +/tzdata2021a.tar.gz +/tzcode2021b.tar.gz +/tzdata2021b.tar.gz +/tzcode2021c.tar.gz +/tzdata2021c.tar.gz +/tzdata2021e.tar.gz +/tzcode2021e.tar.gz +/tzdata2022a.tar.gz +/tzcode2022a.tar.gz +/tzcode2022b.tar.gz +/tzdata2022b.tar.gz +/tzcode2022c.tar.gz +/tzdata2022c.tar.gz +/tzcode2022d.tar.gz +/tzdata2022d.tar.gz +/tzcode2022e.tar.gz +/tzdata2022e.tar.gz +/tzcode2022f.tar.gz +/tzdata2022f.tar.gz +/tzcode2022g.tar.gz +/tzdata2022g.tar.gz +/tzcode2023a.tar.gz +/tzdata2023a.tar.gz +/tzcode2023b.tar.gz +/tzdata2023b.tar.gz +/tzcode2023c.tar.gz +/tzdata2023c.tar.gz +/tzcode2023d.tar.gz +/tzdata2023d.tar.gz +/tzcode2024a.tar.gz +/tzdata2024a.tar.gz +/tzcode2024b.tar.gz +/tzdata2024b.tar.gz +/tzcode2025a.tar.gz +/tzdata2025a.tar.gz +/tzcode2025b.tar.gz +/tzdata2025b.tar.gz +/tzcode2025c.tar.gz +/tzdata2025c.tar.gz diff --git a/0001-Fix-Jan-Mayen-typo.patch b/0001-Fix-Jan-Mayen-typo.patch new file mode 100644 index 0000000..6e60061 --- /dev/null +++ b/0001-Fix-Jan-Mayen-typo.patch @@ -0,0 +1,29 @@ +From 2a7c7c5873ff0eb725e8eafad04f6af6ada66dc6 Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Sat, 25 Sep 2021 08:32:39 -0700 +Subject: [PROPOSED] Fix Jan Mayen typo + +Fix typo in 2021-09-24 revert of most of the 2021-05-19 +alike-since-1970 patch. Problem reported by Chris Walton in: +https://mm.icann.org/pipermail/tz/2021-September/030772.html +* backward (Atlantic/Jan_Mayen): Link from Europe/Oslo, +not Europe/Berlin. +--- + backward | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/backward b/backward +index 7c288e3..5412c46 100644 +--- a/backward ++++ b/backward +@@ -116,7 +116,7 @@ Link Asia/Makassar Asia/Ujung_Pandang + Link Asia/Ulaanbaatar Asia/Ulan_Bator + Link Asia/Bangkok Asia/Vientiane + Link Atlantic/Faroe Atlantic/Faeroe +-Link Europe/Berlin Atlantic/Jan_Mayen ++Link Europe/Oslo Atlantic/Jan_Mayen + Link Africa/Abidjan Atlantic/St_Helena + Link Australia/Sydney Australia/ACT + Link Australia/Sydney Australia/Canberra +-- +2.30.2 diff --git a/0001-Fix-Makefile-quoting-bug.patch b/0001-Fix-Makefile-quoting-bug.patch index 41e04fd..868ec9a 100644 --- a/0001-Fix-Makefile-quoting-bug.patch +++ b/0001-Fix-Makefile-quoting-bug.patch @@ -147,24 +147,3 @@ index c92edc0..97649ca 100644 mkdir -p public.dir for i in $(TDATA) tzdata.zi; do \ $(zic) -v -d public.dir $$i 2>&1 || exit; \ -diff --git a/NEWS b/NEWS -index bd2bec2..75ab095 100644 ---- a/NEWS -+++ b/NEWS -@@ -1,5 +1,13 @@ - News for the tz database - -+Unreleased, experimental changes -+ -+ Changes to build procedure -+ -+ The Makefile now quotes values like BACKWARD more carefully when -+ passing them to the shell. (Problem reported by Zefram.) -+ -+ - Release 2017c - 2017-10-20 14:49:34 -0700 - - Briefly: --- -2.13.6 - diff --git a/0001-Work-around-awk-bug-1.patch b/0001-Work-around-awk-bug-1.patch new file mode 100644 index 0000000..304accc --- /dev/null +++ b/0001-Work-around-awk-bug-1.patch @@ -0,0 +1,153 @@ +From e8171130f9b80ae3c75dfa5e96c47d5dbc0f4aae Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Wed, 10 Aug 2022 18:58:08 -0700 +Subject: [PROPOSED] Work around macOS awk bug + +* ziguard.awk: Replace every regular expression /ERE/ in ordinary +contexts with ($0 ~ /ERE/), to work around a bug in macOS 13.0 awk. +Problem reported by Deborah Goldsmith in: +https://mm.icann.org/pipermail/tz/2022-August/031783.html +--- + NEWS | 8 ++++++++ + ziguard.awk | 37 ++++++++++++++++++++----------------- + 2 files changed, 28 insertions(+), 17 deletions(-) + +diff --git a/NEWS b/NEWS +index 6a0d5c50..7291030a 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,5 +1,13 @@ + News for the tz database + ++Unreleased, experimental changes ++ ++ Changes to code ++ ++ Work around a bug in macOS 'awk' that broke commands like 'make ++ traditional_tarballs'. (Problem reported by Deborah Goldsmith.) ++ ++ + Release 2022b - 2022-08-10 15:38:32 -0700 + + Briefly: +diff --git a/ziguard.awk b/ziguard.awk +index 0728baa5..0556cc4a 100644 +--- a/ziguard.awk ++++ b/ziguard.awk +@@ -91,12 +91,13 @@ $1 == "#PACKRATLIST" && $2 == PACKRATLIST { + /^Zone/ { zone = $2 } + + DATAFORM != "main" { +- in_comment = /^#/ ++ in_comment = $0 ~ /^#/ + uncomment = comment_out = 0 + + # If this line should differ due to Czechoslovakia using negative SAVE values, + # uncomment the desired version and comment out the undesired one. +- if (zone == "Europe/Prague" && /^#?[\t ]+[01]:00[\t ]/ && /1947 Feb 23/) { ++ if (zone == "Europe/Prague" && $0 ~ /^#?[\t ]+[01]:00[\t ]/ \ ++ && $0 ~ /1947 Feb 23/) { + if (($(in_comment + 2) != "-") == (DATAFORM != "rearguard")) { + uncomment = in_comment + } else { +@@ -106,9 +107,9 @@ DATAFORM != "main" { + + # If this line should differ due to Ireland using negative SAVE values, + # uncomment the desired version and comment out the undesired one. +- Rule_Eire = /^#?Rule[\t ]+Eire[\t ]/ ++ Rule_Eire = $0 ~ /^#?Rule[\t ]+Eire[\t ]/ + Zone_Dublin_post_1968 \ +- = (zone == "Europe/Dublin" && /^#?[\t ]+[01]:00[\t ]/ \ ++ = (zone == "Europe/Dublin" && $0 ~ /^#?[\t ]+[01]:00[\t ]/ \ + && (!$(in_comment + 4) || 1968 < $(in_comment + 4))) + if (Rule_Eire || Zone_Dublin_post_1968) { + if ((Rule_Eire \ +@@ -122,9 +123,9 @@ DATAFORM != "main" { + + # If this line should differ due to Namibia using negative SAVE values, + # uncomment the desired version and comment out the undesired one. +- Rule_Namibia = /^#?Rule[\t ]+Namibia[\t ]/ ++ Rule_Namibia = $0 ~ /^#?Rule[\t ]+Namibia[\t ]/ + Zone_using_Namibia_rule \ +- = (zone == "Africa/Windhoek" && /^#?[\t ]+[12]:00[\t ]/ \ ++ = (zone == "Africa/Windhoek" && $0 ~ /^#?[\t ]+[12]:00[\t ]/ \ + && ($(in_comment + 2) == "Namibia" \ + || ($(in_comment + 2) == "-" && $(in_comment + 3) == "CAT" \ + && ((1994 <= $(in_comment + 4) && $(in_comment + 4) <= 2017) \ +@@ -142,8 +143,8 @@ DATAFORM != "main" { + + # If this line should differ due to Portugal benefiting from %z if supported, + # uncomment the desired version and comment out the undesired one. +- if (/^#?[\t ]+-[12]:00[\t ]+Port[\t ]+[%+-]/) { +- if (/%z/ == (DATAFORM == "vanguard")) { ++ if ($0 ~ /^#?[\t ]+-[12]:00[\t ]+Port[\t ]+[%+-]/) { ++ if (($0 ~ /%z/) == (DATAFORM == "vanguard")) { + uncomment = in_comment + } else { + comment_out = !in_comment +@@ -164,8 +165,8 @@ DATAFORM != "main" { + sub(/-00CHANGE-TO-%z/, "-00") + sub(/[-+][^\t ]+CHANGE-TO-/, "") + } else { +- if (/^[^#]*%z/) { +- stdoff_column = 2 * /^Zone/ + 1 ++ if ($0 ~ /^[^#]*%z/) { ++ stdoff_column = 2 * ($0 ~ /^Zone/) + 1 + rules_column = stdoff_column + 1 + stdoff = get_minutes($stdoff_column) + rules = $rules_column +@@ -184,9 +185,9 @@ DATAFORM != "main" { + dstoff = 20 + } else if (((rules == "Cook" || rules == "LH") && NF == 3) \ + || (rules == "Uruguay" \ +- && /[\t ](1942 Dec 14|1960|1970|1974 Dec 22)$/)) { ++ && $0 ~ /[\t ](1942 Dec 14|1960|1970|1974 Dec 22)$/)) { + dstoff = 30 +- } else if (rules == "Uruguay" && /[\t ]1974 Mar 10$/) { ++ } else if (rules == "Uruguay" && $0 ~ /[\t ]1974 Mar 10$/) { + dstoff = 90 + } else { + dstoff = 60 +@@ -222,7 +223,7 @@ DATAFORM != "main" { + stdoff_subst[1] = rounded_stdoff + } + } else if (stdoff_subst[0]) { +- stdoff_column = 2 * /^Zone/ + 1 ++ stdoff_column = 2 * ($0 ~ /^Zone/) + 1 + stdoff_column_val = $stdoff_column + if (stdoff_column_val == stdoff_subst[0]) { + sub(stdoff_subst[0], stdoff_subst[1]) +@@ -233,7 +234,7 @@ DATAFORM != "main" { + + # In rearguard form, change the Japan rule line with "Sat>=8 25:00" + # to "Sun>=9 1:00", to cater to zic before 2007 and to older Java. +- if (/^Rule/ && $2 == "Japan") { ++ if ($0 ~ /^Rule/ && $2 == "Japan") { + if (DATAFORM == "rearguard") { + if ($7 == "Sat>=8" && $8 == "25:00") { + sub(/Sat>=8/, "Sun>=9") +@@ -250,7 +251,7 @@ DATAFORM != "main" { + # In rearguard form, change the Morocco lines with negative SAVE values + # to use positive SAVE values. + if ($2 == "Morocco") { +- if (/^Rule/) { ++ if ($0 ~ /^Rule/) { + if ($4 ~ /^201[78]$/ && $6 == "Oct") { + if (DATAFORM == "rearguard") { + sub(/\t2018\t/, "\t2017\t") +@@ -290,8 +291,10 @@ DATAFORM != "main" { + /^Zone/ { + packrat_ignored = FILENAME == PACKRATDATA && PACKRATLIST && !packratlist[$2]; + } +-packrat_ignored && !/^Rule/ { +- sub(/^/, "#") ++{ ++ if (packrat_ignored && $0 !~ /^Rule/) { ++ sub(/^/, "#") ++ } + } + + # If a Link line is followed by a Link or Zone line for the same data, comment +-- +2.34.1 + diff --git a/0002-Fix-have-snprintf-error.patch b/0002-Fix-have-snprintf-error.patch index cafdf4d..b3dab7f 100644 --- a/0002-Fix-have-snprintf-error.patch +++ b/0002-Fix-have-snprintf-error.patch @@ -1,12 +1,12 @@ diff -Nrup a/Makefile b/Makefile ---- a/Makefile 2017-10-23 18:03:40.237177646 -0400 -+++ b/Makefile 2017-10-23 18:06:20.060683518 -0400 -@@ -292,7 +292,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fn - # January's first Monday when a "%V" format is used and January 1 - # falls on a Friday, Saturday, or Sunday. +--- a/Makefile 2024-01-01 17:57:30.112884304 -0500 ++++ b/Makefile 2024-01-01 17:59:33.641497622 -0500 +@@ -423,6 +423,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fn + # Uncomment the following line and edit its contents as needed. --CFLAGS= + #CFLAGS= -O 1 +CFLAGS= -DHAVE_SNPRINTF=1 - # Linker flags. Default to $(LFLAGS) for backwards compatibility - # to release 2012h and earlier. + + # The name of a POSIX-like library archiver, its flags, C compiler, +Binary files a/tzdata2023d-rearguard.tar.gz and b/tzdata2023d-rearguard.tar.gz differ diff --git a/0003-continue-to-ship-posixrules.patch b/0003-continue-to-ship-posixrules.patch new file mode 100644 index 0000000..fa905d3 --- /dev/null +++ b/0003-continue-to-ship-posixrules.patch @@ -0,0 +1,13 @@ +diff -Nrup a/Makefile b/Makefile +--- a/Makefile 2023-03-22 17:41:49.069789592 -0400 ++++ b/Makefile 2023-03-22 17:44:07.528427093 -0400 +@@ -52,7 +52,7 @@ LOCALTIME= Factory + # make zonenames + # to get a list of the values you can use for POSIXRULES. + +-POSIXRULES= - ++POSIXRULES= America/New_York + + # Also see TZDEFRULESTRING below, which takes effect only + # if POSIXRULES is '-' or if the template file cannot be accessed. +Binary files a/tzdata2023a-rearguard.tar.gz and b/tzdata2023a-rearguard.tar.gz differ diff --git a/0004-Fix-Apr-vs-April-2024b.patch b/0004-Fix-Apr-vs-April-2024b.patch new file mode 100644 index 0000000..7c3d161 --- /dev/null +++ b/0004-Fix-Apr-vs-April-2024b.patch @@ -0,0 +1,23 @@ +commit 926b507fa5c3192b1b68fab5910cbd3ba9377c97 +Author: Paul Eggert +Date: Thu Sep 5 14:36:02 2024 -0700 + + "Apr", not "April", in IN column + + * northamerica (Rule): Use "Apr", not "April", in the IN column. + Both forms are valid, but "Apr" is more consistent. + Problem reported by Howard Hinnant. + +diff --git a/northamerica b/northamerica +index 01f392e0..1af874b6 100644 +--- a/northamerica ++++ b/northamerica +@@ -2631,7 +2631,7 @@ Zone America/Dawson -9:17:40 - LMT 1900 Aug 20 + # http://puentelibre.mx/noticia/ciudad_juarez_cambio_horario_noviembre_2022/ + + # Rule NAME FROM TO - IN ON AT SAVE LETTER/S +-Rule Mexico 1931 only - April 30 0:00 1:00 D ++Rule Mexico 1931 only - Apr 30 0:00 1:00 D + Rule Mexico 1931 only - Oct 1 0:00 0 S + Rule Mexico 1939 only - Feb 5 0:00 1:00 D + Rule Mexico 1939 only - Jun 25 0:00 0 S diff --git a/0005-Improve-style-checks-for-months-2024b.patch b/0005-Improve-style-checks-for-months-2024b.patch new file mode 100644 index 0000000..b02b882 --- /dev/null +++ b/0005-Improve-style-checks-for-months-2024b.patch @@ -0,0 +1,77 @@ +commit 7b6fb155cadd5e5ee70b55c2770e1bdd2f5d2a38 +Author: Paul Eggert +Date: Thu Sep 5 14:38:35 2024 -0700 + + Improve style checks for months + + * checktab.awk: Check style of STDOFF and month names. + +diff --git a/checktab.awk b/checktab.awk +index 9a26e465..15a3a697 100644 +--- a/checktab.awk ++++ b/checktab.awk +@@ -9,6 +9,19 @@ BEGIN { + if (!zone_table) zone_table = "zone1970.tab" + if (!want_warnings) want_warnings = -1 + ++ monthabbr["Jan"] = 1 ++ monthabbr["Feb"] = 1 ++ monthabbr["Mar"] = 1 ++ monthabbr["Apr"] = 1 ++ monthabbr["May"] = 1 ++ monthabbr["Jun"] = 1 ++ monthabbr["Jul"] = 1 ++ monthabbr["Aug"] = 1 ++ monthabbr["Sep"] = 1 ++ monthabbr["Oct"] = 1 ++ monthabbr["Nov"] = 1 ++ monthabbr["Dec"] = 1 ++ + while (getline >"/dev/stderr" ++ status = 1 ++ } + } else { ++ stdoff = $1 + ruleUsed[$2] = 1 + if ($3 ~ /%/) rulePercentUsed[$2] = 1 + } ++ ++ if (stdoff && stdoff !~ /^\-?1?[0-9](:[0-5][0-9](:[0-5][0-9])?)?$/) { ++ printf "%s:%d: unlikely STDOFF: %s\n", FILENAME, FNR, stdoff \ ++ >>"/dev/stderr" ++ status = 1 ++ } ++ + if (tz && tz ~ /\// && tz !~ /^Etc\//) { + if (!tztab[tz] && FILENAME != "backward" \ + && zone_table != "zonenow.tab") { diff --git a/8051641.patch b/8051641.patch new file mode 100644 index 0000000..4f5be47 --- /dev/null +++ b/8051641.patch @@ -0,0 +1,17 @@ +diff -r c8a71253d6e2 -r 189490f29d1e make/src/classes/build/tools/tzdb/ZoneRulesBuilder.java +--- javazic-1.8/build/tools/tzdb/ZoneRulesBuilder.java Thu Oct 23 11:42:20 2014 +0200 ++++ javazic-1.8/build/tools/tzdb/ZoneRulesBuilder.java Mon Dec 29 21:42:22 2014 +0300 +@@ -491,10 +491,10 @@ + TZRule rule = new TZRule(year, month, dayOfMonthIndicator, dayOfWeek, time, timeEndOfDay, timeDefinition, savingAmountSecs); + if (lastRule) { + lastRuleList.add(rule); +- maxLastRuleStartYear = Math.max(startYear, maxLastRuleStartYear); + } else { + ruleList.add(rule); + } ++ maxLastRuleStartYear = Math.max(startYear, maxLastRuleStartYear); + year++; + } + } +-- +cgit v0.9.2 diff --git a/ZoneTest.java b/ZoneTest.java new file mode 100644 index 0000000..e690728 --- /dev/null +++ b/ZoneTest.java @@ -0,0 +1,42 @@ +/* Smoke test to ensure that tzdb.data can be loaded. + Copyright (c) 2024 Red Hat, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ + + +import java.time.zone.ZoneRulesProvider; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.Locale; +import java.util.Set; +import java.util.TimeZone; + +public class ZoneTest { + public static void main(String[] args) { + // This is what failed in OpenJDK's build.tools.cldrconverter. + new GregorianCalendar(TimeZone.getTimeZone("America/Los_Angeles"), + Locale.US).get(Calendar.YEAR); + + // In some OpenJDK versions, this exercises a different parser. + Set available = ZoneRulesProvider.getAvailableZoneIds(); + boolean errors = false; + if (available.contains("ROC")) + System.out.println("error: ROC zone is present"); + if (!available.contains("America/New_York")) + System.out.println("error: America/New_York is missing"); + if (errors) + System.exit(1); + } +} + diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..4581d72 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional} diff --git a/javazic-harden-links.patch b/javazic-harden-links.patch new file mode 100644 index 0000000..3d51306 --- /dev/null +++ b/javazic-harden-links.patch @@ -0,0 +1,84 @@ +commit 1bc13a1c10a580f84f1b7686c95344ec2633f611 +Author: Florian Weimer +Date: Thu Sep 26 22:37:45 2024 +0000 + + 8340552: Harden TzdbZoneRulesCompiler against missing zone names + + Reviewed-by: andrew, jlu, naoto + +diff -ur tzdata-2024b.orig/javazic-1.8/build/tools/tzdb/TzdbZoneRulesCompiler.java tzdata-2024b/javazic-1.8/build/tools/tzdb/TzdbZoneRulesCompiler.java +--- tzdata-2024b.orig/javazic-1.8/build/tools/tzdb/TzdbZoneRulesCompiler.java 2014-04-22 19:46:49.000000000 +0200 ++++ tzdata-2024b/javazic-1.8/build/tools/tzdb/TzdbZoneRulesCompiler.java 2024-09-20 21:10:12.748483767 +0200 +@@ -248,7 +248,7 @@ + // link version-region-rules + out.writeShort(builtZones.size()); + for (Map.Entry entry : builtZones.entrySet()) { +- int regionIndex = Arrays.binarySearch(regionArray, entry.getKey()); ++ int regionIndex = findRegionIndex(regionArray, entry.getKey()); + int rulesIndex = rulesList.indexOf(entry.getValue()); + out.writeShort(regionIndex); + out.writeShort(rulesIndex); +@@ -256,8 +256,8 @@ + // alias-region + out.writeShort(links.size()); + for (Map.Entry entry : links.entrySet()) { +- int aliasIndex = Arrays.binarySearch(regionArray, entry.getKey()); +- int regionIndex = Arrays.binarySearch(regionArray, entry.getValue()); ++ int aliasIndex = findRegionIndex(regionArray, entry.getKey()); ++ int regionIndex = findRegionIndex(regionArray, entry.getValue()); + out.writeShort(aliasIndex); + out.writeShort(regionIndex); + } +@@ -269,6 +269,14 @@ + } + } + ++ private static int findRegionIndex(String[] regionArray, String region) { ++ int index = Arrays.binarySearch(regionArray, region); ++ if (index < 0) { ++ throw new IllegalArgumentException("Unknown region: " + region); ++ } ++ return index; ++ } ++ + private static final Pattern YEAR = Pattern.compile("(?i)(?min)|(?max)|(?only)|(?[0-9]+)"); + private static final Pattern MONTH = Pattern.compile("(?i)(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)"); + private static final Matcher DOW = Pattern.compile("(?i)(mon)|(tue)|(wed)|(thu)|(fri)|(sat)|(sun)").matcher(""); +@@ -607,22 +615,20 @@ + } + builtZones.put(aliasId, realRules); + } +- // remove UTC and GMT +- // builtZones.remove("UTC"); +- // builtZones.remove("GMT"); +- // builtZones.remove("GMT0"); +- builtZones.remove("GMT+0"); +- builtZones.remove("GMT-0"); +- links.remove("GMT+0"); +- links.remove("GMT-0"); +- // remove ROC, which is not supported in j.u.tz +- builtZones.remove("ROC"); +- links.remove("ROC"); +- // remove EST, HST and MST. They are supported via +- // the short-id mapping +- builtZones.remove("EST"); +- builtZones.remove("HST"); +- builtZones.remove("MST"); ++ ++ List zonesToRemove = Arrays.asList( ++ // remove UTC and GMT ++ "GMT+0", ++ "GMT-0", ++ // remove ROC, which is not supported in j.u.tz ++ "ROC", ++ // remove EST, HST and MST. They are supported via ++ // the short-id mapping ++ "EST", ++ "HST", ++ "MST"); ++ builtZones.keySet().removeAll(zonesToRemove); ++ links.keySet().removeAll(zonesToRemove); + } + + /** + diff --git a/plans/main.fmf b/plans/main.fmf new file mode 100644 index 0000000..ec17042 --- /dev/null +++ b/plans/main.fmf @@ -0,0 +1,5 @@ +summary: Main Plan +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index d4eb179..0b8efef 100644 --- a/sources +++ b/sources @@ -1,4 +1,3 @@ -SHA512 (javazic.tar.gz) = c23a4a437a87d0792f23e98025520a11273fc3d12ef5dcf64af8332ed60ba9ce77eaadfd234cee92b3ca9dc08b9e4123e804745925d68ddbd0b2e1e9039e526b SHA512 (javazic-1.8-37392f2f5d59.tar.xz) = 2ba718dfeed53a3bd6b44e3dfe96338a609e482e4e6d942e2a7e622fc6c52606cb323ac3a59739c463e34f70fff217c0a61f5b3d3c4958eff2801b1504ee4204 -SHA512 (tzcode2018g.tar.gz) = 58f89b7323bfe795c5f13039f7527d18b15c9e37fce6e9fa1a402ce2689bf5c772cf1ffb86f23309814a563f9f429da472df1229818b07b1e04f16bdedb21484 -SHA512 (tzdata2018g.tar.gz) = 92e9bbd61f51be8f2cf7ec9491691e5e2f97803914dbad77b7fb8b6600ed68fc3b98450fc808bb2d4c6c835df5f9eb7bf4529d059d9b1370f2ab4c12e7f1adfa +SHA512 (tzcode2025c.tar.gz) = d14bc0680b9cb33d6526a2c0e483f2abafc2593cfe5fbfe7dcab940aafdc1baaec065dbaa1bb58b03586a8631ffdf43ebb22ff5a70503298b6ea2cf061d82c16 +SHA512 (tzdata2025c.tar.gz) = 1e33f7212fd0ae2ad3c16e68f0c1fc7a6ad26a126b8406c379a5768d79604c6a816054bd0fe3a63228d70cd6a1fc2b1bae2a9f8014e102d3727eb9d21affa1f1 diff --git a/tests/Sanity/trivial_case/date.golden b/tests/Sanity/trivial_case/date.golden new file mode 100644 index 0000000..645a868 --- /dev/null +++ b/tests/Sanity/trivial_case/date.golden @@ -0,0 +1,320 @@ +Europe/Berlin 2003-08-03 22:43:22 UTC -> Mon Aug 4 00:43:22 CEST 2003 +Europe/Berlin 2003-02-03 22:43:22 UTC -> Mon Feb 3 23:43:22 CET 2003 +Europe/Berlin 2004-08-03 22:43:22 UTC -> Wed Aug 4 00:43:22 CEST 2004 +Europe/Berlin 2004-02-03 22:43:22 UTC -> Tue Feb 3 23:43:22 CET 2004 +Europe/Berlin 2005-08-03 22:43:22 UTC -> Thu Aug 4 00:43:22 CEST 2005 +Europe/Berlin 2005-02-03 22:43:22 UTC -> Thu Feb 3 23:43:22 CET 2005 +Europe/Berlin 2006-08-03 22:43:22 UTC -> Fri Aug 4 00:43:22 CEST 2006 +Europe/Berlin 2006-02-03 22:43:22 UTC -> Fri Feb 3 23:43:22 CET 2006 +Europe/Berlin 2007-08-03 22:43:22 UTC -> Sat Aug 4 00:43:22 CEST 2007 +Europe/Berlin 2007-02-03 22:43:22 UTC -> Sat Feb 3 23:43:22 CET 2007 +Europe/Paris 2003-08-03 22:43:22 UTC -> Mon Aug 4 00:43:22 CEST 2003 +Europe/Paris 2003-02-03 22:43:22 UTC -> Mon Feb 3 23:43:22 CET 2003 +Europe/Paris 2004-08-03 22:43:22 UTC -> Wed Aug 4 00:43:22 CEST 2004 +Europe/Paris 2004-02-03 22:43:22 UTC -> Tue Feb 3 23:43:22 CET 2004 +Europe/Paris 2005-08-03 22:43:22 UTC -> Thu Aug 4 00:43:22 CEST 2005 +Europe/Paris 2005-02-03 22:43:22 UTC -> Thu Feb 3 23:43:22 CET 2005 +Europe/Paris 2006-08-03 22:43:22 UTC -> Fri Aug 4 00:43:22 CEST 2006 +Europe/Paris 2006-02-03 22:43:22 UTC -> Fri Feb 3 23:43:22 CET 2006 +Europe/Paris 2007-08-03 22:43:22 UTC -> Sat Aug 4 00:43:22 CEST 2007 +Europe/Paris 2007-02-03 22:43:22 UTC -> Sat Feb 3 23:43:22 CET 2007 +Europe/London 2003-08-03 22:43:22 UTC -> Sun Aug 3 23:43:22 BST 2003 +Europe/London 2003-02-03 22:43:22 UTC -> Mon Feb 3 22:43:22 GMT 2003 +Europe/London 2004-08-03 22:43:22 UTC -> Tue Aug 3 23:43:22 BST 2004 +Europe/London 2004-02-03 22:43:22 UTC -> Tue Feb 3 22:43:22 GMT 2004 +Europe/London 2005-08-03 22:43:22 UTC -> Wed Aug 3 23:43:22 BST 2005 +Europe/London 2005-02-03 22:43:22 UTC -> Thu Feb 3 22:43:22 GMT 2005 +Europe/London 2006-08-03 22:43:22 UTC -> Thu Aug 3 23:43:22 BST 2006 +Europe/London 2006-02-03 22:43:22 UTC -> Fri Feb 3 22:43:22 GMT 2006 +Europe/London 2007-08-03 22:43:22 UTC -> Fri Aug 3 23:43:22 BST 2007 +Europe/London 2007-02-03 22:43:22 UTC -> Sat Feb 3 22:43:22 GMT 2007 +Europe/Prague 2003-08-03 22:43:22 UTC -> Mon Aug 4 00:43:22 CEST 2003 +Europe/Prague 2003-02-03 22:43:22 UTC -> Mon Feb 3 23:43:22 CET 2003 +Europe/Prague 2004-08-03 22:43:22 UTC -> Wed Aug 4 00:43:22 CEST 2004 +Europe/Prague 2004-02-03 22:43:22 UTC -> Tue Feb 3 23:43:22 CET 2004 +Europe/Prague 2005-08-03 22:43:22 UTC -> Thu Aug 4 00:43:22 CEST 2005 +Europe/Prague 2005-02-03 22:43:22 UTC -> Thu Feb 3 23:43:22 CET 2005 +Europe/Prague 2006-08-03 22:43:22 UTC -> Fri Aug 4 00:43:22 CEST 2006 +Europe/Prague 2006-02-03 22:43:22 UTC -> Fri Feb 3 23:43:22 CET 2006 +Europe/Prague 2007-08-03 22:43:22 UTC -> Sat Aug 4 00:43:22 CEST 2007 +Europe/Prague 2007-02-03 22:43:22 UTC -> Sat Feb 3 23:43:22 CET 2007 +US/Alaska 2003-08-03 22:43:22 UTC -> Sun Aug 3 14:43:22 AKDT 2003 +US/Alaska 2003-02-03 22:43:22 UTC -> Mon Feb 3 13:43:22 AKST 2003 +US/Alaska 2004-08-03 22:43:22 UTC -> Tue Aug 3 14:43:22 AKDT 2004 +US/Alaska 2004-02-03 22:43:22 UTC -> Tue Feb 3 13:43:22 AKST 2004 +US/Alaska 2005-08-03 22:43:22 UTC -> Wed Aug 3 14:43:22 AKDT 2005 +US/Alaska 2005-02-03 22:43:22 UTC -> Thu Feb 3 13:43:22 AKST 2005 +US/Alaska 2006-08-03 22:43:22 UTC -> Thu Aug 3 14:43:22 AKDT 2006 +US/Alaska 2006-02-03 22:43:22 UTC -> Fri Feb 3 13:43:22 AKST 2006 +US/Alaska 2007-08-03 22:43:22 UTC -> Fri Aug 3 14:43:22 AKDT 2007 +US/Alaska 2007-02-03 22:43:22 UTC -> Sat Feb 3 13:43:22 AKST 2007 +US/Aleutian 2003-08-03 22:43:22 UTC -> Sun Aug 3 13:43:22 HDT 2003 +US/Aleutian 2003-02-03 22:43:22 UTC -> Mon Feb 3 12:43:22 HST 2003 +US/Aleutian 2004-08-03 22:43:22 UTC -> Tue Aug 3 13:43:22 HDT 2004 +US/Aleutian 2004-02-03 22:43:22 UTC -> Tue Feb 3 12:43:22 HST 2004 +US/Aleutian 2005-08-03 22:43:22 UTC -> Wed Aug 3 13:43:22 HDT 2005 +US/Aleutian 2005-02-03 22:43:22 UTC -> Thu Feb 3 12:43:22 HST 2005 +US/Aleutian 2006-08-03 22:43:22 UTC -> Thu Aug 3 13:43:22 HDT 2006 +US/Aleutian 2006-02-03 22:43:22 UTC -> Fri Feb 3 12:43:22 HST 2006 +US/Aleutian 2007-08-03 22:43:22 UTC -> Fri Aug 3 13:43:22 HDT 2007 +US/Aleutian 2007-02-03 22:43:22 UTC -> Sat Feb 3 12:43:22 HST 2007 +US/Arizona 2003-08-03 22:43:22 UTC -> Sun Aug 3 15:43:22 MST 2003 +US/Arizona 2003-02-03 22:43:22 UTC -> Mon Feb 3 15:43:22 MST 2003 +US/Arizona 2004-08-03 22:43:22 UTC -> Tue Aug 3 15:43:22 MST 2004 +US/Arizona 2004-02-03 22:43:22 UTC -> Tue Feb 3 15:43:22 MST 2004 +US/Arizona 2005-08-03 22:43:22 UTC -> Wed Aug 3 15:43:22 MST 2005 +US/Arizona 2005-02-03 22:43:22 UTC -> Thu Feb 3 15:43:22 MST 2005 +US/Arizona 2006-08-03 22:43:22 UTC -> Thu Aug 3 15:43:22 MST 2006 +US/Arizona 2006-02-03 22:43:22 UTC -> Fri Feb 3 15:43:22 MST 2006 +US/Arizona 2007-08-03 22:43:22 UTC -> Fri Aug 3 15:43:22 MST 2007 +US/Arizona 2007-02-03 22:43:22 UTC -> Sat Feb 3 15:43:22 MST 2007 +US/Central 2003-08-03 22:43:22 UTC -> Sun Aug 3 17:43:22 CDT 2003 +US/Central 2003-02-03 22:43:22 UTC -> Mon Feb 3 16:43:22 CST 2003 +US/Central 2004-08-03 22:43:22 UTC -> Tue Aug 3 17:43:22 CDT 2004 +US/Central 2004-02-03 22:43:22 UTC -> Tue Feb 3 16:43:22 CST 2004 +US/Central 2005-08-03 22:43:22 UTC -> Wed Aug 3 17:43:22 CDT 2005 +US/Central 2005-02-03 22:43:22 UTC -> Thu Feb 3 16:43:22 CST 2005 +US/Central 2006-08-03 22:43:22 UTC -> Thu Aug 3 17:43:22 CDT 2006 +US/Central 2006-02-03 22:43:22 UTC -> Fri Feb 3 16:43:22 CST 2006 +US/Central 2007-08-03 22:43:22 UTC -> Fri Aug 3 17:43:22 CDT 2007 +US/Central 2007-02-03 22:43:22 UTC -> Sat Feb 3 16:43:22 CST 2007 +US/Eastern 2003-08-03 22:43:22 UTC -> Sun Aug 3 18:43:22 EDT 2003 +US/Eastern 2003-02-03 22:43:22 UTC -> Mon Feb 3 17:43:22 EST 2003 +US/Eastern 2004-08-03 22:43:22 UTC -> Tue Aug 3 18:43:22 EDT 2004 +US/Eastern 2004-02-03 22:43:22 UTC -> Tue Feb 3 17:43:22 EST 2004 +US/Eastern 2005-08-03 22:43:22 UTC -> Wed Aug 3 18:43:22 EDT 2005 +US/Eastern 2005-02-03 22:43:22 UTC -> Thu Feb 3 17:43:22 EST 2005 +US/Eastern 2006-08-03 22:43:22 UTC -> Thu Aug 3 18:43:22 EDT 2006 +US/Eastern 2006-02-03 22:43:22 UTC -> Fri Feb 3 17:43:22 EST 2006 +US/Eastern 2007-08-03 22:43:22 UTC -> Fri Aug 3 18:43:22 EDT 2007 +US/Eastern 2007-02-03 22:43:22 UTC -> Sat Feb 3 17:43:22 EST 2007 +US/East-Indiana 2003-08-03 22:43:22 UTC -> Sun Aug 3 17:43:22 EST 2003 +US/East-Indiana 2003-02-03 22:43:22 UTC -> Mon Feb 3 17:43:22 EST 2003 +US/East-Indiana 2004-08-03 22:43:22 UTC -> Tue Aug 3 17:43:22 EST 2004 +US/East-Indiana 2004-02-03 22:43:22 UTC -> Tue Feb 3 17:43:22 EST 2004 +US/East-Indiana 2005-08-03 22:43:22 UTC -> Wed Aug 3 17:43:22 EST 2005 +US/East-Indiana 2005-02-03 22:43:22 UTC -> Thu Feb 3 17:43:22 EST 2005 +US/East-Indiana 2006-08-03 22:43:22 UTC -> Thu Aug 3 18:43:22 EDT 2006 +US/East-Indiana 2006-02-03 22:43:22 UTC -> Fri Feb 3 17:43:22 EST 2006 +US/East-Indiana 2007-08-03 22:43:22 UTC -> Fri Aug 3 18:43:22 EDT 2007 +US/East-Indiana 2007-02-03 22:43:22 UTC -> Sat Feb 3 17:43:22 EST 2007 +US/Hawaii 2003-08-03 22:43:22 UTC -> Sun Aug 3 12:43:22 HST 2003 +US/Hawaii 2003-02-03 22:43:22 UTC -> Mon Feb 3 12:43:22 HST 2003 +US/Hawaii 2004-08-03 22:43:22 UTC -> Tue Aug 3 12:43:22 HST 2004 +US/Hawaii 2004-02-03 22:43:22 UTC -> Tue Feb 3 12:43:22 HST 2004 +US/Hawaii 2005-08-03 22:43:22 UTC -> Wed Aug 3 12:43:22 HST 2005 +US/Hawaii 2005-02-03 22:43:22 UTC -> Thu Feb 3 12:43:22 HST 2005 +US/Hawaii 2006-08-03 22:43:22 UTC -> Thu Aug 3 12:43:22 HST 2006 +US/Hawaii 2006-02-03 22:43:22 UTC -> Fri Feb 3 12:43:22 HST 2006 +US/Hawaii 2007-08-03 22:43:22 UTC -> Fri Aug 3 12:43:22 HST 2007 +US/Hawaii 2007-02-03 22:43:22 UTC -> Sat Feb 3 12:43:22 HST 2007 +US/Indiana-Starke 2003-08-03 22:43:22 UTC -> Sun Aug 3 17:43:22 EST 2003 +US/Indiana-Starke 2003-02-03 22:43:22 UTC -> Mon Feb 3 17:43:22 EST 2003 +US/Indiana-Starke 2004-08-03 22:43:22 UTC -> Tue Aug 3 17:43:22 EST 2004 +US/Indiana-Starke 2004-02-03 22:43:22 UTC -> Tue Feb 3 17:43:22 EST 2004 +US/Indiana-Starke 2005-08-03 22:43:22 UTC -> Wed Aug 3 17:43:22 EST 2005 +US/Indiana-Starke 2005-02-03 22:43:22 UTC -> Thu Feb 3 17:43:22 EST 2005 +US/Indiana-Starke 2006-08-03 22:43:22 UTC -> Thu Aug 3 17:43:22 CDT 2006 +US/Indiana-Starke 2006-02-03 22:43:22 UTC -> Fri Feb 3 17:43:22 EST 2006 +US/Indiana-Starke 2007-08-03 22:43:22 UTC -> Fri Aug 3 17:43:22 CDT 2007 +US/Indiana-Starke 2007-02-03 22:43:22 UTC -> Sat Feb 3 16:43:22 CST 2007 +US/Michigan 2003-08-03 22:43:22 UTC -> Sun Aug 3 18:43:22 EDT 2003 +US/Michigan 2003-02-03 22:43:22 UTC -> Mon Feb 3 17:43:22 EST 2003 +US/Michigan 2004-08-03 22:43:22 UTC -> Tue Aug 3 18:43:22 EDT 2004 +US/Michigan 2004-02-03 22:43:22 UTC -> Tue Feb 3 17:43:22 EST 2004 +US/Michigan 2005-08-03 22:43:22 UTC -> Wed Aug 3 18:43:22 EDT 2005 +US/Michigan 2005-02-03 22:43:22 UTC -> Thu Feb 3 17:43:22 EST 2005 +US/Michigan 2006-08-03 22:43:22 UTC -> Thu Aug 3 18:43:22 EDT 2006 +US/Michigan 2006-02-03 22:43:22 UTC -> Fri Feb 3 17:43:22 EST 2006 +US/Michigan 2007-08-03 22:43:22 UTC -> Fri Aug 3 18:43:22 EDT 2007 +US/Michigan 2007-02-03 22:43:22 UTC -> Sat Feb 3 17:43:22 EST 2007 +US/Mountain 2003-08-03 22:43:22 UTC -> Sun Aug 3 16:43:22 MDT 2003 +US/Mountain 2003-02-03 22:43:22 UTC -> Mon Feb 3 15:43:22 MST 2003 +US/Mountain 2004-08-03 22:43:22 UTC -> Tue Aug 3 16:43:22 MDT 2004 +US/Mountain 2004-02-03 22:43:22 UTC -> Tue Feb 3 15:43:22 MST 2004 +US/Mountain 2005-08-03 22:43:22 UTC -> Wed Aug 3 16:43:22 MDT 2005 +US/Mountain 2005-02-03 22:43:22 UTC -> Thu Feb 3 15:43:22 MST 2005 +US/Mountain 2006-08-03 22:43:22 UTC -> Thu Aug 3 16:43:22 MDT 2006 +US/Mountain 2006-02-03 22:43:22 UTC -> Fri Feb 3 15:43:22 MST 2006 +US/Mountain 2007-08-03 22:43:22 UTC -> Fri Aug 3 16:43:22 MDT 2007 +US/Mountain 2007-02-03 22:43:22 UTC -> Sat Feb 3 15:43:22 MST 2007 +US/Pacific 2003-08-03 22:43:22 UTC -> Sun Aug 3 15:43:22 PDT 2003 +US/Pacific 2003-02-03 22:43:22 UTC -> Mon Feb 3 14:43:22 PST 2003 +US/Pacific 2004-08-03 22:43:22 UTC -> Tue Aug 3 15:43:22 PDT 2004 +US/Pacific 2004-02-03 22:43:22 UTC -> Tue Feb 3 14:43:22 PST 2004 +US/Pacific 2005-08-03 22:43:22 UTC -> Wed Aug 3 15:43:22 PDT 2005 +US/Pacific 2005-02-03 22:43:22 UTC -> Thu Feb 3 14:43:22 PST 2005 +US/Pacific 2006-08-03 22:43:22 UTC -> Thu Aug 3 15:43:22 PDT 2006 +US/Pacific 2006-02-03 22:43:22 UTC -> Fri Feb 3 14:43:22 PST 2006 +US/Pacific 2007-08-03 22:43:22 UTC -> Fri Aug 3 15:43:22 PDT 2007 +US/Pacific 2007-02-03 22:43:22 UTC -> Sat Feb 3 14:43:22 PST 2007 +US/Samoa 2003-08-03 22:43:22 UTC -> Sun Aug 3 11:43:22 SST 2003 +US/Samoa 2003-02-03 22:43:22 UTC -> Mon Feb 3 11:43:22 SST 2003 +US/Samoa 2004-08-03 22:43:22 UTC -> Tue Aug 3 11:43:22 SST 2004 +US/Samoa 2004-02-03 22:43:22 UTC -> Tue Feb 3 11:43:22 SST 2004 +US/Samoa 2005-08-03 22:43:22 UTC -> Wed Aug 3 11:43:22 SST 2005 +US/Samoa 2005-02-03 22:43:22 UTC -> Thu Feb 3 11:43:22 SST 2005 +US/Samoa 2006-08-03 22:43:22 UTC -> Thu Aug 3 11:43:22 SST 2006 +US/Samoa 2006-02-03 22:43:22 UTC -> Fri Feb 3 11:43:22 SST 2006 +US/Samoa 2007-08-03 22:43:22 UTC -> Fri Aug 3 11:43:22 SST 2007 +US/Samoa 2007-02-03 22:43:22 UTC -> Sat Feb 3 11:43:22 SST 2007 +America/Bahia 2003-08-03 22:43:22 UTC -> Sun Aug 3 19:43:22 -03 2003 +America/Bahia 2003-02-03 22:43:22 UTC -> Mon Feb 3 20:43:22 -02 2003 +America/Bahia 2004-08-03 22:43:22 UTC -> Tue Aug 3 19:43:22 -03 2004 +America/Bahia 2004-02-03 22:43:22 UTC -> Tue Feb 3 19:43:22 -03 2004 +America/Bahia 2005-08-03 22:43:22 UTC -> Wed Aug 3 19:43:22 -03 2005 +America/Bahia 2005-02-03 22:43:22 UTC -> Thu Feb 3 19:43:22 -03 2005 +America/Bahia 2006-08-03 22:43:22 UTC -> Thu Aug 3 19:43:22 -03 2006 +America/Bahia 2006-02-03 22:43:22 UTC -> Fri Feb 3 19:43:22 -03 2006 +America/Bahia 2007-08-03 22:43:22 UTC -> Fri Aug 3 19:43:22 -03 2007 +America/Bahia 2007-02-03 22:43:22 UTC -> Sat Feb 3 19:43:22 -03 2007 +America/Bogota 2003-08-03 22:43:22 UTC -> Sun Aug 3 17:43:22 -05 2003 +America/Bogota 2003-02-03 22:43:22 UTC -> Mon Feb 3 17:43:22 -05 2003 +America/Bogota 2004-08-03 22:43:22 UTC -> Tue Aug 3 17:43:22 -05 2004 +America/Bogota 2004-02-03 22:43:22 UTC -> Tue Feb 3 17:43:22 -05 2004 +America/Bogota 2005-08-03 22:43:22 UTC -> Wed Aug 3 17:43:22 -05 2005 +America/Bogota 2005-02-03 22:43:22 UTC -> Thu Feb 3 17:43:22 -05 2005 +America/Bogota 2006-08-03 22:43:22 UTC -> Thu Aug 3 17:43:22 -05 2006 +America/Bogota 2006-02-03 22:43:22 UTC -> Fri Feb 3 17:43:22 -05 2006 +America/Bogota 2007-08-03 22:43:22 UTC -> Fri Aug 3 17:43:22 -05 2007 +America/Bogota 2007-02-03 22:43:22 UTC -> Sat Feb 3 17:43:22 -05 2007 +America/Costa_Rica 2003-08-03 22:43:22 UTC -> Sun Aug 3 16:43:22 CST 2003 +America/Costa_Rica 2003-02-03 22:43:22 UTC -> Mon Feb 3 16:43:22 CST 2003 +America/Costa_Rica 2004-08-03 22:43:22 UTC -> Tue Aug 3 16:43:22 CST 2004 +America/Costa_Rica 2004-02-03 22:43:22 UTC -> Tue Feb 3 16:43:22 CST 2004 +America/Costa_Rica 2005-08-03 22:43:22 UTC -> Wed Aug 3 16:43:22 CST 2005 +America/Costa_Rica 2005-02-03 22:43:22 UTC -> Thu Feb 3 16:43:22 CST 2005 +America/Costa_Rica 2006-08-03 22:43:22 UTC -> Thu Aug 3 16:43:22 CST 2006 +America/Costa_Rica 2006-02-03 22:43:22 UTC -> Fri Feb 3 16:43:22 CST 2006 +America/Costa_Rica 2007-08-03 22:43:22 UTC -> Fri Aug 3 16:43:22 CST 2007 +America/Costa_Rica 2007-02-03 22:43:22 UTC -> Sat Feb 3 16:43:22 CST 2007 +America/Jamaica 2003-08-03 22:43:22 UTC -> Sun Aug 3 17:43:22 EST 2003 +America/Jamaica 2003-02-03 22:43:22 UTC -> Mon Feb 3 17:43:22 EST 2003 +America/Jamaica 2004-08-03 22:43:22 UTC -> Tue Aug 3 17:43:22 EST 2004 +America/Jamaica 2004-02-03 22:43:22 UTC -> Tue Feb 3 17:43:22 EST 2004 +America/Jamaica 2005-08-03 22:43:22 UTC -> Wed Aug 3 17:43:22 EST 2005 +America/Jamaica 2005-02-03 22:43:22 UTC -> Thu Feb 3 17:43:22 EST 2005 +America/Jamaica 2006-08-03 22:43:22 UTC -> Thu Aug 3 17:43:22 EST 2006 +America/Jamaica 2006-02-03 22:43:22 UTC -> Fri Feb 3 17:43:22 EST 2006 +America/Jamaica 2007-08-03 22:43:22 UTC -> Fri Aug 3 17:43:22 EST 2007 +America/Jamaica 2007-02-03 22:43:22 UTC -> Sat Feb 3 17:43:22 EST 2007 +America/Mexico_City 2003-08-03 22:43:22 UTC -> Sun Aug 3 17:43:22 CDT 2003 +America/Mexico_City 2003-02-03 22:43:22 UTC -> Mon Feb 3 16:43:22 CST 2003 +America/Mexico_City 2004-08-03 22:43:22 UTC -> Tue Aug 3 17:43:22 CDT 2004 +America/Mexico_City 2004-02-03 22:43:22 UTC -> Tue Feb 3 16:43:22 CST 2004 +America/Mexico_City 2005-08-03 22:43:22 UTC -> Wed Aug 3 17:43:22 CDT 2005 +America/Mexico_City 2005-02-03 22:43:22 UTC -> Thu Feb 3 16:43:22 CST 2005 +America/Mexico_City 2006-08-03 22:43:22 UTC -> Thu Aug 3 17:43:22 CDT 2006 +America/Mexico_City 2006-02-03 22:43:22 UTC -> Fri Feb 3 16:43:22 CST 2006 +America/Mexico_City 2007-08-03 22:43:22 UTC -> Fri Aug 3 17:43:22 CDT 2007 +America/Mexico_City 2007-02-03 22:43:22 UTC -> Sat Feb 3 16:43:22 CST 2007 +America/Santiago 2003-08-03 22:43:22 UTC -> Sun Aug 3 18:43:22 -04 2003 +America/Santiago 2003-02-03 22:43:22 UTC -> Mon Feb 3 19:43:22 -03 2003 +America/Santiago 2004-08-03 22:43:22 UTC -> Tue Aug 3 18:43:22 -04 2004 +America/Santiago 2004-02-03 22:43:22 UTC -> Tue Feb 3 19:43:22 -03 2004 +America/Santiago 2005-08-03 22:43:22 UTC -> Wed Aug 3 18:43:22 -04 2005 +America/Santiago 2005-02-03 22:43:22 UTC -> Thu Feb 3 19:43:22 -03 2005 +America/Santiago 2006-08-03 22:43:22 UTC -> Thu Aug 3 18:43:22 -04 2006 +America/Santiago 2006-02-03 22:43:22 UTC -> Fri Feb 3 19:43:22 -03 2006 +America/Santiago 2007-08-03 22:43:22 UTC -> Fri Aug 3 18:43:22 -04 2007 +America/Santiago 2007-02-03 22:43:22 UTC -> Sat Feb 3 19:43:22 -03 2007 +Australia/Brisbane 2003-08-03 22:43:22 UTC -> Mon Aug 4 08:43:22 AEST 2003 +Australia/Brisbane 2003-02-03 22:43:22 UTC -> Tue Feb 4 08:43:22 AEST 2003 +Australia/Brisbane 2004-08-03 22:43:22 UTC -> Wed Aug 4 08:43:22 AEST 2004 +Australia/Brisbane 2004-02-03 22:43:22 UTC -> Wed Feb 4 08:43:22 AEST 2004 +Australia/Brisbane 2005-08-03 22:43:22 UTC -> Thu Aug 4 08:43:22 AEST 2005 +Australia/Brisbane 2005-02-03 22:43:22 UTC -> Fri Feb 4 08:43:22 AEST 2005 +Australia/Brisbane 2006-08-03 22:43:22 UTC -> Fri Aug 4 08:43:22 AEST 2006 +Australia/Brisbane 2006-02-03 22:43:22 UTC -> Sat Feb 4 08:43:22 AEST 2006 +Australia/Brisbane 2007-08-03 22:43:22 UTC -> Sat Aug 4 08:43:22 AEST 2007 +Australia/Brisbane 2007-02-03 22:43:22 UTC -> Sun Feb 4 08:43:22 AEST 2007 +Australia/West 2003-08-03 22:43:22 UTC -> Mon Aug 4 06:43:22 AWST 2003 +Australia/West 2003-02-03 22:43:22 UTC -> Tue Feb 4 06:43:22 AWST 2003 +Australia/West 2004-08-03 22:43:22 UTC -> Wed Aug 4 06:43:22 AWST 2004 +Australia/West 2004-02-03 22:43:22 UTC -> Wed Feb 4 06:43:22 AWST 2004 +Australia/West 2005-08-03 22:43:22 UTC -> Thu Aug 4 06:43:22 AWST 2005 +Australia/West 2005-02-03 22:43:22 UTC -> Fri Feb 4 06:43:22 AWST 2005 +Australia/West 2006-08-03 22:43:22 UTC -> Fri Aug 4 06:43:22 AWST 2006 +Australia/West 2006-02-03 22:43:22 UTC -> Sat Feb 4 06:43:22 AWST 2006 +Australia/West 2007-08-03 22:43:22 UTC -> Sat Aug 4 06:43:22 AWST 2007 +Australia/West 2007-02-03 22:43:22 UTC -> Sun Feb 4 07:43:22 AWDT 2007 +Australia/South 2003-08-03 22:43:22 UTC -> Mon Aug 4 08:13:22 ACST 2003 +Australia/South 2003-02-03 22:43:22 UTC -> Tue Feb 4 09:13:22 ACDT 2003 +Australia/South 2004-08-03 22:43:22 UTC -> Wed Aug 4 08:13:22 ACST 2004 +Australia/South 2004-02-03 22:43:22 UTC -> Wed Feb 4 09:13:22 ACDT 2004 +Australia/South 2005-08-03 22:43:22 UTC -> Thu Aug 4 08:13:22 ACST 2005 +Australia/South 2005-02-03 22:43:22 UTC -> Fri Feb 4 09:13:22 ACDT 2005 +Australia/South 2006-08-03 22:43:22 UTC -> Fri Aug 4 08:13:22 ACST 2006 +Australia/South 2006-02-03 22:43:22 UTC -> Sat Feb 4 09:13:22 ACDT 2006 +Australia/South 2007-08-03 22:43:22 UTC -> Sat Aug 4 08:13:22 ACST 2007 +Australia/South 2007-02-03 22:43:22 UTC -> Sun Feb 4 09:13:22 ACDT 2007 +Australia/Melbourne 2003-08-03 22:43:22 UTC -> Mon Aug 4 08:43:22 AEST 2003 +Australia/Melbourne 2003-02-03 22:43:22 UTC -> Tue Feb 4 09:43:22 AEDT 2003 +Australia/Melbourne 2004-08-03 22:43:22 UTC -> Wed Aug 4 08:43:22 AEST 2004 +Australia/Melbourne 2004-02-03 22:43:22 UTC -> Wed Feb 4 09:43:22 AEDT 2004 +Australia/Melbourne 2005-08-03 22:43:22 UTC -> Thu Aug 4 08:43:22 AEST 2005 +Australia/Melbourne 2005-02-03 22:43:22 UTC -> Fri Feb 4 09:43:22 AEDT 2005 +Australia/Melbourne 2006-08-03 22:43:22 UTC -> Fri Aug 4 08:43:22 AEST 2006 +Australia/Melbourne 2006-02-03 22:43:22 UTC -> Sat Feb 4 09:43:22 AEDT 2006 +Australia/Melbourne 2007-08-03 22:43:22 UTC -> Sat Aug 4 08:43:22 AEST 2007 +Australia/Melbourne 2007-02-03 22:43:22 UTC -> Sun Feb 4 09:43:22 AEDT 2007 +Australia/Sydney 2003-08-03 22:43:22 UTC -> Mon Aug 4 08:43:22 AEST 2003 +Australia/Sydney 2003-02-03 22:43:22 UTC -> Tue Feb 4 09:43:22 AEDT 2003 +Australia/Sydney 2004-08-03 22:43:22 UTC -> Wed Aug 4 08:43:22 AEST 2004 +Australia/Sydney 2004-02-03 22:43:22 UTC -> Wed Feb 4 09:43:22 AEDT 2004 +Australia/Sydney 2005-08-03 22:43:22 UTC -> Thu Aug 4 08:43:22 AEST 2005 +Australia/Sydney 2005-02-03 22:43:22 UTC -> Fri Feb 4 09:43:22 AEDT 2005 +Australia/Sydney 2006-08-03 22:43:22 UTC -> Fri Aug 4 08:43:22 AEST 2006 +Australia/Sydney 2006-02-03 22:43:22 UTC -> Sat Feb 4 09:43:22 AEDT 2006 +Australia/Sydney 2007-08-03 22:43:22 UTC -> Sat Aug 4 08:43:22 AEST 2007 +Australia/Sydney 2007-02-03 22:43:22 UTC -> Sun Feb 4 09:43:22 AEDT 2007 +Australia/North 2003-08-03 22:43:22 UTC -> Mon Aug 4 08:13:22 ACST 2003 +Australia/North 2003-02-03 22:43:22 UTC -> Tue Feb 4 08:13:22 ACST 2003 +Australia/North 2004-08-03 22:43:22 UTC -> Wed Aug 4 08:13:22 ACST 2004 +Australia/North 2004-02-03 22:43:22 UTC -> Wed Feb 4 08:13:22 ACST 2004 +Australia/North 2005-08-03 22:43:22 UTC -> Thu Aug 4 08:13:22 ACST 2005 +Australia/North 2005-02-03 22:43:22 UTC -> Fri Feb 4 08:13:22 ACST 2005 +Australia/North 2006-08-03 22:43:22 UTC -> Fri Aug 4 08:13:22 ACST 2006 +Australia/North 2006-02-03 22:43:22 UTC -> Sat Feb 4 08:13:22 ACST 2006 +Australia/North 2007-08-03 22:43:22 UTC -> Sat Aug 4 08:13:22 ACST 2007 +Australia/North 2007-02-03 22:43:22 UTC -> Sun Feb 4 08:13:22 ACST 2007 +Asia/Tokyo 2003-08-03 22:43:22 UTC -> Mon Aug 4 07:43:22 JST 2003 +Asia/Tokyo 2003-02-03 22:43:22 UTC -> Tue Feb 4 07:43:22 JST 2003 +Asia/Tokyo 2004-08-03 22:43:22 UTC -> Wed Aug 4 07:43:22 JST 2004 +Asia/Tokyo 2004-02-03 22:43:22 UTC -> Wed Feb 4 07:43:22 JST 2004 +Asia/Tokyo 2005-08-03 22:43:22 UTC -> Thu Aug 4 07:43:22 JST 2005 +Asia/Tokyo 2005-02-03 22:43:22 UTC -> Fri Feb 4 07:43:22 JST 2005 +Asia/Tokyo 2006-08-03 22:43:22 UTC -> Fri Aug 4 07:43:22 JST 2006 +Asia/Tokyo 2006-02-03 22:43:22 UTC -> Sat Feb 4 07:43:22 JST 2006 +Asia/Tokyo 2007-08-03 22:43:22 UTC -> Sat Aug 4 07:43:22 JST 2007 +Asia/Tokyo 2007-02-03 22:43:22 UTC -> Sun Feb 4 07:43:22 JST 2007 +Asia/Istanbul 2003-08-03 22:43:22 UTC -> Mon Aug 4 01:43:22 EEST 2003 +Asia/Istanbul 2003-02-03 22:43:22 UTC -> Tue Feb 4 00:43:22 EET 2003 +Asia/Istanbul 2004-08-03 22:43:22 UTC -> Wed Aug 4 01:43:22 EEST 2004 +Asia/Istanbul 2004-02-03 22:43:22 UTC -> Wed Feb 4 00:43:22 EET 2004 +Asia/Istanbul 2005-08-03 22:43:22 UTC -> Thu Aug 4 01:43:22 EEST 2005 +Asia/Istanbul 2005-02-03 22:43:22 UTC -> Fri Feb 4 00:43:22 EET 2005 +Asia/Istanbul 2006-08-03 22:43:22 UTC -> Fri Aug 4 01:43:22 EEST 2006 +Asia/Istanbul 2006-02-03 22:43:22 UTC -> Sat Feb 4 00:43:22 EET 2006 +Asia/Istanbul 2007-08-03 22:43:22 UTC -> Sat Aug 4 01:43:22 EEST 2007 +Asia/Istanbul 2007-02-03 22:43:22 UTC -> Sun Feb 4 00:43:22 EET 2007 +Asia/Vladivostok 2003-08-03 22:43:22 UTC -> Mon Aug 4 09:43:22 +11 2003 +Asia/Vladivostok 2003-02-03 22:43:22 UTC -> Tue Feb 4 08:43:22 +10 2003 +Asia/Vladivostok 2004-08-03 22:43:22 UTC -> Wed Aug 4 09:43:22 +11 2004 +Asia/Vladivostok 2004-02-03 22:43:22 UTC -> Wed Feb 4 08:43:22 +10 2004 +Asia/Vladivostok 2005-08-03 22:43:22 UTC -> Thu Aug 4 09:43:22 +11 2005 +Asia/Vladivostok 2005-02-03 22:43:22 UTC -> Fri Feb 4 08:43:22 +10 2005 +Asia/Vladivostok 2006-08-03 22:43:22 UTC -> Fri Aug 4 09:43:22 +11 2006 +Asia/Vladivostok 2006-02-03 22:43:22 UTC -> Sat Feb 4 08:43:22 +10 2006 +Asia/Vladivostok 2007-08-03 22:43:22 UTC -> Sat Aug 4 09:43:22 +11 2007 +Asia/Vladivostok 2007-02-03 22:43:22 UTC -> Sun Feb 4 08:43:22 +10 2007 +Asia/Bangkok 2003-08-03 22:43:22 UTC -> Mon Aug 4 05:43:22 +07 2003 +Asia/Bangkok 2003-02-03 22:43:22 UTC -> Tue Feb 4 05:43:22 +07 2003 +Asia/Bangkok 2004-08-03 22:43:22 UTC -> Wed Aug 4 05:43:22 +07 2004 +Asia/Bangkok 2004-02-03 22:43:22 UTC -> Wed Feb 4 05:43:22 +07 2004 +Asia/Bangkok 2005-08-03 22:43:22 UTC -> Thu Aug 4 05:43:22 +07 2005 +Asia/Bangkok 2005-02-03 22:43:22 UTC -> Fri Feb 4 05:43:22 +07 2005 +Asia/Bangkok 2006-08-03 22:43:22 UTC -> Fri Aug 4 05:43:22 +07 2006 +Asia/Bangkok 2006-02-03 22:43:22 UTC -> Sat Feb 4 05:43:22 +07 2006 +Asia/Bangkok 2007-08-03 22:43:22 UTC -> Sat Aug 4 05:43:22 +07 2007 +Asia/Bangkok 2007-02-03 22:43:22 UTC -> Sun Feb 4 05:43:22 +07 2007 diff --git a/tests/Sanity/trivial_case/datetimes b/tests/Sanity/trivial_case/datetimes new file mode 100644 index 0000000..88d4735 --- /dev/null +++ b/tests/Sanity/trivial_case/datetimes @@ -0,0 +1,10 @@ +2003-08-03 22:43:22 UTC +2003-02-03 22:43:22 UTC +2004-08-03 22:43:22 UTC +2004-02-03 22:43:22 UTC +2005-08-03 22:43:22 UTC +2005-02-03 22:43:22 UTC +2006-08-03 22:43:22 UTC +2006-02-03 22:43:22 UTC +2007-08-03 22:43:22 UTC +2007-02-03 22:43:22 UTC diff --git a/tests/Sanity/trivial_case/main.fmf b/tests/Sanity/trivial_case/main.fmf new file mode 100644 index 0000000..09494ed --- /dev/null +++ b/tests/Sanity/trivial_case/main.fmf @@ -0,0 +1,10 @@ +summary: tzdata testing by trivial case +component: +- tzdata +test: ./test.sh +tier: 1 +framework: beakerlib +require+: +- tzdata +- coreutils +duration: 5m diff --git a/tests/Sanity/trivial_case/test.sh b/tests/Sanity/trivial_case/test.sh new file mode 100755 index 0000000..c23dfc9 --- /dev/null +++ b/tests/Sanity/trivial_case/test.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="tzdata" +REQUIRES="$PACKAGE coreutils glibc" +export LC_TIME=C + +rlJournalStart + rlPhaseStartSetup + rlShowRunningKernel + rlAssertRpm --all + rlRun "TmpDir=\$(mktemp -d)" + rlRun "cp zones datetimes date.golden $TmpDir" + rlRun "pushd $TmpDir" + rlPhaseEnd + + rlPhaseStartTest "run test" + while read timezone; do + rlLogInfo "timezone: $timezone" + while read datetime; do + echo -n "$timezone $datetime -> " >>date.log + rlRun "TZ=$timezone date -d \"$datetime\" >>date.log" + done date.diff"; then + rlFail "Differences observed"; + rlRun "rlFileSubmit ./date.diff date.diff" + fi + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/Sanity/trivial_case/zones b/tests/Sanity/trivial_case/zones new file mode 100644 index 0000000..df2b323 --- /dev/null +++ b/tests/Sanity/trivial_case/zones @@ -0,0 +1,32 @@ +Europe/Berlin +Europe/Paris +Europe/London +Europe/Prague +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/Eastern +US/East-Indiana +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Samoa +America/Bahia +America/Bogota +America/Costa_Rica +America/Jamaica +America/Mexico_City +America/Santiago +Australia/Brisbane +Australia/West +Australia/South +Australia/Melbourne +Australia/Sydney +Australia/North +Asia/Tokyo +Asia/Istanbul +Asia/Vladivostok +Asia/Bangkok diff --git a/tests/tzdata-checker/Makefile b/tests/tzdata-checker/Makefile new file mode 100644 index 0000000..9e297af --- /dev/null +++ b/tests/tzdata-checker/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/tzdata/Sanity/tzdata-checker +# Description: Testing tzdata by comparing base pkg with upstream +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2018 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/CoreOS/tzdata/Sanity/tzdata-checker +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE zones.min no-beakerlib-wrapper.sh + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Michal Kolar " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Testing tzdata by comparing base pkg with upstream" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 1h" >> $(METADATA) + @echo "RunFor: tzdata" >> $(METADATA) + @echo "Requires: tzdata coreutils diffutils findutils gawk gcc glibc-common grep gzip make patch sed tar wget file" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/tzdata-checker/PURPOSE b/tests/tzdata-checker/PURPOSE new file mode 100644 index 0000000..70ca68b --- /dev/null +++ b/tests/tzdata-checker/PURPOSE @@ -0,0 +1,11 @@ +PURPOSE of /CoreOS/tzdata/Sanity/tzdata-checker +Description: Testing tzdata by comparing base pkg with upstream +Author: Michal Kolar + +Executing can be modified by these variables: + * NO_BEAKERLIB -- if this variable is set to "1" tescase use wrapper for rl* commands instead of beakerlib. + It could be useful on systems without installed beaker framework. + +Example: + NO_BEAKERLIB=1 ./runtest.sh + diff --git a/tests/tzdata-checker/main.fmf b/tests/tzdata-checker/main.fmf new file mode 100644 index 0000000..f9ed60f --- /dev/null +++ b/tests/tzdata-checker/main.fmf @@ -0,0 +1,34 @@ +summary: Testing tzdata by comparing base pkg with upstream +description: |+ + Executing can be modified by these variables: + * NO_BEAKERLIB -- if this variable is set to "1" tescase use wrapper for rl* commands instead of beakerlib. + It could be useful on systems without installed beaker framework. + + Example: + NO_BEAKERLIB=1 ./runtest.sh + +contact: +- Michal Kolar +component: +- tzdata +test: ./runtest.sh +framework: beakerlib +recommend: +- tzdata +- coreutils +- diffutils +- findutils +- gawk +- gcc +- glibc-common +- grep +- gzip +- make +- patch +- sed +- tar +- wget +- file +duration: 1h +extra-summary: /CoreOS/tzdata/Sanity/tzdata-checker +extra-task: /CoreOS/tzdata/Sanity/tzdata-checker diff --git a/tests/tzdata-checker/no-beakerlib-wrapper.sh b/tests/tzdata-checker/no-beakerlib-wrapper.sh new file mode 100644 index 0000000..b73e207 --- /dev/null +++ b/tests/tzdata-checker/no-beakerlib-wrapper.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +failCounter=0 +passCounter=0 + +rlJournalStart() +{ + timeStart=`date +%s.%N` +} + +rlShowRunningKernel() +{ + printf ":: [ %s ] :: [ \e[36mLOG\e[0m ] :: Kernel version: '%s'\n" `date +%s.%N` `uname -r` +} + +rlAssertRpm() +{ + if rpm -q $1; then + ((passCounter++)) + printf ":: [ %s ] :: [ \e[32mPASS\e[0m ] :: Checking for the presence of %s rpm\n" `date +%s.%N` "$1" + printf ":: [ %s ] :: [ \e[36mLOG\e[0m ] :: %s\n" `date +%s.%N` `rpm -q $1` + else + ((failCounter++)) + printf ":: [ %s ] :: [ \e[31;1mFAIL\e[0m ] :: Checking for the presence of %s rpm\n" `date +%s.%N` "$1" + fi +} + +rlRun() +{ + eval $1 + retVal=$? + if [ "$retVal" != "0" ]; then + ((failCounter++)) + printf ":: [ %s ] :: [ \e[31;1mFAIL\e[0m ] :: Command '%s'\n" `date +%s.%N` "$1" + else + ((passCounter++)) + printf ":: [ %s ] :: [ \e[32mPASS\e[0m ] :: Command '%s'\n" `date +%s.%N` "$1" + fi + return $retVal +} + +rlLogInfo() +{ + printf ":: [ %s ] :: [ \e[33mINFO\e[0m ] :: %s\n" `date +%s.%N` "$1" +} + +rlJournalPrintText() +{ + timeEnd=`date +%s.%N` +} + +rlJournalEnd() +{ + printf '\n\n\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n' + printf ':: TEST PROTOCOL\n' + printf '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n' + printf ':: Duration: %s s\n' `bc <<< "$timeEnd - $timeStart"` + printf ':: Assertions: %i good, %i bad\n:: RESULT: ' $passCounter $failCounter + if [ "$failCounter" != "0" ]; then + printf '\e[31;1mFAIL\e[0m\n' + else + printf '\e[32mPASS\e[0m\n' + fi +} + +rlFileSubmit(){ return 0; } + +rlPhaseEnd(){ return 0; } + +rlPhaseStartCleanup(){ return 0; } + +rlPhaseStartSetup(){ return 0; } diff --git a/tests/tzdata-checker/runtest.sh b/tests/tzdata-checker/runtest.sh new file mode 100755 index 0000000..af24c09 --- /dev/null +++ b/tests/tzdata-checker/runtest.sh @@ -0,0 +1,103 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/tzdata/Sanity/tzdata-checker +# Description: Testing tzdata by comparing base pkg with upstream +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2018 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +if [ "$NO_BEAKERLIB" == "1" ]; then + . ./no-beakerlib-wrapper.sh || exit 1 +else + # Include Beaker environment + . /usr/share/beakerlib/beakerlib.sh || exit 1 +fi + +PACKAGE="tzdata" +TZDATA_URL="https://data.iana.org/time-zones/releases" +TZDATA_VERSION="${TZDATA_VERSION:-$(rpm -q --qf '%{VERSION}\n' $PACKAGE | head -1)}" +if rlIsFedora; then + DATAFORM="${DATAFORM:-vanguard}" +else + DATAFORM="${DATAFORM:-rearguard}" +fi +YEARS=20 # used for shrink zdump output to reasonable future + +hiyear=$((`date +%Y` + $YEARS)) +export LC_ALL=C + +rlJournalStart + rlPhaseStartSetup + rlShowRunningKernel + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" + rlRun "cp zones.min $TmpDir" + rlRun "pushd $TmpDir" + rlRun "mkdir badzones" + rlPhaseEnd + + rlPhaseStartSetup "Build upstream tzdata" # source: https://data.iana.org/time-zones/tz-link.html + rlRun "wget --no-check-certificate ${TZDATA_URL}/tzcode${TZDATA_VERSION}.tar.gz" + rlRun "wget --no-check-certificate ${TZDATA_URL}/tzdata${TZDATA_VERSION}.tar.gz" + rlRun "tar -xzf tzcode*" + rlRun "tar -xzf tzdata*" + + rlRun "make DATAFORM=$DATAFORM TOPDIR=./tzdir install" + rlRun "find tzdir/usr/share/zoneinfo -type f | xargs file | grep 'timezone data' | grep -o -E 'zoneinfo/[^:]+' | sed 's|zoneinfo/||' | sort -u >zones.ref" + rlRun "find /usr/share/zoneinfo -type f | xargs file | grep 'timezone data' | grep -o -E 'zoneinfo/[^:]+' | sed 's|zoneinfo/||' | sort -u >zones.cur" + rlRun "comm -12 zones.ref zones.cur >zones.int" # intersection of ref zones with cur zones + rlRun "sort -u zones.min >zones-sorted.min" + rlRun "comm -13 zones.int zones-sorted.min >zones.mis" + rlRun "if [ -s ./zones.mis ]; then cat ./zones.mis; false; fi" + rlLogInfo "Number of time zones: `cat zones.int | wc -l`" + rlPhaseEnd + + rlPhaseStartSetup "Test zdump" + for zone in `cat zones.int`; do + if rlIsRHEL "<8"; then # glibc's zdump is out of sync for '-v option' + rlRun "./zdump -v -c 1970,$hiyear $zone >ref" + rlRun "./zdump -v -c 1970,$hiyear /usr/share/zoneinfo/$zone >cur" + sed -i 's|^/usr/share/zoneinfo/||' cur + else + rlRun "./zdump -V -c 1970,$hiyear $zone >ref" + rlRun "zdump -V -c 1970,$hiyear $zone >cur" + fi + + # normalize zdump outputs + sed -i 's/\ UTC/\ UT/g' ref cur + + if ! rlRun "diff -q ref cur"; then + filezone=`echo $zone | tr '/' '_'` + cp ref ./badzones/${filezone}.ref + cp cur ./badzones/${filezone}.cur + fi + done + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "tar -czf badzones.tar.gz ./badzones" + rlRun "rlFileSubmit badzones.tar.gz" + rlRun "popd" + rlRun "rm -r $TmpDir" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/tzdata-checker/zones.min b/tests/tzdata-checker/zones.min new file mode 100644 index 0000000..92353a3 --- /dev/null +++ b/tests/tzdata-checker/zones.min @@ -0,0 +1,592 @@ +Africa/Abidjan +Africa/Accra +Africa/Addis_Ababa +Africa/Algiers +Africa/Asmara +Africa/Asmera +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Bissau +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/El_Aaiun +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Johannesburg +Africa/Juba +Africa/Kampala +Africa/Khartoum +Africa/Kigali +Africa/Kinshasa +Africa/Lagos +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maputo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +Africa/Sao_Tome +Africa/Timbuktu +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Anguilla +America/Antigua +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/ComodRivadavia +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/Salta +America/Argentina/San_Juan +America/Argentina/San_Luis +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Aruba +America/Asuncion +America/Atikokan +America/Atka +America/Bahia +America/Bahia_Banderas +America/Barbados +America/Belem +America/Belize +America/Blanc-Sablon +America/Boa_Vista +America/Bogota +America/Boise +America/Buenos_Aires +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Catamarca +America/Cayenne +America/Cayman +America/Chicago +America/Chihuahua +America/Coral_Harbour +America/Cordoba +America/Costa_Rica +America/Creston +America/Cuiaba +America/Curacao +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Dominica +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Ensenada +America/Fort_Nelson +America/Fort_Wayne +America/Fortaleza +America/Glace_Bay +America/Godthab +America/Goose_Bay +America/Grand_Turk +America/Grenada +America/Guadeloupe +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indiana/Winamac +America/Indianapolis +America/Inuvik +America/Iqaluit +America/Jamaica +America/Jujuy +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/Knox_IN +America/Kralendijk +America/La_Paz +America/Lima +America/Los_Angeles +America/Louisville +America/Lower_Princes +America/Maceio +America/Managua +America/Manaus +America/Marigot +America/Martinique +America/Matamoros +America/Mazatlan +America/Mendoza +America/Menominee +America/Merida +America/Metlakatla +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/Montreal +America/Montserrat +America/Nassau +America/New_York +America/Nipigon +America/Nome +America/Noronha +America/North_Dakota/Beulah +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Ojinaga +America/Panama +America/Pangnirtung +America/Paramaribo +America/Phoenix +America/Port-au-Prince +America/Port_of_Spain +America/Porto_Acre +America/Porto_Velho +America/Puerto_Rico +America/Punta_Arenas +America/Rainy_River +America/Rankin_Inlet +America/Recife +America/Regina +America/Resolute +America/Rio_Branco +America/Rosario +America/Santa_Isabel +America/Santarem +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Shiprock +America/Sitka +America/St_Barthelemy +America/St_Johns +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Thunder_Bay +America/Tijuana +America/Toronto +America/Tortola +America/Vancouver +America/Virgin +America/Whitehorse +America/Winnipeg +America/Yakutat +America/Yellowknife +Antarctica/Casey +Antarctica/Davis +Antarctica/DumontDUrville +Antarctica/Macquarie +Antarctica/Mawson +Antarctica/McMurdo +Antarctica/Palmer +Antarctica/Rothera +Antarctica/South_Pole +Antarctica/Syowa +Antarctica/Troll +Antarctica/Vostok +Arctic/Longyearbyen +Asia/Aden +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Ashkhabad +Asia/Atyrau +Asia/Baghdad +Asia/Bahrain +Asia/Baku +Asia/Bangkok +Asia/Barnaul +Asia/Beirut +Asia/Bishkek +Asia/Brunei +Asia/Calcutta +Asia/Chita +Asia/Choibalsan +Asia/Chongqing +Asia/Chungking +Asia/Colombo +Asia/Dacca +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Famagusta +Asia/Gaza +Asia/Harbin +Asia/Hebron +Asia/Ho_Chi_Minh +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Istanbul +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kashgar +Asia/Kathmandu +Asia/Katmandu +Asia/Khandyga +Asia/Kolkata +Asia/Krasnoyarsk +Asia/Kuala_Lumpur +Asia/Kuching +Asia/Kuwait +Asia/Macao +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Muscat +Asia/Nicosia +Asia/Novokuznetsk +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Phnom_Penh +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qostanay +Asia/Qyzylorda +Asia/Rangoon +Asia/Riyadh +Asia/Saigon +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Srednekolymsk +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Tel_Aviv +Asia/Thimbu +Asia/Thimphu +Asia/Tokyo +Asia/Tomsk +Asia/Ujung_Pandang +Asia/Ulaanbaatar +Asia/Ulan_Bator +Asia/Urumqi +Asia/Ust-Nera +Asia/Vientiane +Asia/Vladivostok +Asia/Yakutsk +Asia/Yangon +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faeroe +Atlantic/Faroe +Atlantic/Jan_Mayen +Atlantic/Madeira +Atlantic/Reykjavik +Atlantic/South_Georgia +Atlantic/St_Helena +Atlantic/Stanley +Australia/ACT +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Canberra +Australia/Currie +Australia/Darwin +Australia/Eucla +Australia/Hobart +Australia/LHI +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/NSW +Australia/North +Australia/Perth +Australia/Queensland +Australia/South +Australia/Sydney +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +CET +CST6CDT +Canada/Atlantic +Canada/Central +Canada/Eastern +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +Chile/Continental +Chile/EasterIsland +Cuba +EET +EST +EST5EDT +Egypt +Eire +Etc/GMT +Etc/GMT+0 +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT-0 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/GMT0 +Etc/Greenwich +Etc/UCT +Etc/UTC +Etc/Universal +Etc/Zulu +Europe/Amsterdam +Europe/Andorra +Europe/Astrakhan +Europe/Athens +Europe/Belfast +Europe/Belgrade +Europe/Berlin +Europe/Bratislava +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Busingen +Europe/Chisinau +Europe/Copenhagen +Europe/Dublin +Europe/Gibraltar +Europe/Guernsey +Europe/Helsinki +Europe/Isle_of_Man +Europe/Istanbul +Europe/Jersey +Europe/Kaliningrad +Europe/Kiev +Europe/Kirov +Europe/Lisbon +Europe/Ljubljana +Europe/London +Europe/Luxembourg +Europe/Madrid +Europe/Malta +Europe/Mariehamn +Europe/Minsk +Europe/Monaco +Europe/Moscow +Europe/Nicosia +Europe/Oslo +Europe/Paris +Europe/Podgorica +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/San_Marino +Europe/Sarajevo +Europe/Saratov +Europe/Simferopol +Europe/Skopje +Europe/Sofia +Europe/Stockholm +Europe/Tallinn +Europe/Tirane +Europe/Tiraspol +Europe/Ulyanovsk +Europe/Uzhgorod +Europe/Vaduz +Europe/Vatican +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zagreb +Europe/Zaporozhye +Europe/Zurich +GB +GB-Eire +GMT +GMT+0 +GMT-0 +GMT0 +Greenwich +HST +Hongkong +Iceland +Indian/Antananarivo +Indian/Chagos +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Maldives +Indian/Mauritius +Indian/Mayotte +Indian/Reunion +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +MST +MST7MDT +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +NZ +NZ-CHAT +Navajo +PRC +PST8PDT +Pacific/Apia +Pacific/Auckland +Pacific/Bougainville +Pacific/Chatham +Pacific/Chuuk +Pacific/Easter +Pacific/Efate +Pacific/Enderbury +Pacific/Fakaofo +Pacific/Fiji +Pacific/Funafuti +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Johnston +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Majuro +Pacific/Marquesas +Pacific/Midway +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Pohnpei +Pacific/Ponape +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Saipan +Pacific/Samoa +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +Pacific/Truk +Pacific/Wake +Pacific/Wallis +Pacific/Yap +Poland +Portugal +ROC +ROK +Singapore +Turkey +UCT +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/East-Indiana +US/Eastern +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Samoa +UTC +Universal +W-SU +WET +Zulu diff --git a/tzdata.spec b/tzdata.spec index 1e4d245..db52d01 100644 --- a/tzdata.spec +++ b/tzdata.spec @@ -1,23 +1,28 @@ Summary: Timezone data Name: tzdata -Version: 2018g -%define tzdata_version 2018g -%define tzcode_version 2018g +Version: 2025c +%define tzdata_version 2025c +%define tzcode_version 2025c Release: 1%{?dist} -License: Public Domain -Group: System Environment/Base +License: LicenseRef-Fedora-Public-Domain AND (GPL-2.0-only WITH ClassPath-exception-2.0) URL: https://www.iana.org/time-zones Source0: ftp://ftp.iana.org/tz/releases/tzdata%{tzdata_version}.tar.gz Source1: ftp://ftp.iana.org/tz/releases/tzcode%{tzcode_version}.tar.gz Patch002: 0002-Fix-have-snprintf-error.patch +Patch003: 0003-continue-to-ship-posixrules.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: make +BuildRequires: gcc BuildRequires: gawk, glibc, perl-interpreter -BuildRequires: java-devel +BuildRequires: java-25-devel BuildRequires: glibc-common >= 2.5.90-7 Conflicts: glibc-common <= 2.3.2-63 BuildArchitectures: noarch +ExcludeArch: i686 + +# Using '--with vanguard' will change the data format to the new vanguard form. +%bcond_with vanguard %description This package contains data files with rules for various timezones around @@ -25,14 +30,10 @@ the world. %package java Summary: Timezone data for Java -Group: System Environment/Base -Source3: javazic.tar.gz -Source4: javazic-1.8-37392f2f5d59.tar.xz -Patch100: javazic-fixup.patch -Patch101: rebase-01.patch -Patch102: rebase-02.patch -Patch103: 7090844.patch -Patch104: 7133138.patch +Source3: javazic-1.8-37392f2f5d59.tar.xz +Source4: ZoneTest.java +Patch100: 8051641.patch +Patch101: javazic-harden-links.patch %description java This package contains timezone information for use by Java runtimes. @@ -40,98 +41,100 @@ This package contains timezone information for use by Java runtimes. %prep %setup -q -c -a 1 -# Currently tzdata is providing the "rearguard" data set for maximum -# compatibility with existing Red Hat Enterprise Linux installs. Future releases of -# Red Hat Enterprise Linux will be transitioning to the default or "vanguard" tzdata -# data set. -# -# The "rearguard" and "vanguard" data sets are defined by the upstream tzdata project -# and represent approximately the same data, with "vanguard" optimized for newer time -# zone data tooling, and "rearguard" optimized for compatibility with existing tooling. -# For example "vanguard" implements support for negative DST offsets, while "rearguard" -# supports the traditional format. +%patch -p1 -P 2 +%if 0%{?rhel} +%patch -p1 -P 3 +%endif -# Create the reargard data files. -make VERSION=%{version} tzdata%{version}-rearguard.tar.gz +# zic now defaults to "-b slim" to control data bloat. +# This can cause build issues for some packages. +# For now, build with ZFLAGS="-b fat" for backward compatibitliy. + +# tzdata-2018g introduced 25:00 transition times. This breaks OpenJDK. +# Use rearguard for java +mkdir rearguard +make VERSION=%{version} ZFLAGS="-b fat" tzdata%{version}-rearguard.tar.gz.t +mv tzdata%{version}-rearguard.tar.gz rearguard +pushd rearguard tar zxf tzdata%{version}-rearguard.tar.gz - -%patch002 -p1 - -# Run make to create the tzdata.zi file -make DATAFORM=rearguard VERSION=%{version} tzdata.zi - -mkdir javazic -tar zxf %{SOURCE3} -C javazic -pushd javazic -%patch100 -%patch101 -%patch102 -%patch103 -%patch104 - -# Hack alert! sun.tools may be defined and installed in the -# VM. In order to guarantee that we are using IcedTea/OpenJDK -# for creating the zoneinfo files, rebase all the packages -# from "sun." to "rht.". Unfortunately, gcj does not support -# any of the -Xclasspath options, so we must go this route -# to ensure the greatest compatibility. -mv sun rht -find . -type f -name '*.java' -print0 \ - | xargs -0 -- sed -i -e 's:sun\.tools\.:rht.tools.:g' \ - -e 's:sun\.util\.:rht.util.:g' popd -tar xf %{SOURCE4} +%if 0%{?rhel} +# Use rearguard for rhel (overwrite default dataform) +tar zxf rearguard/tzdata%{version}-rearguard.tar.gz +%endif + +tar xf %{SOURCE3} +%patch -P 100 +%patch -p1 -P 101 echo "%{name}%{tzdata_version}" >> VERSION %build # Run make to create the tzdata.zi file +rm tzdata.zi +%if %{with vanguard} +make VERSION=%{version} ZFLAGS="-b fat" DATAFORM=vanguard tzdata.zi +%elif 0%{?rhel} +make VERSION=%{version} ZFLAGS="-b fat" DATAFORM=rearguard tzdata.zi +%else make tzdata.zi +%endif FILES="africa antarctica asia australasia europe northamerica southamerica - pacificnew etcetera backward" + etcetera backward factory" mkdir zoneinfo/{,posix,right} -zic -y ./yearistype -d zoneinfo -L /dev/null -p America/New_York $FILES -zic -y ./yearistype -d zoneinfo/posix -L /dev/null $FILES -zic -y ./yearistype -d zoneinfo/right -L leapseconds $FILES +zic -b fat -y ./yearistype -d zoneinfo -L /dev/null -p America/New_York $FILES +zic -b fat -y ./yearistype -d zoneinfo/posix -L /dev/null $FILES +zic -b fat -y ./yearistype -d zoneinfo/right -L leapseconds $FILES # grep -v tz-art.htm tz-link.htm > tz-link.html -# Java 6/7 tzdata -pushd javazic -javac -source 1.5 -target 1.5 -classpath . `find . -name \*.java` -popd - -java -classpath javazic/ rht.tools.javazic.Main -V %{version} \ - -d javazi \ - $FILES javazic/tzdata_jdk/gmt javazic/tzdata_jdk/jdk11_backward +# tzdata-2018g introduced 25:00 which breaks java - use the rearguard files for java +JAVA_FILES="rearguard/africa rearguard/antarctica rearguard/asia \ + rearguard/australasia rearguard/europe rearguard/northamerica \ + rearguard/southamerica rearguard/etcetera \ + rearguard/backward" # Java 8 tzdata pushd javazic-1.8 -javac -source 1.7 -target 1.7 -classpath . `find . -name \*.java` +javac -source 1.8 -target 1.8 -classpath . `find . -name \*.java` popd java -classpath javazic-1.8 build.tools.tzdb.TzdbZoneRulesCompiler \ -srcdir . -dstfile tzdb.dat \ -verbose \ - $FILES javazic-1.8/tzdata_jdk/gmt javazic-1.8/tzdata_jdk/jdk11_backward + $JAVA_FILES javazic-1.8/tzdata_jdk/gmt javazic-1.8/tzdata_jdk/jdk11_backward %install rm -fr $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT%{_datadir} cp -prd zoneinfo $RPM_BUILD_ROOT%{_datadir} -install -p -m 644 zone.tab zone1970.tab iso3166.tab leapseconds tzdata.zi $RPM_BUILD_ROOT%{_datadir}/zoneinfo -cp -prd javazi $RPM_BUILD_ROOT%{_datadir}/javazi +install -p -m 644 zone.tab zone1970.tab iso3166.tab leap-seconds.list leapseconds tzdata.zi $RPM_BUILD_ROOT%{_datadir}/zoneinfo mkdir -p $RPM_BUILD_ROOT%{_datadir}/javazi-1.8 install -p -m 644 tzdb.dat $RPM_BUILD_ROOT%{_datadir}/javazi-1.8/ -%clean -rm -rf $RPM_BUILD_ROOT +%check +echo ============TESTING=============== +/usr/bin/env LANG=C make -k VALIDATE=':' check && true + +# Create a custom JAVA_HOME, where we can replace tzdb.dat with the +# one just built, for testing. +system_java_home=$(dirname $(readlink -f $(which java)))/.. +mkdir -p java_home +cp -Lr $system_java_home/* java_home/. +for tzdb in $(find java_home -name tzdb.dat) ; do + rm $tzdb + cp $RPM_BUILD_ROOT%{_datadir}/javazi-1.8/tzdb.dat $tzdb +done +# Compile the smoke test and run it. +cp %{SOURCE4} . +javac ZoneTest.java +java_home/bin/java ZoneTest +echo ============END TESTING=========== %files -%defattr(-,root,root) %{_datadir}/zoneinfo %license LICENSE %doc README @@ -140,12 +143,305 @@ rm -rf $RPM_BUILD_ROOT %doc tz-art.html %files java -%defattr(-,root,root) -%{_datadir}/javazi %{_datadir}/javazi-1.8 %changelog -* Sun Oct 28 2018 Patsy Griffin Franklin - 2018g-1 +* Sun Dec 14 2025 Patsy Griffin - 2025c-1 + Update to tzdata-2025c (#2421294) + - Update the expiration date for the leap seconds files. + +* Tue Jul 29 2025 jiri vanek - 2025b-3 +- Rebuilt for java-25-openjdk as preffered jdk + +* Fri Jul 25 2025 Fedora Release Engineering - 2025b-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Mar 27 2025 Patsy Griffin - 2025b-1 + Update to tzdata-2025b (#2354293) + - Chile's Aysén Region moves from -04/-03 to -03 year-round, + diverging from America/Santiago and creating a new zone + America/Coyhaique. + +* Tue Feb 04 2025 Patsy Griffin - 2025a-1 + Update to tzdata-2025a (#2338511) + - Paraguay is now permanently at -03. This impacts timestamps + starting on 2025-03-22. + - Includes improvements to pre-1991 data for the Philippines. + - Etc/Unknown is now reserved. + +* Sun Jan 19 2025 Fedora Release Engineering - 2024b-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Dec 12 2024 Patsy Griffin - 2024b-1 +- Update to tzdata-2024b (#2310315) + - Improve historical data for Mexico, Mongolia, and Portugal. + - System V names are now obsolescent. + - The main data form now uses %z. + - The code now conforms to RFC 8536 for early timestamps. + - Support POSIX.1-2024, which removes asctime_r and ctime_r. + - Assume POSIX.2-1992 or later for shell scripts. + - SUPPORT_C89 now defaults to 1. + - Include two upstream patches for month names as in April vs Apr. +- Harden against links to removed zones + +* Sat Jul 20 2024 Fedora Release Engineering - 2024a-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue May 28 2024 Patsy Griffin - 2024a-8 +- zic now defaults to "-b slim" to control data bloat. + For now, build with ZFLAGS="-b fat" for backward compatibitliy. + +* Tue May 14 2024 Miro Hrončok - 2024a-7 +- Rebuilt with glibc-2.39.9000-10 to avoid regressions described in rhbz#2280403 + +* Fri Apr 26 2024 Jonathan Wakely - 2024a-6 +- Add support for --with vanguard + +* Thu Apr 04 2024 Patsy Griffin - 2024a-5 +- Add java patch to fix incorrect calculations for + Africa/Casablanca starting in 2027. (#2266311) + +* Sat Mar 02 2024 Andrew Hughes - 2024a-4 +- Remove hardcoded versioned path to javac + +* Tue Feb 27 2024 Jiri Vanek - 2024a-3 +- Rebuilt for java-21-openjdk as system jdk + +* Tue Feb 06 2024 Patsy Griffin - 2024a-2 +- Correct the bz# for the tzdata-2024 commit. + +* Mon Feb 05 2024 Patsy Griffin - 2024a-1 +- Rebase to tzdata-2024a + - Kazakhstan will transition from UTC+6 to UTC+5 on 2024-03-01. + - Palestine will spring forward a week later than previously + predicted. + +* Sat Jan 27 2024 Fedora Release Engineering - 2023d-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Jan 18 2024 Patsy Griffin - 2023d-2 +- Migrate License field to SPDX identifiers for + https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2 + +* Wed Jan 03 2024 Patsy Griffin - 2023d-1 +- Rebase to tzdata-2023d + - Include time zone changes for Ittoqqortoormiit, Greenland + and Vostok, Antarctica. + - Update the expiration date for the leap-seconds.list file. + No new leap seconds were added. + +* Wed Dec 13 2023 Patsy Griffin - 2023c-5 +- Remove Java 6/7 support for Fedora 40 and RHEL 10 forward. + +* Tue Oct 3 2023 David Cantrell - 2023c-4 +- Use the new syntax for the %%patch macro in the spec file + +* Mon Jul 24 2023 Yaakov Selkowitz - 2023c-3 +- Disable Java 6/7 data in RHEL 10 builds + +* Sat Jul 22 2023 Fedora Release Engineering - 2023c-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Mar 29 2023 Patsy Griffin - 2023c-1 +- Rebase to tzdata-2023c + - Reinstate Lebanon DST change effective March 25. + +* Fri Mar 24 2023 Patsy Griffin - 2023b-1 +- Rebase to tzdata-2023b + - Lebanon will transition to DST on April 20/21, not March 25/26. + +* Thu Mar 23 2023 Patsy Griffin - 2023a-1 +- Rebase to tzdata-2023a + - Egypt reintroduced DST, from April through October. + - Morocco springs forward April 23, not April 30. + - Palestine delayed the start of DST this year. + +* Sat Jan 21 2023 Fedora Release Engineering - 2022g-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Dec 02 2022 Patsy Griffin - 2022g-1 +- Rebase to tzdata-2022g + - The northern edge of the Mexican state of Chihuahua will + change time zone to agree with nearby US locations on + 2022-11-30. + - Added a new Zone America/Ciudad_Juarez that splits from + America/Ojinaga. + +* Mon Oct 31 2022 Patsy Griffin - 2022f-1 +- Rebase to tzdata-2022f + - Mexico will stop observing DST except near the US border. + - Chihuahua moved to -06 year round starting on 2022-10-30. + - Fiji no longer observes DST. + +* Fri Oct 14 2022 Patsy Griffin - 2022e-1 +- Rebase to tzdata-2022e + - Jordan and Syria cancelled the DST transition planned + for 2022-10-28, remaining at +03 permanently. + +* Sun Sep 25 2022 Patsy Griffin - 2022d-1 +- Rebase to tzdata-2022d + - Palestine DST transition will be on October 29, 2022, + not October 28, 2022. + - Europe/Uzhgorod and Europe/Zaporozhye are moved to 'backzone'. + +* Mon Aug 22 2022 Patsy Griffin - 2022c-1 +- Rebase to tzdata-2022c - supersedes tzdata-2022b + - Add a work-around for an awk bug in FreeBSD, macOS, etc. + - Improve tzselect with respect to intercontinental Zones. + +* Sun Aug 14 2022 Patsy Griffin - 2022b-1 +- Rebase to tzdata-2022b + - Chile transitions to DST on 2022-09-11, not 2022-09-04 + - 'make install' now defaults LOCALTIME to Factory rather than GMT + - More zones that are the same since 1970 have been moved to backzone. + - Include patch for awk workaround. + +* Sat Jul 23 2022 Fedora Release Engineering - 2022a-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jul 15 2022 Patsy Griffin - 2022a-3 +- Java OpenJDK packages are no longer available on i686. + Exclude i686 builds. (bz #2104108) + +* Tue Jun 07 2022 Patsy Griffin - 2022a-2 +- Include leap-second.list in tzdata install. (#2091390) + +* Wed Mar 23 2022 Patsy Griffin - 2022a-1 +- Rebase to tzdata-2022a + - Palestine springs forward on 2022-03-27, not 2022-03-26. + - zdump -v now outputs better failure information. + - bug fixes for code that reads corrupted TZif data. + +* Tue Feb 08 2022 Patsy Griffin - 2021e-4 +- Clean-up changelog. + +* Sat Feb 05 2022 Jiri Vanek - 2021e-3 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Java17 + +* Sat Jan 22 2022 Fedora Release Engineering - 2021e-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Oct 26 2021 Patsy Griffin - 2021e-1 +- Rebase to tzdata-2021e - supersedes tzdata-2021d + - Pacific/Fiji suspended DST for the 2021/2022 season. + - 'zic -r' now marks unspecified timestamps with "-00". + - Palestine will fall back 2021-10-29 at 01:00, rather + than the predicted 2021-10-30. + +* Thu Oct 07 2021 Patsy Griffin - 2021c-1 +- Rebase to tzdata-2021c + - Revert most 2021b changes to the 'backward' file. + - Fix 'zic -b fat' bug in pre-1970 32-bit data reported in tzdata-2021b. + - Fix two Link line typos from tzdata-2021b. + - Distribute the new SECURITY file. + +* Sat Sep 25 2021 Patsy Griffin - 2021b-1 +- Rebase to tzdata-2021b + - Jordan now starts DST on February's last Thursday. + - Samoa no longer observes DST. + - Merge more location-based Zones whose timestamps agree since 1970. + - Move some backward-compatibility links to 'backward'. + - Rename Pacific/Enderbury to Pacific/Kanton. + - Correct many pre-1993 transitions in Malawi, Portugal, etc. + - zic now creates each output file or link atomically. + - zic -L no longer omits the POSIX TZ string in its output. + - zic fixes for truncation and leap second table expiration. + - zic now follows POSIX for TZ strings using all-year DST. + - Fix some localtime crashes and bugs in obscure cases. + - zdump -v now outputs more-useful boundary cases. + - tzfile.5 better matches a draft successor to RFC 8536. + +* Fri Jul 23 2021 Fedora Release Engineering - 2021a-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jan 25 2021 Patsy Griffin - 2021a-1 +- Rebase to tzdata-2021a + - South Sudan will change from +03 to +02 on 2021-02-01. + +* Wed Dec 30 2020 Patsy Griffin - 2020f-1 +- Rebase to tzdata-2020f including changes for tzdata-2020e + - tzdata-2020f fixes a bug in tzdata-2020e that caused an + invalid zi file in rearguard format + - Volgograd changes time zone from UTC+04 to UTC+03 on 2020-12-27. + - Australia/Currie is identical to Australia/Hobart for all + timestamps since 1970 and was therefore created by mistake, + now moved to the "backward" file. + +* Wed Dec 16 2020 Patsy Griffin - 2020d-3 +- Add 0003-continue-to-ship-posixrules.patch to initialize + POSIXRULES variable. + +* Wed Dec 16 2020 Patsy Griffin - 2020d-2 +- Add conditional support for rhel and eln. + +* Fri Oct 23 2020 Patsy Griffin - 2020d-1 +- Rebase to tzdata-2020d including changes from tzdata-2020c + - Palestine will end summer time on 2020-10-24 rather than the + predicted 2020-10-31. + - Fiji starts DST later than usual, on 2020-12-20. + - Rearguard now provides an empty file pacificnew to support + downstream software that expects it. + +* Wed Oct 14 2020 Patsy Griffin - 2020b-1 +- Rebase to tzdata-2020b + - Yukon timezones represented by America/Whitehorse and + America/Dawson will change time zone rules from -08/-07 to + permanent -07 on 2020-11-01, not on 2020-03-08 as 2020a had it. + - The most recent winter(+08)/summer(+11) transition for Casey Station, + Antarctica was 2020-10-04 00:01. + - Remove obsolete files pacificnew, systemv, and yearistype.sh + from the distribution. + +* Wed Jul 29 2020 Fedora Release Engineering - 2020a-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jul 11 2020 Jiri Vanek - 2020a-3 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Fri Jun 12 2020 Jiri Vanek - 2020a-2 +- bumped source/target to 1.6 for tzdata for jdk6/7 +- bumped source/target to 1.8 for tzdata for jdk8 + +* Thu Apr 30 2020 Patsy Griffin - 2020a-1 +- Rebase to tzdata-2020a + - Morocco will spring forward on 2020-05-31 rather than + previously predicted 2020-05-24. + - Canada's Yukon region changed to year round UTC -07 + effective 2020-03-08. + - America/Godthab was renamed to America/Nuuk. + +* Fri Jan 31 2020 Fedora Release Engineering - 2019c-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jan 17 2020 Patsy Griffin - 2019c-2 +- Don't build the factory zone for tzdata-java. + Patch provided by Severin Gehwolf (#1789468) + +* Mon Sep 23 2019 Patsy Griffin - 2019c-1 +- Rebase to tzdata-2019c + - Fiji will observe DST from 2019-11-10 to 2020-01-12. + - Norfolk Island will begin observing Australian-style DST on 2019-10-06. +- Add Factory back in to be more consistent with upstream. + +* Sat Jul 27 2019 Fedora Release Engineering - 2019b-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Jul 09 2019 Patsy Griffin - 2019b-1 +- Rebase to tzdata-2019b + - Brazil will no longer observe DST going forward. + - The 2019 spring transition for Palestine occurred 03-29, not 03-30. + +* Fri Mar 29 2019 Patsy Griffin Franklin - 2019a-1 +- Rebase to tzdata-2019a + - Palestine will start DST on 2019-03-30, rather than 2019-03-23 as + previously predicted. + - Metlakatla rejoined Alaska time on 2019-01-20, ending its observances + of Pacific standard time. + +* Sun Feb 03 2019 Fedora Release Engineering - 2018i-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Nov 12 2018 Patsy Griffin Franklin - 2018g-1 - Rebase to tzdata-2018g Includes changes for tzdata-2018f. - Volgograd will change from UTC+03 to UTC+04 on 2018-10-28 at 02:00. @@ -155,22 +451,24 @@ rm -rf $RPM_BUILD_ROOT and restart DST on the first Saturday in September at 24:00. - Morocco will change from UTC+00/+01 to permanent +01 effective 2018-10-27. +* Sat Jul 14 2018 Fedora Release Engineering - 2018e-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Wed May 16 2018 Patsy Franklin - 2018e-1 - Rebase to tzdata-2018e - North Korea changed from UTC+8:30 to UTC+9 on May 5, 2018. - In this update, the upstream project now defaults to using the "vanguard" data implementation which includes negative DST offsets. - However, we are continuing to provide the "rearguard" format - for data which does not use negative DST offsets to provide - better compatibility with existing tools. We intend to transition - to the "vanguard" data implementation in the future. * Wed Mar 28 2018 Patsy Franklin - 2018d-1 - Rebase to tzdata-2018d: - - DST for Asia/Gaza and Asia/Hebron has changed + - DST for Asia/Gaza and Asia/Hebron has changed from March 31 to March 24. - Antarctica/Casey station changed to UTC+8 on March 11. +* Fri Feb 09 2018 Fedora Release Engineering - 2018c-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Thu Feb 01 2018 Patsy Franklin - 2018c-1 - Rebase to tzdata-2018c: - São Tomé and Príncipe changed from +00 to +01 on January 1, 2018