snoyberg / tar-conduit

Conduit based tar extraction mechanism
MIT License
8 stars 9 forks source link

Implement very common pax interchange format #13

Open lehins opened 6 years ago

lehins commented 6 years ago

IEEE Std 1003.1-2001 (`POSIX.1'') specifies [pax interchange format](https://github.com/libarchive/libarchive/wiki/ManPageTar5#pax-interchange-format) that solves quite a few limitations of the olderustar. One of those limitations is a problem with largeownerIdandgroupId` on MacOs that don't fit in a regular header. This had a direct affect on fpco/cache-s3#1

mpilgrem commented 1 year ago

git archive --format=tar produces PAX format tar files. Data.Conduit.Tar.withFileInfo does not support PAX format tar files, and this results in silent corruption when the x typeflag is used for longer filenames or directory names. This is problematic for Stack/Pantry, because Pantry uses git archive -o foo.tar for repositories, followed by the use of untar.