cvs commit: src/lib/libarchive archive_read_support_format_tar.c
src/lib/libarchive/test test_read_format_gtar_sparse.c
Tim Kientzle
kientzle at FreeBSD.org
Sat Aug 18 14:53:26 PDT 2007
kientzle 2007-08-18 21:53:25 UTC
FreeBSD src repository
Modified files:
lib/libarchive archive_read_support_format_tar.c
lib/libarchive/test test_read_format_gtar_sparse.c
Log:
This commit updates libarchive to be compatible with
GNU tar 1.17's implementation of --posix --sparse,
at the cost of losing compatibility with GNU tar 1.16.
Fortunately, the 1.17 implementation actually makes sense,
so the libarchive code is now a bit more straightforward
than before.
Background: GNU tar 1.16 defined a new way to store
sparse files in --posix archives. Unfortunately,
the implementation incorrectly inserted several
blocks of null padding after each such entry.
As a result, non-GNU tar implementations saw the
archive as truncated after any sparse entry.
This was fixed in GNU tar 1.17 at the cost of
losing compatibility with GNU tar 1.16 for this
new format (which is not the default, so hopefully
rarely used). Libarchive recently gained support
for reading the GNU tar 1.16 formats; this commit
updates it to read the GNU tar 1.17 variant instead.
Approved by: re (ksmith for libarchive portion)
Approved by: re (blanket for libarchive_test portion)
MFC after: 5 days
Revision Changes Path
1.61 +63 -47 src/lib/libarchive/archive_read_support_format_tar.c
1.6 +534 -133 src/lib/libarchive/test/test_read_format_gtar_sparse.c
More information about the cvs-src
mailing list