[tz] IANA .tar.gz files with incorrect checksums

Peter Adelman peter.c.adelman at gmail.com
Thu May 13 02:36:55 UTC 2021


I downloaded and extracted all of the links here <
https://github.com/JuliaTime/TimeZones.jl/blob/v1.5.5/Artifacts.toml>. The
ones from the original e-mail were the only ones that caused problems, so
anything >=1999g passed the header checksum test implemented in Tar.jl and
should be fine.

Thanks for the explanation and the .patch. I am an end user of Julia (not a
developer of any of the projects involved here), but your reply clears
things up and I have communicated it to the teams.

On Wed, May 12, 2021 at 10:11 PM Paul Eggert <eggert at cs.ucla.edu> wrote:

> On 5/12/21 4:30 PM, Peter Adelman wrote:
>
> > I am contacting you to let you know that some of the old releases of the
> > IANA time zones databases are missing (or perhaps have incorrect)
> > checksums in their .tars. The Julia language uses the IANA Time Zone
> > Databases for its TimeZones.jl package, and in the language's most
> > recent minor release (1.6) they started failing extractions where the
> > header checksum didn't match the standard.
> >
> > Here are two related tickets:
> > * https://github.com/JuliaTime/TimeZones.jl/issues/325
> > <https://github.com/JuliaTime/TimeZones.jl/issues/325>
> > * https://github.com/JuliaIO/Tar.jl/issues/111
> > <https://github.com/JuliaIO/Tar.jl/issues/111>
> >
> > Of the tzdata___.tar.gzs that I have looked at (I think that I explored
> > all of them while trying to build my Julia package), these have
> > problematic tar checksums:
> > 93g
> > 94a/b/d/e/f/h
> > 95b/c/d/e/f/g/h/i/k/l/m
> > 96a/b/c/d/e/h/i
> > 1996n
> > 1997b/c
> > 1999f
> >
> > I checked two of them by hand (1997b and one other that I didn't note)
> > and both had blank header checksum bytes (0). (
> > https://www.gnu.org/software/tar/manual/html_node/Standard.html
> > <https://www.gnu.org/software/tar/manual/html_node/Standard.html> )
> >
> > Anyway, the glory of standards releases is that they don't change so
> > obviously I understand not changing it, but I thought I'd reach out with
> > the information anyway.
>
> Those old tarballs were built by old SunOS tar, which computed some
> checksums incompatibly with POSIX
> <https://www.gnu.org/software/tar/manual/html_node/Checksumming.html>
> and which put leading spaces into numeric fields, contra POSIX. GNU Tar
> is generous and accepts these old tarballs, but perhaps TimeZones.jl has
> never had to deal with old SunOS tar, or maybe Julia's
> tarball-extracting library has a "let's be generous in what we accept"
> option that TimeZones.jl could enable.
>
> I installed the attached to tz-link to document some of this. This patch
> assumes that 1999g and later are OK (I haven't checked this).
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mm.icann.org/pipermail/tz/attachments/20210512/effb4e0f/attachment.html>


More information about the tz mailing list