Blame doc/html/libarchive_changes.3.html

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348
"http://www.w3.org/TR/html4/loose.dtd">
Packit Service 1d0348
<html>
Packit Service 1d0348
<head>
Packit Service 1d0348
<meta name="generator" content="groff -Thtml, see www.gnu.org">
Packit Service 1d0348
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Packit Service 1d0348
<meta name="Content-Style" content="text/css">
Packit Service 1d0348
<style type="text/css">
Packit Service 1d0348
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit Service 1d0348
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit Service 1d0348
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit Service 1d0348
       h1      { text-align: center }
Packit Service 1d0348
</style>
Packit Service 1d0348
<title></title>
Packit Service 1d0348
</head>
Packit Service 1d0348
<body>
Packit Service 1d0348
Packit Service 1d0348

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

LIBARCHIVE_CHANGES(3) BSD Library Functions Manual

Packit Service 1d0348
LIBARCHIVE_CHANGES(3)

Packit Service 1d0348
Packit Service 1d0348

NAME

Packit Service 1d0348
Packit Service 1d0348

libarchive_changes

Packit Service 1d0348
— changes in libarchive interface

Packit Service 1d0348
Packit Service 1d0348

CHANGES IN LIBARCHIVE

Packit Service 1d0348
3

Packit Service 1d0348
Packit Service 1d0348

This page describes user-visible

Packit Service 1d0348
changes in libarchive3, and lists public functions and other
Packit Service 1d0348
symbols changed, deprecated or removed in libarchive3, along
Packit Service 1d0348
with their replacements if any.

Packit Service 1d0348
Packit Service 1d0348

Multiple

Packit Service 1d0348
Filters 
Packit Service 1d0348
Libarchive2 permitted a single (input or output) filter
Packit Service 1d0348
active on an archive. Libarchive3 extends this into a
Packit Service 1d0348
variable-length stack. Where
Packit Service 1d0348
archive_write_set_compression_XXX() would replace any
Packit Service 1d0348
existing filter, archive_write_add_filter_XXX()
Packit Service 1d0348
extends the write pipeline with another filter.

Packit Service 1d0348
Packit Service 1d0348

Character Set

Packit Service 1d0348
Handling 
Packit Service 1d0348
Libarchive2 assumed that the local platform uses Unicode as
Packit Service 1d0348
the native wchar_t encoding, which is true on Windows,
Packit Service 1d0348
modern Linux, and a few other systems, but is certainly not
Packit Service 1d0348
universal. As a result, pax format archives were written
Packit Service 1d0348
incorrectly on some systems, since pax format requires UTF-8
Packit Service 1d0348
and libarchive 2 incorrectly assumed that wchar_t strings
Packit Service 1d0348
can be easily converted to UTF-8.

Packit Service 1d0348
Packit Service 1d0348

Libarchive3 uses

Packit Service 1d0348
the standard iconv library to convert between character sets
Packit Service 1d0348
and is introducing the notion of a ’’default
Packit Service 1d0348
character set for the archive’’. To support
Packit Service 1d0348
this, archive_entry objects can now be bound to a particular
Packit Service 1d0348
archive when they are created. The automatic character set
Packit Service 1d0348
conversions performed by archive_entry objects when reading
Packit Service 1d0348
and writing filenames, usernames, and other strings will now
Packit Service 1d0348
use an appropriate default character set:

Packit Service 1d0348
Packit Service 1d0348

If the

Packit Service 1d0348
archive_entry object is bound to an archive, it will use the
Packit Service 1d0348
default character set for that archive.

Packit Service 1d0348
Packit Service 1d0348

The platform

Packit Service 1d0348
default character encoding (as returned by
Packit Service 1d0348
nl_langinfo(CHARSET)) will be used if nothing
Packit Service 1d0348
else is specified.

Packit Service 1d0348
Packit Service 1d0348

Libarchive3 also

