[tz-announce] 2020a release of tz code and data available

Paul Eggert eggert at cs.ucla.edu
Fri Apr 24 04:30:20 UTC 2020


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 <https://github.com/eggert/tz>.

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'.


More information about the tz-announce mailing list