From eggert at cs.ucla.edu Fri Apr 24 04:30:20 2020 From: eggert at cs.ucla.edu (Paul Eggert) Date: Thu, 23 Apr 2020 21:30:20 -0700 Subject: [tz-announce] 2020a release of tz code and data available Message-ID: The 2020a release of the tz code and data is available. It reflects the following changes, which were either circulated on the tz mailing list or are relatively minor technical or administrative changes: Briefly: Morocco springs forward on 2020-05-31, not 2020-05-24. Canada's Yukon advanced to -07 year-round on 2020-03-08. America/Nuuk renamed from America/Godthab. zic now supports expiration dates for leap second lists. Changes to future timestamps Morocco's second spring-forward transition in 2020 will be May 31, not May 24 as predicted earlier. (Thanks to Semlali Naoufal.) Adjust future-year predictions to use the first Sunday after the day after Ramadan, not the first Sunday after Ramadan. Canada's Yukon, represented by America/Whitehorse and America/Dawson, advanced to -07 year-round, beginning with its spring-forward transition on 2020-03-08, and will not fall back on 2020-11-01. Although a government press release calls this "permanent Pacific Daylight Saving Time", we prefer MST for consistency with nearby Dawson Creek, Creston, and Fort Nelson. (Thanks to Tim Parenti.) Changes to past timestamps Shanghai observed DST in 1919. (Thanks to Phake Nick.) Changes to timezone identifiers To reflect current usage in English better, America/Godthab has been renamed to America/Nuuk. A backwards-compatibility link remains for the old name. Changes to code localtime.c no longer mishandles timestamps after the last transition in a TZif file with leap seconds and with daylight saving time transitions projected into the indefinite future. For example, with TZ='America/Los_Angeles' with leap seconds, zdump formerly reported a DST transition on 2038-03-14 from 01:59:32.999... to 02:59:33 instead of the correct transition from 01:59:59.999... to 03:00:00. zic -L now supports an Expires line in the leapseconds file, and truncates the TZif output accordingly. This propagates leap second expiration information into the TZif file, and avoids the abovementioned localtime.c bug as well as similar bugs present in many client implementations. If no Expires line is present, zic -L instead truncates the TZif output based on the #expires comment present in leapseconds files distributed by tzdb 2018f and later; however, this usage is obsolescent. For now, the distributed leapseconds file has an Expires line that is commented out, so that the file can be fed to older versions of zic which ignore the commented-out line. Future tzdb distributions are planned to contain a leapseconds file with an Expires line. The configuration macros HAVE_TZNAME and USG_COMPAT should now be set to 1 if the system library supports the feature, and 2 if not. As before, these macros are nonzero if tzcode should support the feature, zero otherwise. The configuration macro ALTZONE now has the same values with the same meaning as HAVE_TZNAME and USG_COMPAT. The code's defense against CRLF in leap-seconds.list is now portable to POSIX awk. (Problem reported by Deborah Goldsmith.) Although the undocumented tzsetwall function is not changed in this release, it is now deprecated in preparation for removal in future releases. Due to POSIX requirements, tzsetwall has not worked for some time. Any code that uses it should instead use tzalloc(NULL) or, if portability trumps thread-safety, should unset the TZ environment variable. Changes to commentary The ?les-de-la-Madeleine and the Listuguj reserve are noted as following America/Halifax, and comments about Yukon's "south" and "north" have been corrected to say "east" and "west". (Thanks to Jeffery Nichols.) Here are links to the release files: https://www.iana.org/time-zones/repository/releases/tzcode2020a.tar.gz https://www.iana.org/time-zones/repository/releases/tzdata2020a.tar.gz https://www.iana.org/time-zones/repository/releases/tzdb-2020a.tar.lz As usual, links to the latest release files are here: 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 7aec41a1d9b57c581af086db5de5bf99b165c405 dated 2020-04-23 16:03:47 -0700 and tagged '2020a' in the development GitHub repository at . Here are the SHA-512 checksums for the release files: 5235d6590e844491df32375857f5f36ba0046f2d21a078375188dff79b125cf9b69136a0a431624de1ecfa9d53b62a232f0e6ee0b734294cec62b670e6265cb2 tzcode2020a.tar.gz 2a2fc2e3ad8a6e4c574242296c847ad582c2c1d86add9c556e65c812d19b9528522e3c4dddb5239017091825d2acc5a2ccaf21dc41b900b6c300ef4264cc5a9d tzdata2020a.tar.gz 6ef3ed39ee379adce421e7964ce9cf3d36361e2ba29de78e43b36d524c5722fd151c11ac60c952130d2623ecea9d8b56b4652f394e60a893a76d2ad769072d9d tzdb-2020a.tar.lz Here are the GPG checksums for the release files: -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAl6iH9IACgkQ7ZfpDmKq fjQK6BAAgxpJVrK35eNuGheX51np4f7mOAomDzMqXSaYZqYLW2EZCa+JW6VWfrEm eMZYVA/U33WsIGTjyyjfmq5FVwIQj0An+mAtlOR5dd34/ikGddZjd28ChrMW9+56 VFS7dA2pUjMzQp7yGG5sVek5OeGaHajfwxzBptPrsK+JwyNC1RcGetEcrgUwwznX S1iiLFvfzgVhrqnYzthIuoUikLSUkNumkr4/8frsYwywQ0axAzpkLi5rWxOfZAi6 a1MLMXvKmzXeiNCu5oeKl2XfTymBUVyF7K3dzFdkrOto8pSTDR+BbSh88mbe7tct Rt0q/GRq8fityECzdVAzoAqCRUU97t8V4VHNFXSxy32CN99cjsLdRMiVVEGTq+TT A3m9FjQidSCP3apzQe9JDfj536gQFSkUmDlcFwya31zolRoWkIFmxIhmZWIYlm9T Wjqc7y7UnrBNvyDE4pemQ4YYHjk5YLjwoaUIafDJTAiDRfcf53SRlr3tbFcYjAt/ Tql77DWuLmg8PGFtRiyCMqrehboGi0Eu3he2MmYtsJB2ZXFN0yZQmlvDen9fkt1k EqUkKjhHmVBb5WVS5pbl8mGLr1TFtnnedmLw4xULrDzsyJ5tsqzVnkl6Ga/eoIal lLIxpXrYqQLdHNtTpdmJkqZ/89++HDov9JR0uMzU8LxFwH6duQ4= =0y/R -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAl6iH9MACgkQ7ZfpDmKq fjTb6g/+P/l6Nev5Zv8mUktnT6eNKohtgpNRyHd8nYV92wmTiDSzAArFy7oi5CVV /jMv8sbV1ssq/5rQ6HUQuMDPgEIO405gxmqRWMhE6UwUbRxxa+/HKGUJH0AHY6Dh 1UhVD7QA6fDovs84ip/WgTEZYcYApLr2A3IfC0rDqDo42DiSnErFQDvqRMJQkQS1 p2Pv7YtW/2NZ52wkfq75klSsjlXzlz6CzM5P3/YU/Hylj42sQdbdtbUAyQug3YpD QQ2PiZoP92iiGrcwkKXa5xvXJ6jEZCXqi7HbJKt8OW+XpZ/ZYbTZRq+JvMbTqkOL +XvVufo/pVASgv2V0ynzJu/XRiFUeJaecmEg6QiAiJ74UMTXSGFnK//R32M9dp29 B4p2X2jmW9qjCwjbjQXl1Yl5ddlSyvBk2Lk4s1repQ2t7kphZx2C8P2WyQYGeP7H nZDucfmWK4OSh8cINexBE8xyagmv1T8mC4qEQbVPva6JysaodNBcf9WkKMCgituP tbPsVekSmG1GyN2ixPtpY86Fzjr60mEg1UKqHZIagRmH4kjUwd1gINCJgONaZZxo c1VfBD8ZORBZfG27+V5ISotKrK2UrKtcrSUEU1CC/ibOm1sSPfg0d5uxUVvg4E8+ okdszbMnQ1i0eVKW+L+jY5XOO8kmSLp4YcnrqXDyZabxyWIGMt4= =7U2J -----END PGP SIGNATURE----- -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEfjeSqdis99YzvBWI7ZfpDmKqfjQFAl6iH9QACgkQ7ZfpDmKq fjTDQQ//S8WK8/aBHCKOiNvNFL82SHsrwSzsMt/5AyWzTUgkZZdhuhPmCu/qim0M J6Gm+1XUPaq6WKQnHbNk4wrmKjlRX/R1DWIA+2FhVH0iFSAX+qrnc/KUkm0hVXg4 u8aylAUOQvdhDfVX4PafCx21Kf1sk46oleRgi5lr3cSPAIKGsiEQKGR5EMbt/8mt 55zpxYGTj4o8yjY4NqEOBD8SHts0BO0xFq2eh6C71KeTeHKm/SasIFbvhIZug2cO YQyAnBiybfsSwIPXfYZr9ux81BztdzkzS6n1EBgGrHmk/+xrpBbmaknjFDMu+Nln qOPnTQCmp3NBXOYeVnxMAgIy07yEcAR7ReV0FuJFaxrkGYstfV6k5ylhk1iuHnIZ dOPSJa4eD+cIPWJTo0AsOkNx8+xJ6DkP8iudCpGUrEmXFSoMuFr8b5QwOxsRF/eC oIIRVO35gF12xr424DVKE72Z8yELoDGXzfWh8UbY/j0Lasq6RXqF9mrCMrugxlwx 1GofM2zrIkzkgLfMoV5zJfKrPiLPj213uGmrctJNcSggtSEA0DBvSvuhVe8hzolZ /taWc+/gCPBv159s3qedQyQbfHY0/IIkePdezwn4f7DQvh7MTOteE81AwJvqtkmQ fhSp+hz9k5m4CKuY9+71p+Srefc0i8PsBpmVCDYUn6PFqXaXsiA= =dCQ0 -----END PGP SIGNATURE----- PS. If your tzdata parser does not yet support negative DST offsets or times past 24:00, this release's data entries can be turned into a rearguard-format tarball that does not use these features. 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'.