Packit Service 1d0348
introduces charset options to many of the archive readers
Packit Service 1d0348
and writers to control the character set that will be used
Packit Service 1d0348
for filenames written in those archives. When possible, this
Packit Service 1d0348
will be set automatically based on information in the
Packit Service 1d0348
archive itself. Combining this with the notion of a default
Packit Service 1d0348
character set for the archive should allow you to configure
Packit Service 1d0348
libarchive to read archives from other platforms and have
Packit Service 1d0348
the filenames and other information transparently converted
Packit Service 1d0348
to the character encoding suitable for your application.

Packit Service 1d0348
Packit Service 1d0348

Prototype

Packit Service 1d0348
Changes 
Packit Service 1d0348
These changes break binary compatibility; libarchive3 has a
Packit Service 1d0348
new shared library version to reflect these changes. The
Packit Service 1d0348
library now uses portable wide types such as int64_t instead
Packit Service 1d0348
of less-portable types such as off_t, gid_t, uid_t, and
Packit Service 1d0348
ino_t.

Packit Service 1d0348
Packit Service 1d0348

There are a few

Packit Service 1d0348
cases where these changes will affect your source code:

Packit Service 1d0348
Packit Service 1d0348

Packit Service 1d0348
Packit Service 1d0348

In some cases,

Packit Service 1d0348
libarchive’s wider types will introduce the
Packit Service 1d0348
possibility of truncation: for example, on a system with a
Packit Service 1d0348
16-bit uid_t, you risk having uid 65536 be truncated to uid
Packit Service 1d0348
0, which can cause serious security problems.

Packit Service 1d0348
Packit Service 1d0348

Packit Service 1d0348
Packit Service 1d0348

Typedef function pointer types

Packit Service 1d0348
will be incompatible. For example, if you define custom skip
Packit Service 1d0348
callbacks, you may have to use code similar to the following
Packit Service 1d0348
if you want to support building against libarchive2 and
Packit Service 1d0348
libarchive3:

Packit Service 1d0348
Packit Service 1d0348

#if

Packit Service 1d0348
ARCHIVE_VERSION_NUMBER < 3000000 
Packit Service 1d0348
typedef off_t myoff_t; 
Packit Service 1d0348
#else 
Packit Service 1d0348
typedef int64_t myoff_t; 
Packit Service 1d0348
#endif

Packit Service 1d0348
Packit Service 1d0348

myoff_t

Packit Service 1d0348
my_skip_function(struct archive *a, void *v, myoff_t o) 
Packit Service 1d0348
{ 
Packit Service 1d0348
... implementation ... 
Packit Service 1d0348
}

Packit Service 1d0348
Packit Service 1d0348

Affected

Packit Service 1d0348
functions:

Packit Service 1d0348
Packit Service 1d0348


Packit Service 1d0348
archive_entry_gid(), archive_entry_set_gid()
Packit Service 1d0348

Packit Service 1d0348

Packit Service 1d0348
archive_entry_uid(), archive_entry_set_uid()
Packit Service 1d0348

Packit Service 1d0348

Packit Service 1d0348
archive_entry_ino(), archive_entry_set_ino()
Packit Service 1d0348

Packit Service 1d0348

Packit Service 1d0348
archive_read_data_block(),
Packit Service 1d0348
archive_write_data_block() 
Packit Service 1d0348

Packit Service 1d0348
archive_read_disk_gname(),
Packit Service 1d0348
archive_read_disk_uname() 
Packit Service 1d0348

Packit Service 1d0348
archive_read_disk_set_gname_lookup(),
Packit Service 1d0348
archive_read_disk_set_group_lookup(),
Packit Service 1d0348
archive_read_disk_set_uname_lookup(),
Packit Service 1d0348
archive_read_disk_set_user_lookup() 
Packit Service 1d0348

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_skip_callback()

Packit Service 1d0348
Packit Service 1d0348


Packit Service 1d0348
archive_read_extract_set_skip_file(),
Packit Service 1d0348
archive_write_disk_set_skip_file(),
Packit Service 1d0348
archive_write_set_skip_file() 
Packit Service 1d0348

Packit Service 1d0348
archive_write_disk_set_group_lookup(),
Packit Service 1d0348
archive_write_disk_set_user_lookup()

Packit Service 1d0348
Packit Service 1d0348

Where these

