Yesterday, while looking for information on the format of tar files, I discovered libarchive, which is part of FreeBSD. libarchive and read about 5 different tar formats, 4 different cpio formats, zip, and ISO images, and supports gzip and bzip2. It can also write 2 different tar formats plus cpio and shar. Very nice.
Oh, and its tar.5 is the best reference on the tar format I’ve seen.
I’ve packaged up libarchive and bsdtar (the default tar on FreeBSD, which is built using libarchive) for Debian.
I just discovered this in the context of trying to find a way to extract the contents of DVD images on a remote system where (a) I don’t have root to do loopback mounts and (b) the monolithic kernel doesn’t have iso9660 support even if I did. bsdtar was exactly what I was looking for. I found two bugs in symlink extraction (one of which I reported, the other of which I’ll report once I have a clue what’s going on with it), and sent the author a patch to handle large extents in DVD images properly, but aside from that it’s been great so far.