<div dir="ltr">I downloaded and extracted all of the links here <<a href="https://github.com/JuliaTime/TimeZones.jl/blob/v1.5.5/Artifacts.toml">https://github.com/JuliaTime/TimeZones.jl/blob/v1.5.5/Artifacts.toml</a>>. 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.<div><br></div><div>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.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 12, 2021 at 10:11 PM Paul Eggert <<a href="mailto:eggert@cs.ucla.edu">eggert@cs.ucla.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 5/12/21 4:30 PM, Peter Adelman wrote:<br>
<br>
> I am contacting you to let you know that some of the old releases of the <br>
> IANA time zones databases are missing (or perhaps have incorrect) <br>
> checksums in their .tars. The Julia language uses the IANA Time Zone <br>
> Databases for its TimeZones.jl package, and in the language's most <br>
> recent minor release (1.6) they started failing extractions where the <br>
> header checksum didn't match the standard.<br>
> <br>
> Here are two related tickets:<br>
> * <a href="https://github.com/JuliaTime/TimeZones.jl/issues/325" rel="noreferrer" target="_blank">https://github.com/JuliaTime/TimeZones.jl/issues/325</a> <br>
> <<a href="https://github.com/JuliaTime/TimeZones.jl/issues/325" rel="noreferrer" target="_blank">https://github.com/JuliaTime/TimeZones.jl/issues/325</a>><br>
> * <a href="https://github.com/JuliaIO/Tar.jl/issues/111" rel="noreferrer" target="_blank">https://github.com/JuliaIO/Tar.jl/issues/111</a> <br>
> <<a href="https://github.com/JuliaIO/Tar.jl/issues/111" rel="noreferrer" target="_blank">https://github.com/JuliaIO/Tar.jl/issues/111</a>><br>
> <br>
> Of the tzdata___.tar.gzs that I have looked at (I think that I explored <br>
> all of them while trying to build my Julia package), these have <br>
> problematic tar checksums:<br>
> 93g<br>
> 94a/b/d/e/f/h<br>
> 95b/c/d/e/f/g/h/i/k/l/m<br>
> 96a/b/c/d/e/h/i<br>
> 1996n<br>
> 1997b/c<br>
> 1999f<br>
> <br>
> I checked two of them by hand (1997b and one other that I didn't note) <br>
> and both had blank header checksum bytes (0). ( <br>
> <a href="https://www.gnu.org/software/tar/manual/html_node/Standard.html" rel="noreferrer" target="_blank">https://www.gnu.org/software/tar/manual/html_node/Standard.html</a> <br>
> <<a href="https://www.gnu.org/software/tar/manual/html_node/Standard.html" rel="noreferrer" target="_blank">https://www.gnu.org/software/tar/manual/html_node/Standard.html</a>> )<br>
> <br>
> Anyway, the glory of standards releases is that they don't change so <br>
> obviously I understand not changing it, but I thought I'd reach out with <br>
> the information anyway.<br>
<br>
Those old tarballs were built by old SunOS tar, which computed some <br>
checksums incompatibly with POSIX <br>
<<a href="https://www.gnu.org/software/tar/manual/html_node/Checksumming.html" rel="noreferrer" target="_blank">https://www.gnu.org/software/tar/manual/html_node/Checksumming.html</a>> <br>
and which put leading spaces into numeric fields, contra POSIX. GNU Tar <br>
is generous and accepts these old tarballs, but perhaps TimeZones.jl has <br>
never had to deal with old SunOS tar, or maybe Julia's <br>
tarball-extracting library has a "let's be generous in what we accept" <br>
option that TimeZones.jl could enable.<br>
<br>
I installed the attached to tz-link to document some of this. This patch <br>
assumes that 1999g and later are OK (I haven't checked this).<br>
</blockquote></div>