Packit Service 1d0348
functions or their arguments took or returned gid_t, ino_t,
Packit Service 1d0348
off_t, or uid_t they now take or return int64_t or
Packit Service 1d0348
equivalent.

Packit Service 1d0348
Packit Service 1d0348

Deprecated

Packit Service 1d0348
Symbols 
Packit Service 1d0348
Symbols deprecated in libarchive3 will be removed in
Packit Service 1d0348
libarchive4. These symbols, along with their replacements if
Packit Service 1d0348
any, are listed below:

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_position_compressed(),

Packit Service 1d0348
archive_position_uncompressed()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_filter_bytes()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_compression()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_filter_code()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_compression_name()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_filter_name()

Packit Service 1d0348
Packit Service 1d0348

archive_read_finish(),

Packit Service 1d0348
archive_write_finish()

Packit Service 1d0348
Packit Service 1d0348

archive_read_free(),

Packit Service 1d0348
archive_write_free()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_open_file(),

Packit Service 1d0348
archive_write_open_file()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_open_filename(),

Packit Service 1d0348
archive_write_open_filename()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_all()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_all()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_bzip2()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_bzip2()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_compress()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_compress()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_gzip()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_gzip()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_lzip()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_lzip()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_lzma()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_lzma()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_none()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_none()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_program()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_program()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_program_signature()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_program_signature()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_rpm()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_rpm()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_uu()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_uu()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_compression_xz()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_support_filter_xz()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_compression_bzip2()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_add_filter_bzip2()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_compression_compress()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_add_filter_compress()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_compression_gzip()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_add_filter_gzip()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_compression_lzip()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_add_filter_lzip()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_compression_lzma()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_add_filter_lzma()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_compression_none()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_add_filter_none()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_compression_program()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_add_filter_program()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_compression_filter()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_add_filter_filter()

Packit Service 1d0348
Packit Service 1d0348

Removed

Packit Service 1d0348
Symbols 
Packit Service 1d0348
These symbols, listed below along with their replacements if
Packit Service 1d0348
any, were deprecated in libarchive2, and are not part of
Packit Service 1d0348
libarchive3.

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_api_feature()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_version_number()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_api_version()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_version_number()

Packit Service 1d0348
Packit Service 1d0348

archive_version()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_version_string()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_version_stamp()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_version_number()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_set_filter_options()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_set_options()

Packit Service 1d0348
or archive_read_set_filter_option()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_set_format_options()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_set_options()

Packit Service 1d0348
or archive_read_set_format_option()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_filter_options()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_options()

Packit Service 1d0348
or archive_write_set_filter_option()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_format_options()

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_write_set_options()

Packit Service 1d0348
or archive_write_set_format_option()

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_API_FEATURE

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_VERSION_NUMBER

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_API_VERSION

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_VERSION_NUMBER

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_VERSION_STAMP

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_VERSION_NUMBER

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_LIBRARY_VERSION

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_VERSION_STRING

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_NONE

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_NONE

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_GZIP

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_GZIP

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_BZIP2

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_BZIP2

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_COMPRESS

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_COMPRESS

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_PROGRAM

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_PROGRAM

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_LZMA

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_LZMA

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_XZ

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_XZ

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_UU

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_UU

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_RPM

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_RPM

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_COMPRESSION_LZIP

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_FILTER_LZIP

Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_BYTES_PER_RECORD

Packit Service 1d0348
Packit Service 1d0348

512

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_DEFAULT_BYTES_PER_BLOCK

Packit Service 1d0348
Packit Service 1d0348

10240

Packit Service 1d0348
Packit Service 1d0348

SEE ALSO

Packit Service 1d0348
Packit Service 1d0348

libarchive(3), archive_read(3),

Packit Service 1d0348
archive_read_filter(3), archive_read_format(3),
Packit Service 1d0348
archive_read_set_options(3), archive_write(3),
Packit Service 1d0348
archive_write_filter(3), archive_write_format(3),
Packit Service 1d0348
archive_write_set_options(3), archive_util(3)

Packit Service 1d0348
Packit Service 1d0348

BSD

Packit Service 1d0348
December 23, 2011 BSD

Packit Service 1d0348

Packit Service 1d0348
</body>
Packit Service 1d0348
</html>