<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">FWIW, the tar format is a mess, which is part of why I chose to bind to libarchive (with all the difficulties) instead of writing my own library. There’s a nice post here: <a href="https://www.cyphar.com/blog/post/20190121-ociv2-images-i-tar" class="">https://www.cyphar.com/blog/post/20190121-ociv2-images-i-tar</a><div class=""><br class=""></div><div class="">There’s also archive-sig (<a href="http://hackage.haskell.org/package/archive-sig" class="">http://hackage.haskell.org/package/archive-sig</a>) which tries to be a “common interface” via backpack and has implementations such as archive-tar-bytestring (<a href="http://hackage.haskell.org/package/archive-tar-bytestring" class="">http://hackage.haskell.org/package/archive-tar-bytestring</a>) that can be swapped out with libarchive/tar proper so you don’t need to commit to any one library. </div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Vanessa McHale<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Apr 7, 2020, at 11:50 AM, hasufell <<a href="mailto:hasufell@posteo.de" class="">hasufell@posteo.de</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Friends,<br class=""><br class="">'tar' [0][1] is an excellent native haskell implementation of the tar<br class="">format. However, there are currently a lot of unattended issues:<br class=""><br class="">* unicode filepaths broken due to Char8 use [2]<br class="">* executable bits handled improperly [3]<br class="">* no support for long filepath extension [4][5]<br class="">* doesn't handle hardlinks properly [6]<br class="">* handles symbolic links too strictly [7]<br class=""><br class="">Most of these issues are 2 to 4 years old, some of them have PRs that<br class="">have never been reviewed.<br class=""><br class="">'tar' fails to unpack our own ghc bindists even [4]. I consider it, in<br class="">this state, too unreliable for production use. Since it is in the<br class="">'haskell' namespace on github and probably the first hit on hackage,<br class="">this needs to be improved quickly, IMO.<br class=""><br class="">Users currently can use tar-bytestring [8] (no windows support) or<br class="">libarchive [9] (not a native implementation), but 'tar' should<br class="">ultimately be fixed and maintained properly.<br class=""><br class="">--<br class="">[0] <a href="https://hackage.haskell.org/package/tar" class="">https://hackage.haskell.org/package/tar</a><br class="">[1] <a href="https://github.com/haskell/tar" class="">https://github.com/haskell/tar</a><br class="">[2] <a href="https://github.com/haskell/tar/issues/6" class="">https://github.com/haskell/tar/issues/6</a><br class="">[3] <a href="https://github.com/haskell/tar/issues/25" class="">https://github.com/haskell/tar/issues/25</a><br class="">[4] <a href="https://github.com/haskell/tar/issues/49" class="">https://github.com/haskell/tar/issues/49</a><br class="">[5] <a href="https://github.com/haskell/tar/issues/27" class="">https://github.com/haskell/tar/issues/27</a><br class="">[6] <a href="https://github.com/haskell/tar/issues/51" class="">https://github.com/haskell/tar/issues/51</a><br class="">[7] <a href="https://github.com/haskell/tar/issues/32" class="">https://github.com/haskell/tar/issues/32</a><br class="">[8] <a href="https://github.com/hasufell/tar-bytestring" class="">https://github.com/hasufell/tar-bytestring</a><br class="">[9] <a href="https://hackage.haskell.org/package/libarchive" class="">https://hackage.haskell.org/package/libarchive</a><br class="">--<br class=""><br class=""><br class="">Cheers,<br class="">Julian<br class="">_______________________________________________<br class="">Libraries mailing list<br class=""><a href="mailto:Libraries@haskell.org" class="">Libraries@haskell.org</a><br class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries<br class=""></div></div></blockquote></div><br class=""></div></body></html>