mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-19 16:35:20 +01:00
465 lines
14 KiB
HTML
465 lines
14 KiB
HTML
|
<!-- Creator : groff version 1.22.3 -->
|
||
|
<!-- CreationDate: Tue Feb 11 22:58:46 2020 -->
|
||
|
<!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>
|