diff --git a/.gitignore b/.gitignore index 7f0b4c6..714f3b0 100644 --- a/.gitignore +++ b/.gitignore @@ -214,3 +214,11 @@ noarch/ /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/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/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/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/ci.fmf b/plans/main.fmf similarity index 50% rename from plans/ci.fmf rename to plans/main.fmf index 85710d6..ec17042 100644 --- a/plans/ci.fmf +++ b/plans/main.fmf @@ -1,6 +1,5 @@ -summary: CI Gating Plan +summary: Main Plan discover: how: fmf - directory: tests execute: how: tmt diff --git a/sources b/sources index 2f9e98e..0b8efef 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (javazic-1.8-37392f2f5d59.tar.xz) = 2ba718dfeed53a3bd6b44e3dfe96338a609e482e4e6d942e2a7e622fc6c52606cb323ac3a59739c463e34f70fff217c0a61f5b3d3c4958eff2801b1504ee4204 -SHA512 (tzcode2024a.tar.gz) = 46da8bfa762c7d109db93e5c060789097fc0e1e38bdad5bb8fec886ef47f138bd03b913a743cd5f7e23dc359a72bfd63e7ffc0de199d2b51e6a174361dbdc43c -SHA512 (tzdata2024a.tar.gz) = 1f09f1b2327cc9e1afc7e9045e83ee3377918dafe1bee2f282b6991828d03b3c70a4d3a17f9207dfb1361bb25bc214a8922a756e84fa114e9ba476226db57236 +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/tzdata.spec b/tzdata.spec index 91fb5b4..db52d01 100644 --- a/tzdata.spec +++ b/tzdata.spec @@ -1,9 +1,9 @@ Summary: Timezone data Name: tzdata -Version: 2024a -%define tzdata_version 2024a -%define tzcode_version 2024a -Release: 9%{?dist} +Version: 2025c +%define tzdata_version 2025c +%define tzcode_version 2025c +Release: 1%{?dist} 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 @@ -13,8 +13,9 @@ Patch002: 0002-Fix-have-snprintf-error.patch Patch003: 0003-continue-to-ship-posixrules.patch 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 @@ -30,7 +31,9 @@ the world. %package java Summary: Timezone data for Java 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. @@ -50,7 +53,7 @@ This package contains timezone information for use by Java runtimes. # 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 +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 @@ -63,6 +66,7 @@ tar zxf rearguard/tzdata%{version}-rearguard.tar.gz tar xf %{SOURCE3} %patch -P 100 +%patch -p1 -P 101 echo "%{name}%{tzdata_version}" >> VERSION @@ -111,6 +115,25 @@ install -p -m 644 zone.tab zone1970.tab iso3166.tab leap-seconds.list leapsecond mkdir -p $RPM_BUILD_ROOT%{_datadir}/javazi-1.8 install -p -m 644 tzdb.dat $RPM_BUILD_ROOT%{_datadir}/javazi-1.8/ +%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 %{_datadir}/zoneinfo %license LICENSE @@ -123,6 +146,44 @@ install -p -m 644 tzdb.dat $RPM_BUILD_ROOT%{_datadir}/javazi-1.8/ %{_datadir}/javazi-1.8 %changelog +* 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