This brings in all of the updates from libarchive 2.5.4b plus
the most critical of the fixes from 2.5.5. Note the internal
version is 1.9.25 to mark the fact that it still uses the
libarchive 1.x API in order to preserve API/ABI compatibility
with previous FreeBSD 6 releases.
This is identical to libarchive 2.2.3 from -CURRENT, with
all of the performance improvements, bug fixes, and new
formats, except that:
* archive_read_finish() and archive_write_finish() don't return errors
* archive_write_data() has a different return type
* user-provided skip callbacks have a slightly different signature
These differences maintain ABI compatibility with libarchive 1.3.1
(hence the "1" in "1.9") and allows libarchive 1.9 to have the
same SHLIB_MAJOR and otherwise serve as a straight replacement
for libarchive 1.3.1 (only better).
Thanks to: Many, many people who contributed error reports, bug fixes,
and suggestions over the last three years. ;-)
the following:
* License updates.
* Fixes for FreeBSD/arm
* New read_open_filename, read_open_memory
* New write_open_filename, write_open_memory
* Write-blocking cleanup (cperciva@)
* Adjust API so read_open/write_open funcs only need public API
* Portability improvements (casts, include guards, etc.)
* Properly pad sparse archive entries with blocks of zero bytes (cperciva@)
* Correct copy of data to file when very large reads are possible
* Be more flexible about dir permissions to avoid some fixups
* Correct skip handling for entries over 2G (cperciva@)
* ISO9660: skip entries faster, support entries over 2G
* Tar: correct position accounting when skipping large entries (cperciva@)
* Support unbuffered write as a special case (blocksize=0) (cperciva@)
* Documentation corrections, improvements
* Spelling corrections (cperciva@)
* Improve some internal error returns
A few of these changes break the API/ABI and are therefore conditional
on the version number. FreeBSD 6 will continue to use libarchive 1.x,
which will continue to use the old API/ABI. When all of these changes
are ready, the libarchive version number will be changed in -CURRENT
to enable the new API. Hopefully, this will allow the actual source
to remain identical between FreeBSD 6 and 7; only the version
parameters in the Makefile will be different.
archive formats supported by libarchive, with some information about
the relative strengths and weaknesses of each format and notes about
issues with libarchive's support for those formats.
This page should make it unnecessary to list all of the libarchive
formats in the manpage of each program that uses libarchive.
Such programs can simply refer to libarchive-formats(5).