[tz-announce] 2021b release of tz code and data available
The 2021b release of the tz code and data is available. Partly because it's been so long since 2021a, this release has many changes, noted below. In one area, noted "Merge more location-based Zones" below, the mailing list has had significant trouble coming to a long-term consensus. Because we should publish something before the Samoa change takes effect, this release contains just one step towards making tzdb fairer and more equitable in future releases. This release reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes: Briefly: 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. A new file SECURITY. This release is prompted by recent announcements by Jordan and Samoa. It incorporates many other changes that had accumulated since 2021a. However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once. It does keeps some of these changes in the interest of making tzdb more equitable one step at a time; see "Merge more location-based Zones" below. Changes to future timestamps Jordan now starts DST on February's last Thursday. (Thanks to Steffen Thorsen.) Samoa no longer observes DST. (Thanks to Geoffrey D. Bennett.) Changes to zone name Rename Pacific/Enderbury to Pacific/Kanton. When we added Enderbury in 1993, we did not know that it is uninhabited and that Kanton (population two dozen) is the only inhabited location in that timezone. The old name is now a backward-compatility link. Changes to past timestamps Correct many pre-1993 transitions, fixing entries originally derived from Shanks, Whitman, and Mundell. The fixes include: - Barbados: standard time was introduced in 1911, not 1932; and DST was observed in 1942-1944 - Cook Islands: In 1899 they switched from east to west of GMT, celebrating Christmas for two days. They (and Niue) switched to standard time in 1952, not 1901. - Guyana: corrected LMT for Georgetown; the introduction of standard time in 1911, not 1915; and corrections to 1975 and 1992 transitions - Kanton: uninhabited before 1937-08-31 - Niue: only observed -11:20 from 1952 through 1964, then went to -11 instead of -11:30 - Portugal: DST was observed in 1950 - Tonga: corrected LMT; the introduction of standard time in 1945, not 1901; and corrections to the transition from +12:20 to +13 in 1961, not 1941 Additional fixes to entries in the 'backzone' file include: - Enderbury: inhabited only 1860/1885 and 1938-03-06/1942-02-09 - The Gambia: 1933 and 1942 transitions - Malawi: several 1911 through 1925 transitions - Sierra Leone: several 1913 through 1941 transitions, and DST was NOT observed in 1957 through 1962 (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and Alois Treindl.) Merge more location-based Zones whose timestamps agree since 1970, as pre-1970 timestamps are out of scope. This is part of a process that has been ongoing since 2013. This does not affect post-1970 timestamps, and timezone historians who build with 'make PACKRATDATA=backzone' should see no changes to pre-1970 timestamps. When merging, keep the most-populous location's data, and move data for other locations to 'backzone' with a backward link in 'backward'. For example, move America/Creston data to 'backzone' with a link in 'backward' from America/Phoenix because the two timezones' timestamps agree since 1970; this change affects some pre-1968 timestamps in America/Creston because Creston and Phoenix disagreed before 1968. The affected Zones are Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa. Changes to maintenance procedure The new file SECURITY covers how to report security-related bugs. Several backward-compatibility links have been moved to the 'backward' file. These links, which range from Africa/Addis_Ababa to Pacific/Saipan, are only for compatibility with now-obsolete guidelines suggesting an entry for every ISO 3166 code. The intercontinental convenience links Asia/Istanbul and Europe/Nicosia have also been moved to 'backward'. Changes to code zic now creates each output file or link atomically, possibly by creating a temporary file and then renaming it. This avoids races where a TZ setting would temporarily stop working while zic was installing a replacement file or link. zic -L no longer omits the POSIX TZ string in its output. Starting with 2020a, zic -L truncated its output according to the "Expires" directive or "#expires" comment in the leapseconds file. The resulting TZif files omitted daylight saving transitions after the leap second table expired, which led to far less-accurate predictions of times after the expiry. Although future timestamps cannot be converted accurately in the presence of leap seconds, it is more accurate to convert near-future timestamps with a few seconds error than with an hour error, so zic -L no longer truncates output in this way. Instead, when zic -L is given the "Expires" directive, it now outputs the expiration by appending a no-change entry to the leap second table. Although this should work well with most TZif readers, it does not conform to Internet RFC 8536 and some pickier clients (including tzdb 2017c through 2021a) reject it, so "Expires" directives are currently disabled by default. To enable them, set the EXPIRES_LINE Makefile variable. If a TZif file uses this new feature it is marked with a new TZif version number 4, a format intended to be documented in a successor to RFC 8536. zic -L LEAPFILE -r @LO no longer generates an invalid TZif file that omits leap second information for the range LO..B when LO falls between two leap seconds A and B. Instead, it generates a TZif version 4 file that represents the previously-missing information. The TZif reader now allows the leap second table to begin with a correction other than -1 or +1, and to contain adjacent transitions with equal corrections. This supports TZif version 4. The TZif reader now lets leap seconds occur less than 28 days apart. This supports possible future TZif extensions. Fix bug that caused 'localtime' etc. to crash when TZ was set to a all-year DST string like "EST5EDT4,0/0,J365/25" that does not conform to POSIX but does conform to Internet RFC 8536. Fix another bug that caused 'localtime' etc. to crash when TZ was set to a POSIX-conforming but unusual TZ string like "EST5EDT4,0/0,J365/0", where almost all the year is DST. Fix yet another bug that caused 'localtime' etc. to mishandle slim TZif files containing leap seconds after the last explicit transition in the table, or when handling far-future timestamps in slim TZif files lacking leap seconds. Fix localtime misbehavior involving positive leap seconds. This change affects only behavior for "right" system time, which contains leap seconds, and only if the UT offset is not a multiple of 60 seconds when a positive leap second occurs. (No such timezone exists in tzdb, luckily.) Without the fix, the timestamp was ambiguous during a positive leap second. With the fix, any seconds occurring after a positive leap second and within the same localtime minute are counted through 60, not through 59; their UT offset (tm_gmtoff) is the same as before. Here is how the fix affects timestamps in a timezone with UT offset +01:23:45 (5025 seconds) and with a positive leap second at 1972-06-30 23:59:60 UTC (78796800): time_t without the fix with the fix 78796800 1972-07-01 01:23:45 1972-07-01 01:23:45 (leap second) 78796801 1972-07-01 01:23:45 1972-07-01 01:23:46 ... 78796815 1972-07-01 01:23:59 1972-07-01 01:23:60 78796816 1972-07-01 01:24:00 1972-07-01 01:24:00 Fix an unlikely bug that caused 'localtime' etc. to misbehave if civil time changes a few seconds before time_t wraps around, when leap seconds are enabled. Fix bug in zic -r; in some cases, the dummy time type after the last time transition disagreed with the TZ string, contrary to Internet RFC 8563 section 3.3. Fix a bug with 'zic -r @X' when X is a negative leap second that has a nonnegative correction. Without the fix, the output file was truncated so that X appeared to be a positive leap second. Fix a similar, even-less-likely bug when truncating at a positive leap second that has a nonpositive correction. zic -r now reports an error if given rolling leap seconds, as this usage has never generally worked and is evidently unused. zic now generates a POSIX-conforming TZ string for TZif files where all-year DST is predicted for the indefinite future. For example, for all-year Eastern Daylight Time, zic now generates "XXX3EDT4,0/0,J365/23" where it previously generated "EST5EDT,0/0,J365/25" or "". (Thanks to Michael Deckers for noting the possibility of POSIX conformance.) zic.c no longer requires sys/wait.h (thanks to spazmodius for noting it wasn't needed). When reading slim TZif files, zdump no longer mishandles leap seconds on the rare platforms where time_t counts leap seconds, fixing a bug introduced in 2014g. zdump -v now outputs timestamps at boundaries of what localtime and gmtime can represent, instead of the less-useful timestamps one day after the minimum and one day before the maximum. (Thanks to Arthur David Olson for prototype code, and to Manuela Friedrich for debugging help.) zdump's -c and -t options are now consistently inclusive for the lower time bound and exclusive for the upper. Formerly they were inconsistent. (Confusion noted by Martin Burnicki.) Changes to build procedure You can now compile with -DHAVE_MALLOC_ERRNO=0 to port to non-POSIX hosts where malloc doesn't set errno. (Problem reported by Jan Engelhardt.) Changes to documentation tzfile.5 better matches a draft successor to RFC 8536 <https://datatracker.ietf.org/doc/draft-murchison-rfc8536bis/01/>. Here are links to the release files: https://www.iana.org/time-zones/repository/releases/tzcode2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdata2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdb-2021b.tar.lz The following convenience links are also available, although they may point to the previous release until the relevant caches are refreshed: https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz Links are also available via plain HTTP, and via FTP from ftp://ftp.iana.org/tz/releases with the same basenames as above. Each release file has a GPG signature, which can be retrieved by appending ".asc" to the above URLs. Copies of these signatures are appended to this message. This release corresponds to commit 9ffa3f6e5019dfa7cfb5c0e4e8a84fa95adec704 dated 2021-09-24 16:23:00 -0700 and tagged '2021b' in the development GitHub repository at <https://github.com/eggert/tz>. Here are the SHA-512 checksums for the release files: 00fca7508cfbc42123065fe8087397c9dd2acbdda96f3bb0936187825348cf13538f1893f2d02bd8bfa3465427ca7a9a65451baffe39889bc58ba0a77a047806 tzcode2021b.tar.gz ca61d64af5ae791f337533c09d2b4f7caa645ecab7b9d13e9bcafc47c7c68535abe7c103c56bbd41d6bd913a8607f9c5187c8ce8a91b4891a750a643f89c8b51 tzdata2021b.tar.gz 326fb99666c8d5bb798a9c24d2869307620dce918d47fbedd7f765c91eb35ea44bf776f43cb00cde1944884150232ac6dcdc0194a0364e2d28f6470691cf9177 tzdb-2021b.tar.lz Here are the GPG digital signatures for the release files: -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/wACgkQ7ZfpDmKq fjRKwA//RVH1mmf13Uz99KBQZMc/meVaYT1YSpMqilocZo1w+i+Omai7Aw/r9u1e lnwLQukqjpCH4TJWdq8VuloL5ojN1ImoZuIRYECWRHOShxMaS9DLkPRr4qA9Fxic hladneiIglVrnzQbG4pH0Vnu9Qakb6I+1um8lCNiJHng84y5KAOIcZu1m9O+A1F1 bdik8Ddxc4qBluUvcq9n9aqWSgDBvIyCYik6bOo3lOd5zP1rcjSr8VJ+15cAkH4X hU/igj9qloyqAmoOyJOzIIwv63T3Xg63rH/V2hJWyux54ayP4Kt8nZqLYA9V8gFI V/HL5qNafSYEqguO2H3hTwURc3Utini8Oa2Ou89Ih0hkO+nySacc0ZnhaunmX7Ip D5Oj6A8kssG0Uj5fZqpqUp1FeRbziAinSdwTOpRxdkdeHI6tfS0XVnRvRiFATfTu oh9107e3okwKAb2UPJtr8Oev0uU8rz8+EorN9/PqJv0n2c3I69NUv6TudFVHM8uB lwG3hUNtWWYpK/rzwX8AQkwTrOHMN3VJ94T8xaTm13/jtk6R/+GgSjXKC2C9XZG6 5uvi6et06WnRVRO+V5TwnQdfY85pe5nqRDLeo0clxdkAvx6fslLpz9YNacLV/Gn8 0UIGt9CBKjE+PU1F5w+O/5btA/1aTojuSpKscdzgQIzXTfDlTZo= =+McC -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/0ACgkQ7ZfpDmKq fjRYmg/9H3rMpV7uQdd+G2K0wybdzTH6vJiNQClWE1+wqCPh/L3e8kCbPIjSo7MF SFV/Pu4EDb9kjeA2ruEMYlLnpg5nTP7dYfFRsRDcQJ5Yw70luNImm1ipUkKr9o5Q oQqYFKzxvB0G1rE+/gMaxmCHtGaJnv0DEChhmAS5U4j48z71Fn3+UJIU9XPEaODD U1Fw62xDsxIlFKjZ9UvilhlVRMnnP5nK9hjrsFKn7OGbxYvkdaRoK5f3M+G5nGXh L9nZcE0cd/7zhD3+wlttcH+xw3b+5P+7sxMhucoWQXEl3KyIklh97fi7jzHBHz+s DRYLZv/yPoEp94QyCfaYdvWL/i4OX4/9YnXK3ruXDcEV2y8Zl7Wc70Ihxk3I2XAb S4YeMcb30uls93QUdSmuhpEEUWrS5e45OnPy9RnT/VnpCalxsukudSNRzuvivKZn TsPpf90VUtI9ncLZ4l7OoNVXSj5pJ6DS+V1nCesEQyfyFnFvgK/rogCZ0yt+Cosp zaXwBtGyOWwWsGgXHGdJoiQqt/FF8o387EL95vpFr9BRSdSQoKd6K9RrRIH9fuy/ nnpaksD86fx+WbdLMtbHzsZgCqL1RTGO+kc35Qlr3vqH02UAZiwC9l3DHS9SA01c MGDy9zaiLsL/8/lUV3AP31dEP1+DY+BXvdFhIJkmIceBUf7zl0E= =PO3W -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/4ACgkQ7ZfpDmKq fjSaPg//ZlKREhlxjnstpEl6W3x4sStpUrF/Kebp62txYoCjbK22EDnw4BbE0wFh BcIBGbfxioC2+1gAjG57LK0RzTqFPPuDA69qYIZFk+xLrREISDqrGHViLGkFEgm5 jEDamuGW59UoBdnu4Klp1JAd7hvYQYEbbVaIVsrUlAL99OTyujeA6QoZdIjM43eh jx4g1P/XuHBqJEH7d9kOM5tBCRvgFhhcu/s4vOvrfFibRHRimYBuPlep5nJ88bb/ UyCQ1oYIQucWtl+DOszICl/GTmuM33FMTeAX6OrlGxwON6KPI2qNzAaQVpK1apB/ qF9dTnOVP8pygW6HkiFwNOKx4mplB2V8f1eqLT9mfdOQsEWPRuDyUvejBIr/Hmww jHF1w9TX8FxND2KQmcfZNTlKqYcw1O8Vz4m+0UnDzNuLiZAsnTBTrfnKMnVrTOFt 1K6KKK+v5y4WYu+pE36cIBM2YxITEpD+YrRr7G1ilzVgRH5FRGCJsxJu0O+BO35z rv9qVnJz0xISMJs+qSdJT8v4W4Uc6+crnHjAc7T7eAin3i3y/GY/MA44isCACmhx +Rq165laaHXnqTOgQfHhGjigJoH3JCnDYUwg6q+fMMBU2eALkOs+IbgdfVB3hoyo UOlYH/A25nuI0PrRgUKsN6N2lrfPjq3bM4twDw33BOyGJ/LN88w= =aNBd -----END PGP SIGNATURE----- PS. If your tzdata parser does not yet support negative DST offsets or times past 24:00, or if it insists on a 'pacificnew' file that is no longer present, this release's data entries can be turned into a rearguard-format tarball that should work even with these older parsers. This is intended to be a temporary transition aid for these parsers. To generate a rearguard-format tarball, obtain the full distribution as described above, and run the command 'make rearguard_tarballs' on a development host. Or you can run 'make rearguard.zi' to generate a single file that can be fed directly to a parser that works like 'zic'.
On 9/25/21 1:20 AM, Andreas Radke wrote:
The new file SECURITY covers how to report security-related bugs.
Looks like this file didn't made into the release tarballs.
Thanks for reporting that. Although SECURITY was introduced so that <https://github.com/eggert/tz/security> would work as GitHub users expect, it should also be put into the tarball and I forgot to do that. I installed the attached into the development repository.
On Saturday, 25 September 2021 02.58.09 CEST Paul Eggert via tz-announce via tz wrote:
The 2021b release of the tz code and data is available. Thanks, this gives us some time to discuss more calmly now.
[...]
This release is prompted by recent announcements by Jordan and Samoa. It incorporates many other changes that had accumulated since 2021a. However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once.
No, Paul, the issue was never once about the _number_ of changes. There is not a single time anyone asked to reduce the number of changes per release! Either you still totally do not understand all the emails concerning this subject (which would surprise me and be very concerning for the TZ coordinator) or you are deliberately misrepresenting what happened here over the last half year (which I personally find insulting to the community here and does not bode well for a constructive upcoming discussion): I cannot find any request to reduce the number of zone-to-link-changes to any other number than zero in my records. Instead, there were numerous relevant issues with the proposed changes raised, among those were (I might have forgotten some): * Software incompatibilities * Equality issues (not everyone seems to share your view on what is equitable) * Data correctness issues (after the patch users will receive knowingly wrong data for <1970 instead of best-effort data) * Objection on the Zone-Link conversion itself and the request for a discussion on the roles of backdata and the main data base. * Issues with the intransparency on whether a user is using a Link or Zone in various software packages and the consequences thereof. * Loss of information on the quality of the pre1970 data, * The worry of forks and the fragmentation of the user base / compatibility with other software; * issues of a change in behavior for pre-1970 data for a significant number of users also especially for the Android userbase where software updates seem (more than just) difficult. I grant, that some or even most of these issues probably have been prevalent since much older time, but as the link-merging so far mostly affected zones without a contributing, active, numerous, interested, enabled or active user community, the effects probably have not been noticed or raised in this list until recently.
It does keeps some of these changes in the interest of making tzdb more equitable one step at a time; (see above, there seems not even to be consensus on that)
see "Merge more location-based Zones" below.
[...]
Merge more location-based Zones whose timestamps agree since 1970, as pre-1970 timestamps are out of scope. This is part of a process that has been ongoing since 2013. This does not affect post-1970 timestamps, and timezone historians who build with 'make PACKRATDATA=backzone' should see no changes to pre-1970 timestamps. When merging, keep the most-populous location's data, and move data for other locations to 'backzone' with a backward link in 'backward'. For example, move America/Creston data to 'backzone' with a link in 'backward' from America/Phoenix because the two timezones' timestamps agree since 1970; this change affects some pre-1968 timestamps in America/Creston because Creston and Phoenix disagreed before 1968. The affected Zones are Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa.
Thanks, at least we now have a good and concise summary on what happened. Cheers, Jürgen -- Jürgen Appel Research Scientist The Danish National Metrology Institute Dansk Fundamental Metrologi, DFM A/S (dfm.dk) Kogle Allé 5 DK-2970 Hørsholm Denmark Mobile: +45 25459049 Email: jap@dfm.dk VAT: DK-29217939 GPG key: http://pgp.mit.edu:11371/pks/lookup?search=J%C3%BCrgen+Appel&op=get
Jürgen Appel wrote in <2116792.6t3XcvbCL1@gimli>: |On Saturday, 25 September 2021 02.58.09 CEST Paul Eggert via tz-announce \ |via |tz wrote: | |> The 2021b release of the tz code and data is available. |Thanks, this gives us some time to discuss more calmly now. Is this still not over? And why just immediately in advance reiterating the same wrong arguments? ... |Either you still totally do not understand all the emails concerning this |subject (which would surprise me and be very concerning for the TZ |coordinator) or you are deliberately misrepresenting what happened \ |here over |the last half year (which I personally find insulting to the community \ |here |and does not bode well for a constructive upcoming discussion): | |I cannot find any request to reduce the number of zone-to-link-changes \ |to any |other number than zero in my records. | |Instead, there were numerous relevant issues with the proposed changes \ |raised, |among those were (I might have forgotten some): | * Software incompatibilities This process goes on since 2013. Which incompatibilities? There are two downstream libraries which offer broken interfaces. They are data consumers and can simply add "backzone" to the set of zones they include. If they do not, they are fascistic. This holds for _all_ downstream consumers which sit on this list and gave a s..t on backzone in the last decade anyway btw, but nonetheless happily included all pre-1970 data. If they do not want to include zones "which have no attached comments", claiming these are of worse quality, which may be true, they should either preprocess/filter those with a simple say awk(1) snippet, or do the same but also request splitting of backzone into "backzone" and say "unreliable". | * Equality issues (not everyone seems to share your view on what is |equitable) Sheer nonsense. And that from Denmark. | * Data correctness issues (after the patch users will receive knowingly \ | wrong |data for <1970 instead of best-effort data) But only if all those packagers fail to just spend a bit of responsibility to what they ship to their users. Again Denmark failed to give a s..t for other areas of the world. (..which are expected to lick the master's hands giving wheat or covid vaccines, the same master who ravaged all thinkable ressources, btw. No.) | * Objection on the Zone-Link conversion itself and the request for a |discussion on the roles of backdata and the main data base. You mean backzone and surely not backward. What problem do you actually have? A zone is a link is a zone is a link, and if not, you did something wrong. Prove the opposite. | * Issues with the intransparency on whether a user is using a Link \ | or Zone in |various software packages and the consequences thereof. Failed downstream design that does not matter in practice, and copying other peoples failed design without adding one thought on its own, maybe. That is a grossly ridiculous argument. | * Loss of information on the quality of the pre1970 data, | * The worry of forks and the fragmentation of the user base / compatibil\ | ity |with other software; | * issues of a change in behavior for pre-1970 data for a significant \ | number |of users also especially for the Android userbase where software updates \ |seem |(more than just) difficult. Not that i start bitter laughing on Android updates. That non-existing Android strategy should actually be treated as mass-murder by the International Criminal Court, and the responsible people be removed from the public. The sheer amount of damages that this aggressive you-need-to-buy-a-new-smarthone to keep up war strategy caused on the environment is unbelievable! Especially in those countries that you from Denmark did not care for when their zones were moved, shall that be true. Pew! |I grant, that some or even most of these issues probably have been \ |prevalent |since much older time, but as the link-merging so far mostly affected \ |zones |without a contributing, active, numerous, interested, enabled or active \ |user |community, the effects probably have not been noticed or raised in \ |this list |until recently. That is fascism really. Shall i ever see a poor man who knows what real hunger is, and who sheperds his old smartphone or his old computer as the real treasure that it is, i will give him a buffalo nickle in your name. So enough research i let the rest. That is me who would rejoin the data and use tooling not physical separation to cause the IANA standardized date and time range. Maybe i would move really dubious data to an "unreliable" file and of course not include it. Other than that the amount of filth in this thread is disgusting. This project has very clear documentation, and follows a standardized orchestration. 80-90 percent of mails in this thread confuse personal impotence with offences of the IANA TZ project and its maintainer. Reality of downstream consumers is that changes to package versioning, entire build systems, and project layout and ordering is a very common thing in at least the free software world. That alone is the truth. A happy Sunday. Ciao from Germany, --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)
On 9/25/21 9:01 AM, Jürgen Appel via tz wrote:
I cannot find any request to reduce the number of zone-to-link-changes to any other number than zero in my records.
Please see my email a few minutes ago to Stephen Colebourne, which touched on that topic. https://mm.icann.org/pipermail/tz/2021-September/030784.html
Thank you for postponing that step which would have destroyed a lot of clarity i the database. On 25.09.21 02:58, Paul Eggert via tz-announce via tz wrote:
This release is prompted by recent announcements by Jordan and Samoa. It incorporates many other changes that had accumulated since 2021a. However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once.
For those on the list who re-package this, what did / do you plan to release? A version using `PACKRATDATA=backzone`, or no? Normally I cut releases immediately after the announcement for Python's tzdata, but the uncertainty caused by Paul's inclusion of some of the controversial changes has led me to delay (sorry Samoans, please send letters to your representatives). I suspect that people who need backzone / packrat data for instrumental purposes will need to be very clear on what version they are getting (e.g. build from source), but I suspect that there a decent number of test suites out there using the pre-1970 data to exercise their TZ-handling code (from other comments on the thread I'm pretty sure this is exactly why the data are included despite their unreliability), and inconsistencies in the data can cause significant problems for this application — particularly when there is no reliable way to determine what version of the database your TZif files are coming from. I'd like to try and be as consistent as possible with what the majority of repackagers are doing, so I'm assuming I should go ahead with a standard build, but if a good fraction of people chose to semi-fork by using the provided make file option, that would be fine with me as well (and presumably would be better for people who have hard-coded transitions into their applications anyway). Anyone tracking who did what who could weigh in on this? Thanks, Paul On 9/24/21 20:58, Paul Eggert via tz-announce via tz wrote:
The 2021b release of the tz code and data is available.
Partly because it's been so long since 2021a, this release has many changes, noted below. In one area, noted "Merge more location-based Zones" below, the mailing list has had significant trouble coming to a long-term consensus. Because we should publish something before the Samoa change takes effect, this release contains just one step towards making tzdb fairer and more equitable in future releases.
This release reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes:
Briefly: 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. A new file SECURITY.
This release is prompted by recent announcements by Jordan and Samoa. It incorporates many other changes that had accumulated since 2021a. However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once. It does keeps some of these changes in the interest of making tzdb more equitable one step at a time; see "Merge more location-based Zones" below.
Changes to future timestamps
Jordan now starts DST on February's last Thursday. (Thanks to Steffen Thorsen.)
Samoa no longer observes DST. (Thanks to Geoffrey D. Bennett.)
Changes to zone name
Rename Pacific/Enderbury to Pacific/Kanton. When we added Enderbury in 1993, we did not know that it is uninhabited and that Kanton (population two dozen) is the only inhabited location in that timezone. The old name is now a backward-compatility link.
Changes to past timestamps
Correct many pre-1993 transitions, fixing entries originally derived from Shanks, Whitman, and Mundell. The fixes include: - Barbados: standard time was introduced in 1911, not 1932; and DST was observed in 1942-1944 - Cook Islands: In 1899 they switched from east to west of GMT, celebrating Christmas for two days. They (and Niue) switched to standard time in 1952, not 1901. - Guyana: corrected LMT for Georgetown; the introduction of standard time in 1911, not 1915; and corrections to 1975 and 1992 transitions - Kanton: uninhabited before 1937-08-31 - Niue: only observed -11:20 from 1952 through 1964, then went to -11 instead of -11:30 - Portugal: DST was observed in 1950 - Tonga: corrected LMT; the introduction of standard time in 1945, not 1901; and corrections to the transition from +12:20 to +13 in 1961, not 1941 Additional fixes to entries in the 'backzone' file include: - Enderbury: inhabited only 1860/1885 and 1938-03-06/1942-02-09 - The Gambia: 1933 and 1942 transitions - Malawi: several 1911 through 1925 transitions - Sierra Leone: several 1913 through 1941 transitions, and DST was NOT observed in 1957 through 1962 (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and Alois Treindl.)
Merge more location-based Zones whose timestamps agree since 1970, as pre-1970 timestamps are out of scope. This is part of a process that has been ongoing since 2013. This does not affect post-1970 timestamps, and timezone historians who build with 'make PACKRATDATA=backzone' should see no changes to pre-1970 timestamps. When merging, keep the most-populous location's data, and move data for other locations to 'backzone' with a backward link in 'backward'. For example, move America/Creston data to 'backzone' with a link in 'backward' from America/Phoenix because the two timezones' timestamps agree since 1970; this change affects some pre-1968 timestamps in America/Creston because Creston and Phoenix disagreed before 1968. The affected Zones are Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa.
Changes to maintenance procedure
The new file SECURITY covers how to report security-related bugs.
Several backward-compatibility links have been moved to the 'backward' file. These links, which range from Africa/Addis_Ababa to Pacific/Saipan, are only for compatibility with now-obsolete guidelines suggesting an entry for every ISO 3166 code. The intercontinental convenience links Asia/Istanbul and Europe/Nicosia have also been moved to 'backward'.
Changes to code
zic now creates each output file or link atomically, possibly by creating a temporary file and then renaming it. This avoids races where a TZ setting would temporarily stop working while zic was installing a replacement file or link.
zic -L no longer omits the POSIX TZ string in its output. Starting with 2020a, zic -L truncated its output according to the "Expires" directive or "#expires" comment in the leapseconds file. The resulting TZif files omitted daylight saving transitions after the leap second table expired, which led to far less-accurate predictions of times after the expiry. Although future timestamps cannot be converted accurately in the presence of leap seconds, it is more accurate to convert near-future timestamps with a few seconds error than with an hour error, so zic -L no longer truncates output in this way.
Instead, when zic -L is given the "Expires" directive, it now outputs the expiration by appending a no-change entry to the leap second table. Although this should work well with most TZif readers, it does not conform to Internet RFC 8536 and some pickier clients (including tzdb 2017c through 2021a) reject it, so "Expires" directives are currently disabled by default. To enable them, set the EXPIRES_LINE Makefile variable. If a TZif file uses this new feature it is marked with a new TZif version number 4, a format intended to be documented in a successor to RFC 8536.
zic -L LEAPFILE -r @LO no longer generates an invalid TZif file that omits leap second information for the range LO..B when LO falls between two leap seconds A and B. Instead, it generates a TZif version 4 file that represents the previously-missing information.
The TZif reader now allows the leap second table to begin with a correction other than -1 or +1, and to contain adjacent transitions with equal corrections. This supports TZif version 4.
The TZif reader now lets leap seconds occur less than 28 days apart. This supports possible future TZif extensions.
Fix bug that caused 'localtime' etc. to crash when TZ was set to a all-year DST string like "EST5EDT4,0/0,J365/25" that does not conform to POSIX but does conform to Internet RFC 8536.
Fix another bug that caused 'localtime' etc. to crash when TZ was set to a POSIX-conforming but unusual TZ string like "EST5EDT4,0/0,J365/0", where almost all the year is DST.
Fix yet another bug that caused 'localtime' etc. to mishandle slim TZif files containing leap seconds after the last explicit transition in the table, or when handling far-future timestamps in slim TZif files lacking leap seconds.
Fix localtime misbehavior involving positive leap seconds. This change affects only behavior for "right" system time, which contains leap seconds, and only if the UT offset is not a multiple of 60 seconds when a positive leap second occurs. (No such timezone exists in tzdb, luckily.) Without the fix, the timestamp was ambiguous during a positive leap second. With the fix, any seconds occurring after a positive leap second and within the same localtime minute are counted through 60, not through 59; their UT offset (tm_gmtoff) is the same as before. Here is how the fix affects timestamps in a timezone with UT offset +01:23:45 (5025 seconds) and with a positive leap second at 1972-06-30 23:59:60 UTC (78796800):
time_t without the fix with the fix 78796800 1972-07-01 01:23:45 1972-07-01 01:23:45 (leap second) 78796801 1972-07-01 01:23:45 1972-07-01 01:23:46 ... 78796815 1972-07-01 01:23:59 1972-07-01 01:23:60 78796816 1972-07-01 01:24:00 1972-07-01 01:24:00
Fix an unlikely bug that caused 'localtime' etc. to misbehave if civil time changes a few seconds before time_t wraps around, when leap seconds are enabled.
Fix bug in zic -r; in some cases, the dummy time type after the last time transition disagreed with the TZ string, contrary to Internet RFC 8563 section 3.3.
Fix a bug with 'zic -r @X' when X is a negative leap second that has a nonnegative correction. Without the fix, the output file was truncated so that X appeared to be a positive leap second. Fix a similar, even-less-likely bug when truncating at a positive leap second that has a nonpositive correction.
zic -r now reports an error if given rolling leap seconds, as this usage has never generally worked and is evidently unused.
zic now generates a POSIX-conforming TZ string for TZif files where all-year DST is predicted for the indefinite future. For example, for all-year Eastern Daylight Time, zic now generates "XXX3EDT4,0/0,J365/23" where it previously generated "EST5EDT,0/0,J365/25" or "". (Thanks to Michael Deckers for noting the possibility of POSIX conformance.)
zic.c no longer requires sys/wait.h (thanks to spazmodius for noting it wasn't needed).
When reading slim TZif files, zdump no longer mishandles leap seconds on the rare platforms where time_t counts leap seconds, fixing a bug introduced in 2014g.
zdump -v now outputs timestamps at boundaries of what localtime and gmtime can represent, instead of the less-useful timestamps one day after the minimum and one day before the maximum. (Thanks to Arthur David Olson for prototype code, and to Manuela Friedrich for debugging help.)
zdump's -c and -t options are now consistently inclusive for the lower time bound and exclusive for the upper. Formerly they were inconsistent. (Confusion noted by Martin Burnicki.)
Changes to build procedure
You can now compile with -DHAVE_MALLOC_ERRNO=0 to port to non-POSIX hosts where malloc doesn't set errno. (Problem reported by Jan Engelhardt.)
Changes to documentation
tzfile.5 better matches a draft successor to RFC 8536 <https://datatracker.ietf.org/doc/draft-murchison-rfc8536bis/01/>.
Here are links to the release files:
https://www.iana.org/time-zones/repository/releases/tzcode2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdata2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdb-2021b.tar.lz
The following convenience links are also available, although they may point to the previous release until the relevant caches are refreshed:
https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz
Links are also available via plain HTTP, and via FTP from ftp://ftp.iana.org/tz/releases with the same basenames as above.
Each release file has a GPG signature, which can be retrieved by appending ".asc" to the above URLs. Copies of these signatures are appended to this message.
This release corresponds to commit 9ffa3f6e5019dfa7cfb5c0e4e8a84fa95adec704 dated 2021-09-24 16:23:00 -0700 and tagged '2021b' in the development GitHub repository at <https://github.com/eggert/tz>.
Here are the SHA-512 checksums for the release files:
00fca7508cfbc42123065fe8087397c9dd2acbdda96f3bb0936187825348cf13538f1893f2d02bd8bfa3465427ca7a9a65451baffe39889bc58ba0a77a047806 tzcode2021b.tar.gz ca61d64af5ae791f337533c09d2b4f7caa645ecab7b9d13e9bcafc47c7c68535abe7c103c56bbd41d6bd913a8607f9c5187c8ce8a91b4891a750a643f89c8b51 tzdata2021b.tar.gz 326fb99666c8d5bb798a9c24d2869307620dce918d47fbedd7f765c91eb35ea44bf776f43cb00cde1944884150232ac6dcdc0194a0364e2d28f6470691cf9177 tzdb-2021b.tar.lz
Here are the GPG digital signatures for the release files:
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/wACgkQ7ZfpDmKq fjRKwA//RVH1mmf13Uz99KBQZMc/meVaYT1YSpMqilocZo1w+i+Omai7Aw/r9u1e lnwLQukqjpCH4TJWdq8VuloL5ojN1ImoZuIRYECWRHOShxMaS9DLkPRr4qA9Fxic hladneiIglVrnzQbG4pH0Vnu9Qakb6I+1um8lCNiJHng84y5KAOIcZu1m9O+A1F1 bdik8Ddxc4qBluUvcq9n9aqWSgDBvIyCYik6bOo3lOd5zP1rcjSr8VJ+15cAkH4X hU/igj9qloyqAmoOyJOzIIwv63T3Xg63rH/V2hJWyux54ayP4Kt8nZqLYA9V8gFI V/HL5qNafSYEqguO2H3hTwURc3Utini8Oa2Ou89Ih0hkO+nySacc0ZnhaunmX7Ip D5Oj6A8kssG0Uj5fZqpqUp1FeRbziAinSdwTOpRxdkdeHI6tfS0XVnRvRiFATfTu oh9107e3okwKAb2UPJtr8Oev0uU8rz8+EorN9/PqJv0n2c3I69NUv6TudFVHM8uB lwG3hUNtWWYpK/rzwX8AQkwTrOHMN3VJ94T8xaTm13/jtk6R/+GgSjXKC2C9XZG6 5uvi6et06WnRVRO+V5TwnQdfY85pe5nqRDLeo0clxdkAvx6fslLpz9YNacLV/Gn8 0UIGt9CBKjE+PU1F5w+O/5btA/1aTojuSpKscdzgQIzXTfDlTZo= =+McC -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/0ACgkQ7ZfpDmKq fjRYmg/9H3rMpV7uQdd+G2K0wybdzTH6vJiNQClWE1+wqCPh/L3e8kCbPIjSo7MF SFV/Pu4EDb9kjeA2ruEMYlLnpg5nTP7dYfFRsRDcQJ5Yw70luNImm1ipUkKr9o5Q oQqYFKzxvB0G1rE+/gMaxmCHtGaJnv0DEChhmAS5U4j48z71Fn3+UJIU9XPEaODD U1Fw62xDsxIlFKjZ9UvilhlVRMnnP5nK9hjrsFKn7OGbxYvkdaRoK5f3M+G5nGXh L9nZcE0cd/7zhD3+wlttcH+xw3b+5P+7sxMhucoWQXEl3KyIklh97fi7jzHBHz+s DRYLZv/yPoEp94QyCfaYdvWL/i4OX4/9YnXK3ruXDcEV2y8Zl7Wc70Ihxk3I2XAb S4YeMcb30uls93QUdSmuhpEEUWrS5e45OnPy9RnT/VnpCalxsukudSNRzuvivKZn TsPpf90VUtI9ncLZ4l7OoNVXSj5pJ6DS+V1nCesEQyfyFnFvgK/rogCZ0yt+Cosp zaXwBtGyOWwWsGgXHGdJoiQqt/FF8o387EL95vpFr9BRSdSQoKd6K9RrRIH9fuy/ nnpaksD86fx+WbdLMtbHzsZgCqL1RTGO+kc35Qlr3vqH02UAZiwC9l3DHS9SA01c MGDy9zaiLsL/8/lUV3AP31dEP1+DY+BXvdFhIJkmIceBUf7zl0E= =PO3W -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/4ACgkQ7ZfpDmKq fjSaPg//ZlKREhlxjnstpEl6W3x4sStpUrF/Kebp62txYoCjbK22EDnw4BbE0wFh BcIBGbfxioC2+1gAjG57LK0RzTqFPPuDA69qYIZFk+xLrREISDqrGHViLGkFEgm5 jEDamuGW59UoBdnu4Klp1JAd7hvYQYEbbVaIVsrUlAL99OTyujeA6QoZdIjM43eh jx4g1P/XuHBqJEH7d9kOM5tBCRvgFhhcu/s4vOvrfFibRHRimYBuPlep5nJ88bb/ UyCQ1oYIQucWtl+DOszICl/GTmuM33FMTeAX6OrlGxwON6KPI2qNzAaQVpK1apB/ qF9dTnOVP8pygW6HkiFwNOKx4mplB2V8f1eqLT9mfdOQsEWPRuDyUvejBIr/Hmww jHF1w9TX8FxND2KQmcfZNTlKqYcw1O8Vz4m+0UnDzNuLiZAsnTBTrfnKMnVrTOFt 1K6KKK+v5y4WYu+pE36cIBM2YxITEpD+YrRr7G1ilzVgRH5FRGCJsxJu0O+BO35z rv9qVnJz0xISMJs+qSdJT8v4W4Uc6+crnHjAc7T7eAin3i3y/GY/MA44isCACmhx +Rq165laaHXnqTOgQfHhGjigJoH3JCnDYUwg6q+fMMBU2eALkOs+IbgdfVB3hoyo UOlYH/A25nuI0PrRgUKsN6N2lrfPjq3bM4twDw33BOyGJ/LN88w= =aNBd -----END PGP SIGNATURE-----
PS. If your tzdata parser does not yet support negative DST offsets or times past 24:00, or if it insists on a 'pacificnew' file that is no longer present, this release's data entries can be turned into a rearguard-format tarball that should work even with these older parsers. This is intended to be a temporary transition aid for these parsers. To generate a rearguard-format tarball, obtain the full distribution as described above, and run the command 'make rearguard_tarballs' on a development host. Or you can run 'make rearguard.zi' to generate a single file that can be fed directly to a parser that works like 'zic'.
I think all of us downstream are in a real pickle because of this. I don't want the 9 link merges in 2021b but I do want the Samoa change. I know Unicode CLDR feel the same way: https://mail.openjdk.java.net/pipermail/i18n-dev/2021-September/004506.html I am currently testing a release of Joda-Time based off a fork of tzdb: https://github.com/JodaOrg/tz (The link merges are complex to undo, so I am not yet certain the repo is correct) I know there is another fork here: https://github.com/derickr/tz-stable I don't consider either of these to be good solutions for the short term, or particularly viable in the long term. Feel free to use one of the repos above if it helps you. And hope that upcoming discussions yield a good outcome. thanks Stephen On Tue, 28 Sept 2021 at 18:02, Paul Ganssle via tz <tz@iana.org> wrote:
For those on the list who re-package this, what did / do you plan to release? A version using `PACKRATDATA=backzone`, or no?
Normally I cut releases immediately after the announcement for Python's tzdata, but the uncertainty caused by Paul's inclusion of some of the controversial changes has led me to delay (sorry Samoans, please send letters to your representatives).
I suspect that people who need backzone / packrat data for instrumental purposes will need to be very clear on what version they are getting (e.g. build from source), but I suspect that there a decent number of test suites out there using the pre-1970 data to exercise their TZ-handling code (from other comments on the thread I'm pretty sure this is exactly why the data are included despite their unreliability), and inconsistencies in the data can cause significant problems for this application — particularly when there is no reliable way to determine what version of the database your TZif files are coming from.
I'd like to try and be as consistent as possible with what the majority of repackagers are doing, so I'm assuming I should go ahead with a standard build, but if a good fraction of people chose to semi-fork by using the provided make file option, that would be fine with me as well (and presumably would be better for people who have hard-coded transitions into their applications anyway). Anyone tracking who did what who could weigh in on this?
Thanks,
Paul
On 9/24/21 20:58, Paul Eggert via tz-announce via tz wrote:
The 2021b release of the tz code and data is available.
Partly because it's been so long since 2021a, this release has many changes, noted below. In one area, noted "Merge more location-based Zones" below, the mailing list has had significant trouble coming to a long-term consensus. Because we should publish something before the Samoa change takes effect, this release contains just one step towards making tzdb fairer and more equitable in future releases.
This release reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes:
Briefly: 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. A new file SECURITY.
This release is prompted by recent announcements by Jordan and Samoa. It incorporates many other changes that had accumulated since 2021a. However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once. It does keeps some of these changes in the interest of making tzdb more equitable one step at a time; see "Merge more location-based Zones" below.
Changes to future timestamps
Jordan now starts DST on February's last Thursday. (Thanks to Steffen Thorsen.)
Samoa no longer observes DST. (Thanks to Geoffrey D. Bennett.)
Changes to zone name
Rename Pacific/Enderbury to Pacific/Kanton. When we added Enderbury in 1993, we did not know that it is uninhabited and that Kanton (population two dozen) is the only inhabited location in that timezone. The old name is now a backward-compatility link.
Changes to past timestamps
Correct many pre-1993 transitions, fixing entries originally derived from Shanks, Whitman, and Mundell. The fixes include: - Barbados: standard time was introduced in 1911, not 1932; and DST was observed in 1942-1944 - Cook Islands: In 1899 they switched from east to west of GMT, celebrating Christmas for two days. They (and Niue) switched to standard time in 1952, not 1901. - Guyana: corrected LMT for Georgetown; the introduction of standard time in 1911, not 1915; and corrections to 1975 and 1992 transitions - Kanton: uninhabited before 1937-08-31 - Niue: only observed -11:20 from 1952 through 1964, then went to -11 instead of -11:30 - Portugal: DST was observed in 1950 - Tonga: corrected LMT; the introduction of standard time in 1945, not 1901; and corrections to the transition from +12:20 to +13 in 1961, not 1941 Additional fixes to entries in the 'backzone' file include: - Enderbury: inhabited only 1860/1885 and 1938-03-06/1942-02-09 - The Gambia: 1933 and 1942 transitions - Malawi: several 1911 through 1925 transitions - Sierra Leone: several 1913 through 1941 transitions, and DST was NOT observed in 1957 through 1962 (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and Alois Treindl.)
Merge more location-based Zones whose timestamps agree since 1970, as pre-1970 timestamps are out of scope. This is part of a process that has been ongoing since 2013. This does not affect post-1970 timestamps, and timezone historians who build with 'make PACKRATDATA=backzone' should see no changes to pre-1970 timestamps. When merging, keep the most-populous location's data, and move data for other locations to 'backzone' with a backward link in 'backward'. For example, move America/Creston data to 'backzone' with a link in 'backward' from America/Phoenix because the two timezones' timestamps agree since 1970; this change affects some pre-1968 timestamps in America/Creston because Creston and Phoenix disagreed before 1968. The affected Zones are Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa.
Changes to maintenance procedure
The new file SECURITY covers how to report security-related bugs.
Several backward-compatibility links have been moved to the 'backward' file. These links, which range from Africa/Addis_Ababa to Pacific/Saipan, are only for compatibility with now-obsolete guidelines suggesting an entry for every ISO 3166 code. The intercontinental convenience links Asia/Istanbul and Europe/Nicosia have also been moved to 'backward'.
Changes to code
zic now creates each output file or link atomically, possibly by creating a temporary file and then renaming it. This avoids races where a TZ setting would temporarily stop working while zic was installing a replacement file or link.
zic -L no longer omits the POSIX TZ string in its output. Starting with 2020a, zic -L truncated its output according to the "Expires" directive or "#expires" comment in the leapseconds file. The resulting TZif files omitted daylight saving transitions after the leap second table expired, which led to far less-accurate predictions of times after the expiry. Although future timestamps cannot be converted accurately in the presence of leap seconds, it is more accurate to convert near-future timestamps with a few seconds error than with an hour error, so zic -L no longer truncates output in this way.
Instead, when zic -L is given the "Expires" directive, it now outputs the expiration by appending a no-change entry to the leap second table. Although this should work well with most TZif readers, it does not conform to Internet RFC 8536 and some pickier clients (including tzdb 2017c through 2021a) reject it, so "Expires" directives are currently disabled by default. To enable them, set the EXPIRES_LINE Makefile variable. If a TZif file uses this new feature it is marked with a new TZif version number 4, a format intended to be documented in a successor to RFC 8536.
zic -L LEAPFILE -r @LO no longer generates an invalid TZif file that omits leap second information for the range LO..B when LO falls between two leap seconds A and B. Instead, it generates a TZif version 4 file that represents the previously-missing information.
The TZif reader now allows the leap second table to begin with a correction other than -1 or +1, and to contain adjacent transitions with equal corrections. This supports TZif version 4.
The TZif reader now lets leap seconds occur less than 28 days apart. This supports possible future TZif extensions.
Fix bug that caused 'localtime' etc. to crash when TZ was set to a all-year DST string like "EST5EDT4,0/0,J365/25" that does not conform to POSIX but does conform to Internet RFC 8536.
Fix another bug that caused 'localtime' etc. to crash when TZ was set to a POSIX-conforming but unusual TZ string like "EST5EDT4,0/0,J365/0", where almost all the year is DST.
Fix yet another bug that caused 'localtime' etc. to mishandle slim TZif files containing leap seconds after the last explicit transition in the table, or when handling far-future timestamps in slim TZif files lacking leap seconds.
Fix localtime misbehavior involving positive leap seconds. This change affects only behavior for "right" system time, which contains leap seconds, and only if the UT offset is not a multiple of 60 seconds when a positive leap second occurs. (No such timezone exists in tzdb, luckily.) Without the fix, the timestamp was ambiguous during a positive leap second. With the fix, any seconds occurring after a positive leap second and within the same localtime minute are counted through 60, not through 59; their UT offset (tm_gmtoff) is the same as before. Here is how the fix affects timestamps in a timezone with UT offset +01:23:45 (5025 seconds) and with a positive leap second at 1972-06-30 23:59:60 UTC (78796800):
time_t without the fix with the fix 78796800 1972-07-01 01:23:45 1972-07-01 01:23:45 (leap second) 78796801 1972-07-01 01:23:45 1972-07-01 01:23:46 ... 78796815 1972-07-01 01:23:59 1972-07-01 01:23:60 78796816 1972-07-01 01:24:00 1972-07-01 01:24:00
Fix an unlikely bug that caused 'localtime' etc. to misbehave if civil time changes a few seconds before time_t wraps around, when leap seconds are enabled.
Fix bug in zic -r; in some cases, the dummy time type after the last time transition disagreed with the TZ string, contrary to Internet RFC 8563 section 3.3.
Fix a bug with 'zic -r @X' when X is a negative leap second that has a nonnegative correction. Without the fix, the output file was truncated so that X appeared to be a positive leap second. Fix a similar, even-less-likely bug when truncating at a positive leap second that has a nonpositive correction.
zic -r now reports an error if given rolling leap seconds, as this usage has never generally worked and is evidently unused.
zic now generates a POSIX-conforming TZ string for TZif files where all-year DST is predicted for the indefinite future. For example, for all-year Eastern Daylight Time, zic now generates "XXX3EDT4,0/0,J365/23" where it previously generated "EST5EDT,0/0,J365/25" or "". (Thanks to Michael Deckers for noting the possibility of POSIX conformance.)
zic.c no longer requires sys/wait.h (thanks to spazmodius for noting it wasn't needed).
When reading slim TZif files, zdump no longer mishandles leap seconds on the rare platforms where time_t counts leap seconds, fixing a bug introduced in 2014g.
zdump -v now outputs timestamps at boundaries of what localtime and gmtime can represent, instead of the less-useful timestamps one day after the minimum and one day before the maximum. (Thanks to Arthur David Olson for prototype code, and to Manuela Friedrich for debugging help.)
zdump's -c and -t options are now consistently inclusive for the lower time bound and exclusive for the upper. Formerly they were inconsistent. (Confusion noted by Martin Burnicki.)
Changes to build procedure
You can now compile with -DHAVE_MALLOC_ERRNO=0 to port to non-POSIX hosts where malloc doesn't set errno. (Problem reported by Jan Engelhardt.)
Changes to documentation
tzfile.5 better matches a draft successor to RFC 8536 <https://datatracker.ietf.org/doc/draft-murchison-rfc8536bis/01/>.
Here are links to the release files:
https://www.iana.org/time-zones/repository/releases/tzcode2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdata2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdb-2021b.tar.lz
The following convenience links are also available, although they may point to the previous release until the relevant caches are refreshed:
https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz
Links are also available via plain HTTP, and via FTP from ftp://ftp.iana.org/tz/releases with the same basenames as above.
Each release file has a GPG signature, which can be retrieved by appending ".asc" to the above URLs. Copies of these signatures are appended to this message.
This release corresponds to commit 9ffa3f6e5019dfa7cfb5c0e4e8a84fa95adec704 dated 2021-09-24 16:23:00 -0700 and tagged '2021b' in the development GitHub repository at <https://github.com/eggert/tz>.
Here are the SHA-512 checksums for the release files:
00fca7508cfbc42123065fe8087397c9dd2acbdda96f3bb0936187825348cf13538f1893f2d02bd8bfa3465427ca7a9a65451baffe39889bc58ba0a77a047806 tzcode2021b.tar.gz ca61d64af5ae791f337533c09d2b4f7caa645ecab7b9d13e9bcafc47c7c68535abe7c103c56bbd41d6bd913a8607f9c5187c8ce8a91b4891a750a643f89c8b51 tzdata2021b.tar.gz 326fb99666c8d5bb798a9c24d2869307620dce918d47fbedd7f765c91eb35ea44bf776f43cb00cde1944884150232ac6dcdc0194a0364e2d28f6470691cf9177 tzdb-2021b.tar.lz
Here are the GPG digital signatures for the release files:
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/wACgkQ7ZfpDmKq fjRKwA//RVH1mmf13Uz99KBQZMc/meVaYT1YSpMqilocZo1w+i+Omai7Aw/r9u1e lnwLQukqjpCH4TJWdq8VuloL5ojN1ImoZuIRYECWRHOShxMaS9DLkPRr4qA9Fxic hladneiIglVrnzQbG4pH0Vnu9Qakb6I+1um8lCNiJHng84y5KAOIcZu1m9O+A1F1 bdik8Ddxc4qBluUvcq9n9aqWSgDBvIyCYik6bOo3lOd5zP1rcjSr8VJ+15cAkH4X hU/igj9qloyqAmoOyJOzIIwv63T3Xg63rH/V2hJWyux54ayP4Kt8nZqLYA9V8gFI V/HL5qNafSYEqguO2H3hTwURc3Utini8Oa2Ou89Ih0hkO+nySacc0ZnhaunmX7Ip D5Oj6A8kssG0Uj5fZqpqUp1FeRbziAinSdwTOpRxdkdeHI6tfS0XVnRvRiFATfTu oh9107e3okwKAb2UPJtr8Oev0uU8rz8+EorN9/PqJv0n2c3I69NUv6TudFVHM8uB lwG3hUNtWWYpK/rzwX8AQkwTrOHMN3VJ94T8xaTm13/jtk6R/+GgSjXKC2C9XZG6 5uvi6et06WnRVRO+V5TwnQdfY85pe5nqRDLeo0clxdkAvx6fslLpz9YNacLV/Gn8 0UIGt9CBKjE+PU1F5w+O/5btA/1aTojuSpKscdzgQIzXTfDlTZo= =+McC -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/0ACgkQ7ZfpDmKq fjRYmg/9H3rMpV7uQdd+G2K0wybdzTH6vJiNQClWE1+wqCPh/L3e8kCbPIjSo7MF SFV/Pu4EDb9kjeA2ruEMYlLnpg5nTP7dYfFRsRDcQJ5Yw70luNImm1ipUkKr9o5Q oQqYFKzxvB0G1rE+/gMaxmCHtGaJnv0DEChhmAS5U4j48z71Fn3+UJIU9XPEaODD U1Fw62xDsxIlFKjZ9UvilhlVRMnnP5nK9hjrsFKn7OGbxYvkdaRoK5f3M+G5nGXh L9nZcE0cd/7zhD3+wlttcH+xw3b+5P+7sxMhucoWQXEl3KyIklh97fi7jzHBHz+s DRYLZv/yPoEp94QyCfaYdvWL/i4OX4/9YnXK3ruXDcEV2y8Zl7Wc70Ihxk3I2XAb S4YeMcb30uls93QUdSmuhpEEUWrS5e45OnPy9RnT/VnpCalxsukudSNRzuvivKZn TsPpf90VUtI9ncLZ4l7OoNVXSj5pJ6DS+V1nCesEQyfyFnFvgK/rogCZ0yt+Cosp zaXwBtGyOWwWsGgXHGdJoiQqt/FF8o387EL95vpFr9BRSdSQoKd6K9RrRIH9fuy/ nnpaksD86fx+WbdLMtbHzsZgCqL1RTGO+kc35Qlr3vqH02UAZiwC9l3DHS9SA01c MGDy9zaiLsL/8/lUV3AP31dEP1+DY+BXvdFhIJkmIceBUf7zl0E= =PO3W -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/4ACgkQ7ZfpDmKq fjSaPg//ZlKREhlxjnstpEl6W3x4sStpUrF/Kebp62txYoCjbK22EDnw4BbE0wFh BcIBGbfxioC2+1gAjG57LK0RzTqFPPuDA69qYIZFk+xLrREISDqrGHViLGkFEgm5 jEDamuGW59UoBdnu4Klp1JAd7hvYQYEbbVaIVsrUlAL99OTyujeA6QoZdIjM43eh jx4g1P/XuHBqJEH7d9kOM5tBCRvgFhhcu/s4vOvrfFibRHRimYBuPlep5nJ88bb/ UyCQ1oYIQucWtl+DOszICl/GTmuM33FMTeAX6OrlGxwON6KPI2qNzAaQVpK1apB/ qF9dTnOVP8pygW6HkiFwNOKx4mplB2V8f1eqLT9mfdOQsEWPRuDyUvejBIr/Hmww jHF1w9TX8FxND2KQmcfZNTlKqYcw1O8Vz4m+0UnDzNuLiZAsnTBTrfnKMnVrTOFt 1K6KKK+v5y4WYu+pE36cIBM2YxITEpD+YrRr7G1ilzVgRH5FRGCJsxJu0O+BO35z rv9qVnJz0xISMJs+qSdJT8v4W4Uc6+crnHjAc7T7eAin3i3y/GY/MA44isCACmhx +Rq165laaHXnqTOgQfHhGjigJoH3JCnDYUwg6q+fMMBU2eALkOs+IbgdfVB3hoyo UOlYH/A25nuI0PrRgUKsN6N2lrfPjq3bM4twDw33BOyGJ/LN88w= =aNBd -----END PGP SIGNATURE-----
PS. If your tzdata parser does not yet support negative DST offsets or times past 24:00, or if it insists on a 'pacificnew' file that is no longer present, this release's data entries can be turned into a rearguard-format tarball that should work even with these older parsers. This is intended to be a temporary transition aid for these parsers. To generate a rearguard-format tarball, obtain the full distribution as described above, and run the command 'make rearguard_tarballs' on a development host. Or you can run 'make rearguard.zi' to generate a single file that can be fed directly to a parser that works like 'zic'.
I know Unicode CLDR feel the same way: https://mail.openjdk.java.net/pipermail/i18n-dev/2021-September/004506.html
A single mail thread with no replies (as of now) is hardly evidence of Unicode CLDR feeling any type of way. We should be mindful not to insinuate things. On Tue, Sep 28, 2021 at 10:59 AM Stephen Colebourne via tz <tz@iana.org> wrote:
I think all of us downstream are in a real pickle because of this. I don't want the 9 link merges in 2021b but I do want the Samoa change. I know Unicode CLDR feel the same way:
https://mail.openjdk.java.net/pipermail/i18n-dev/2021-September/004506.html
I am currently testing a release of Joda-Time based off a fork of tzdb: https://github.com/JodaOrg/tz (The link merges are complex to undo, so I am not yet certain the repo is correct)
I know there is another fork here: https://github.com/derickr/tz-stable
I don't consider either of these to be good solutions for the short term, or particularly viable in the long term.
Feel free to use one of the repos above if it helps you. And hope that upcoming discussions yield a good outcome.
thanks Stephen
On Tue, 28 Sept 2021 at 18:02, Paul Ganssle via tz <tz@iana.org> wrote:
For those on the list who re-package this, what did / do you plan to release? A version using `PACKRATDATA=backzone`, or no?
Normally I cut releases immediately after the announcement for Python's tzdata, but the uncertainty caused by Paul's inclusion of some of the controversial changes has led me to delay (sorry Samoans, please send letters to your representatives).
I suspect that people who need backzone / packrat data for instrumental purposes will need to be very clear on what version they are getting (e.g. build from source), but I suspect that there a decent number of test suites out there using the pre-1970 data to exercise their TZ-handling code (from other comments on the thread I'm pretty sure this is exactly why the data are included despite their unreliability), and inconsistencies in the data can cause significant problems for this application — particularly when there is no reliable way to determine what version of the database your TZif files are coming from.
I'd like to try and be as consistent as possible with what the majority of repackagers are doing, so I'm assuming I should go ahead with a standard build, but if a good fraction of people chose to semi-fork by using the provided make file option, that would be fine with me as well (and presumably would be better for people who have hard-coded transitions into their applications anyway). Anyone tracking who did what who could weigh in on this?
Thanks,
Paul
On 9/24/21 20:58, Paul Eggert via tz-announce via tz wrote:
The 2021b release of the tz code and data is available.
Partly because it's been so long since 2021a, this release has many changes, noted below. In one area, noted "Merge more location-based Zones" below, the mailing list has had significant trouble coming to a long-term consensus. Because we should publish something before the Samoa change takes effect, this release contains just one step towards making tzdb fairer and more equitable in future releases.
This release reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes:
Briefly: 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. A new file SECURITY.
This release is prompted by recent announcements by Jordan and Samoa. It incorporates many other changes that had accumulated since 2021a. However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once. It does keeps some of these changes in the interest of making tzdb more equitable one step at a time; see "Merge more location-based Zones" below.
Changes to future timestamps
Jordan now starts DST on February's last Thursday. (Thanks to Steffen Thorsen.)
Samoa no longer observes DST. (Thanks to Geoffrey D. Bennett.)
Changes to zone name
Rename Pacific/Enderbury to Pacific/Kanton. When we added Enderbury in 1993, we did not know that it is uninhabited and that Kanton (population two dozen) is the only inhabited location in that timezone. The old name is now a backward-compatility link.
Changes to past timestamps
Correct many pre-1993 transitions, fixing entries originally derived from Shanks, Whitman, and Mundell. The fixes include: - Barbados: standard time was introduced in 1911, not 1932; and DST was observed in 1942-1944 - Cook Islands: In 1899 they switched from east to west of GMT, celebrating Christmas for two days. They (and Niue) switched to standard time in 1952, not 1901. - Guyana: corrected LMT for Georgetown; the introduction of standard time in 1911, not 1915; and corrections to 1975 and 1992 transitions - Kanton: uninhabited before 1937-08-31 - Niue: only observed -11:20 from 1952 through 1964, then went to -11 instead of -11:30 - Portugal: DST was observed in 1950 - Tonga: corrected LMT; the introduction of standard time in
1945,
not 1901; and corrections to the transition from +12:20 to +13 in 1961, not 1941 Additional fixes to entries in the 'backzone' file include: - Enderbury: inhabited only 1860/1885 and 1938-03-06/1942-02-09 - The Gambia: 1933 and 1942 transitions - Malawi: several 1911 through 1925 transitions - Sierra Leone: several 1913 through 1941 transitions, and DST was NOT observed in 1957 through 1962 (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and Alois Treindl.)
Merge more location-based Zones whose timestamps agree since 1970, as pre-1970 timestamps are out of scope. This is part of a process that has been ongoing since 2013. This does not affect post-1970 timestamps, and timezone historians who build with 'make PACKRATDATA=backzone' should see no changes to pre-1970 timestamps. When merging, keep the most-populous location's data, and move data for other locations to 'backzone' with a backward link in 'backward'. For example, move America/Creston data to 'backzone' with a link in 'backward' from America/Phoenix because the two timezones' timestamps agree since 1970; this change affects some pre-1968 timestamps in America/Creston because Creston and Phoenix disagreed before 1968. The affected Zones are Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa.
Changes to maintenance procedure
The new file SECURITY covers how to report security-related bugs.
Several backward-compatibility links have been moved to the 'backward' file. These links, which range from Africa/Addis_Ababa to Pacific/Saipan, are only for compatibility with now-obsolete guidelines suggesting an entry for every ISO 3166 code. The intercontinental convenience links Asia/Istanbul and Europe/Nicosia have also been moved to 'backward'.
Changes to code
zic now creates each output file or link atomically, possibly by creating a temporary file and then renaming it. This avoids races where a TZ setting would temporarily stop working while zic was installing a replacement file or link.
zic -L no longer omits the POSIX TZ string in its output. Starting with 2020a, zic -L truncated its output according to the "Expires" directive or "#expires" comment in the leapseconds file. The resulting TZif files omitted daylight saving transitions after the leap second table expired, which led to far less-accurate predictions of times after the expiry. Although future timestamps cannot be converted accurately in the presence of leap seconds, it is more accurate to convert near-future timestamps with a few seconds error than with an hour error, so zic -L no longer truncates output in this way.
Instead, when zic -L is given the "Expires" directive, it now outputs the expiration by appending a no-change entry to the leap second table. Although this should work well with most TZif readers, it does not conform to Internet RFC 8536 and some pickier clients (including tzdb 2017c through 2021a) reject it, so "Expires" directives are currently disabled by default. To enable them, set the EXPIRES_LINE Makefile variable. If a TZif file uses this new feature it is marked with a new TZif version number 4, a format intended to be documented in a successor to RFC 8536.
zic -L LEAPFILE -r @LO no longer generates an invalid TZif file that omits leap second information for the range LO..B when LO falls between two leap seconds A and B. Instead, it generates a TZif version 4 file that represents the previously-missing information.
The TZif reader now allows the leap second table to begin with a correction other than -1 or +1, and to contain adjacent transitions with equal corrections. This supports TZif version 4.
The TZif reader now lets leap seconds occur less than 28 days apart. This supports possible future TZif extensions.
Fix bug that caused 'localtime' etc. to crash when TZ was set to a all-year DST string like "EST5EDT4,0/0,J365/25" that does not conform to POSIX but does conform to Internet RFC 8536.
Fix another bug that caused 'localtime' etc. to crash when TZ was set to a POSIX-conforming but unusual TZ string like "EST5EDT4,0/0,J365/0", where almost all the year is DST.
Fix yet another bug that caused 'localtime' etc. to mishandle slim TZif files containing leap seconds after the last explicit transition in the table, or when handling far-future timestamps in slim TZif files lacking leap seconds.
Fix localtime misbehavior involving positive leap seconds. This change affects only behavior for "right" system time, which contains leap seconds, and only if the UT offset is not a multiple of 60 seconds when a positive leap second occurs. (No such timezone exists in tzdb, luckily.) Without the fix, the timestamp was ambiguous during a positive leap second. With the fix, any seconds occurring after a positive leap second and within the same localtime minute are counted through 60, not through 59; their UT offset (tm_gmtoff) is the same as before. Here is how the fix affects timestamps in a timezone with UT offset +01:23:45 (5025 seconds) and with a positive leap second at 1972-06-30 23:59:60 UTC (78796800):
time_t without the fix with the fix 78796800 1972-07-01 01:23:45 1972-07-01 01:23:45 (leap second) 78796801 1972-07-01 01:23:45 1972-07-01 01:23:46 ... 78796815 1972-07-01 01:23:59 1972-07-01 01:23:60 78796816 1972-07-01 01:24:00 1972-07-01 01:24:00
Fix an unlikely bug that caused 'localtime' etc. to misbehave if civil time changes a few seconds before time_t wraps around, when leap seconds are enabled.
Fix bug in zic -r; in some cases, the dummy time type after the last time transition disagreed with the TZ string, contrary to Internet RFC 8563 section 3.3.
Fix a bug with 'zic -r @X' when X is a negative leap second that has a nonnegative correction. Without the fix, the output file was truncated so that X appeared to be a positive leap second. Fix a similar, even-less-likely bug when truncating at a positive leap second that has a nonpositive correction.
zic -r now reports an error if given rolling leap seconds, as this usage has never generally worked and is evidently unused.
zic now generates a POSIX-conforming TZ string for TZif files where all-year DST is predicted for the indefinite future. For example, for all-year Eastern Daylight Time, zic now generates "XXX3EDT4,0/0,J365/23" where it previously generated "EST5EDT,0/0,J365/25" or "". (Thanks to Michael Deckers for noting the possibility of POSIX conformance.)
zic.c no longer requires sys/wait.h (thanks to spazmodius for noting it wasn't needed).
When reading slim TZif files, zdump no longer mishandles leap seconds on the rare platforms where time_t counts leap seconds, fixing a bug introduced in 2014g.
zdump -v now outputs timestamps at boundaries of what localtime and gmtime can represent, instead of the less-useful timestamps one day after the minimum and one day before the maximum. (Thanks to Arthur David Olson for prototype code, and to Manuela Friedrich for debugging help.)
zdump's -c and -t options are now consistently inclusive for the lower time bound and exclusive for the upper. Formerly they were inconsistent. (Confusion noted by Martin Burnicki.)
Changes to build procedure
You can now compile with -DHAVE_MALLOC_ERRNO=0 to port to non-POSIX hosts where malloc doesn't set errno. (Problem reported by Jan Engelhardt.)
Changes to documentation
tzfile.5 better matches a draft successor to RFC 8536 <https://datatracker.ietf.org/doc/draft-murchison-rfc8536bis/01/>.
Here are links to the release files:
https://www.iana.org/time-zones/repository/releases/tzcode2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdata2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdb-2021b.tar.lz
The following convenience links are also available, although they may point to the previous release until the relevant caches are refreshed:
https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz
Links are also available via plain HTTP, and via FTP from ftp://ftp.iana.org/tz/releases with the same basenames as above.
Each release file has a GPG signature, which can be retrieved by appending ".asc" to the above URLs. Copies of these signatures are appended to this message.
This release corresponds to commit 9ffa3f6e5019dfa7cfb5c0e4e8a84fa95adec704 dated 2021-09-24 16:23:00 -0700 and tagged '2021b' in the development GitHub repository at <https://github.com/eggert/tz>.
Here are the SHA-512 checksums for the release files:
00fca7508cfbc42123065fe8087397c9dd2acbdda96f3bb0936187825348cf13538f1893f2d02bd8bfa3465427ca7a9a65451baffe39889bc58ba0a77a047806
tzcode2021b.tar.gz
ca61d64af5ae791f337533c09d2b4f7caa645ecab7b9d13e9bcafc47c7c68535abe7c103c56bbd41d6bd913a8607f9c5187c8ce8a91b4891a750a643f89c8b51
tzdata2021b.tar.gz
326fb99666c8d5bb798a9c24d2869307620dce918d47fbedd7f765c91eb35ea44bf776f43cb00cde1944884150232ac6dcdc0194a0364e2d28f6470691cf9177
tzdb-2021b.tar.lz
Here are the GPG digital signatures for the release files:
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/wACgkQ7ZfpDmKq fjRKwA//RVH1mmf13Uz99KBQZMc/meVaYT1YSpMqilocZo1w+i+Omai7Aw/r9u1e lnwLQukqjpCH4TJWdq8VuloL5ojN1ImoZuIRYECWRHOShxMaS9DLkPRr4qA9Fxic hladneiIglVrnzQbG4pH0Vnu9Qakb6I+1um8lCNiJHng84y5KAOIcZu1m9O+A1F1 bdik8Ddxc4qBluUvcq9n9aqWSgDBvIyCYik6bOo3lOd5zP1rcjSr8VJ+15cAkH4X hU/igj9qloyqAmoOyJOzIIwv63T3Xg63rH/V2hJWyux54ayP4Kt8nZqLYA9V8gFI V/HL5qNafSYEqguO2H3hTwURc3Utini8Oa2Ou89Ih0hkO+nySacc0ZnhaunmX7Ip D5Oj6A8kssG0Uj5fZqpqUp1FeRbziAinSdwTOpRxdkdeHI6tfS0XVnRvRiFATfTu oh9107e3okwKAb2UPJtr8Oev0uU8rz8+EorN9/PqJv0n2c3I69NUv6TudFVHM8uB lwG3hUNtWWYpK/rzwX8AQkwTrOHMN3VJ94T8xaTm13/jtk6R/+GgSjXKC2C9XZG6 5uvi6et06WnRVRO+V5TwnQdfY85pe5nqRDLeo0clxdkAvx6fslLpz9YNacLV/Gn8 0UIGt9CBKjE+PU1F5w+O/5btA/1aTojuSpKscdzgQIzXTfDlTZo= =+McC -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/0ACgkQ7ZfpDmKq fjRYmg/9H3rMpV7uQdd+G2K0wybdzTH6vJiNQClWE1+wqCPh/L3e8kCbPIjSo7MF SFV/Pu4EDb9kjeA2ruEMYlLnpg5nTP7dYfFRsRDcQJ5Yw70luNImm1ipUkKr9o5Q oQqYFKzxvB0G1rE+/gMaxmCHtGaJnv0DEChhmAS5U4j48z71Fn3+UJIU9XPEaODD U1Fw62xDsxIlFKjZ9UvilhlVRMnnP5nK9hjrsFKn7OGbxYvkdaRoK5f3M+G5nGXh L9nZcE0cd/7zhD3+wlttcH+xw3b+5P+7sxMhucoWQXEl3KyIklh97fi7jzHBHz+s DRYLZv/yPoEp94QyCfaYdvWL/i4OX4/9YnXK3ruXDcEV2y8Zl7Wc70Ihxk3I2XAb S4YeMcb30uls93QUdSmuhpEEUWrS5e45OnPy9RnT/VnpCalxsukudSNRzuvivKZn TsPpf90VUtI9ncLZ4l7OoNVXSj5pJ6DS+V1nCesEQyfyFnFvgK/rogCZ0yt+Cosp zaXwBtGyOWwWsGgXHGdJoiQqt/FF8o387EL95vpFr9BRSdSQoKd6K9RrRIH9fuy/ nnpaksD86fx+WbdLMtbHzsZgCqL1RTGO+kc35Qlr3vqH02UAZiwC9l3DHS9SA01c MGDy9zaiLsL/8/lUV3AP31dEP1+DY+BXvdFhIJkmIceBUf7zl0E= =PO3W -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/4ACgkQ7ZfpDmKq fjSaPg//ZlKREhlxjnstpEl6W3x4sStpUrF/Kebp62txYoCjbK22EDnw4BbE0wFh BcIBGbfxioC2+1gAjG57LK0RzTqFPPuDA69qYIZFk+xLrREISDqrGHViLGkFEgm5 jEDamuGW59UoBdnu4Klp1JAd7hvYQYEbbVaIVsrUlAL99OTyujeA6QoZdIjM43eh jx4g1P/XuHBqJEH7d9kOM5tBCRvgFhhcu/s4vOvrfFibRHRimYBuPlep5nJ88bb/ UyCQ1oYIQucWtl+DOszICl/GTmuM33FMTeAX6OrlGxwON6KPI2qNzAaQVpK1apB/ qF9dTnOVP8pygW6HkiFwNOKx4mplB2V8f1eqLT9mfdOQsEWPRuDyUvejBIr/Hmww jHF1w9TX8FxND2KQmcfZNTlKqYcw1O8Vz4m+0UnDzNuLiZAsnTBTrfnKMnVrTOFt 1K6KKK+v5y4WYu+pE36cIBM2YxITEpD+YrRr7G1ilzVgRH5FRGCJsxJu0O+BO35z rv9qVnJz0xISMJs+qSdJT8v4W4Uc6+crnHjAc7T7eAin3i3y/GY/MA44isCACmhx +Rq165laaHXnqTOgQfHhGjigJoH3JCnDYUwg6q+fMMBU2eALkOs+IbgdfVB3hoyo UOlYH/A25nuI0PrRgUKsN6N2lrfPjq3bM4twDw33BOyGJ/LN88w= =aNBd -----END PGP SIGNATURE-----
PS. If your tzdata parser does not yet support negative DST offsets or times past 24:00, or if it insists on a 'pacificnew' file that is no longer present, this release's data entries can be turned into a rearguard-format tarball that should work even with these older parsers. This is intended to be a temporary transition aid for these parsers. To generate a rearguard-format tarball, obtain the full distribution as described above, and run the command 'make rearguard_tarballs' on a development host. Or you can run 'make rearguard.zi' to generate a single file that can be fed directly to a parser that works like 'zic'.
After a couple of failed attempts, I believe I have managed to get a suitable tz fork for Joda-Time, which I've tagged as 2021bfork3. https://github.com/JodaOrg/tz https://github.com/JodaOrg/joda-time/pull/567 What I discovered was that the primary damage to Joda-Time would have come from the commit that move the Links from the main files to backward (2a18a625a0171e5c54249a54179eda3409b1b838). Previous merges have not (I believe) moved the resulting link into backward. Joda-Time has different behaviour wrt a Link in the main fles and a Link in backward. Joda-Time's parser interprets Links in backward as being deprecated, and actively replaces them with the newer form. Whereas the parser does no such thing for a Link in the main file. The Link move effectively would thus cause many locations to be actively replaced in a way that they haven't been for the last 7 years. Given the above, it is not true to say that 2021b is like previous link merges (because it moves the links as well as merging zones to links). Given the above, I'll be releasing Joda-Time using the fork that avoids the Link moves as well as the link merges. The above is for info only, we can debate what to do next as part of a separate thread. Stephen On Tue, 28 Sept 2021 at 18:58, Stephen Colebourne <scolebourne@joda.org> wrote:
I think all of us downstream are in a real pickle because of this. I don't want the 9 link merges in 2021b but I do want the Samoa change. I know Unicode CLDR feel the same way: https://mail.openjdk.java.net/pipermail/i18n-dev/2021-September/004506.html
I am currently testing a release of Joda-Time based off a fork of tzdb: https://github.com/JodaOrg/tz (The link merges are complex to undo, so I am not yet certain the repo is correct)
I know there is another fork here: https://github.com/derickr/tz-stable
I don't consider either of these to be good solutions for the short term, or particularly viable in the long term.
Feel free to use one of the repos above if it helps you. And hope that upcoming discussions yield a good outcome.
thanks Stephen
On Tue, 28 Sept 2021 at 18:02, Paul Ganssle via tz <tz@iana.org> wrote:
For those on the list who re-package this, what did / do you plan to release? A version using `PACKRATDATA=backzone`, or no?
Normally I cut releases immediately after the announcement for Python's tzdata, but the uncertainty caused by Paul's inclusion of some of the controversial changes has led me to delay (sorry Samoans, please send letters to your representatives).
I suspect that people who need backzone / packrat data for instrumental purposes will need to be very clear on what version they are getting (e.g. build from source), but I suspect that there a decent number of test suites out there using the pre-1970 data to exercise their TZ-handling code (from other comments on the thread I'm pretty sure this is exactly why the data are included despite their unreliability), and inconsistencies in the data can cause significant problems for this application — particularly when there is no reliable way to determine what version of the database your TZif files are coming from.
I'd like to try and be as consistent as possible with what the majority of repackagers are doing, so I'm assuming I should go ahead with a standard build, but if a good fraction of people chose to semi-fork by using the provided make file option, that would be fine with me as well (and presumably would be better for people who have hard-coded transitions into their applications anyway). Anyone tracking who did what who could weigh in on this?
Thanks,
Paul
On 9/24/21 20:58, Paul Eggert via tz-announce via tz wrote:
The 2021b release of the tz code and data is available.
Partly because it's been so long since 2021a, this release has many changes, noted below. In one area, noted "Merge more location-based Zones" below, the mailing list has had significant trouble coming to a long-term consensus. Because we should publish something before the Samoa change takes effect, this release contains just one step towards making tzdb fairer and more equitable in future releases.
This release reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes:
Briefly: 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. A new file SECURITY.
This release is prompted by recent announcements by Jordan and Samoa. It incorporates many other changes that had accumulated since 2021a. However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once. It does keeps some of these changes in the interest of making tzdb more equitable one step at a time; see "Merge more location-based Zones" below.
Changes to future timestamps
Jordan now starts DST on February's last Thursday. (Thanks to Steffen Thorsen.)
Samoa no longer observes DST. (Thanks to Geoffrey D. Bennett.)
Changes to zone name
Rename Pacific/Enderbury to Pacific/Kanton. When we added Enderbury in 1993, we did not know that it is uninhabited and that Kanton (population two dozen) is the only inhabited location in that timezone. The old name is now a backward-compatility link.
Changes to past timestamps
Correct many pre-1993 transitions, fixing entries originally derived from Shanks, Whitman, and Mundell. The fixes include: - Barbados: standard time was introduced in 1911, not 1932; and DST was observed in 1942-1944 - Cook Islands: In 1899 they switched from east to west of GMT, celebrating Christmas for two days. They (and Niue) switched to standard time in 1952, not 1901. - Guyana: corrected LMT for Georgetown; the introduction of standard time in 1911, not 1915; and corrections to 1975 and 1992 transitions - Kanton: uninhabited before 1937-08-31 - Niue: only observed -11:20 from 1952 through 1964, then went to -11 instead of -11:30 - Portugal: DST was observed in 1950 - Tonga: corrected LMT; the introduction of standard time in 1945, not 1901; and corrections to the transition from +12:20 to +13 in 1961, not 1941 Additional fixes to entries in the 'backzone' file include: - Enderbury: inhabited only 1860/1885 and 1938-03-06/1942-02-09 - The Gambia: 1933 and 1942 transitions - Malawi: several 1911 through 1925 transitions - Sierra Leone: several 1913 through 1941 transitions, and DST was NOT observed in 1957 through 1962 (Thanks to P Chan, Michael Deckers, Alexander Krivenyshev and Alois Treindl.)
Merge more location-based Zones whose timestamps agree since 1970, as pre-1970 timestamps are out of scope. This is part of a process that has been ongoing since 2013. This does not affect post-1970 timestamps, and timezone historians who build with 'make PACKRATDATA=backzone' should see no changes to pre-1970 timestamps. When merging, keep the most-populous location's data, and move data for other locations to 'backzone' with a backward link in 'backward'. For example, move America/Creston data to 'backzone' with a link in 'backward' from America/Phoenix because the two timezones' timestamps agree since 1970; this change affects some pre-1968 timestamps in America/Creston because Creston and Phoenix disagreed before 1968. The affected Zones are Africa/Accra, America/Atikokan, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_Spain, Antarctica/DumontDUrville, and Antarctica/Syowa.
Changes to maintenance procedure
The new file SECURITY covers how to report security-related bugs.
Several backward-compatibility links have been moved to the 'backward' file. These links, which range from Africa/Addis_Ababa to Pacific/Saipan, are only for compatibility with now-obsolete guidelines suggesting an entry for every ISO 3166 code. The intercontinental convenience links Asia/Istanbul and Europe/Nicosia have also been moved to 'backward'.
Changes to code
zic now creates each output file or link atomically, possibly by creating a temporary file and then renaming it. This avoids races where a TZ setting would temporarily stop working while zic was installing a replacement file or link.
zic -L no longer omits the POSIX TZ string in its output. Starting with 2020a, zic -L truncated its output according to the "Expires" directive or "#expires" comment in the leapseconds file. The resulting TZif files omitted daylight saving transitions after the leap second table expired, which led to far less-accurate predictions of times after the expiry. Although future timestamps cannot be converted accurately in the presence of leap seconds, it is more accurate to convert near-future timestamps with a few seconds error than with an hour error, so zic -L no longer truncates output in this way.
Instead, when zic -L is given the "Expires" directive, it now outputs the expiration by appending a no-change entry to the leap second table. Although this should work well with most TZif readers, it does not conform to Internet RFC 8536 and some pickier clients (including tzdb 2017c through 2021a) reject it, so "Expires" directives are currently disabled by default. To enable them, set the EXPIRES_LINE Makefile variable. If a TZif file uses this new feature it is marked with a new TZif version number 4, a format intended to be documented in a successor to RFC 8536.
zic -L LEAPFILE -r @LO no longer generates an invalid TZif file that omits leap second information for the range LO..B when LO falls between two leap seconds A and B. Instead, it generates a TZif version 4 file that represents the previously-missing information.
The TZif reader now allows the leap second table to begin with a correction other than -1 or +1, and to contain adjacent transitions with equal corrections. This supports TZif version 4.
The TZif reader now lets leap seconds occur less than 28 days apart. This supports possible future TZif extensions.
Fix bug that caused 'localtime' etc. to crash when TZ was set to a all-year DST string like "EST5EDT4,0/0,J365/25" that does not conform to POSIX but does conform to Internet RFC 8536.
Fix another bug that caused 'localtime' etc. to crash when TZ was set to a POSIX-conforming but unusual TZ string like "EST5EDT4,0/0,J365/0", where almost all the year is DST.
Fix yet another bug that caused 'localtime' etc. to mishandle slim TZif files containing leap seconds after the last explicit transition in the table, or when handling far-future timestamps in slim TZif files lacking leap seconds.
Fix localtime misbehavior involving positive leap seconds. This change affects only behavior for "right" system time, which contains leap seconds, and only if the UT offset is not a multiple of 60 seconds when a positive leap second occurs. (No such timezone exists in tzdb, luckily.) Without the fix, the timestamp was ambiguous during a positive leap second. With the fix, any seconds occurring after a positive leap second and within the same localtime minute are counted through 60, not through 59; their UT offset (tm_gmtoff) is the same as before. Here is how the fix affects timestamps in a timezone with UT offset +01:23:45 (5025 seconds) and with a positive leap second at 1972-06-30 23:59:60 UTC (78796800):
time_t without the fix with the fix 78796800 1972-07-01 01:23:45 1972-07-01 01:23:45 (leap second) 78796801 1972-07-01 01:23:45 1972-07-01 01:23:46 ... 78796815 1972-07-01 01:23:59 1972-07-01 01:23:60 78796816 1972-07-01 01:24:00 1972-07-01 01:24:00
Fix an unlikely bug that caused 'localtime' etc. to misbehave if civil time changes a few seconds before time_t wraps around, when leap seconds are enabled.
Fix bug in zic -r; in some cases, the dummy time type after the last time transition disagreed with the TZ string, contrary to Internet RFC 8563 section 3.3.
Fix a bug with 'zic -r @X' when X is a negative leap second that has a nonnegative correction. Without the fix, the output file was truncated so that X appeared to be a positive leap second. Fix a similar, even-less-likely bug when truncating at a positive leap second that has a nonpositive correction.
zic -r now reports an error if given rolling leap seconds, as this usage has never generally worked and is evidently unused.
zic now generates a POSIX-conforming TZ string for TZif files where all-year DST is predicted for the indefinite future. For example, for all-year Eastern Daylight Time, zic now generates "XXX3EDT4,0/0,J365/23" where it previously generated "EST5EDT,0/0,J365/25" or "". (Thanks to Michael Deckers for noting the possibility of POSIX conformance.)
zic.c no longer requires sys/wait.h (thanks to spazmodius for noting it wasn't needed).
When reading slim TZif files, zdump no longer mishandles leap seconds on the rare platforms where time_t counts leap seconds, fixing a bug introduced in 2014g.
zdump -v now outputs timestamps at boundaries of what localtime and gmtime can represent, instead of the less-useful timestamps one day after the minimum and one day before the maximum. (Thanks to Arthur David Olson for prototype code, and to Manuela Friedrich for debugging help.)
zdump's -c and -t options are now consistently inclusive for the lower time bound and exclusive for the upper. Formerly they were inconsistent. (Confusion noted by Martin Burnicki.)
Changes to build procedure
You can now compile with -DHAVE_MALLOC_ERRNO=0 to port to non-POSIX hosts where malloc doesn't set errno. (Problem reported by Jan Engelhardt.)
Changes to documentation
tzfile.5 better matches a draft successor to RFC 8536 <https://datatracker.ietf.org/doc/draft-murchison-rfc8536bis/01/>.
Here are links to the release files:
https://www.iana.org/time-zones/repository/releases/tzcode2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdata2021b.tar.gz https://www.iana.org/time-zones/repository/releases/tzdb-2021b.tar.lz
The following convenience links are also available, although they may point to the previous release until the relevant caches are refreshed:
https://www.iana.org/time-zones/repository/tzcode-latest.tar.gz https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz https://www.iana.org/time-zones/repository/tzdb-latest.tar.lz
Links are also available via plain HTTP, and via FTP from ftp://ftp.iana.org/tz/releases with the same basenames as above.
Each release file has a GPG signature, which can be retrieved by appending ".asc" to the above URLs. Copies of these signatures are appended to this message.
This release corresponds to commit 9ffa3f6e5019dfa7cfb5c0e4e8a84fa95adec704 dated 2021-09-24 16:23:00 -0700 and tagged '2021b' in the development GitHub repository at <https://github.com/eggert/tz>.
Here are the SHA-512 checksums for the release files:
00fca7508cfbc42123065fe8087397c9dd2acbdda96f3bb0936187825348cf13538f1893f2d02bd8bfa3465427ca7a9a65451baffe39889bc58ba0a77a047806 tzcode2021b.tar.gz ca61d64af5ae791f337533c09d2b4f7caa645ecab7b9d13e9bcafc47c7c68535abe7c103c56bbd41d6bd913a8607f9c5187c8ce8a91b4891a750a643f89c8b51 tzdata2021b.tar.gz 326fb99666c8d5bb798a9c24d2869307620dce918d47fbedd7f765c91eb35ea44bf776f43cb00cde1944884150232ac6dcdc0194a0364e2d28f6470691cf9177 tzdb-2021b.tar.lz
Here are the GPG digital signatures for the release files:
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/wACgkQ7ZfpDmKq fjRKwA//RVH1mmf13Uz99KBQZMc/meVaYT1YSpMqilocZo1w+i+Omai7Aw/r9u1e lnwLQukqjpCH4TJWdq8VuloL5ojN1ImoZuIRYECWRHOShxMaS9DLkPRr4qA9Fxic hladneiIglVrnzQbG4pH0Vnu9Qakb6I+1um8lCNiJHng84y5KAOIcZu1m9O+A1F1 bdik8Ddxc4qBluUvcq9n9aqWSgDBvIyCYik6bOo3lOd5zP1rcjSr8VJ+15cAkH4X hU/igj9qloyqAmoOyJOzIIwv63T3Xg63rH/V2hJWyux54ayP4Kt8nZqLYA9V8gFI V/HL5qNafSYEqguO2H3hTwURc3Utini8Oa2Ou89Ih0hkO+nySacc0ZnhaunmX7Ip D5Oj6A8kssG0Uj5fZqpqUp1FeRbziAinSdwTOpRxdkdeHI6tfS0XVnRvRiFATfTu oh9107e3okwKAb2UPJtr8Oev0uU8rz8+EorN9/PqJv0n2c3I69NUv6TudFVHM8uB lwG3hUNtWWYpK/rzwX8AQkwTrOHMN3VJ94T8xaTm13/jtk6R/+GgSjXKC2C9XZG6 5uvi6et06WnRVRO+V5TwnQdfY85pe5nqRDLeo0clxdkAvx6fslLpz9YNacLV/Gn8 0UIGt9CBKjE+PU1F5w+O/5btA/1aTojuSpKscdzgQIzXTfDlTZo= =+McC -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/0ACgkQ7ZfpDmKq fjRYmg/9H3rMpV7uQdd+G2K0wybdzTH6vJiNQClWE1+wqCPh/L3e8kCbPIjSo7MF SFV/Pu4EDb9kjeA2ruEMYlLnpg5nTP7dYfFRsRDcQJ5Yw70luNImm1ipUkKr9o5Q oQqYFKzxvB0G1rE+/gMaxmCHtGaJnv0DEChhmAS5U4j48z71Fn3+UJIU9XPEaODD U1Fw62xDsxIlFKjZ9UvilhlVRMnnP5nK9hjrsFKn7OGbxYvkdaRoK5f3M+G5nGXh L9nZcE0cd/7zhD3+wlttcH+xw3b+5P+7sxMhucoWQXEl3KyIklh97fi7jzHBHz+s DRYLZv/yPoEp94QyCfaYdvWL/i4OX4/9YnXK3ruXDcEV2y8Zl7Wc70Ihxk3I2XAb S4YeMcb30uls93QUdSmuhpEEUWrS5e45OnPy9RnT/VnpCalxsukudSNRzuvivKZn TsPpf90VUtI9ncLZ4l7OoNVXSj5pJ6DS+V1nCesEQyfyFnFvgK/rogCZ0yt+Cosp zaXwBtGyOWwWsGgXHGdJoiQqt/FF8o387EL95vpFr9BRSdSQoKd6K9RrRIH9fuy/ nnpaksD86fx+WbdLMtbHzsZgCqL1RTGO+kc35Qlr3vqH02UAZiwC9l3DHS9SA01c MGDy9zaiLsL/8/lUV3AP31dEP1+DY+BXvdFhIJkmIceBUf7zl0E= =PO3W -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAmFOX/4ACgkQ7ZfpDmKq fjSaPg//ZlKREhlxjnstpEl6W3x4sStpUrF/Kebp62txYoCjbK22EDnw4BbE0wFh BcIBGbfxioC2+1gAjG57LK0RzTqFPPuDA69qYIZFk+xLrREISDqrGHViLGkFEgm5 jEDamuGW59UoBdnu4Klp1JAd7hvYQYEbbVaIVsrUlAL99OTyujeA6QoZdIjM43eh jx4g1P/XuHBqJEH7d9kOM5tBCRvgFhhcu/s4vOvrfFibRHRimYBuPlep5nJ88bb/ UyCQ1oYIQucWtl+DOszICl/GTmuM33FMTeAX6OrlGxwON6KPI2qNzAaQVpK1apB/ qF9dTnOVP8pygW6HkiFwNOKx4mplB2V8f1eqLT9mfdOQsEWPRuDyUvejBIr/Hmww jHF1w9TX8FxND2KQmcfZNTlKqYcw1O8Vz4m+0UnDzNuLiZAsnTBTrfnKMnVrTOFt 1K6KKK+v5y4WYu+pE36cIBM2YxITEpD+YrRr7G1ilzVgRH5FRGCJsxJu0O+BO35z rv9qVnJz0xISMJs+qSdJT8v4W4Uc6+crnHjAc7T7eAin3i3y/GY/MA44isCACmhx +Rq165laaHXnqTOgQfHhGjigJoH3JCnDYUwg6q+fMMBU2eALkOs+IbgdfVB3hoyo UOlYH/A25nuI0PrRgUKsN6N2lrfPjq3bM4twDw33BOyGJ/LN88w= =aNBd -----END PGP SIGNATURE-----
PS. If your tzdata parser does not yet support negative DST offsets or times past 24:00, or if it insists on a 'pacificnew' file that is no longer present, this release's data entries can be turned into a rearguard-format tarball that should work even with these older parsers. This is intended to be a temporary transition aid for these parsers. To generate a rearguard-format tarball, obtain the full distribution as described above, and run the command 'make rearguard_tarballs' on a development host. Or you can run 'make rearguard.zi' to generate a single file that can be fed directly to a parser that works like 'zic'.
On 9/28/21 4:56 PM, Stephen Colebourne via tz wrote:
What I discovered was that the primary damage to Joda-Time would have come from the commit that move the Links from the main files to backward (2a18a625a0171e5c54249a54179eda3409b1b838).
Thank you for reporting the problem. The commit you mention is independent of the alike-since-1970 merge and so it's not that important. I reverted it by installing the attached patch into the tzdb development repository. If you'll compare the resulting 'backward' file to what you derived in your copy, you should find only a couple of minor differences, which I'm also attaching to this email separately, as a convenience. I hope this serves as an effective merge of the two versions. It sounds like we should release tzdb 2021c shortly, since this is a significant problem downstream.
Previous merges have not (I believe) moved the resulting link into backward.
Previous merges were not consistent. Sometimes they moved the resulting Link into 'backward' (e.g., America/Coral_Harbour, Europe/Belfast), but often (as you noticed) they did not. Although (as others have noted in recent emails to this list) it would be nice to fix Link inconsistencies, that's not urgent and right now the priority is to address the 2021b compatibility issue that you mentioned.
On Wed, 29 Sept 2021 at 10:06, Paul Eggert <eggert@cs.ucla.edu> wrote:
On 9/28/21 4:56 PM, Stephen Colebourne via tz wrote:
What I discovered was that the primary damage to Joda-Time would have come from the commit that move the Links from the main files to backward (2a18a625a0171e5c54249a54179eda3409b1b838).
Thank you for reporting the problem. The commit you mention is independent of the alike-since-1970 merge and so it's not that important. I reverted it by installing the attached patch into the tzdb development repository.
I can't see it here https://github.com/eggert/tz/commits/main
If you'll compare the resulting 'backward' file to what you derived in your copy, you should find only a couple of minor differences, which I'm also attaching to this email separately, as a convenience. I hope this serves as an effective merge of the two versions.
I think what the "correct" answer for those two locations is probably depends on the larger discussion, so that is OK for now AFAICT.
It sounds like we should release tzdb 2021c shortly, since this is a significant problem downstream.
This would be very helpful for those Joda-Time users that install the data set manually, thanks.
Previous merges were not consistent. Sometimes they moved the resulting Link into 'backward' (e.g., America/Coral_Harbour, Europe/Belfast), but often (as you noticed) they did not. Although (as others have noted in recent emails to this list) it would be nice to fix Link inconsistencies,
I agree that having a consistent set of rules and data is a good aim. thanks Stephen
On 9/29/21 3:45 AM, Stephen Colebourne via tz wrote:
Thank you for reporting the problem. The commit you mention is independent of the alike-since-1970 merge and so it's not that important. I reverted it by installing the attached patch into the tzdb development repository.
I can't see it here https://github.com/eggert/tz/commits/main
Oh, sorry, I forgot to 'git push'. I pushed, and it's visible now.
On 28/09/2021 18.01, Paul Ganssle via tz wrote:
I'd like to try and be as consistent as possible with what the majority of repackagers are doing [...] Anyone tracking who did what who could weigh in on this?
The changelog entry for the Debian stable tzdata package update released today says: * Cherry-pick patches from tzdata-2021b until the upstream situation gets less confused: - 01-no-leap-second-2021-12-31.patch: No leap second on 2021-12-31 as per IERS Bulletin C 62. - 02-samoa-dst.patch: Samoa no longer observes DST. - 03-jordan-dst.patch: Jordan now starts DST on February's last Thursday. -M-
Hi, On 2021-09-28 19:21, Matthew Woodcraft via tz wrote:
On 28/09/2021 18.01, Paul Ganssle via tz wrote:
I'd like to try and be as consistent as possible with what the majority of repackagers are doing [...] Anyone tracking who did what who could weigh in on this?
The changelog entry for the Debian stable tzdata package update released today says:
* Cherry-pick patches from tzdata-2021b until the upstream situation gets less confused: - 01-no-leap-second-2021-12-31.patch: No leap second on 2021-12-31 as per IERS Bulletin C 62. - 02-samoa-dst.patch: Samoa no longer observes DST. - 03-jordan-dst.patch: Jordan now starts DST on February's last Thursday.
I confirm that. Please note that the goal is to eventually ship 2021b (or 2021c depending on the timing). However the big changes introduced in 2021b need more testing time than what the urgency of shipping the Samoa DST update in a stable release allowed, we do not want any breakage there. Regards, Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
On 9/28/21 10:01, Paul Ganssle via tz wrote:
For those on the list who re-package this, what did / do you plan to release? A version using `PACKRATDATA=backzone`, or no?
I don't know of major distributions using PACKRATDATA=backzone, and as I mentioned earlier I wouldn't recommend switching to that option if you're worried about pre-1970 churn, as it would change many more pre-1970 timestamps than 2021b does. PACKRATDATA=backzone is intended mostly for astrologers and suchlike who want access to pre-1970 data even if it's out-of-scope and/or woefully incomplete and/or wrong. For what it's worth, Red Hat rawhide rebased to 2021b on Saturday, and also included my followup patch to fix the Jan Mayen typo. See: https://src.fedoraproject.org/rpms/tzdata/c/c1c7aed6464460ab060ed09cd87ad872... It's their normal practice to test this sort of thing extensively before distributing to Fedora and eventually to RHEL users, and they're quite good about letting us know of any issues that come up. As Matthew noted, Debian cherry-picked the Samoa and Fiji changes, as well as the update to leap second expiration. Debian has cherry-picked in the past, and I'm not surprised they did it this time too given all the uproar on the mailing list. Consideration of packaging 2021b is one of Debian's high-priority items in their tracker list; see <https://tracker.debian.org/pkg/tzdata>.
Paul Eggert via tz <tz@iana.org> writes:
Consideration of packaging 2021b is one of Debian's high-priority items in their tracker list; see <https://tracker.debian.org/pkg/tzdata>.
For those not familiar with how the Debian package tracker works, it may be helpful to know that those entries are automatically added based on analysis of the upstream release repository and the current version of the Debian package. They aren't manually created by a human and therefore don't reflect a human decision (one way or the other). -- Russ Allbery (eagle@eyrie.org) <https://www.eyrie.org/~eagle/>
On 2021-09-29 01:01:42 (+0800), Paul Ganssle via tz wrote:
For those on the list who re-package this, what did / do you plan to release? A version using `PACKRATDATA=backzone`, or no?
I imported 2021b as-is to FreeBSD main on Sunday. I am still trying to decide what to do about the stable branches and supported releases.
I'd like to try and be as consistent as possible with what the majority of repackagers are doing, so I'm assuming I should go ahead with a standard build, but if a good fraction of people chose to semi-fork by using the provided make file option, that would be fine with me as well (and presumably would be better for people who have hard-coded transitions into their applications anyway). Anyone tracking who did what who could weigh in on this?
It looks like RedHat shipped 2021b as-is but Debian cherry-picked. I am leaning towards the Debian approach and cherry-pick the Samoa and Jordan changes. I would also like to hear from other distributors. Philip -- Philip Paeps Senior Reality Engineer Alternative Enterprises
On Wed, 29 Sep 2021 11:30:46 +0800, Philip Paeps via tz wrote:
It looks like RedHat shipped 2021b as-is but Debian cherry-picked.
I am leaning towards the Debian approach and cherry-pick the Samoa and Jordan changes.
I would also like to hear from other distributors.
We just cherry-picked the Samoa and Jordan changes for OpenBSD 7.0. I haven't decided whether to merge the rest of 2021b for post-7.0. - todd
On 2021-09-29 11:36:59 (+0800), Todd C. Miller wrote:
On Wed, 29 Sep 2021 11:30:46 +0800, Philip Paeps via tz wrote:
It looks like RedHat shipped 2021b as-is but Debian cherry-picked.
I am leaning towards the Debian approach and cherry-pick the Samoa and Jordan changes.
I would also like to hear from other distributors.
We just cherry-picked the Samoa and Jordan changes for OpenBSD 7.0.
Thanks for that data point. This is another nudge in that direction for FreeBSD.
I haven't decided whether to merge the rest of 2021b for post-7.0.
If more distributions cherry-pick, I will probably revert the other changes in FreeBSD main. I am watching this discussion closely. Ideally a consensus will soon result in a 2021c release that we all agree to merge as-is. This cherry-picking business is a lot of work for all of us. It's also difficult to automate and therefore prone to errors. Philip -- Philip Paeps Senior Reality Engineer Alternative Enterprises
On 2021-09-29 12:11:14 (+0800), Philip Paeps via tz wrote:
On 2021-09-29 11:36:59 (+0800), Todd C. Miller wrote:
On Wed, 29 Sep 2021 11:30:46 +0800, Philip Paeps via tz wrote:
It looks like RedHat shipped 2021b as-is but Debian cherry-picked.
I am leaning towards the Debian approach and cherry-pick the Samoa and Jordan changes.
I would also like to hear from other distributors.
We just cherry-picked the Samoa and Jordan changes for OpenBSD 7.0.
Thanks for that data point. This is another nudge in that direction for FreeBSD.
I have now done this for FreeBSD stable/11, stable/12 and stable/13. https://cgit.freebsd.org/src/commit/?h=stable/13&id=634a009fa97371f517ce7be1... https://cgit.freebsd.org/src/commit/?h=stable/12&id=75245fdb05f25b1211ec9d0a... https://cgit.freebsd.org/src/commit/?h=stable/11&id=21e88c53735de2ba1036d871... These changes will be merged back to supported releases for errata notices. Philip -- Philip Paeps Senior Reality Engineer Alternative Enterprises
Date: Tue, 28 Sep 2021 13:01:42 -0400 From: Paul Ganssle via tz <tz@iana.org> Message-ID: <65ef98ab-ae74-071f-7a6c-062c7c76e0c9@ganssle.io> | For those on the list who re-package this, what did / do you plan to | release? A version using `PACKRATDATA=backzone`, or no? | | Normally I cut releases immediately after the announcement for Python's | tzdata I usually do NetBSD updates very soon after as well. Not this time. I'm still pondering what to do (including nothing; I don't know of many, perhaps any, NetBSD users in Samoa or Jordan, and while that normally would not be any kind of justification, here it lessens pressure to update). I also haven't copied tzdata2021b to munnari.oz.au's directory which provides a backup copy of the distributions, I'm not sure it is worth archiving. kre
Date: Wed, 29 Sep 2021 23:39:56 +0700 From: Robert Elz via tz <tz@iana.org> Message-ID: <24227.1632933596@jinx.noi.kre.to> | I'm still pondering what to do NetBSD has updated the Pacific/Apia and Asia/Amman zones to what they are in 2021b, but we have made none of the other changes. Some of the other correction type updates may get added in the next few days, the zone merging almost certainly will not. kre
On Sat 2021-10-02T05:47:00+0700 Robert Elz via tz hath writ:
NetBSD has updated the Pacific/Apia and Asia/Amman zones to what they are in 2021b, but we have made none of the other changes. Some of the other correction type updates may get added in the next few days, the zone merging almost certainly will not.
The overall pattern that I see is as if the downstream packagers are acting as a communal judge issuing an injunction to avoid immediate harm. I will not be surprised if the end result looks like that communal judge issuing a ruling saying that no matter what the current rules say, some things must be grandfathered under the old rules. -- Steve Allen <sla@ucolick.org> WGS-84 (GPS) UCO/Lick Observatory--ISB 260 Natural Sciences II, Room 165 Lat +36.99855 1156 High Street Voice: +1 831 459 3046 Lng -122.06015 Santa Cruz, CA 95064 https://www.ucolick.org/~sla/ Hgt +250 m
I just noticed in the NEWS file the following: On Fri, 24 Sep 2021, Paul Eggert via tz-announce via tz wrote:
However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once.
I find that a wholesome misrepresentation of the situation. The problem wasn't that you suggested to do too many changes at once, but that you were doing them *at all*. cheers, Derick -- PHP 7.4 Release Manager Host of PHP Internals News: https://phpinternals.news Like Xdebug? Consider supporting me: https://xdebug.org/support https://derickrethans.nl | https://xdebug.org | https://dram.io twitter: @derickr and @xdebug
On 9/29/21 2:41 AM, Derick Rethans wrote:
However, it omits most proposed changes that merged all Zones agreeing since 1970, as concerns were raised about doing too many of these changes at once.
The problem wasn't that you suggested to do too many changes at once, but that you were doing them *at all*.
Other people did express those concerns, which is why I omitted most of the proposed changes and documented the omission. Although I wasn't able to accommodate the particular concern that you expressed, due to the need to demonstrate real progress on the equity issue, what I wrote attempted to be a reasonably accurate summary of the concerns in question.
there should be a seperate one for Europe/Vaduz if any data is different.
Such a policy would entail a significant amount of work and/or the addition of a significant amount of wrong data to the database, for almost no benefit to users - a benefit that I expect would be exceeded by the overall cost to users.
I understand that for some use cases, people might want the smallest possible binary size.
That's a different goal, one that tzdb could well add an option for. Many tzdb use cases, for example, would be accommodated by an "alike-since 2020" merge. I mention 2020 since that's 50 years since 1970, and supporting these sorts of merges every 50 years or so could be useful in the long run (assuming this project survives the next 50 days :-). However, like you I don't think such an option should be the default (at least, not until 2070 or so :-).
participants (17)
-
Alois Treindl -
Andreas Radke -
Anthony Hernandez -
Aurelien Jarno -
Derick Rethans -
Jürgen Appel -
Matthew Woodcraft -
Paul Eggert -
Paul Eggert via tz-announce -
Paul Ganssle -
Philip Paeps -
Robert Elz -
Russ Allbery -
Steffen Nurpmeso -
Stephen Colebourne -
Steve Allen -
Todd C. Miller