123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- <!-- Creator : groff version 1.22.4 -->
- <!-- CreationDate: Tue Jul 18 07:11:06 2023 -->
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta name="generator" content="groff -Thtml, see www.gnu.org">
- <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
- <meta name="Content-Style" content="text/css">
- <style type="text/css">
- p { margin-top: 0; margin-bottom: 0; vertical-align: top }
- pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
- table { margin-top: 0; margin-bottom: 0; vertical-align: top }
- h1 { text-align: center }
- </style>
- <title></title>
- </head>
- <body>
- <hr>
- <p>LIBARCHIVE_CHANGES(3) BSD Library Functions Manual
- LIBARCHIVE_CHANGES(3)</p>
- <p style="margin-top: 1em"><b>NAME</b></p>
- <p style="margin-left:6%;"><b>libarchive_changes</b>
- — changes in libarchive interface</p>
- <p style="margin-top: 1em"><b>CHANGES IN LIBARCHIVE
- 3</b></p>
- <p style="margin-left:6%;">This page describes user-visible
- changes in libarchive3, and lists public functions and other
- symbols changed, deprecated or removed in libarchive3, along
- with their replacements if any.</p>
- <p style="margin-left:6%; margin-top: 1em"><b>Multiple
- Filters</b> <br>
- Libarchive2 permitted a single (input or output) filter
- active on an archive. Libarchive3 extends this into a
- variable-length stack. Where
- <b>archive_write_set_compression_XXX</b>() would replace any
- existing filter, <b>archive_write_add_filter_XXX</b>()
- extends the write pipeline with another filter.</p>
- <p style="margin-left:6%; margin-top: 1em"><b>Character Set
- Handling</b> <br>
- Libarchive2 assumed that the local platform uses Unicode as
- the native wchar_t encoding, which is true on Windows,
- modern Linux, and a few other systems, but is certainly not
- universal. As a result, pax format archives were written
- incorrectly on some systems, since pax format requires UTF-8
- and libarchive 2 incorrectly assumed that wchar_t strings
- can be easily converted to UTF-8.</p>
- <p style="margin-left:6%; margin-top: 1em">Libarchive3 uses
- the standard iconv library to convert between character sets
- and is introducing the notion of a “default character
- set for the archive”. To support this, archive_entry
- objects can now be bound to a particular archive when they
- are created. The automatic character set conversions
- performed by archive_entry objects when reading and writing
- filenames, usernames, and other strings will now use an
- appropriate default character set:</p>
- <p style="margin-left:6%; margin-top: 1em">If the
- archive_entry object is bound to an archive, it will use the
- default character set for that archive.</p>
- <p style="margin-left:6%; margin-top: 1em">The platform
- default character encoding (as returned by
- <b>nl_langinfo</b>(<i>CHARSET</i>)) will be used if nothing
- else is specified.</p>
- <p style="margin-left:6%; margin-top: 1em">Libarchive3 also
- introduces charset options to many of the archive readers
- and writers to control the character set that will be used
- for filenames written in those archives. When possible, this
- will be set automatically based on information in the
- archive itself. Combining this with the notion of a default
- character set for the archive should allow you to configure
- libarchive to read archives from other platforms and have
- the filenames and other information transparently converted
- to the character encoding suitable for your application.</p>
- <p style="margin-left:6%; margin-top: 1em"><b>Prototype
- Changes</b> <br>
- These changes break binary compatibility; libarchive3 has a
- new shared library version to reflect these changes. The
- library now uses portable wide types such as int64_t instead
- of less-portable types such as off_t, gid_t, uid_t, and
- ino_t.</p>
- <p style="margin-left:6%; margin-top: 1em">There are a few
- cases where these changes will affect your source code:</p>
- <p style="margin-top: 1em"><b>•</b></p>
- <p style="margin-left:13%;">In some cases,
- libarchive’s wider types will introduce the
- possibility of truncation: for example, on a system with a
- 16-bit uid_t, you risk having uid 65536 be truncated to uid
- 0, which can cause serious security problems.</p>
- <p style="margin-top: 1em"><b>•</b></p>
- <p style="margin-left:13%;">Typedef function pointer types
- will be incompatible. For example, if you define custom skip
- callbacks, you may have to use code similar to the following
- if you want to support building against libarchive2 and
- libarchive3:</p>
- <p style="margin-left:13%; margin-top: 1em">#if
- ARCHIVE_VERSION_NUMBER < 3000000 <br>
- typedef off_t myoff_t; <br>
- #else <br>
- typedef int64_t myoff_t; <br>
- #endif</p>
- <p style="margin-left:13%; margin-top: 1em">myoff_t <br>
- my_skip_function(struct archive *a, void *v, myoff_t o) <br>
- { <br>
- ... implementation ... <br>
- }</p>
- <p style="margin-left:6%; margin-top: 1em">Affected
- functions:</p>
- <p style="margin-top: 1em"><b>• <br>
- archive_entry_gid</b>(), <b>archive_entry_set_gid</b>()
- <b><br>
- • <br>
- archive_entry_uid</b>(), <b>archive_entry_set_uid</b>()
- <b><br>
- • <br>
- archive_entry_ino</b>(), <b>archive_entry_set_ino</b>()
- <b><br>
- • <br>
- archive_read_data_block</b>(),
- <b>archive_write_data_block</b>() <b><br>
- • <br>
- archive_read_disk_gname</b>(),
- <b>archive_read_disk_uname</b>() <b><br>
- • <br>
- archive_read_disk_set_gname_lookup</b>(),
- <b>archive_read_disk_set_group_lookup</b>(),
- <b>archive_read_disk_set_uname_lookup</b>(),
- <b>archive_read_disk_set_user_lookup</b>() <b><br>
- •</b></p>
- <p style="margin-left:12%;"><b>archive_skip_callback</b>()</p>
- <p><b>• <br>
- archive_read_extract_set_skip_file</b>(),
- <b>archive_write_disk_set_skip_file</b>(),
- <b>archive_write_set_skip_file</b>() <b><br>
- • <br>
- archive_write_disk_set_group_lookup</b>(),
- <b>archive_write_disk_set_user_lookup</b>()</p>
- <p style="margin-left:6%; margin-top: 1em">Where these
- functions or their arguments took or returned gid_t, ino_t,
- off_t, or uid_t they now take or return int64_t or
- equivalent.</p>
- <p style="margin-left:6%; margin-top: 1em"><b>Deprecated
- Symbols</b> <br>
- Symbols deprecated in libarchive3 will be removed in
- libarchive4. These symbols, along with their replacements if
- any, are listed below:</p>
- <p style="margin-top: 1em"><b>archive_position_compressed</b>(),
- <b>archive_position_uncompressed</b>()</p>
- <p style="margin-left:13%;"><b>archive_filter_bytes</b>()</p>
- <p style="margin-top: 1em"><b>archive_compression</b>()</p>
- <p style="margin-left:13%;"><b>archive_filter_code</b>()</p>
- <p style="margin-top: 1em"><b>archive_compression_name</b>()</p>
- <p style="margin-left:13%;"><b>archive_filter_name</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_finish</b>(),
- <b>archive_write_finish</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_free</b>(),
- <b>archive_write_free</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_open_file</b>(),
- <b>archive_write_open_file</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_open_filename</b>(),
- <b>archive_write_open_filename</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_all</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_all</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_bzip2</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_bzip2</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_compress</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_compress</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_gzip</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_gzip</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_lzip</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_lzip</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_lzma</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_lzma</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_none</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_none</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_program</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_program</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_program_signature</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_program_signature</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_rpm</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_rpm</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_uu</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_uu</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_support_compression_xz</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_support_filter_xz</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_compression_bzip2</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_add_filter_bzip2</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_compression_compress</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_add_filter_compress</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_compression_gzip</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_add_filter_gzip</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_compression_lzip</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_add_filter_lzip</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_compression_lzma</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_add_filter_lzma</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_compression_none</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_add_filter_none</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_compression_program</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_add_filter_program</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_compression_filter</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_add_filter_filter</b>()</p>
- <p style="margin-left:6%; margin-top: 1em"><b>Removed
- Symbols</b> <br>
- These symbols, listed below along with their replacements if
- any, were deprecated in libarchive2, and are not part of
- libarchive3.</p>
- <p style="margin-top: 1em"><b>archive_api_feature</b>()</p>
- <p style="margin-left:13%;"><b>archive_version_number</b>()</p>
- <p style="margin-top: 1em"><b>archive_api_version</b>()</p>
- <p style="margin-left:13%;"><b>archive_version_number</b>()</p>
- <p style="margin-top: 1em"><b>archive_version</b>()</p>
- <p style="margin-left:13%;"><b>archive_version_string</b>()</p>
- <p style="margin-top: 1em"><b>archive_version_stamp</b>()</p>
- <p style="margin-left:13%;"><b>archive_version_number</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_set_filter_options</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_set_options</b>()
- or <b>archive_read_set_filter_option</b>()</p>
- <p style="margin-top: 1em"><b>archive_read_set_format_options</b>()</p>
- <p style="margin-left:13%;"><b>archive_read_set_options</b>()
- or <b>archive_read_set_format_option</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_filter_options</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_set_options</b>()
- or <b>archive_write_set_filter_option</b>()</p>
- <p style="margin-top: 1em"><b>archive_write_set_format_options</b>()</p>
- <p style="margin-left:13%;"><b>archive_write_set_options</b>()
- or <b>archive_write_set_format_option</b>()</p>
- <p style="margin-top: 1em">ARCHIVE_API_FEATURE</p>
- <p style="margin-left:13%;">ARCHIVE_VERSION_NUMBER</p>
- <p style="margin-top: 1em">ARCHIVE_API_VERSION</p>
- <p style="margin-left:13%;">ARCHIVE_VERSION_NUMBER</p>
- <p style="margin-top: 1em">ARCHIVE_VERSION_STAMP</p>
- <p style="margin-left:13%;">ARCHIVE_VERSION_NUMBER</p>
- <p style="margin-top: 1em">ARCHIVE_LIBRARY_VERSION</p>
- <p style="margin-left:13%;">ARCHIVE_VERSION_STRING</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_NONE</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_NONE</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_GZIP</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_GZIP</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_BZIP2</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_BZIP2</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_COMPRESS</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_COMPRESS</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_PROGRAM</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_PROGRAM</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_LZMA</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_LZMA</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_XZ</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_XZ</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_UU</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_UU</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_RPM</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_RPM</p>
- <p style="margin-top: 1em">ARCHIVE_COMPRESSION_LZIP</p>
- <p style="margin-left:13%;">ARCHIVE_FILTER_LZIP</p>
- <p style="margin-top: 1em">ARCHIVE_BYTES_PER_RECORD</p>
- <p style="margin-left:13%;">512</p>
- <p style="margin-top: 1em">ARCHIVE_DEFAULT_BYTES_PER_BLOCK</p>
- <p style="margin-left:13%;">10240</p>
- <p style="margin-top: 1em"><b>SEE ALSO</b></p>
- <p style="margin-left:6%;">archive_read(3),
- archive_read_filter(3), archive_read_format(3),
- archive_read_set_options(3), archive_util(3),
- archive_write(3), archive_write_filter(3),
- archive_write_format(3), archive_write_set_options(3),
- libarchive(3)</p>
- <p style="margin-left:6%; margin-top: 1em">BSD
- December 23, 2011 BSD</p>
- <hr>
- </body>
- </html>
|