Closed ThomasBreuer closed 2 years ago
Seems like you're using an old version of Tar
. What is your Julia version / Tar version?
@StefanKarpinski Thanks for your interest.
I use Julia 1.6.5 together with its Tar package under share/julia/stdlib/v1.6/Tar
.
Perhaps the problem is that the archive in my example has been created (some time ago) with an older tar
version, since the problem does not occur with a recently created archive of a newer version (url = "http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/atlasrep-2.1.1.tar.gz
).
Outside Julia, both archives can be unpacked with tar xvzf <archivename>.tar.gz
.
The problem is that this tar file contains a hard link entry and Julia/Tar did not add hard link support until Julia 1.7. SHowever, this tar file also has another oddity which wasn't fixed until more recently in 1.8: it includes the file atlasrep/doc/chooser.html
twice and the second instance is a hard link to the first (with the same path). You can avoid this by not listing the file twice when constructing the tar file, which will produce a tar file without any hard links which will be usable by Julia 1.6.
Thanks for inspecting this. Of course someone who creates tar archives can try to avoid certain complications. However, the point is that a general tool for dealing with tar archives cannot expect this. The problem above arose when I tried to process a list of tar archives automatically with Julia's Tar, and it turned out that Julia was apparently not (yet) the right tool for that.
This is already fixed in Julia 1.8, which is in beta. We cannot backport support for hard links to Julia 1.6 because this is a feature and semantic versioning dictates that we not add features in patch releases. Anyone who needs to extract tarballs with hard links like this one will need use a newer Julia version.
Today I observed the following problem with Julia's Tar package.
The last command results in the following error message.
The archive can be unpacked without problems by tar. Is the problem in the archive?