head	1.22;
access;
symbols
	libarchive-3-8-7:1.1.1.23
	libarchive-3-8-6:1.1.1.22
	pkgsrc-2026Q1:1.20.0.2
	pkgsrc-2026Q1-base:1.20
	libarchive-3-8-5:1.1.1.21
	libarchive-3-8-4:1.1.1.20
	pkgsrc-2025Q4:1.18.0.2
	pkgsrc-2025Q4-base:1.18
	libarchive-3-8-3:1.1.1.19
	libarchive-3-8-2:1.1.1.18
	pkgsrc-2025Q3:1.16.0.2
	pkgsrc-2025Q3-base:1.16
	libarchive-3-8-1:1.1.1.17
	pkgsrc-2025Q2:1.15.0.2
	pkgsrc-2025Q2-base:1.15
	libarchive-3-8-0:1.1.1.16
	libarchive-3-7-9:1.1.1.15
	pkgsrc-2025Q1:1.13.0.4
	pkgsrc-2025Q1-base:1.13
	pkgsrc-2024Q4:1.13.0.2
	pkgsrc-2024Q4-base:1.13
	libarchive-3-7-7:1.1.1.14
	pkgsrc-2024Q3:1.12.0.2
	pkgsrc-2024Q3-base:1.12
	libarchive-3-7-5:1.1.1.13
	pkgsrc-2024Q2:1.11.0.2
	pkgsrc-2024Q2-base:1.11
	libarchive-3-7-4:1.1.1.12
	libarchive-3-7-3:1.1.1.11
	pkgsrc-2024Q1:1.9.0.2
	pkgsrc-2024Q1-base:1.9
	libarchive-3-7-2:1.1.1.10
	pkgsrc-2023Q4:1.8.0.30
	pkgsrc-2023Q4-base:1.8
	pkgsrc-2023Q3:1.8.0.28
	pkgsrc-2023Q3-base:1.8
	pkgsrc-2023Q2:1.8.0.26
	pkgsrc-2023Q2-base:1.8
	pkgsrc-2023Q1:1.8.0.24
	pkgsrc-2023Q1-base:1.8
	pkgsrc-2022Q4:1.8.0.22
	pkgsrc-2022Q4-base:1.8
	pkgsrc-2022Q3:1.8.0.20
	pkgsrc-2022Q3-base:1.8
	pkgsrc-2022Q2:1.8.0.18
	pkgsrc-2022Q2-base:1.8
	pkgsrc-2022Q1:1.8.0.16
	pkgsrc-2022Q1-base:1.8
	pkgsrc-2021Q4:1.8.0.14
	pkgsrc-2021Q4-base:1.8
	pkgsrc-2021Q3:1.8.0.12
	pkgsrc-2021Q3-base:1.8
	pkgsrc-2021Q2:1.8.0.10
	pkgsrc-2021Q2-base:1.8
	pkgsrc-2021Q1:1.8.0.8
	pkgsrc-2021Q1-base:1.8
	pkgsrc-2020Q4:1.8.0.6
	pkgsrc-2020Q4-base:1.8
	pkgsrc-2020Q3:1.8.0.4
	pkgsrc-2020Q3-base:1.8
	pkgsrc-2020Q2:1.8.0.2
	pkgsrc-2020Q2-base:1.8
	pkgsrc-2020Q1:1.7.0.4
	pkgsrc-2020Q1-base:1.7
	pkgsrc-2019Q4:1.7.0.6
	pkgsrc-2019Q4-base:1.7
	pkgsrc-2019Q3:1.7.0.2
	pkgsrc-2019Q3-base:1.7
	libarchive-3-4-0:1.1.1.9
	libarchive-3-3-3:1.1.1.8
	pkgsrc-2019Q2:1.6.0.2
	pkgsrc-2019Q2-base:1.6
	pkgsrc-2019Q1:1.5.0.16
	pkgsrc-2019Q1-base:1.5
	pkgsrc-2018Q4:1.5.0.14
	pkgsrc-2018Q4-base:1.5
	pkgsrc-2018Q3:1.5.0.12
	pkgsrc-2018Q3-base:1.5
	pkgsrc-2018Q2:1.5.0.10
	pkgsrc-2018Q2-base:1.5
	pkgsrc-2018Q1:1.5.0.8
	pkgsrc-2018Q1-base:1.5
	pkgsrc-2017Q4:1.5.0.6
	pkgsrc-2017Q4-base:1.5
	pkgsrc-2017Q3:1.5.0.4
	pkgsrc-2017Q3-base:1.5
	libarchive-3-3-2:1.1.1.7
	pkgsrc-2017Q2:1.4.0.4
	pkgsrc-2017Q2-base:1.4
	pkgsrc-2017Q1:1.4.0.2
	pkgsrc-2017Q1-base:1.4
	libarchive-3-3-1:1.1.1.6
	pkgsrc-2016Q4:1.3.0.6
	pkgsrc-2016Q4-base:1.3
	pkgsrc-2016Q3:1.3.0.4
	pkgsrc-2016Q3-base:1.3
	pkgsrc-2016Q2:1.3.0.2
	pkgsrc-2016Q2-base:1.3
	libarchive-3-2-1:1.1.1.5
	pkgsrc-2016Q1:1.2.0.10
	pkgsrc-2016Q1-base:1.2
	pkgsrc-2015Q4:1.2.0.8
	pkgsrc-2015Q4-base:1.2
	pkgsrc-2015Q3:1.2.0.6
	pkgsrc-2015Q3-base:1.2
	pkgsrc-2015Q2:1.2.0.4
	pkgsrc-2015Q2-base:1.2
	pkgsrc-2015Q1:1.2.0.2
	pkgsrc-2015Q1-base:1.2
	pkgsrc-2014Q4:1.1.1.4.0.36
	pkgsrc-2014Q4-base:1.1.1.4
	pkgsrc-2014Q3:1.1.1.4.0.34
	pkgsrc-2014Q3-base:1.1.1.4
	pkgsrc-2014Q2:1.1.1.4.0.32
	pkgsrc-2014Q2-base:1.1.1.4
	pkgsrc-2014Q1:1.1.1.4.0.30
	pkgsrc-2014Q1-base:1.1.1.4
	pkgsrc-2013Q4:1.1.1.4.0.28
	pkgsrc-2013Q4-base:1.1.1.4
	pkgsrc-2013Q3:1.1.1.4.0.26
	pkgsrc-2013Q3-base:1.1.1.4
	pkgsrc-2013Q2:1.1.1.4.0.24
	pkgsrc-2013Q2-base:1.1.1.4
	pkgsrc-2013Q1:1.1.1.4.0.22
	pkgsrc-2013Q1-base:1.1.1.4
	pkgsrc-2012Q4:1.1.1.4.0.20
	pkgsrc-2012Q4-base:1.1.1.4
	pkgsrc-2012Q3:1.1.1.4.0.18
	pkgsrc-2012Q3-base:1.1.1.4
	pkgsrc-2012Q2:1.1.1.4.0.16
	pkgsrc-2012Q2-base:1.1.1.4
	pkgsrc-2012Q1:1.1.1.4.0.14
	pkgsrc-2012Q1-base:1.1.1.4
	pkgsrc-2011Q4:1.1.1.4.0.12
	pkgsrc-2011Q4-base:1.1.1.4
	pkgsrc-2011Q3:1.1.1.4.0.10
	pkgsrc-2011Q3-base:1.1.1.4
	pkgsrc-2011Q2:1.1.1.4.0.8
	pkgsrc-2011Q2-base:1.1.1.4
	pkgsrc-2011Q1:1.1.1.4.0.6
	pkgsrc-2011Q1-base:1.1.1.4
	pkgsrc-2010Q4:1.1.1.4.0.4
	pkgsrc-2010Q4-base:1.1.1.4
	pkgsrc-2010Q3:1.1.1.4.0.2
	pkgsrc-2010Q3-base:1.1.1.4
	libarchive-2-8-4:1.1.1.4
	pkgsrc-2010Q2:1.1.1.3.0.4
	pkgsrc-2010Q2-base:1.1.1.3
	pkgsrc-2010Q1:1.1.1.3.0.2
	pkgsrc-2010Q1-base:1.1.1.3
	libarchive-2-8-3:1.1.1.3
	libarchive-2-8-2:1.1.1.2
	libarchive-2-8-0:1.1.1.1
	KIENTZLE:1.1.1;
locks; strict;
comment	@# @;


1.22
date	2026.04.15.08.46.34;	author adam;	state Exp;
branches;
next	1.21;
commitid	pL26mrnh4kOo62CG;

1.21
date	2026.03.26.11.20.06;	author adam;	state Exp;
branches;
next	1.20;
commitid	8pSUUUHFeJu1BtzG;

1.20
date	2026.01.06.11.55.22;	author adam;	state Exp;
branches;
next	1.19;
commitid	lOosf75XWhczkkpG;

1.19
date	2025.12.23.14.01.22;	author adam;	state Exp;
branches;
next	1.18;
commitid	3zKcl3VhUVXFtxnG;

1.18
date	2025.11.20.06.08.25;	author adam;	state Exp;
branches;
next	1.17;
commitid	kB7NF5kSlmUaVfjG;

1.17
date	2025.11.02.08.52.13;	author adam;	state Exp;
branches;
next	1.16;
commitid	hdaVwMAEUWR8pXgG;

1.16
date	2025.07.01.15.14.43;	author adam;	state Exp;
branches;
next	1.15;
commitid	sA2cBFYBXpUBv31G;

1.15
date	2025.05.21.15.25.49;	author adam;	state Exp;
branches;
next	1.14;
commitid	6aTN21WjRYk8TMVF;

1.14
date	2025.04.28.10.31.33;	author adam;	state Exp;
branches;
next	1.13;
commitid	Tocq615J6mYPZNSF;

1.13
date	2024.10.19.05.39.56;	author adam;	state Exp;
branches;
next	1.12;
commitid	fYRSlpIWMYluweuF;

1.12
date	2024.09.15.07.02.19;	author adam;	state Exp;
branches;
next	1.11;
commitid	x365AQIKhret4SpF;

1.11
date	2024.04.30.06.05.18;	author adam;	state Exp;
branches;
next	1.10;
commitid	id0E8i4RwCC4c88F;

1.10
date	2024.04.12.15.39.49;	author adam;	state Exp;
branches;
next	1.9;
commitid	52ilmjFHKDf0XR5F;

1.9
date	2024.01.18.18.00.14;	author adam;	state Exp;
branches;
next	1.8;
commitid	hNXpsHx3SuHqsXUE;

1.8
date	2020.05.26.09.16.40;	author nia;	state Exp;
branches;
next	1.7;
commitid	nNhsdZACz3PjmJ9C;

1.7
date	2019.09.22.09.55.07;	author joerg;	state Exp;
branches;
next	1.6;
commitid	FdPvRjF4OzwBwZDB;

1.6
date	2019.04.10.08.24.05;	author adam;	state Exp;
branches;
next	1.5;
commitid	LnliQ9ieqYkikMiB;

1.5
date	2017.08.01.22.26.22;	author joerg;	state Exp;
branches;
next	1.4;
commitid	32clTfkmVE8bPy1A;

1.4
date	2017.02.25.21.11.19;	author joerg;	state Exp;
branches;
next	1.3;
commitid	rW8QfCWrsCO1snHz;

1.3
date	2016.06.20.17.24.56;	author joerg;	state Exp;
branches;
next	1.2;
commitid	ArUvympBjfBseebz;

1.2
date	2015.01.17.12.44.49;	author adam;	state Exp;
branches;
next	1.1;
commitid	yy7e1hLrfmA2pn6y;

1.1
date	2010.02.20.03.49.44;	author joerg;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2010.02.20.03.49.44;	author joerg;	state Exp;
branches;
next	1.1.1.2;

1.1.1.2
date	2010.03.14.17.57.26;	author joerg;	state Exp;
branches;
next	1.1.1.3;

1.1.1.3
date	2010.03.16.17.07.05;	author joerg;	state Exp;
branches;
next	1.1.1.4;

1.1.1.4
date	2010.07.09.11.53.34;	author joerg;	state Exp;
branches;
next	1.1.1.5;

1.1.1.5
date	2016.06.20.17.11.53;	author joerg;	state Exp;
branches;
next	1.1.1.6;
commitid	rRgm3BqbmbI8aebz;

1.1.1.6
date	2017.02.25.20.54.24;	author joerg;	state Exp;
branches;
next	1.1.1.7;
commitid	ReqPI0ibLYjdmnHz;

1.1.1.7
date	2017.08.01.22.21.11;	author joerg;	state Exp;
branches;
next	1.1.1.8;
commitid	XQwPAFJku336Ny1A;

1.1.1.8
date	2019.09.22.09.47.03;	author joerg;	state Exp;
branches;
next	1.1.1.9;
commitid	N0KxAXOYyULduZDB;

1.1.1.9
date	2019.09.22.09.51.33;	author joerg;	state Exp;
branches;
next	1.1.1.10;
commitid	5kDbfPbiV3INvZDB;

1.1.1.10
date	2024.01.18.17.37.45;	author adam;	state Exp;
branches;
next	1.1.1.11;
commitid	zDULEPUODGjTkXUE;

1.1.1.11
date	2024.04.12.15.27.44;	author adam;	state Exp;
branches;
next	1.1.1.12;
commitid	tQWTddCoxBumSR5F;

1.1.1.12
date	2024.04.30.05.50.49;	author adam;	state Exp;
branches;
next	1.1.1.13;
commitid	e4DnFoZdQV9Z688F;

1.1.1.13
date	2024.09.15.06.45.25;	author adam;	state Exp;
branches;
next	1.1.1.14;
commitid	pOuXKsbh8iPCYRpF;

1.1.1.14
date	2024.10.19.05.27.34;	author adam;	state Exp;
branches;
next	1.1.1.15;
commitid	v1iXM4j1Na52seuF;

1.1.1.15
date	2025.04.28.09.44.10;	author adam;	state Exp;
branches;
next	1.1.1.16;
commitid	1zB7ffc4d2qCJNSF;

1.1.1.16
date	2025.05.21.15.11.28;	author adam;	state Exp;
branches;
next	1.1.1.17;
commitid	Nzqt2UgtvkVXNMVF;

1.1.1.17
date	2025.07.01.14.58.53;	author adam;	state Exp;
branches;
next	1.1.1.18;
commitid	wKXYoBc9F9j8q31G;

1.1.1.18
date	2025.11.02.08.32.34;	author adam;	state Exp;
branches;
next	1.1.1.19;
commitid	8C56Xg3dc0HriXgG;

1.1.1.19
date	2025.11.20.05.51.45;	author adam;	state Exp;
branches;
next	1.1.1.20;
commitid	LC6NMc2P0QpnPfjG;

1.1.1.20
date	2025.12.23.13.41.06;	author adam;	state Exp;
branches;
next	1.1.1.21;
commitid	hhQbXTytJ7PFmxnG;

1.1.1.21
date	2026.01.06.11.43.29;	author adam;	state Exp;
branches;
next	1.1.1.22;
commitid	Q4rjOheYoLWofkpG;

1.1.1.22
date	2026.03.26.11.11.16;	author adam;	state Exp;
branches;
next	1.1.1.23;
commitid	P6u0vpfNBymXxtzG;

1.1.1.23
date	2026.04.15.08.40.11;	author adam;	state Exp;
branches;
next	;
commitid	enlkxxj5Vxhi42CG;


desc
@@


1.22
log
@libarchive: updated to 3.8.7

Libarchive 3.8.7 is a security and bugfix release.

Notable fixes:

CAB: fix NULL pointer dereference during skip
CAB: Fix Heap OOB Write in CAB LZX decoder
cpio: various fixes and improvements
contrib/untar: fix out-of-bounds read
iso9660: fix undefined behavior
iso9660: fix posibble heap buffer overflow on 32-bit systems
libarchive: fix handling of option failures
libarchive: do not continue with truncated numbers
libarchive: lzop and grzip filter support
RAR: fix LZSS window size mismatch after PPMd block
@
text
@<!-- Creator     : groff version 1.23.0 -->
<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
<!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><i>LIBARCHIVE-FORMATS</i>(5) File Formats Manual
<i>LIBARCHIVE-FORMATS</i>(5)</p>

<p style="margin-top: 1em"><b>NAME</b></p>

<p style="margin-left:9%;">libarchive-formats &mdash;
archive formats supported by the libarchive library</p>

<p style="margin-top: 1em"><b>DESCRIPTION</b></p>

<p style="margin-left:9%;">The <i>libarchive</i>(3) library
reads and writes a variety of streaming archive formats.
Generally speaking, all of these archive formats consist of
a series of &ldquo;entries&rdquo;. Each entry stores a
single file system object, such as a file, directory, or
symbolic link.</p>

<p style="margin-left:9%; margin-top: 1em">The following
provides a brief description of each format supported by
libarchive, with some information about recognized
extensions or limitations of the current library support.
Note that just because a format is supported by libarchive
does not imply that a program that uses libarchive will
support that format. Applications that use libarchive
specify which formats they wish to support, though many
programs do use libarchive convenience functions to enable
all supported formats.</p>

<p style="margin-left:4%; margin-top: 1em"><b>Tar
Formats</b></p>

<p style="margin-left:9%;">The <i>libarchive</i>(3) library
can read most tar archives. It can write POSIX-standard
&ldquo;ustar&rdquo; and &ldquo;pax interchange&rdquo;
formats as well as v7 tar format and a subset of the legacy
GNU tar format.</p>

<p style="margin-left:9%; margin-top: 1em">All tar formats
store each entry in one or more 512-byte records. The first
record is used for file metadata, including filename,
timestamp, and mode information, and the file data is stored
in subsequent records. Later variants have extended this by
either appropriating undefined areas of the header record,
extending the header to multiple records, or by storing
special entries that modify the interpretation of subsequent
entries.</p>

<p style="margin-top: 1em"><b>gnutar</b></p>

<p style="margin-left:19%; margin-top: 1em">The
<i>libarchive</i>(3) library can read most GNU-format tar
archives. It currently supports the most popular GNU
extensions, including modern long filename and linkname
support, as well as atime and ctime data. The libarchive
library does not support multi-volume archives, nor the old
GNU long filename format. It can read GNU sparse file
entries, including the new POSIX-based formats.</p>

<p style="margin-left:19%; margin-top: 1em">The
<i>libarchive</i>(3) library can write GNU tar format,
including long filename and linkname support, as well as
atime and ctime data.</p>

<p style="margin-top: 1em"><b>pax</b></p>

<p style="margin-left:19%; margin-top: 1em">The
<i>libarchive</i>(3) library can read and write
POSIX-compliant pax interchange format archives. Pax
interchange format archives are an extension of the older
ustar format that adds a separate entry with additional
attributes stored as key/value pairs immediately before each
regular entry. The presence of these additional entries is
the only difference between pax interchange format and the
older ustar format. The extended attributes are of unlimited
length and are stored as UTF-8 Unicode strings. Keywords
defined in the standard are in all lowercase; vendors are
allowed to define custom keys by preceding them with the
vendor name in all uppercase. When writing pax archives,
libarchive uses many of the SCHILY keys defined by Joerg
Schilling&rsquo;s &ldquo;star&rdquo; archiver and a few
LIBARCHIVE keys. The libarchive library can read most of the
SCHILY keys and most of the GNU keys introduced by GNU tar.
It silently ignores any keywords that it does not
understand.</p>

<p style="margin-left:19%; margin-top: 1em">The pax
interchange format converts filenames to Unicode and stores
them using the UTF-8 encoding. Prior to libarchive 3.0,
libarchive erroneously assumed that the system
wide-character routines natively supported Unicode. This
caused it to mis-handle non-ASCII filenames on systems that
did not satisfy this assumption.</p>

<p style="margin-top: 1em"><b>restricted pax</b></p>

<p style="margin-left:19%;">The libarchive library can also
write pax archives in which it attempts to suppress the
extended attributes entry whenever possible. The result will
be identical to a ustar archive unless the extended
attributes entry is required to store a long file name, long
linkname, extended ACL, file flags, or if any of the
standard ustar data (user name, group name, UID, GID, etc)
cannot be fully represented in the ustar header. In all
cases, the result can be dearchived by any program that can
read POSIX-compliant pax interchange format archives.
Programs that correctly read ustar format (see below) will
also be able to read this format; any extended attributes
will be extracted as separate files stored in
<i>PaxHeader</i> directories.</p>

<p style="margin-top: 1em"><b>ustar</b></p>

<p style="margin-left:19%; margin-top: 1em">The libarchive
library can both read and write this format. This format has
the following limitations:</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Device major and minor numbers
are limited to 21 bits. Nodes with larger numbers will not
be added to the archive.</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Path names in the archive are
limited to 255 bytes. (Shorter if there is no / character in
exactly the right place.)</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Symbolic links and hard links
are stored in the archive with the name of the referenced
file. This name is limited to 100 bytes.</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Extended attributes, file
flags, and other extended security information cannot be
stored.</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Archive entries are limited to
8 gigabytes in size.</p>

<p style="margin-left:19%;">Note that the pax interchange
format has none of these restrictions. The ustar format is
old and widely supported. It is recommended when
compatibility is the primary concern.</p>

<p style="margin-top: 1em"><b>v7</b></p>

<p style="margin-left:19%; margin-top: 1em">The libarchive
library can read and write the legacy v7 tar format. This
format has the following limitations:</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Only regular files,
directories, and symbolic links can be archived. Block and
character device nodes, FIFOs, and sockets cannot be
archived.</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Path names in the archive are
limited to 100 bytes.</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Symbolic links and hard links
are stored in the archive with the name of the referenced
file. This name is limited to 100 bytes.</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">User and group information are
stored as numeric IDs; there is no provision for storing
user or group names.</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Extended attributes, file
flags, and other extended security information cannot be
stored.</p>

<p><b>&bull;</b></p>

<p style="margin-left:24%;">Archive entries are limited to
8 gigabytes in size.</p>

<p style="margin-left:19%;">Generally, users should prefer
the ustar format for portability as the v7 tar format is
both less useful and less portable.</p>

<p style="margin-left:9%; margin-top: 1em">The libarchive
library also reads a variety of commonly-used extensions to
the basic tar format. These extensions are recognized
automatically whenever they appear.</p>

<p style="margin-top: 1em">Numeric extensions.</p>

<p style="margin-left:19%;">The POSIX standards require
fixed-length numeric fields to be written with some
character position reserved for terminators. Libarchive
allows these fields to be written without terminator
characters. This extends the allowable range; in particular,
ustar archives with this extension can support entries up to
64 gigabytes in size. Libarchive also recognizes base-256
values in most numeric fields. This essentially removes all
limitations on file size, modification time, and device
numbers.</p>

<p style="margin-top: 1em">Solaris extensions</p>

<p style="margin-left:19%;">Libarchive recognizes ACL and
extended attribute records written by Solaris tar.</p>

<p style="margin-left:9%; margin-top: 1em">The first tar
program appeared in Seventh Edition Unix in 1979. The first
official standard for the tar file format was the
&ldquo;ustar&rdquo; (Unix Standard Tar) format defined by
POSIX in 1988. POSIX.1-2001 extended the ustar format to
create the &ldquo;pax interchange&rdquo; format.</p>

<p style="margin-left:4%; margin-top: 1em"><b>Cpio
Formats</b></p>

<p style="margin-left:9%;">The libarchive library can read
and write a number of common cpio variants. A cpio archive
stores each entry as a fixed-size header followed by a
variable-length filename and variable-length data. Unlike
the tar format, the cpio format does only minimal padding of
the header or file data. There are several cpio variants,
which differ primarily in how they store the initial header:
some store the values as octal or hexadecimal numbers in
ASCII, others as binary values of varying byte order and
length.</p>

<p style="margin-top: 1em"><b>binary</b></p>

<p style="margin-left:19%; margin-top: 1em">The libarchive
library transparently reads both big-endian and
little-endian variants of the the two binary cpio formats;
the original one from PWB/UNIX, and the later, more widely
used, variant. This format used 32-bit binary values for
file size and mtime, and 16-bit binary values for the other
fields. The formats support only the file types present in
UNIX at the time of their creation. File sizes are limited
to 24 bits in the PWB format, because of the limits of the
file system, and to 31 bits in the newer binary format,
where signed 32 bit longs were used.</p>

<p style="margin-top: 1em"><b>odc</b></p>

<p style="margin-left:19%; margin-top: 1em">This is the
POSIX standardized format, which is officially known as the
&ldquo;cpio interchange format&rdquo; or the
&ldquo;octet-oriented cpio archive format&rdquo; and
sometimes unofficially referred to as the &ldquo;old
character format&rdquo;. This format stores the header
contents as octal values in ASCII. It is standard, portable,
and immune from byte-order confusion. File sizes and mtime
are limited to 33 bits (8GB file size), other fields are
limited to 18 bits.</p>

<p style="margin-top: 1em"><b>SVR4/newc</b></p>

<p style="margin-left:19%;">The libarchive library can read
both CRC and non-CRC variants of this format. The SVR4
format uses eight-digit hexadecimal values for all header
fields. This limits file size to 4GB, and also limits the
mtime and other fields to 32 bits. The SVR4 format can
optionally include a CRC of the file contents, although
libarchive does not currently verify this CRC.</p>

<p style="margin-left:9%; margin-top: 1em">Cpio first
appeared in PWB/UNIX 1.0, which was released within AT&amp;T
in 1977. PWB/UNIX 1.0 formed the basis of System III Unix,
released outside of AT&amp;T in 1981. This makes cpio older
than tar, although cpio was not included in Version 7
AT&amp;T Unix. As a result, the tar command became much
better known in universities and research groups that used
Version 7. The combination of the <b>find</b> and
<b>cpio</b> utilities provided very precise control over
file selection. Unfortunately, the format has many
limitations that make it unsuitable for widespread use. Only
the POSIX format permits files over 4GB, and its 18-bit
limit for most other fields makes it unsuitable for modern
systems. In addition, cpio formats only store numeric
UID/GID values (not usernames and group names), which can
make it very difficult to correctly transfer archives across
systems with dissimilar user numbering.</p>

<p style="margin-left:4%; margin-top: 1em"><b>Shar
Formats</b></p>

<p style="margin-left:9%;">A &ldquo;shell archive&rdquo; is
a shell script that, when executed on a POSIX-compliant
system, will recreate a collection of file system objects.
The libarchive library can write two different kinds of shar
archives:</p>

<p style="margin-top: 1em"><b>shar</b></p>

<p style="margin-left:19%; margin-top: 1em">The traditional
shar format uses a limited set of POSIX commands, including
<i>echo</i>(1), <i>mkdir</i>(1), and <i>sed</i>(1). It is
suitable for portably archiving small collections of plain
text files. However, it is not generally well-suited for
large archives (many implementations of <i>sh</i>(1) have
limits on the size of a script) nor should it be used with
non-text files.</p>

<p style="margin-top: 1em"><b>shardump</b></p>

<p style="margin-left:19%;">This format is similar to shar
but encodes files using <i>uuencode</i>(1) so that the
result will be a plain text file regardless of the file
contents. It also includes additional shell commands that
attempt to reproduce as many file attributes as possible,
including owner, mode, and flags. The additional commands
used to restore file attributes make shardump archives less
portable than plain shar archives.</p>

<p style="margin-left:4%; margin-top: 1em"><b>ISO9660
format</b></p>

<p style="margin-left:9%;">Libarchive can read and extract
from files containing ISO9660-compliant CDROM images. In
many cases, this can remove the need to burn a physical
CDROM just in order to read the files contained in an
ISO9660 image. It also avoids security and complexity issues
that come with virtual mounts and loopback devices.
Libarchive supports the most common Rockridge extensions and
has partial support for Joliet extensions. If both
extensions are present, the Joliet extensions will be used
and the Rockridge extensions will be ignored. In particular,
this can create problems with hardlinks and symlinks, which
are supported by Rockridge but not by Joliet.</p>

<p style="margin-left:9%; margin-top: 1em">Libarchive reads
ISO9660 images using a streaming strategy. This allows it to
read compressed images directly (decompressing on the fly)
and allows it to read images directly from network sockets,
pipes, and other non-seekable data sources. This strategy
works well for optimized ISO9660 images created by many
popular programs. Such programs collect all directory
information at the beginning of the ISO9660 image so it can
be read from a physical disk with a minimum of seeking.
However, not all ISO9660 images can be read in this
fashion.</p>

<p style="margin-left:9%; margin-top: 1em">Libarchive can
also write ISO9660 images. Such images are fully optimized
with the directory information preceding all file data. This
is done by storing all file data to a temporary file while
collecting directory information in memory. When the image
is finished, libarchive writes out the directory structure
followed by the file data. The location used for the
temporary file can be changed by the usual environment
variables.</p>

<p style="margin-left:4%; margin-top: 1em"><b>Zip
format</b></p>

<p style="margin-left:9%;">Libarchive can read and write
zip format archives that have uncompressed entries and
entries compressed with the &ldquo;deflate&rdquo; ,
&ldquo;LZMA&rdquo; , &ldquo;XZ&rdquo; , &ldquo;BZIP2&rdquo;
and &ldquo;ZSTD&rdquo; algorithms. Libarchive can also read,
but not write, zip format archives that have entries
compressed with the &ldquo;PPMd&rdquo; algorithm. Other zip
compression algorithms are not supported. The extensions
supported by libarchive are Zip64, Libarchive&rsquo;s
extensions to better support streaming, PKZIP&rsquo;s
traditional ZIP encryption, Info-ZIP&rsquo;s Unix extra
fields, extra time, and Unicode path, as well as
WinZIP&rsquo;s AES encryption. It can extract jar archives,
__MACOSX resource forks extension for OS X, and
self-extracting zip archives. Libarchive can use either of
two different strategies for reading Zip archives: a
streaming strategy which is fast and can handle extremely
large archives, and a seeking strategy which can correctly
process self-extracting Zip archives and archives with
deleted members or other in-place modifications.</p>

<p style="margin-left:9%; margin-top: 1em">The streaming
reader processes Zip archives as they are read. It can read
archives of arbitrary size from tape or network sockets, and
can decode Zip archives that have been separately compressed
or encoded. However, self-extracting Zip archives and
archives with certain types of modifications cannot be
correctly handled. Such archives require that the reader
first process the Central Directory, which is ordinarily
located at the end of a Zip archive and is thus inaccessible
to the streaming reader. If the program using libarchive has
enabled seek support, then libarchive will use this to
processes the central directory first.</p>

<p style="margin-left:9%; margin-top: 1em">In particular,
the seeking reader must be used to correctly handle
self-extracting archives. Such archives consist of a program
followed by a regular Zip archive. The streaming reader
cannot parse the initial program portion, but the seeking
reader starts by reading the Central Directory from the end
of the archive. Similarly, Zip archives that have been
modified in-place can have deleted entries or other garbage
data that can only be accurately detected by first reading
the Central Directory.</p>

<p style="margin-left:4%; margin-top: 1em"><b>Archive
(library) file format</b></p>

<p style="margin-left:9%;">The Unix archive format
(commonly created by the <i>ar</i>(1) archiver) is a
general-purpose format which is used almost exclusively for
object files to be read by the link editor <i>ld</i>(1). The
ar format has never been standardised. There are two common
variants: the GNU format derived from SVR4, and the BSD
format, which first appeared in 4.4BSD. The two differ
primarily in their handling of filenames longer than 15
characters: the GNU/SVR4 variant writes a filename table at
the beginning of the archive; the BSD format stores each
long filename in an extension area adjacent to the entry.
Libarchive can read both extensions, including archives that
may include both types of long filenames. Programs using
libarchive can write GNU/SVR4 format if they provide an
entry called <i>//</i> containing a filename table to be
written into the archive before any of the entries. Any
entries whose names are not in the filename table will be
written using BSD-style long filenames. This can cause
problems for programs such as GNU ld that do not support the
BSD-style long filenames.</p>


<p style="margin-left:4%; margin-top: 1em"><b>mtree</b></p>

<p style="margin-left:9%;">Libarchive can read and write
files in <i>mtree</i>(5) format. This format is not a true
archive format, but rather a textual description of a file
hierarchy in which each line specifies the name of a file
and provides specific metadata about that file. Libarchive
can read all of the keywords supported by both the NetBSD
and FreeBSD versions of <i>mtree</i>(8), although many of
the keywords cannot currently be stored in an archive_entry
object. When writing, libarchive supports use of the
<i>archive_write_set_options</i>(3) interface to specify
which keywords should be included in the output. If
libarchive was compiled with access to suitable
cryptographic libraries (such as the OpenSSL libraries), it
can compute hash entries such as <b>sha512</b> or <b>md5</b>
from file data being written to the mtree writer.</p>

<p style="margin-left:9%; margin-top: 1em">When reading an
mtree file, libarchive will locate the corresponding files
on disk using the <b>contents</b> keyword if present or the
regular filename. If it can locate and open the file on
disk, it will use that to fill in any metadata that is
missing from the mtree file and will read the file contents
and return those to the program using libarchive. If it
cannot locate and open the file on disk, libarchive will
return an error for any attempt to read the entry body.</p>


<p style="margin-left:4%; margin-top: 1em"><b>7-Zip</b></p>

<p style="margin-left:9%;">Libarchive can read and write
7-Zip format archives. TODO: Need more information</p>

<p style="margin-left:4%; margin-top: 1em"><b>CAB</b></p>

<p style="margin-left:9%;">Libarchive can read Microsoft
Cabinet ( &ldquo;CAB&rdquo;) format archives. TODO: Need
more information.</p>

<p style="margin-left:4%; margin-top: 1em"><b>LHA</b></p>

<p style="margin-left:9%;">TODO: Information about
libarchive&rsquo;s LHA support</p>

<p style="margin-left:4%; margin-top: 1em"><b>RAR</b></p>

<p style="margin-left:9%;">Libarchive has limited support
for reading RAR format archives. Currently, libarchive can
read RARv3 format archives which have been either created
uncompressed, or compressed using any of the compression
methods supported by the RARv3 format. Libarchive can also
read self-extracting RAR archives.</p>

<p style="margin-left:4%; margin-top: 1em"><b>Warc</b></p>

<p style="margin-left:9%;">Libarchive can read and write
&ldquo;web archives&rdquo;. TODO: Need more information</p>

<p style="margin-left:4%; margin-top: 1em"><b>XAR</b></p>

<p style="margin-left:9%;">Libarchive can read and write
the XAR format used by many Apple tools. TODO: Need more
information</p>

<p style="margin-top: 1em"><b>SEE ALSO</b></p>

<p style="margin-left:9%;"><i>ar</i>(1), <i>cpio</i>(1),
<i>mkisofs</i>(1), <i>shar</i>(1), <i>tar</i>(1),
<i>zip</i>(1), <i>zlib</i>(3), <i>cpio</i>(5),
<i>mtree</i>(5), <i>tar</i>(5) Debian December 27, 2016
<i>LIBARCHIVE-FORMATS</i>(5)</p>
<hr>
</body>
</html>
@


1.21
log
@libarchive: updated to 3.8.6

Libarchive 3.8.6 is a security and bugfix release.

Notable fixes:

libarchive: fix incompatibility with Nettle 4.x
libarchive: fix NULL pointer dereference in archive_acl_from_text_w()
bsdunzip: fix ISO week year and Gregorian year confusion
7zip: ix SEGV in check_7zip_header_in_sfx via ELF offset validation
7zip: fix out-of-bounds access on ELF 64-bit header
RAR5 reader: fix infinite loop in rar5 decompression
RAR5 reader: fix potential memory leak
RAR5: fix SIGSEGV when archive_read_support_format_rar5 is called twice
CAB reader: fix memory leak on repeated calls to archive_read_support_format_cab
mtree reader: Fix file descriptor leak in mtree parser cleanup
various small bugfixes in code and documentation
@
text
@d2 1
a2 1
<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
@


1.20
log
@libarchive: updated to 3.8.5

3.8.5

Notable bugxies:

bsdtar: fix regression from 3.8.4 zero-length pattern issue bugfix
various small bugfixes in code and documentation
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Jan  5 10:42:45 2026 -->
@


1.19
log
@libarchive: updated to 3.8.4

3.8.4

Notable bugxies:

bsdtar: Fix zero-length pattern issue
lib: Fix regression introduced in libarchive 3.8.2 when walking enterable but unreadable directories
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Dec  1 12:42:38 2025 -->
@


1.18
log
@libarchive: updated to 3.8.3

Libarchive 3.8.3 is a bugfix and security release.

Security fixes:

lib: Create temporary files in the target directory
lha: Fix for an out-of-bounds buffer overrun when using p[H_LEVEL_OFFSET]
7-zip: Fix a buffer overrun when reading truncated 7zip headers

Notable bugxies:

lz4 and zstd: Support both lz4 and zstd data with leading skippable frames
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Nov 17 22:19:03 2025 -->
@


1.17
log
@libarchive: updated to 3.8.2

Libarchive 3.8.2 is a bugfix and security release.

Security fixes:

7zip: Fix out of boundary access
tar reader: fix checking the result of the strftime

Notable bugfixes:

bsdtar: Allow filename to have CRLF endings
lib: archive_read_data: handle sparse holes at end of file correctly
lib: improve filter process handling
lib: fix error checking in writing files
lib: handle possible errors from system calls
lib: avoid leaking file descriptors into subprocesses
lib: parse_date: handle dates in 2038 and beyond if time_t is big enough
RAR5 reader: fix multiple issues in extra field parsing function
RAR5 reader: early fail when file declares data for a dir entry
tar writer: fix replacing a regular file with a dir for ARCHIVE_EXTRACT_SAFE_WRITES
tar reader (Windows): check WCS pathname in header_gnutar before overwriting
tar reader: fix an infinite loop when parsing V headers
zip writer: fix a memory leak if write callback error early
zip writer: fix writing with ZSTD compression
zstd write filter: enable Zstandard's checksum feature
@
text
@d2 1
a2 1
<!-- CreationDate: Wed Oct 15 21:49:47 2025 -->
@


1.16
log
@libarchive: updated to 3.8.1

3.8.1

Important bugfixes

various compilation fixes
fixed undefined behavior in a function in warc reader
Windows binary uses xz 5.2.5
@
text
@d2 1
a2 1
<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
@


1.15
log
@libarchive bsdtar: updated to 3.8.0

Libarchive 3.8.0 is a feature and bugfix release.

New features:
bsdtar: support --mtime and --clamp-mtime
lib: mbedtls 3.x compatibility
7-zip reader: improve self-extracting archive detection
xar: xmllite support for the XAR reader and writer
zip writer: added XZ, LZMA, ZSTD and BZIP2 support
zip writer: added LZMA + RISCV BCJ filter

Notable security fixes:
rar: do not skip past EOF while reading
rar: fix double free with over 4 billion nodes
rar: fix heap-buffer-overflow
warc: prevent signed integer overflow
tar: fix overflow in build_ustar_entry

Notable bugfixes:
bsdtar: don't hardlink negative inode files together
gz: allow setting the original filename for gzip compressed files
lib: improve lseek handling
lib: support @@-prefixed Unix epoch timestamps as date strings
rar: support large headers on 32 bit systems
tar reader: Improve LFS support on 32 bit systems
@
text
@d2 1
a2 1
<!-- CreationDate: Tue May 20 09:02:20 2025 -->
@


1.14
log
@bsdtar libarchive: updated to 3.7.9

3.7.9

Important bugfixes:

a regression in libarchive 3.7.8 regarding GNU sparse entries was fixed


3.7.8

Security fixes:

tar reader: Handle truncation in the middle of a GNU long linkname
unzip: fix null pointer dereference
tar reader: fix unchecked return value in list_item_verbose()

Important bugfixes:

7zip reader: add SPARC
tar reader: Ignore ustar size when pax size is present
tar writer: Fix bug when -s/a/b/ used more than once with b flag
cpio: Fix a Y2038 bug on Windows
libarchive: Handle ARCHIVE_FILTER_LZOP in archive_read_append_filter
libarchive: Adding missing seeker function to archive_read_open_FILE()
@
text
@d2 1
a2 1
<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
d391 12
a402 3
entries compressed with the &ldquo;deflate&rdquo; algorithm.
Other zip compression algorithms are not supported. It can
extract jar archives, archives that use Zip64 extensions and
@


1.13
log
@libarchive: updated to 3.7.7

Libarchive 3.7.7 is a bugfix and security release

Security fixes:

gzip: prevent a hang when processing a malformed gzip inside a gzip
tar: don't crash on truncated tar archives
tar: fix two leaks in tar header parsing

Important bugfixes:

7-zip: read/write symlink paths as UTF-8
cpio: exit with an error code if an entry could not be extracted
rar5: report encrypted entries
tar: fix truncation of entry pathnames in specific archives
windows: fix ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS


Libarchive 3.7.6 is a bugfix and security release.
This release fixes a tar regression introduced in libarchive 3.7.5

Important bugfixes.

tar: clean up linkpath between entries
tar: fix memory leaks when processing symlinks or parsing pax headers
iso: be more cautious about parsing ISO-9660 timestamps
@
text
@d2 1
a2 1
<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
@


1.12
log
@libarchive: updated to 3.7.5

Libarchive 3.7.5

Security fixes:

fix multiple vulnerabilities identified by SAST
cpio: ignore out-of-range gid/uid/size/ino and harden AFIO parsing
lzop: prevent integer overflow
rar4: protect copy_from_lzss_window_to_unp()
rar4: fix CVE-2024-26256
rar4: fix OOB in delta and audio filter
rar4: fix out of boundary access with large files
rar4: add boundary checks to rgb filter
rar4: fix OOB access with unicode filenames
rar5: clear 'data ready' cache on window buffer reallocs
rpm: calculate huge header sizes correctly
unzip: unify EOF handling
util: fix out of boundary access in mktemp functions
uu: stop processing if lines are too long

Important bugfixes:

7zip: fix issue when skipping first file in 7zip archive that is a multiple of 65536 bytes
ar: fix archive entries having no type
lha: do not allow negative file sizes
lha: fix integer truncation on 32-bit systems
shar: check strdup return value
rar5: don't try to read rediculously long names
xar: fix another infinite loop and expat error handling
many Windows fixes, cleanups and improvements
@
text
@d1 2
a2 2
<!-- Creator     : groff version 1.22.4 -->
<!-- CreationDate: Fri Sep 13 20:31:06 2024 -->
d23 2
a24 2
<p>LIBARCHIVE-FORMATS(5) BSD File Formats Manual
LIBARCHIVE-FORMATS(5)</p>
d28 2
a29 3
<p style="margin-left:6%;"><b>libarchive-formats</b>
&mdash; archive formats supported by the libarchive
library</p>
d33 6
a38 6
<p style="margin-left:6%;">The libarchive(3) library reads
and writes a variety of streaming archive formats. Generally
speaking, all of these archive formats consist of a series
of &ldquo;entries&rdquo;. Each entry stores a single file
system object, such as a file, directory, or symbolic
link.</p>
d40 1
a40 1
<p style="margin-left:6%; margin-top: 1em">The following
d51 2
a52 6
<p style="margin-left:6%; margin-top: 1em"><b>Tar
Formats</b> <br>
The libarchive(3) library can read most tar archives. It can
write POSIX-standard &ldquo;ustar&rdquo; and &ldquo;pax
interchange&rdquo; formats as well as v7 tar format and a
subset of the legacy GNU tar format.</p>
d54 7
a60 1
<p style="margin-left:6%; margin-top: 1em">All tar formats
d72 13
a84 13
<p style="margin-left:17%; margin-top: 1em">The
libarchive(3) library can read most GNU-format tar archives.
It currently supports the most popular GNU extensions,
including modern long filename and linkname support, as well
as atime and ctime data. The libarchive library does not
support multi-volume archives, nor the old GNU long filename
format. It can read GNU sparse file entries, including the
new POSIX-based formats.</p>

<p style="margin-left:17%; margin-top: 1em">The
libarchive(3) library can write GNU tar format, including
long filename and linkname support, as well as atime and
ctime data.</p>
d88 19
a106 18
<p style="margin-left:17%; margin-top: 1em">The
libarchive(3) library can read and write POSIX-compliant pax
interchange format archives. Pax interchange format archives
are an extension of the older ustar format that adds a
separate entry with additional attributes stored as
key/value pairs immediately before each regular entry. The
presence of these additional entries is the only difference
between pax interchange format and the older ustar format.
The extended attributes are of unlimited length and are
stored as UTF-8 Unicode strings. Keywords defined in the
standard are in all lowercase; vendors are allowed to define
custom keys by preceding them with the vendor name in all
uppercase. When writing pax archives, libarchive uses many
of the SCHILY keys defined by Joerg Schilling&rsquo;s
&ldquo;star&rdquo; archiver and a few LIBARCHIVE keys. The
libarchive library can read most of the SCHILY keys and most
of the GNU keys introduced by GNU tar. It silently ignores
any keywords that it does not understand.</p>
d108 1
a108 1
<p style="margin-left:17%; margin-top: 1em">The pax
d118 1
a118 1
<p style="margin-left:17%;">The libarchive library can also
d135 1
a135 1
<p style="margin-left:17%; margin-top: 1em">The libarchive
d141 1
a141 1
<p style="margin-left:22%;">Device major and minor numbers
d147 1
a147 1
<p style="margin-left:22%;">Path names in the archive are
d153 1
a153 1
<p style="margin-left:22%;">Symbolic links and hard links
d159 1
a159 1
<p style="margin-left:22%;">Extended attributes, file
d165 1
a165 1
<p style="margin-left:22%;">Archive entries are limited to
d168 1
a168 1
<p style="margin-left:17%;">Note that the pax interchange
d175 1
a175 1
<p style="margin-left:17%; margin-top: 1em">The libarchive
d181 1
a181 1
<p style="margin-left:22%;">Only regular files,
d188 1
a188 1
<p style="margin-left:22%;">Path names in the archive are
d193 1
a193 1
<p style="margin-left:22%;">Symbolic links and hard links
d199 1
a199 1
<p style="margin-left:22%;">User and group information are
d205 1
a205 1
<p style="margin-left:22%;">Extended attributes, file
d211 1
a211 1
<p style="margin-left:22%;">Archive entries are limited to
d214 1
a214 1
<p style="margin-left:17%;">Generally, users should prefer
d218 1
a218 1
<p style="margin-left:6%; margin-top: 1em">The libarchive
d225 1
a225 1
<p style="margin-left:17%;">The POSIX standards require
d238 1
a238 1
<p style="margin-left:17%;">Libarchive recognizes ACL and
d241 1
a241 1
<p style="margin-left:6%; margin-top: 1em">The first tar
d248 13
a260 11
<p style="margin-left:6%; margin-top: 1em"><b>Cpio
Formats</b> <br>
The libarchive library can read and write a number of common
cpio variants. A cpio archive stores each entry as a
fixed-size header followed by a variable-length filename and
variable-length data. Unlike the tar format, the cpio format
does only minimal padding of the header or file data. There
are several cpio variants, which differ primarily in how
they store the initial header: some store the values as
octal or hexadecimal numbers in ASCII, others as binary
values of varying byte order and length.</p>
d264 1
a264 1
<p style="margin-left:17%; margin-top: 1em">The libarchive
d278 1
a278 1
<p style="margin-left:17%; margin-top: 1em">This is the
d291 1
a291 1
<p style="margin-left:17%;">The libarchive library can read
d299 1
a299 1
<p style="margin-left:6%; margin-top: 1em">Cpio first
d317 8
a324 6
<p style="margin-left:6%; margin-top: 1em"><b>Shar
Formats</b> <br>
A &ldquo;shell archive&rdquo; is a shell script that, when
executed on a POSIX-compliant system, will recreate a
collection of file system objects. The libarchive library
can write two different kinds of shar archives:</p>
d328 1
a328 1
<p style="margin-left:17%; margin-top: 1em">The traditional
d330 6
a335 5
echo(1), mkdir(1), and sed(1). It is suitable for portably
archiving small collections of plain text files. However, it
is not generally well-suited for large archives (many
implementations of sh(1) have limits on the size of a
script) nor should it be used with non-text files.</p>
d339 24
a362 23
<p style="margin-left:17%;">This format is similar to shar
but encodes files using uuencode(1) so that the result will
be a plain text file regardless of the file contents. It
also includes additional shell commands that attempt to
reproduce as many file attributes as possible, including
owner, mode, and flags. The additional commands used to
restore file attributes make shardump archives less portable
than plain shar archives.</p>

<p style="margin-left:6%; margin-top: 1em"><b>ISO9660
format</b> <br>
Libarchive can read and extract from files containing
ISO9660-compliant CDROM images. In many cases, this can
remove the need to burn a physical CDROM just in order to
read the files contained in an ISO9660 image. It also avoids
security and complexity issues that come with virtual mounts
and loopback devices. Libarchive supports the most common
Rockridge extensions and has partial support for Joliet
extensions. If both extensions are present, the Joliet
extensions will be used and the Rockridge extensions will be
ignored. In particular, this can create problems with
hardlinks and symlinks, which are supported by Rockridge but
not by Joliet.</p>
d364 1
a364 1
<p style="margin-left:6%; margin-top: 1em">Libarchive reads
d376 1
a376 1
<p style="margin-left:6%; margin-top: 1em">Libarchive can
d386 2
a387 13
<p style="margin-left:6%; margin-top: 1em"><b>Zip
format</b> <br>
Libarchive can read and write zip format archives that have
uncompressed entries and entries compressed with the
&ldquo;deflate&rdquo; algorithm. Other zip compression
algorithms are not supported. It can extract jar archives,
archives that use Zip64 extensions and self-extracting zip
archives. Libarchive can use either of two different
strategies for reading Zip archives: a streaming strategy
which is fast and can handle extremely large archives, and a
seeking strategy which can correctly process self-extracting
Zip archives and archives with deleted members or other
in-place modifications.</p>
d389 13
a401 1
<p style="margin-left:6%; margin-top: 1em">The streaming
d414 1
a414 1
<p style="margin-left:6%; margin-top: 1em">In particular,
d425 13
a437 11
<p style="margin-left:6%; margin-top: 1em"><b>Archive
(library) file format</b> <br>
The Unix archive format (commonly created by the ar(1)
archiver) is a general-purpose format which is used almost
exclusively for object files to be read by the link editor
ld(1). The ar format has never been standardised. There are
two common variants: the GNU format derived from SVR4, and
the BSD format, which first appeared in 4.4BSD. The two
differ primarily in their handling of filenames longer than
15 characters: the GNU/SVR4 variant writes a filename table
at the beginning of the archive; the BSD format stores each
d449 13
a461 11
<p style="margin-left:6%; margin-top: 1em"><b>mtree</b>
<br>
Libarchive can read and write files in mtree(5) format. This
format is not a true archive format, but rather a textual
description of a file hierarchy in which each line specifies
the name of a file and provides specific metadata about that
file. Libarchive can read all of the keywords supported by
both the NetBSD and FreeBSD versions of mtree(8), although
many of the keywords cannot currently be stored in an
archive_entry object. When writing, libarchive supports use
of the archive_write_set_options(3) interface to specify
d468 1
a468 1
<p style="margin-left:6%; margin-top: 1em">When reading an
d478 36
a513 27
<p style="margin-left:6%; margin-top: 1em"><b>7-Zip</b>
<br>
Libarchive can read and write 7-Zip format archives. TODO:
Need more information</p>

<p style="margin-left:6%; margin-top: 1em"><b>CAB</b> <br>
Libarchive can read Microsoft Cabinet ( &ldquo;CAB&rdquo;)
format archives. TODO: Need more information.</p>

<p style="margin-left:6%; margin-top: 1em"><b>LHA</b> <br>
TODO: Information about libarchive&rsquo;s LHA support</p>

<p style="margin-left:6%; margin-top: 1em"><b>RAR</b> <br>
Libarchive has limited support for reading RAR format
archives. Currently, libarchive can read RARv3 format
archives which have been either created uncompressed, or
compressed using any of the compression methods supported by
the RARv3 format. Libarchive can also read self-extracting
RAR archives.</p>

<p style="margin-left:6%; margin-top: 1em"><b>Warc</b> <br>
Libarchive can read and write &ldquo;web archives&rdquo;.
TODO: Need more information</p>

<p style="margin-left:6%; margin-top: 1em"><b>XAR</b> <br>
Libarchive can read and write the XAR format used by many
Apple tools. TODO: Need more information</p>
d517 5
a521 6
<p style="margin-left:6%;">ar(1), cpio(1), mkisofs(1),
shar(1), tar(1), zip(1), zlib(3), cpio(5), mtree(5),
tar(5)</p>

<p style="margin-left:6%; margin-top: 1em">BSD
December&nbsp;27, 2016 BSD</p>
@


1.11
log
@libarchive: updated to 3.7.4

Libarchive 3.7.4 is a bugfix and security release

Security fixes:

rar: Fix OOB in rar e8 filter (CVE-2024-26256)
zip: Fix out of boundary access

Important bugfixes:

7zip: Limit amount of properties
bsdtar: Fix error handling around strtol() usages
passphrase: Improve newline handling on Windows
passphrase: Never allow empty passwords
rar: Fix "File CRC Error" when extracting specific rar4 archives
xar: Avoid infinite link loop
zip: Update AppleDouble support for directories
zstd: Implement core detection
@
text
@d2 1
a2 1
<!-- CreationDate: Fri Apr 26 09:23:47 2024 -->
@


1.10
log
@libarchive: updated to 3.7.3

Libarchive 3.7.3 is a feature, security and bugfix release.

New features:

PCRE2 support
add trailing letter b to bsdtar(1) substitute pattern
add support for long options "--group" and "--owner" to tar(1)

Security fixes:

Fix possible vulnerability in tar error reporting introduced in f27c173

Important bugfixes:

ISO9660: preserve the natural order of links
rar5: fix decoding unicode filenames on Windows
rar5: fix infinite loop if during rar5 decompression the last block produced no data
xz filter: fix incorrect eof at the end of an lzip member
zip: fix end-of-data marker processing when decompressing zip archives
multiple bsdunzip(1) fixes
filetime truncation fix on Windows
@
text
@d2 1
a2 1
<!-- CreationDate: Sun Apr  7 22:36:27 2024 -->
@


1.9
log
@libarchive: updated to 3.7.2

Libarchive 3.7.2 is a security, bugfix and feature release.

Security fixes:

Multiple vulnerabilities have been fixed in the PAX writer (1b4e0d0)
Important bugfixes:

bsdunzip(1) now correctly handles arguments following an -x after the zipfile
New features:

bsdunzip(1) now supports the "--version" flag
7-zip reader now translates Windows permissions into UNIX permissions
uudecode filter in raw mode now supports file name and file mode
zstd filter now supports the "long" write option


Libarchive 3.7.1 is a security, feature and bugfix release.

Security fixes:

SEGV and stack buffer overflow in verbose mode of cpio
Feature updates:

bsdunzip updated to match latest upstream code
Important bugfixes:

miscellaneous functional bugfixes
build fixes on multiple platforms


Libarchive 3.7.0 is a feature and bugfix release.

New features:

bsdunzip: new tool ported from FreeBSD
drop-in replacement for Info-ZIP unzip, not yet ported for Windows
7zip reader: support for Zstandard compression
7zip reader: support for ARM64 filter
zstd filter: support for multi-frame zstd archives
Other notable bugfixes and improvements:

pax: fix year 2038 problem on platforms with 64-bit time_t
Windows: Universal Windows Platform (UWP) fixes and improvements
Windows: bcrypt usage fixes and improvements
Windows: time function usage fixes and improvements
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Sep 11 22:06:22 2023 -->
@


1.8
log
@libarchive: Update to 3.4.3

Libarchive 3.4.3 is a feature and bugfix release.

New features:

    support for pzstd compressed files (#1357)
    support for RHT.security.selinux tar extended attribute (#1348)

Important bugfixes:

    various zstd fixes and improvements (#1342 #1352 #1359)
    child process handling fixes (#1372)

Libarchive 3.4.2 is a feature and security release.

New features:

    support for atomic file extraction (bsdtar -x --safe-writes) (#1289)
    support for mbed TLS (PolarSSL) (#1301)

Important bugfixes:

    security fixes in RAR5 reader (#1280 #1326)
    compression buffer fix in XAR writer (#1317)
    fix uname and gname longer than 32 characters in PAX writer (#1319)
    fix segfault when archiving hard links in ISO9660 and XAR writers (#1325)
    fix support for extracting 7z archive entries with Delta filter (#987)

Libarchive 3.4.1 is a feature and security release.

New features:

    Unicode filename support for reading lha/lzh archives
    New pax write option "xattrhdr"

Important bugfixes:

    security fixes in wide string processing (#1276 #1298)
    security fixes in RAR5 reader (#1212 #1217 #1296)
    security fixes and optimizations to write filter logic (#351)
    security fix related to use of readlink(2) (1dae5a5)
    sparse file handling fixes (#1218 #1260)

Thanks to all contributors and bug reporters.
Special thanks to Christos Zoulas (@@zoulasc) from NetBSD for the atomic file extraction feature.
@
text
@d1 2
a2 2
<!-- Creator     : groff version 1.22.3 -->
<!-- CreationDate: Wed May 20 01:10:08 2020 -->
d37 3
a39 3
of &rsquo;&rsquo;entries&rsquo;&rsquo;. Each entry stores a
single file system object, such as a file, directory, or
symbolic link.</p>
d55 3
a57 4
write POSIX-standard &rsquo;&rsquo;ustar&rsquo;&rsquo; and
&rsquo;&rsquo;pax interchange&rsquo;&rsquo; formats as well
as v7 tar format and a subset of the legacy GNU tar
format.</p>
d101 4
a104 5
&rsquo;&rsquo;star&rsquo;&rsquo; archiver and a few
LIBARCHIVE keys. The libarchive library can read most of the
SCHILY keys and most of the GNU keys introduced by GNU tar.
It silently ignores any keywords that it does not
understand.</p>
d242 3
a244 4
&rsquo;&rsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
defined by POSIX in 1988. POSIX.1-2001 extended the ustar
format to create the &rsquo;&rsquo;pax
interchange&rsquo;&rsquo; format.</p>
d248 9
a256 11
The libarchive library can read a number of common cpio
variants and can write &rsquo;&rsquo;odc&rsquo;&rsquo; and
&rsquo;&rsquo;newc&rsquo;&rsquo; format archives. A cpio
archive stores each entry as a fixed-size header followed by
a variable-length filename and variable-length data. Unlike
the tar format, the cpio format does only minimal padding of
the header or file data. There are several cpio variants,
which differ primarily in how they store the initial header:
some store the values as octal or hexadecimal numbers in
ASCII, others as binary values of varying byte order and
length.</p>
d262 9
a270 3
little-endian variants of the original binary cpio format.
This format used 32-bit binary values for file size and
mtime, and 16-bit binary values for the other fields.</p>
d274 10
a283 11
<p style="margin-left:17%; margin-top: 1em">The libarchive
library can both read and write this POSIX-standard format,
which is officially known as the &rsquo;&rsquo;cpio
interchange format&rsquo;&rsquo; or the
&rsquo;&rsquo;octet-oriented cpio archive
format&rsquo;&rsquo; and sometimes unofficially referred to
as the &rsquo;&rsquo;old character format&rsquo;&rsquo;.
This format stores the header contents as octal values in
ASCII. It is standard, portable, and immune from byte-order
confusion. File sizes and mtime are limited to 33 bits (8GB
file size), other fields are limited to 18 bits.</p>
d315 4
a318 4
A &rsquo;&rsquo;shell archive&rsquo;&rsquo; is a shell
script that, when executed on a POSIX-compliant system, will
recreate a collection of file system objects. The libarchive
library can write two different kinds of shar archives:</p>
d382 9
a390 9
&rsquo;&rsquo;deflate&rsquo;&rsquo; algorithm. Other zip
compression algorithms are not supported. It can extract jar
archives, archives that use Zip64 extensions and
self-extracting zip archives. Libarchive can use either of
two different strategies for reading Zip archives: a
streaming strategy which is fast and can handle extremely
large archives, and a seeking strategy which can correctly
process self-extracting Zip archives and archives with
deleted members or other in-place modifications.</p>
d471 2
a472 3
Libarchive can read Microsoft Cabinet (
&rsquo;&rsquo;CAB&rsquo;&rsquo;) format archives. TODO: Need
more information.</p>
d486 2
a487 2
Libarchive can read and write &rsquo;&rsquo;web
archives&rsquo;&rsquo;. TODO: Need more information</p>
@


1.7
log
@Update for libarchive-3.4.0:
- improvements for Android APK and JAR archives
- better support for non-recursive list and extract
- tar --exclude-vcs support
- fixes for file attributes and flags handling
- zipx support
- rar 5.0 reader
@
text
@d1 2
a2 2
<!-- Creator     : groff version 1.22.4 -->
<!-- CreationDate: Wed Jun 12 21:10:18 2019 -->
d37 3
a39 3
of &ldquo;entries&rdquo;. Each entry stores a single file
system object, such as a file, directory, or symbolic
link.</p>
d55 4
a58 3
write POSIX-standard &ldquo;ustar&rdquo; and &ldquo;pax
interchange&rdquo; formats as well as v7 tar format and a
subset of the legacy GNU tar format.</p>
d102 5
a106 4
&ldquo;star&rdquo; archiver and a few LIBARCHIVE keys. The
libarchive library can read most of the SCHILY keys and most
of the GNU keys introduced by GNU tar. It silently ignores
any keywords that it does not understand.</p>
d244 4
a247 3
&ldquo;ustar&rdquo; (Unix Standard Tar) format defined by
POSIX in 1988. POSIX.1-2001 extended the ustar format to
create the &ldquo;pax interchange&rdquo; format.</p>
d252 4
a255 4
variants and can write &ldquo;odc&rdquo; and
&ldquo;newc&rdquo; format archives. A cpio archive stores
each entry as a fixed-size header followed by a
variable-length filename and variable-length data. Unlike
d275 9
a283 8
which is officially known as the &ldquo;cpio interchange
format&rdquo; or the &ldquo;octet-oriented cpio archive
format&rdquo; and sometimes unofficially referred to as the
&ldquo;old character format&rdquo;. This format stores the
header contents as octal values in ASCII. It is standard,
portable, and immune from byte-order confusion. File sizes
and mtime are limited to 33 bits (8GB file size), other
fields are limited to 18 bits.</p>
d315 4
a318 4
A &ldquo;shell archive&rdquo; is a shell script that, when
executed on a POSIX-compliant system, will recreate a
collection of file system objects. The libarchive library
can write two different kinds of shar archives:</p>
d382 9
a390 9
&ldquo;deflate&rdquo; algorithm. Other zip compression
algorithms are not supported. It can extract jar archives,
archives that use Zip64 extensions and self-extracting zip
archives. Libarchive can use either of two different
strategies for reading Zip archives: a streaming strategy
which is fast and can handle extremely large archives, and a
seeking strategy which can correctly process self-extracting
Zip archives and archives with deleted members or other
in-place modifications.</p>
d471 3
a473 2
Libarchive can read Microsoft Cabinet ( &ldquo;CAB&rdquo;)
format archives. TODO: Need more information.</p>
d487 2
a488 2
Libarchive can read and write &ldquo;web archives&rdquo;.
TODO: Need more information</p>
@


1.6
log
@libarchive: updated to 3.3.3

libarchive 3.3.3:
Avoid super-linear slowdown on malformed mtree files
Many fixes for building with Visual Studio
NO_OVERWRITE doesn't change existing directory attributes
New support for Zstandard read and write filters
@
text
@d1 2
a2 2
<!-- Creator     : groff version 1.22.3 -->
<!-- CreationDate: Mon Sep  3 22:55:10 2018 -->
d37 3
a39 3
of &rsquo;&rsquo;entries&rsquo;&rsquo;. Each entry stores a
single file system object, such as a file, directory, or
symbolic link.</p>
d55 3
a57 4
write POSIX-standard &rsquo;&rsquo;ustar&rsquo;&rsquo; and
&rsquo;&rsquo;pax interchange&rsquo;&rsquo; formats as well
as v7 tar format and a subset of the legacy GNU tar
format.</p>
d101 4
a104 5
&rsquo;&rsquo;star&rsquo;&rsquo; archiver and a few
LIBARCHIVE keys. The libarchive library can read most of the
SCHILY keys and most of the GNU keys introduced by GNU tar.
It silently ignores any keywords that it does not
understand.</p>
d242 3
a244 4
&rsquo;&rsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
defined by POSIX in 1988. POSIX.1-2001 extended the ustar
format to create the &rsquo;&rsquo;pax
interchange&rsquo;&rsquo; format.</p>
d249 4
a252 4
variants and can write &rsquo;&rsquo;odc&rsquo;&rsquo; and
&rsquo;&rsquo;newc&rsquo;&rsquo; format archives. A cpio
archive stores each entry as a fixed-size header followed by
a variable-length filename and variable-length data. Unlike
d272 8
a279 9
which is officially known as the &rsquo;&rsquo;cpio
interchange format&rsquo;&rsquo; or the
&rsquo;&rsquo;octet-oriented cpio archive
format&rsquo;&rsquo; and sometimes unofficially referred to
as the &rsquo;&rsquo;old character format&rsquo;&rsquo;.
This format stores the header contents as octal values in
ASCII. It is standard, portable, and immune from byte-order
confusion. File sizes and mtime are limited to 33 bits (8GB
file size), other fields are limited to 18 bits.</p>
d311 4
a314 4
A &rsquo;&rsquo;shell archive&rsquo;&rsquo; is a shell
script that, when executed on a POSIX-compliant system, will
recreate a collection of file system objects. The libarchive
library can write two different kinds of shar archives:</p>
d378 9
a386 9
&rsquo;&rsquo;deflate&rsquo;&rsquo; algorithm. Other zip
compression algorithms are not supported. It can extract jar
archives, archives that use Zip64 extensions and
self-extracting zip archives. Libarchive can use either of
two different strategies for reading Zip archives: a
streaming strategy which is fast and can handle extremely
large archives, and a seeking strategy which can correctly
process self-extracting Zip archives and archives with
deleted members or other in-place modifications.</p>
d467 2
a468 3
Libarchive can read Microsoft Cabinet (
&rsquo;&rsquo;CAB&rsquo;&rsquo;) format archives. TODO: Need
more information.</p>
d482 2
a483 2
Libarchive can read and write &rsquo;&rsquo;web
archives&rsquo;&rsquo;. TODO: Need more information</p>
@


1.5
log
@Merge for libarchive-3.3.2.
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Jul 10 02:32:57 2017 -->
@


1.4
log
@Merge libarchive-3.3.1.
@
text
@d2 1
a2 1
<!-- CreationDate: Sat Feb 25 11:22:06 2017 -->
d37 1
a37 1
of &lsquo;&lsquo;entries&rsquo;&rsquo;. Each entry stores a
d55 2
a56 2
write POSIX-standard &lsquo;&lsquo;ustar&rsquo;&rsquo; and
&lsquo;&lsquo;pax interchange&rsquo;&rsquo; formats as well
d102 1
a102 1
&lsquo;&lsquo;star&rsquo;&rsquo; archiver and a few
d244 1
a244 1
&lsquo;&lsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
d246 1
a246 1
format to create the &lsquo;&lsquo;pax
d252 2
a253 2
variants and can write &lsquo;&lsquo;odc&rsquo;&rsquo; and
&lsquo;&lsquo;newc&rsquo;&rsquo; format archives. A cpio
d275 1
a275 1
which is officially known as the &lsquo;&lsquo;cpio
d277 1
a277 1
&lsquo;&lsquo;octet-oriented cpio archive
d279 1
a279 1
as the &lsquo;&lsquo;old character format&rsquo;&rsquo;.
d315 1
a315 1
A &lsquo;&lsquo;shell archive&rsquo;&rsquo; is a shell
d382 1
a382 1
&lsquo;&lsquo;deflate&rsquo;&rsquo; algorithm. Other zip
d472 1
a472 1
&lsquo;&lsquo;CAB&rsquo;&rsquo;) format archives. TODO: Need
d487 1
a487 1
Libarchive can read and write &lsquo;&lsquo;web
@


1.3
log
@Update for libarchive 3.2.1.
@
text
@d2 1
a2 1
<!-- CreationDate: Sun Jun 19 19:54:09 2016 -->
d37 1
a37 1
of &rsquo;&rsquo;entries&rsquo;&rsquo;. Each entry stores a
d55 2
a56 2
write POSIX-standard &rsquo;&rsquo;ustar&rsquo;&rsquo; and
&rsquo;&rsquo;pax interchange&rsquo;&rsquo; formats as well
d102 1
a102 1
&rsquo;&rsquo;star&rsquo;&rsquo; archiver and a few
d239 1
a239 3
extended attribute records written by Solaris tar.
Currently, libarchive only has support for old-style ACLs;
the newer NFSv4 ACLs are recognized but discarded.</p>
d244 1
a244 1
&rsquo;&rsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
d246 1
a246 1
format to create the &rsquo;&rsquo;pax
d252 2
a253 2
variants and can write &rsquo;&rsquo;odc&rsquo;&rsquo; and
&rsquo;&rsquo;newc&rsquo;&rsquo; format archives. A cpio
d275 1
a275 1
which is officially known as the &rsquo;&rsquo;cpio
d277 1
a277 1
&rsquo;&rsquo;octet-oriented cpio archive
d279 1
a279 1
as the &rsquo;&rsquo;old character format&rsquo;&rsquo;.
d315 1
a315 1
A &rsquo;&rsquo;shell archive&rsquo;&rsquo; is a shell
d382 1
a382 1
&rsquo;&rsquo;deflate&rsquo;&rsquo; algorithm. Other zip
d472 1
a472 1
&rsquo;&rsquo;CAB&rsquo;&rsquo;) format archives. TODO: Need
d487 1
a487 1
Libarchive can read and write &rsquo;&rsquo;web
d501 1
a501 1
March&nbsp;18, 2012 BSD</p>
@


1.2
log
@Changes 3.1.2:
This is a maintenance update to fix issues with the new RAR seeking
feature. This new release also contains fixes for build failures when
building libarchive using Visual Studio 2012 and MinGW.
@
text
@d1 2
a2 2
<!-- Creator     : groff version 1.21 -->
<!-- CreationDate: Sat Feb  9 12:24:08 2013 -->
d56 3
a58 2
&rsquo;&rsquo;pax interchange&rsquo;&rsquo; formats and a
subset of the legacy GNU tar format.</p>
d173 45
d287 1
a287 1
<p style="margin-top: 1em"><b>SVR4</b></p>
d289 7
a295 7
<p style="margin-left:17%; margin-top: 1em">The libarchive
library can read both CRC and non-CRC variants of this
format. The SVR4 format uses eight-digit hexadecimal values
for all header fields. This limits file size to 4GB, and
also limits the mtime and other fields to 32 bits. The SVR4
format can optionally include a CRC of the file contents,
although libarchive does not currently verify this CRC.</p>
d432 7
a438 6
libarchive can write GNU/SVR4 format if they provide a
filename table to be written into the archive before any of
the entries. Any entries whose names are not in the filename
table will be written using BSD-style long filenames. This
can cause problems for programs such as GNU ld that do not
support the BSD-style long filenames.</p>
d467 4
a470 2
<p style="margin-left:6%; margin-top: 1em"><b>LHA</b> <br>
XXX Information about libarchive&rsquo;s LHA support XXX</p>
d473 3
a475 1
XXX Information about libarchive&rsquo;s CAB support XXX</p>
d477 2
a478 2
<p style="margin-left:6%; margin-top: 1em"><b>XAR</b> <br>
XXX Information about libarchive&rsquo;s XAR support XXX</p>
d488 8
@


1.1
log
@Initial revision
@
text
@d1 2
a2 2
<!-- Creator     : groff version 1.19.2 -->
<!-- CreationDate: Thu Feb  4 20:36:35 2010 -->
d11 4
a14 3
       p     { margin-top: 0; margin-bottom: 0; }
       pre   { margin-top: 0; margin-bottom: 0; }
       table { margin-top: 0; margin-bottom: 0; }
d23 2
a24 2
<p valign="top">libarchive-formats(5) FreeBSD File Formats
Manual libarchive-formats(5)</p>
d26 1
a26 1
<p style="margin-top: 1em" valign="top"><b>NAME</b></p>
d28 1
a28 1
<p style="margin-left:8%;"><b>libarchive-formats</b>
d32 1
d34 1
a34 3
<p style="margin-top: 1em" valign="top"><b>DESCRIPTION</b></p>

<p style="margin-left:8%;">The libarchive(3) library reads
d37 1
a37 1
of &lsquo;&lsquo;entries&rsquo;&rsquo;. Each entry stores a
d41 1
a41 1
<p style="margin-left:8%; margin-top: 1em">The following
d52 1
a52 1
<p style="margin-left:8%; margin-top: 1em"><b>Tar
d54 4
a57 4
The libarchive(3) library can read most tar archives.
However, it only writes POSIX-standard
&lsquo;&lsquo;ustar&rsquo;&rsquo; and &lsquo;&lsquo;pax
interchange&rsquo;&rsquo; formats.</p>
d59 1
a59 1
<p style="margin-left:8%; margin-top: 1em">All tar formats
d69 1
a69 1
<p style="margin-top: 1em" valign="top"><b>gnutar</b></p>
d71 3
a73 3
<p style="margin-left:20%; margin-top: 1em">The
libarchive(3) library can read GNU-format tar archives. It
currently supports the most popular GNU extensions,
d78 6
a83 2
new POSIX-based formats, but cannot write GNU sparse file
entries.</p>
d85 1
a85 1
<p style="margin-top: 1em" valign="top"><b>pax</b></p>
d87 1
a87 1
<p style="margin-left:20%; margin-top: 1em">The
d101 1
a101 1
&lsquo;&lsquo;star&rsquo;&rsquo; archiver and a few
d107 7
a113 2
<p style="margin-top: 1em" valign="top"><b>restricted
pax</b></p>
d115 3
a117 1
<p style="margin-left:20%;">The libarchive library can also
d132 1
a132 1
<p style="margin-top: 1em" valign="top"><b>ustar</b></p>
d134 1
a134 1
<p style="margin-left:20%; margin-top: 1em">The libarchive
d138 1
a138 1
<p valign="top"><b>&bull;</b></p>
d140 1
a140 1
<p style="margin-left:26%;">Device major and minor numbers
d144 1
a144 1
<p valign="top"><b>&bull;</b></p>
d146 1
a146 1
<p style="margin-left:26%;">Path names in the archive are
d150 1
a150 1
<p valign="top"><b>&bull;</b></p>
d152 1
a152 1
<p style="margin-left:26%;">Symbolic links and hard links
d156 1
a156 1
<p valign="top"><b>&bull;</b></p>
d158 1
a158 1
<p style="margin-left:26%;">Extended attributes, file
d162 1
a162 1
<p valign="top"><b>&bull;</b></p>
d164 1
a164 1
<p style="margin-left:26%;">Archive entries are limited to
d167 4
a170 2
<p style="margin-left:20%;">Note that the pax interchange
format has none of these restrictions.</p>
d172 1
a172 1
<p style="margin-left:8%; margin-top: 1em">The libarchive
d177 1
a177 2
<p style="margin-top: 1em" valign="top">Numeric
extensions.</p>
d179 1
a179 1
<p style="margin-left:20%;">The POSIX standards require
d190 1
a190 2
<p style="margin-top: 1em" valign="top">Solaris
extensions</p>
d192 1
a192 1
<p style="margin-left:20%;">Libarchive recognizes ACL and
d197 1
a197 1
<p style="margin-left:8%; margin-top: 1em">The first tar
d200 1
a200 1
&lsquo;&lsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
d202 1
a202 1
format to create the &lsquo;&lsquo;pax
d205 1
a205 1
<p style="margin-left:8%; margin-top: 1em"><b>Cpio
d208 2
a209 2
variants and can write &lsquo;&lsquo;odc&rsquo;&rsquo; and
&lsquo;&lsquo;newc&rsquo;&rsquo; format archives. A cpio
d219 1
a219 1
<p style="margin-top: 1em" valign="top"><b>binary</b></p>
d221 1
a221 1
<p style="margin-left:20%; margin-top: 1em">The libarchive
d227 1
a227 1
<p style="margin-top: 1em" valign="top"><b>odc</b></p>
d229 1
a229 1
<p style="margin-left:20%; margin-top: 1em">The libarchive
d231 1
a231 1
which is officially known as the &lsquo;&lsquo;cpio
d233 1
a233 1
&lsquo;&lsquo;octet-oriented cpio archive
d235 1
a235 1
as the &lsquo;&lsquo;old character format&rsquo;&rsquo;.
d241 1
a241 1
<p style="margin-top: 1em" valign="top"><b>SVR4</b></p>
d243 1
a243 1
<p style="margin-left:20%; margin-top: 1em">The libarchive
d251 1
a251 1
<p style="margin-left:8%; margin-top: 1em">Cpio first
d269 1
a269 1
<p style="margin-left:8%; margin-top: 1em"><b>Shar
d271 1
a271 1
A &lsquo;&lsquo;shell archive&rsquo;&rsquo; is a shell
d276 1
a276 1
<p style="margin-top: 1em" valign="top"><b>shar</b></p>
d278 1
a278 1
<p style="margin-left:20%; margin-top: 1em">The traditional
d286 1
d288 1
a288 3
<p style="margin-top: 1em" valign="top"><b>shardump</b></p>

<p style="margin-left:20%;">This format is similar to shar
d297 1
a297 1
<p style="margin-left:8%; margin-top: 1em"><b>ISO9660
d312 23
a334 1
<p style="margin-left:8%; margin-top: 1em"><b>Zip
d338 1
a338 1
&lsquo;&lsquo;deflate&rsquo;&rsquo; algorithm. Older zip
d340 31
a370 7
archives, archives that use Zip64 extensions and many
self-extracting zip archives. Libarchive reads Zip archives
as they are being streamed, which allows it to read archives
of arbitrary size. It currently does not use the central
directory; this limits libarchive&rsquo;s ability to support
some self-extracting archives and ones that have been
modified in certain ways.</p>
d372 1
a372 1
<p style="margin-left:8%; margin-top: 1em"><b>Archive
d393 1
a393 1
<p style="margin-left:8%; margin-top: 1em"><b>mtree</b>
d400 1
a400 1
both the NetBSD and FreeBSD versions of mtree(1), although
d410 1
a410 1
<p style="margin-left:8%; margin-top: 1em">When reading an
d420 2
a421 1
<p style="margin-top: 1em" valign="top"><b>SEE ALSO</b></p>
d423 17
a439 1
<p style="margin-left:8%;">ar(1), cpio(1), mkisofs(1),
d443 2
a444 3

<p style="margin-left:8%; margin-top: 1em">FreeBSD&nbsp;8.0
December&nbsp;27, 2009 FreeBSD&nbsp;8.0</p>
@


1.1.1.1
log
@Import libarchive 2.8.0:
- Infrastructure:
  - Allow command line tools as fallback for missing compression
    libraries. If compiled without gzip for example, gunzip will
    be used automatically.
  - Improved support for a number of platforms like high-resolution
    timestamps and Extended Attributes on various Unix systems
  - New convience interface for creating archives based on disk content,
    complement of the archive_write_disk interface.
- Frontends:
  - bsdcpio ready for public consumption
  - hand-written date parser replaces the yacc code
- Filter system:
  - Simplified read filter chains
  - Option support for filters
  - LZMA, XZ, uudecode handled
- Format support:
  - Write support for mtree files based on file system or archive
    content
  - Basic read support for Joliet
  - Write support for zip files
  - Write support for shar archives, both text-only and binary-safe
@
text
@@


1.1.1.2
log
@libarchive-2.8.2:
- Fix NULL deference for short self-extracting zip archives
- Don't dereference symlinks on Linux when reading ACLs
- Better detection of SHA2 support for old OpenSSL versions
- Fix parsing of input files for bsdtar -T
- Do not leak setup_xattr into the global namespace
- Fix build when an older libarchive is already installed
- Use O_BINARY opening files in bsdtar
- Include missing archive_crc32.h
- Correctly include iconv.h required by libxml2
@
text
@d1 375
a375 895
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
%%CreationDate: Sun Mar 14 02:49:17 2010
%%DocumentNeededResources: font Times-Roman
%%DocumentSuppliedResources: procset grops 1.19 2
%%Pages: 61
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
%%EndComments
%%BeginDefaults
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
%%BeginResource: procset grops 1.19 2
%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/MANUAL{
statusdict begin/manualfeed true store end
}bind def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/Fr{
setrgbcolor fill
}bind def
/setcmykcolor where{
pop
/Fk{
setcmykcolor fill
}bind def
}if
/Fg{
setgray fill
}bind def
/FL/fill load def
/LW/setlinewidth load def
/Cr/setrgbcolor load def
/setcmykcolor where{
pop
/Ck/setcmykcolor load def
}if
/Cg/setgray load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[]0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{}def
/setpagedevice{}def
}bind def
/PEND{
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%EndProlog
%%BeginSetup
%%BeginFeature: *PageSize Default
<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
%%EndFeature
%%IncludeResource: font Times-Roman
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Times-Roman@@0 ENC0/Times-Roman RE
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<html>)0 12 Q(<head>)0 24 Q(<title>)36 36 Q
(December 27, 2009 libarchi)74.5 48 Q -.15(ve)-.25 G(-formats 5).15 E
(</title>)36 72 Q 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<style type="te)36 12 Q(xt/css">)-.15 E(<!--)36
24 Q(body { mar)72 36 Q(gin-left:4%; })-.18 E(H1, H2, H3, H4, H5 {)72 48
Q(color: maroon; padding: 4pt; mar)108 60 Q(gin-left: -4%;)-.18 E
(border: solid; border)108 72 Q(-width: thin; width: 100%;)-.2 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(background: r)108 12 Q(gb\(204,204,255\))-.18 E
(})72 24 Q(-->)36 36 Q(</style>)36 48 Q(</head>)0 60 Q
(<body bgcolor="#FFFFFF" te)0 72 Q(xt="#000000">)-.15 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<h3 id="N)36 12 Q(AME">)-.35 E -.35(NA)36 24 S
(ME).35 E(</h3>)36 36 Q(<b>libarchi)0 48 Q -.15(ve)-.25 G(-formats</b>)
.15 E 2.5(-a)0 60 S(rchi)-2.5 E .3 -.15(ve f)-.25 H
(ormats supported by the libarchi).15 E .3 -.15(ve l)-.25 H(ibrary).15 E
(<h3 id="DESCRIPTION">)36 72 Q 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(DESCRIPTION)36 12 Q(</h3>)36 24 Q(The)0 36 Q
(<a href="../html3/libarchi)0 48 Q -.15(ve)-.25 G(.html">libarchi).15 E
-.15(ve)-.25 G(\(3\)</a>).15 E(library reads and writes a v)0 60 Q
(ariety of streaming archi)-.25 E .3 -.15(ve f)-.25 H(ormats.).15 E
(Generally speaking, all of these archi)0 72 Q .3 -.15(ve f)-.25 H
(ormats consist of a series of).15 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(entries').74 E('.)-.74 E(Each en\
try stores a single \214le system object, such as a \214le, directory)0
24 Q(,)-.65 E(or symbolic link.)0 36 Q(<p>)36 48 Q(The follo)0 60 Q
(wing pro)-.25 E(vides a brief description of each format supported)-.15
E(by libarchi)0 72 Q -.15(ve)-.25 G 2.5(,w).15 G
(ith some information about recognized e)-2.5 E(xtensions or)-.15 E 0 Cg
EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(limitations of the current library support.)0 12
Q(Note that just because a format is supported by libarchi)0 24 Q .3
-.15(ve d)-.25 H(oes not).15 E(imply that a program that uses libarchi)0
36 Q .3 -.15(ve w)-.25 H(ill support that format.).15 E
(Applications that use libarchi)0 48 Q .3 -.15(ve s)-.25 H
(pecify which formats the).15 E 2.5(yw)-.15 G(ish)-2.5 E
(to support, though man)0 60 Q 2.5(yp)-.15 G(rograms do use libarchi)
-2.5 E .3 -.15(ve c)-.25 H(on).15 E -.15(ve)-.4 G(nience).15 E
(functions to enable all supported formats.)0 72 Q 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<h4 id="T)36 12 Q(ar F)-.8 E(ormats">)-.15 E -.8
(Ta)36 24 S 2.5(rF).8 G(ormats)-2.65 E(</h4>)36 36 Q(The)0 48 Q
(<a href="../html3/libarchi)0 60 Q -.15(ve)-.25 G(.html">libarchi).15 E
-.15(ve)-.25 G(\(3\)</a>).15 E(library can read most tar archi)0 72 Q
-.15(ve)-.25 G(s.).15 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Ho)0 12 Q(we)-.25 E -.15(ve)-.25 G .8 -.4(r, i)
.15 H 2.5(to).4 G(nly writes POSIX-standard)-2.5 E -.74(``)0 24 S
(ustar').74 E(')-.74 E(and)0 36 Q -.74(``)0 48 S(pax interchange').74 E
(')-.74 E(formats.)0 60 Q(<p>)36 72 Q 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(All tar formats store each entry in one or more 512-byte records.)0 12
Q(The \214rst record is used for \214le metadata, including \214lename,)
0 24 Q
(timestamp, and mode information, and the \214le data is stored in)0 36
Q(subsequent records.)0 48 Q(Later v)0 60 Q(ariants ha)-.25 E .3 -.15
(ve ex)-.2 H(tended this by either appropriating unde\214ned).15 E
(areas of the header record, e)0 72 Q
(xtending the header to multiple records,)-.15 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(or by storing special entries that modify the interpretation of)0 12 Q
(subsequent entries.)0 24 Q(<p>)36 36 Q(<dl compact>)0 48 Q
(<p><dt><b></b><b>gnutar</b><dd>)0 60 Q(The)0 72 Q 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html3/libarchi)0 12 Q -.15(ve)-.25 G
(.html">libarchi).15 E -.15(ve)-.25 G(\(3\)</a>).15 E
(library can read GNU-format tar archi)0 24 Q -.15(ve)-.25 G(s.).15 E
(It currently supports the most popular GNU e)0 36 Q
(xtensions, including)-.15 E(modern long \214lename and linkname suppor\
t, as well as atime and ctime data.)0 48 Q(The libarchi)0 60 Q .3 -.15
(ve l)-.25 H(ibrary does not support multi-v).15 E(olume)-.2 E(archi)0
72 Q -.15(ve)-.25 G(s, nor the old GNU long \214lename format.).15 E 0
Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(It can read GNU sparse \214le entries, including the ne)0 12 Q 2.5(wP)
-.25 G(OSIX-based)-2.5 E(formats, b)0 24 Q
(ut cannot write GNU sparse \214le entries.)-.2 E
(<p><dt><b></b><b>pax</b><dd>)0 36 Q(The)0 48 Q
(<a href="../html3/libarchi)0 60 Q -.15(ve)-.25 G(.html">libarchi).15 E
-.15(ve)-.25 G(\(3\)</a>).15 E
(library can read and write POSIX-compliant pax interchange format)0 72
Q 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(archi)0 12 Q -.15(ve)-.25 G(s.).15 E -.15(Pa)0
24 S 2.5(xi).15 G(nterchange format archi)-2.5 E -.15(ve)-.25 G 2.5(sa)
.15 G(re an e)-2.5 E(xtension of the older ustar)-.15 E
(format that adds a separate entry with additional attrib)0 36 Q
(utes stored)-.2 E(as k)0 48 Q -.15(ey)-.1 G(/v).15 E
(alue pairs immediately before each re)-.25 E(gular entry)-.15 E(.)-.65
E(The presence of these additional entries is the only dif)0 60 Q
(ference between)-.25 E
(pax interchange format and the older ustar format.)0 72 Q 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(The e)0 12 Q(xtended attrib)-.15 E
(utes are of unlimited length and are stored)-.2 E
(as UTF-8 Unicode strings.)0 24 Q -2.15 -.25(Ke y)0 36 T -.1(wo).25 G
(rds de\214ned in the standard are in all lo).1 E(wercase; v)-.25 E
(endors are allo)-.15 E(wed)-.25 E(to de\214ne custom k)0 48 Q -.15(ey)
-.1 G 2.5(sb).15 G 2.5(yp)-2.5 G(receding them with the v)-2.5 E
(endor name in all uppercase.)-.15 E(When writing pax archi)0 60 Q -.15
(ve)-.25 G(s, libarchi).15 E .3 -.15(ve u)-.25 H(ses man).15 E 2.5(yo)
-.15 G 2.5(ft)-2.5 G(he SCHIL)-2.5 E 2.5(Yk)-1 G -.15(ey)-2.6 G(s).15 E
(de\214ned by Joer)0 72 Q 2.5(gS)-.18 G(chilling')-2.5 E(s)-.55 E 0 Cg
EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(star').74 E(')-.74 E(archi)0 24 Q
-.15(ve)-.25 G 2.5(ra).15 G(nd a fe)-2.5 E 2.5(wL)-.25 G(IB)-2.5 E
(ARCHIVE k)-.35 E -.15(ey)-.1 G(s.).15 E(The libarchi)0 36 Q .3 -.15
(ve l)-.25 H(ibrary can read most of the SCHIL).15 E 2.5(Yk)-1 G -.15
(ey)-2.6 G(s).15 E(and most of the GNU k)0 48 Q -.15(ey)-.1 G 2.5(si).15
G(ntroduced by GNU tar)-2.5 E(.)-.55 E(It silently ignores an)0 60 Q 2.5
(yk)-.15 G -.15(ey)-2.6 G -.1(wo).15 G(rds that it does not understand.)
.1 E(<p><dt><b></b><b>restricted</b><b> pax</b><dd>)0 72 Q 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(The libarchi)0 12 Q .3 -.15(ve l)-.25 H
(ibrary can also write pax archi).15 E -.15(ve)-.25 G 2.5(si).15 G 2.5
(nw)-2.5 G(hich it)-2.5 E(attempts to suppress the e)0 24 Q
(xtended attrib)-.15 E(utes entry whene)-.2 E -.15(ve)-.25 G(r).15 E
(possible.)0 36 Q(The result will be identical to a ustar archi)0 48 Q
.3 -.15(ve u)-.25 H(nless the).15 E -.15(ex)0 60 S(tended attrib).15 E
(utes entry is required to store a long \214le)-.2 E
(name, long linkname, e)0 72 Q(xtended A)-.15 E
(CL, \214le \215ags, or if an)-.4 E 2.5(yo)-.15 G 2.5(ft)-2.5 G
(he standard)-2.5 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(ustar data \(user name, group name, UID, GID, etc\) cannot be fully)0
12 Q(represented in the ustar header)0 24 Q(.)-.55 E
(In all cases, the result can be dearchi)0 36 Q -.15(ve)-.25 G 2.5(db)
.15 G 2.5(ya)-2.5 G .3 -.15(ny p)-2.5 H(rogram that).15 E
(can read POSIX-compliant pax interchange format archi)0 48 Q -.15(ve)
-.25 G(s.).15 E(Programs that correctly read ustar format \(see belo)0
60 Q(w\) will also be)-.25 E(able to read this format; an)0 72 Q 2.5(ye)
-.15 G(xtended attrib)-2.65 E(utes will be e)-.2 E(xtracted as)-.15 E 0
Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(separate \214les stored in)0 12 Q
(<code></code><code>P)0 24 Q(axHeader</code>)-.15 E(directories.)0 36 Q
(<p><dt><b></b><b>ustar</b><dd>)0 48 Q(The libarchi)0 60 Q .3 -.15(ve l)
-.25 H(ibrary can both read and write this format.).15 E
(This format has the follo)0 72 Q(wing limitations:)-.25 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<ul>)0 12 Q(<li>)0 24 Q(De)0 36 Q
(vice major and minor numbers are limited to 21 bits.)-.25 E
(Nodes with lar)0 48 Q(ger numbers will not be added to the archi)-.18 E
-.15(ve)-.25 G(.).15 E(<li>)0 60 Q -.15(Pa)0 72 S(th names in the archi)
.15 E .3 -.15(ve a)-.25 H(re limited to 255 bytes.).15 E 0 Cg EP
%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(\(Shorter if there is no / character in e)0 12 Q
(xactly the right place.\))-.15 E(<li>)0 24 Q
(Symbolic links and hard links are stored in the archi)0 36 Q .3 -.15
(ve w)-.25 H(ith).15 E(the name of the referenced \214le.)0 48 Q
(This name is limited to 100 bytes.)0 60 Q(<li>)0 72 Q 0 Cg EP
%%Page: 22 22
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Extended attrib)0 12 Q
(utes, \214le \215ags, and other e)-.2 E(xtended)-.15 E
(security information cannot be stored.)0 24 Q(<li>)0 36 Q(Archi)0 48 Q
.3 -.15(ve e)-.25 H(ntries are limited to 8 gig).15 E(abytes in size.)
-.05 E(</ul>)0 60 Q
(Note that the pax interchange format has none of these restrictions.)0
72 Q 0 Cg EP
%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</dl>)0 12 Q(<p>)36 24 Q(The libarchi)0 36 Q .3
-.15(ve l)-.25 H(ibrary also reads a v).15 E(ariety of commonly-used e)
-.25 E(xtensions to)-.15 E(the basic tar format.)0 48 Q(These e)0 60 Q
(xtensions are recognized automatically whene)-.15 E -.15(ve)-.25 G 2.5
(rt).15 G(he)-2.5 E 2.5(ya)-.15 G(ppear)-2.5 E(.)-.55 E(<dl compact>)0
72 Q 0 Cg EP
%%Page: 24 24
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<p><dt>Numeric e)0 12 Q(xtensions.<dd>)-.15 E
(The POSIX standards require \214x)0 24 Q
(ed-length numeric \214elds to be written with)-.15 E
(some character position reserv)0 36 Q(ed for terminators.)-.15 E
(Libarchi)0 48 Q .3 -.15(ve a)-.25 H(llo).15 E
(ws these \214elds to be written without terminator characters.)-.25 E
(This e)0 60 Q(xtends the allo)-.15 E -.1(wa)-.25 G
(ble range; in particular).1 E 2.5(,u)-.4 G(star archi)-2.5 E -.15(ve)
-.25 G 2.5(sw).15 G(ith this)-2.5 E -.15(ex)0 72 S
(tension can support entries up to 64 gig).15 E(abytes in size.)-.05 E 0
Cg EP
%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Libarchi)0 12 Q .3 -.15(ve a)-.25 H
(lso recognizes base-256 v).15 E(alues in most numeric \214elds.)-.25 E
(This essentially remo)0 24 Q -.15(ve)-.15 G 2.5(sa).15 G
(ll limitations on \214le size, modi\214cation time,)-2.5 E(and de)0 36
Q(vice numbers.)-.25 E(<p><dt>Solaris e)0 48 Q(xtensions<dd>)-.15 E
(Libarchi)0 60 Q .3 -.15(ve r)-.25 H(ecognizes A).15 E(CL and e)-.4 E
(xtended attrib)-.15 E(ute records written)-.2 E(by Solaris tar)0 72 Q
(.)-.55 E 0 Cg EP
%%Page: 26 26
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Currently)0 12 Q 2.5(,l)-.65 G(ibarchi)-2.5 E .3
-.15(ve o)-.25 H(nly has support for old-style A).15 E(CLs; the)-.4 E
(ne)0 24 Q(wer NFSv4 A)-.25 E(CLs are recognized b)-.4 E(ut discarded.)
-.2 E(</dl>)0 36 Q(<p>)36 48 Q(The \214rst tar program appeared in Se)0
60 Q -.15(ve)-.25 G(nth Edition Unix in 1979.).15 E(The \214rst of)0 72
Q(\214cial standard for the tar \214le format w)-.25 E(as the)-.1 E 0 Cg
EP
%%Page: 27 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(ustar').74 E(')-.74 E
(\(Unix Standard T)0 24 Q(ar\) format de\214ned by POSIX in 1988.)-.8 E
(POSIX.1-2001 e)0 36 Q(xtended the ustar format to create the)-.15 E
-.74(``)0 48 S(pax interchange').74 E(')-.74 E(format.)0 60 Q
(<h4 id="Cpio F)36 72 Q(ormats">)-.15 E 0 Cg EP
%%Page: 28 28
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Cpio F)36 12 Q(ormats)-.15 E(</h4>)36 24 Q
(The libarchi)0 36 Q .3 -.15(ve l)-.25 H
(ibrary can read a number of common cpio v).15 E(ariants and can write)
-.25 E -.74(``)0 48 S(odc').74 E(')-.74 E(and)0 60 Q -.74(``)0 72 S(ne)
.74 E(wc')-.25 E(')-.74 E 0 Cg EP
%%Page: 29 29
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(format archi)0 12 Q -.15(ve)-.25 G(s.).15 E 2.5
(Ac)0 24 S(pio archi)-2.5 E .3 -.15(ve s)-.25 H
(tores each entry as a \214x).15 E(ed-size header follo)-.15 E(wed)-.25
E(by a v)0 36 Q(ariable-length \214lename and v)-.25 E
(ariable-length data.)-.25 E(Unlik)0 48 Q 2.5(et)-.1 G
(he tar format, the cpio format does only minimal padding)-2.5 E
(of the header or \214le data.)0 60 Q(There are se)0 72 Q -.15(ve)-.25 G
(ral cpio v).15 E(ariants, which dif)-.25 E(fer primarily in)-.25 E 0 Cg
EP
%%Page: 30 30
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(ho)0 12 Q 2.5(wt)-.25 G(he)-2.5 E 2.5(ys)-.15 G
(tore the initial header: some store the v)-2.5 E(alues as)-.25 E
(octal or he)0 24 Q(xadecimal numbers in ASCII, others as binary v)-.15
E(alues of)-.25 E -.25(va)0 36 S(rying byte order and length.).25 E
(<dl compact>)0 48 Q(<p><dt><b></b><b>binary</b><dd>)0 60 Q
(The libarchi)0 72 Q .3 -.15(ve l)-.25 H
(ibrary transparently reads both big-endian and little-endian).15 E 0 Cg
EP
%%Page: 31 31
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.25(va)0 12 S
(riants of the original binary cpio format.).25 E
(This format used 32-bit binary v)0 24 Q
(alues for \214le size and mtime,)-.25 E(and 16-bit binary v)0 36 Q
(alues for the other \214elds.)-.25 E(<p><dt><b></b><b>odc</b><dd>)0 48
Q(The libarchi)0 60 Q .3 -.15(ve l)-.25 H
(ibrary can both read and write this).15 E
(POSIX-standard format, which is of)0 72 Q(\214cially kno)-.25 E
(wn as the)-.25 E 0 Cg EP
%%Page: 32 32
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(cpio interchange format').74 E(')
-.74 E(or the)0 24 Q -.74(``)0 36 S(octet-oriented cpio archi).74 E .3
-.15(ve f)-.25 H(ormat').15 E(')-.74 E(and sometimes unof)0 48 Q
(\214cially referred to as the)-.25 E -.74(``)0 60 S
(old character format').74 E('.)-.74 E
(This format stores the header contents as octal v)0 72 Q
(alues in ASCII.)-.25 E 0 Cg EP
%%Page: 33 33
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(It is standard, portable, and immune from byte-order confusion.)0 12 Q
(File sizes and mtime are limited to 33 bits \(8GB \214le size\),)0 24 Q
(other \214elds are limited to 18 bits.)0 36 Q
(<p><dt><b></b><b>SVR4</b><dd>)0 48 Q(The libarchi)0 60 Q .3 -.15(ve l)
-.25 H(ibrary can read both CRC and non-CRC v).15 E(ariants of)-.25 E
(this format.)0 72 Q 0 Cg EP
%%Page: 34 34
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(The SVR4 format uses eight-digit he)0 12 Q
(xadecimal v)-.15 E(alues for)-.25 E(all header \214elds.)0 24 Q
(This limits \214le size to 4GB, and also limits the mtime and)0 36 Q
(other \214elds to 32 bits.)0 48 Q
(The SVR4 format can optionally include a CRC of the \214le)0 60 Q
(contents, although libarchi)0 72 Q .3 -.15(ve d)-.25 H
(oes not currently v).15 E(erify this CRC.)-.15 E 0 Cg EP
%%Page: 35 35
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</dl>)0 12 Q(<p>)36 24 Q
(Cpio \214rst appeared in PWB/UNIX 1.0, which w)0 36 Q
(as released within)-.1 E -1.11(AT)0 48 S(&T in 1977.)1.11 E
(PWB/UNIX 1.0 formed the basis of System III Unix, released outside)0 60
Q(of A)0 72 Q(T&T in 1981.)-1.11 E 0 Cg EP
%%Page: 36 36
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(This mak)0 12 Q(es cpio older than tar)-.1 E 2.5
(,a)-.4 G(lthough cpio w)-2.5 E(as not included)-.1 E(in V)0 24 Q
(ersion 7 A)-1.11 E(T&T Unix.)-1.11 E
(As a result, the tar command became much better kno)0 36 Q(wn in uni)
-.25 E -.15(ve)-.25 G(rsities).15 E(and research groups that used V)0 48
Q(ersion 7.)-1.11 E(The combination of the)0 60 Q(<b>\214nd</b>)0 72 Q 0
Cg EP
%%Page: 37 37
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(and)0 12 Q(<b>cpio</b>)0 24 Q(utilities pro)0 36
Q(vided v)-.15 E(ery precise control o)-.15 E -.15(ve)-.15 G 2.5<728c>
.15 G(le selection.)-2.5 E(Unfortunately)0 48 Q 2.5(,t)-.65 G
(he format has man)-2.5 E 2.5(yl)-.15 G(imitations that mak)-2.5 E 2.5
(ei)-.1 G 2.5(tu)-2.5 G(nsuitable)-2.5 E(for widespread use.)0 60 Q
(Only the POSIX format permits \214les o)0 72 Q -.15(ve)-.15 G 2.5(r4)
.15 G(GB, and its 18-bit)-2.5 E 0 Cg EP
%%Page: 38 38
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(limit for most other \214elds mak)0 12 Q
(es it unsuitable for modern systems.)-.1 E
(In addition, cpio formats only store numeric UID/GID v)0 24 Q
(alues \(not)-.25 E(usernames and group names\), which can mak)0 36 Q
2.5(ei)-.1 G 2.5(tv)-2.5 G(ery dif)-2.65 E(\214cult to correctly)-.25 E
(transfer archi)0 48 Q -.15(ve)-.25 G 2.5(sa).15 G
(cross systems with dissimilar user numbering.)-2.5 E(<h4 id="Shar F)36
60 Q(ormats">)-.15 E(Shar F)36 72 Q(ormats)-.15 E 0 Cg EP
%%Page: 39 39
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</h4>)36 12 Q(A)0 24 Q -.74(``)0 36 S
(shell archi).74 E -.15(ve)-.25 G -.74('').15 G
(is a shell script that, when e)0 48 Q -.15(xe)-.15 G
(cuted on a POSIX-compliant).15 E
(system, will recreate a collection of \214le system objects.)0 60 Q
(The libarchi)0 72 Q .3 -.15(ve l)-.25 H(ibrary can write tw).15 E 2.5
(od)-.1 G(if)-2.5 E(ferent kinds of shar archi)-.25 E -.15(ve)-.25 G(s:)
.15 E 0 Cg EP
%%Page: 40 40
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<dl compact>)0 12 Q
(<p><dt><b></b><b>shar</b><dd>)0 24 Q
(The traditional shar format uses a limited set of POSIX)0 36 Q
(commands, including)0 48 Q(<a href="../html1/echo.html">echo\(1\)</a>,)
0 60 Q(<a href="../html1/mkdir)0 72 Q(.html">mkdir\(1\)</a>,)-.55 E 0 Cg
EP
%%Page: 41 41
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(and)0 12 Q
(<a href="../html1/sed.html">sed\(1\)</a>.)0 24 Q
(It is suitable for portably archi)0 36 Q
(ving small collections of plain te)-.25 E(xt \214les.)-.15 E(Ho)0 48 Q
(we)-.25 E -.15(ve)-.25 G .8 -.4(r, i).15 H 2.5(ti).4 G 2.5(sn)-2.5 G
(ot generally well-suited for lar)-2.5 E(ge archi)-.18 E -.15(ve)-.25 G
(s).15 E(\(man)0 60 Q 2.5(yi)-.15 G(mplementations of)-2.5 E
(<a href="../html1/sh.html">sh\(1\)</a>)0 72 Q 0 Cg EP
%%Page: 42 42
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(ha)0 12 Q .3 -.15(ve l)-.2 H
(imits on the size of a script\) nor should it be used with non-te).15 E
(xt \214les.)-.15 E(<p><dt><b></b><b>shardump</b><dd>)0 24 Q
(This format is similar to shar b)0 36 Q(ut encodes \214les using)-.2 E
(<a href="../html1/uuencode.html">uuencode\(1\)</a>)0 48 Q
(so that the result will be a plain te)0 60 Q(xt \214le re)-.15 E -.05
(ga)-.15 G(rdless of the \214le contents.).05 E(It also includes additi\
onal shell commands that attempt to reproduce as)0 72 Q 0 Cg EP
%%Page: 43 43
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(man)0 12 Q 2.5<798c>-.15 G(le attrib)-2.5 E
(utes as possible, including o)-.2 E(wner)-.25 E 2.5(,m)-.4 G
(ode, and \215ags.)-2.5 E
(The additional commands used to restore \214le attrib)0 24 Q(utes mak)
-.2 E(e)-.1 E(shardump archi)0 36 Q -.15(ve)-.25 G 2.5(sl).15 G
(ess portable than plain shar archi)-2.5 E -.15(ve)-.25 G(s.).15 E
(</dl>)0 48 Q(<h4 id="ISO9660 format">)36 60 Q(ISO9660 format)36 72 Q 0
Cg EP
%%Page: 44 44
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</h4>)36 12 Q(Libarchi)0 24 Q .3 -.15(ve c)-.25
H(an read and e).15 E(xtract from \214les containing ISO9660-compliant)
-.15 E(CDR)0 36 Q(OM images.)-.4 E(In man)0 48 Q 2.5(yc)-.15 G
(ases, this can remo)-2.5 E .3 -.15(ve t)-.15 H(he need to b).15 E
(urn a ph)-.2 E(ysical CDR)-.05 E(OM)-.4 E
(just in order to read the \214les contained in an ISO9660 image.)0 60 Q
(It also a)0 72 Q -.2(vo)-.2 G(ids security and comple).2 E
(xity issues that come with)-.15 E 0 Cg EP
%%Page: 45 45
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(virtual mounts and loopback de)0 12 Q(vices.)
-.25 E(Libarchi)0 24 Q .3 -.15(ve s)-.25 H
(upports the most common Rockridge e).15 E(xtensions and has partial)
-.15 E(support for Joliet e)0 36 Q(xtensions.)-.15 E(If both e)0 48 Q
(xtensions are present, the Joliet e)-.15 E(xtensions will be)-.15 E
(used and the Rockridge e)0 60 Q(xtensions will be ignored.)-.15 E
(In particular)0 72 Q 2.5(,t)-.4 G
(his can create problems with hardlinks and symlinks,)-2.5 E 0 Cg EP
%%Page: 46 46
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(which are supported by Rockridge b)0 12 Q
(ut not by Joliet.)-.2 E(<h4 id="Zip format">)36 24 Q(Zip format)36 36 Q
(</h4>)36 48 Q(Libarchi)0 60 Q .3 -.15(ve c)-.25 H
(an read and write zip format archi).15 E -.15(ve)-.25 G 2.5(st).15 G
(hat ha)-2.5 E -.15(ve)-.2 G
(uncompressed entries and entries compressed with the)0 72 Q 0 Cg EP
%%Page: 47 47
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(de\215ate').74 E(')-.74 E
(algorithm.)0 24 Q(Older zip compression algorithms are not supported.)0
36 Q(It can e)0 48 Q(xtract jar archi)-.15 E -.15(ve)-.25 G(s, archi).15
E -.15(ve)-.25 G 2.5(st).15 G(hat use Zip64 e)-2.5 E(xtensions and man)
-.15 E(y)-.15 E(self-e)0 60 Q(xtracting zip archi)-.15 E -.15(ve)-.25 G
(s.).15 E(Libarchi)0 72 Q .3 -.15(ve r)-.25 H(eads Zip archi).15 E -.15
(ve)-.25 G 2.5(sa).15 G 2.5(st)-2.5 G(he)-2.5 E 2.5(ya)-.15 G
(re being streamed,)-2.5 E 0 Cg EP
%%Page: 48 48
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(which allo)0 12 Q(ws it to read archi)-.25 E
-.15(ve)-.25 G 2.5(so).15 G 2.5(fa)-2.5 G(rbitrary size.)-2.5 E
(It currently does not use the central directory; this)0 24 Q
(limits libarchi)0 36 Q -.15(ve)-.25 G 1.1 -.55('s a).15 H
(bility to support some self-e).55 E(xtracting)-.15 E(archi)0 48 Q -.15
(ve)-.25 G 2.5(sa).15 G(nd ones that ha)-2.5 E .3 -.15(ve b)-.2 H
(een modi\214ed in certain w).15 E(ays.)-.1 E(<h4 id="Archi)36 60 Q .3
-.15(ve \()-.25 H(library\) \214le format">).15 E(Archi)36 72 Q .3 -.15
(ve \()-.25 H(library\) \214le format).15 E 0 Cg EP
%%Page: 49 49
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</h4>)36 12 Q(The Unix archi)0 24 Q .3 -.15
(ve f)-.25 H(ormat \(commonly created by the).15 E(<a href="../html1/ar)
0 36 Q(.html">ar\(1\)</a>)-.55 E(archi)0 48 Q -.15(ve)-.25 G
(r\) is a general-purpose format which is).15 E(used almost e)0 60 Q
(xclusi)-.15 E -.15(ve)-.25 G(ly for object \214les to be).15 E
(read by the link editor)0 72 Q 0 Cg EP
%%Page: 50 50
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html1/ld.html">ld\(1\)</a>.)0 12 Q
(The ar format has ne)0 24 Q -.15(ve)-.25 G 2.5(rb).15 G
(een standardised.)-2.5 E(There are tw)0 36 Q 2.5(oc)-.1 G(ommon v)-2.5
E(ariants:)-.25 E(the GNU format deri)0 48 Q -.15(ve)-.25 G 2.5(df).15 G
(rom SVR4,)-2.5 E(and the BSD format, which \214rst appeared in 4.4BSD.)
0 60 Q(The tw)0 72 Q 2.5(od)-.1 G(if)-2.5 E
(fer primarily in their handling of \214lenames)-.25 E 0 Cg EP
%%Page: 51 51
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(longer than 15 characters:)0 12 Q
(the GNU/SVR4 v)0 24 Q(ariant writes a \214lename table at the be)-.25 E
(ginning of the archi)-.15 E -.15(ve)-.25 G(;).15 E
(the BSD format stores each long \214lename in an e)0 36 Q(xtension)-.15
E(area adjacent to the entry)0 48 Q(.)-.65 E(Libarchi)0 60 Q .3 -.15
(ve c)-.25 H(an read both e).15 E(xtensions,)-.15 E(including archi)0 72
Q -.15(ve)-.25 G 2.5(st).15 G
(hat may include both types of long \214lenames.)-2.5 E 0 Cg EP
%%Page: 52 52
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Programs using libarchi)0 12 Q .3 -.15(ve c)-.25
H(an write GNU/SVR4 format).15 E(if the)0 24 Q 2.5(yp)-.15 G(ro)-2.5 E
(vide a \214lename table to be written into)-.15 E(the archi)0 36 Q .3
-.15(ve b)-.25 H(efore an).15 E 2.5(yo)-.15 G 2.5(ft)-2.5 G(he entries.)
-2.5 E(An)0 48 Q 2.5(ye)-.15 G
(ntries whose names are not in the \214lename table)-2.5 E
(will be written using BSD-style long \214lenames.)0 60 Q
(This can cause problems for programs such as)0 72 Q 0 Cg EP
%%Page: 53 53
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(GNU ld that do not support the BSD-style long \214lenames.)0 12 Q
(<h4 id="mtree">)36 24 Q(mtree)36 36 Q(</h4>)36 48 Q(Libarchi)0 60 Q .3
-.15(ve c)-.25 H(an read and write \214les in).15 E
(<a href="../html5/mtree.html">mtree\(5\)</a>)0 72 Q 0 Cg EP
%%Page: 54 54
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(format.)0 12 Q(This format is not a true archi)0
24 Q .3 -.15(ve f)-.25 H(ormat, b).15 E(ut rather a te)-.2 E
(xtual description)-.15 E(of a \214le hierarch)0 36 Q 2.5(yi)-.05 G 2.5
(nw)-2.5 G(hich each line speci\214es the name of a \214le and)-2.5 E
(pro)0 48 Q(vides speci\214c metadata about that \214le.)-.15 E
(Libarchi)0 60 Q .3 -.15(ve c)-.25 H(an read all of the k).15 E -.15(ey)
-.1 G -.1(wo).15 G(rds supported by both).1 E(the NetBSD and FreeBSD v)0
72 Q(ersions of)-.15 E 0 Cg EP
%%Page: 55 55
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html1/mtree.html">mtree\(1\)</a>,)0
12 Q(although man)0 24 Q 2.5(yo)-.15 G 2.5(ft)-2.5 G(he k)-2.5 E -.15
(ey)-.1 G -.1(wo).15 G(rds cannot currently be stored in an).1 E
(<font size="-1"></font><font size="-1">archi)0 36 Q -.15(ve)-.25 G
(_entry</font>).15 E(object.)0 48 Q(When writing, libarchi)0 60 Q .3
-.15(ve s)-.25 H(upports use of the).15 E(<a href="../html3/archi)0 72 Q
-.15(ve)-.25 G(_write_set_options.html">archi).15 E -.15(ve)-.25 G
(_write_set_options\(3\)</a>).15 E 0 Cg EP
%%Page: 56 56
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(interf)0 12 Q(ace to specify which k)-.1 E -.15
(ey)-.1 G -.1(wo).15 G(rds should be included in the).1 E(output.)0 24 Q
(If libarchi)0 36 Q .3 -.15(ve w)-.25 H
(as compiled with access to suitable).05 E
(cryptographic libraries \(such as the OpenSSL libraries\),)0 48 Q
(it can compute hash entries such as)0 60 Q(<b></b><b>sha512</b>)0 72 Q
0 Cg EP
%%Page: 57 57
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(or)0 12 Q(<b></b><b>md5</b>)0 24 Q
(from \214le data being written to the mtree writer)0 36 Q(.)-.55 E(<p>)
36 48 Q(When reading an mtree \214le, libarchi)0 60 Q .3 -.15(ve w)-.25
H(ill locate the corresponding).15 E(\214les on disk using the)0 72 Q 0
Cg EP
%%Page: 58 58
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<b></b><b>contents</b>)0 12 Q -.1(ke)0 24 S(yw)
-.05 E(ord if present or the re)-.1 E(gular \214lename.)-.15 E
(If it can locate and open the \214le on disk, it will use that)0 36 Q
(to \214ll in an)0 48 Q 2.5(ym)-.15 G
(etadata that is missing from the mtree \214le)-2.5 E
(and will read the \214le contents and return those to the program)0 60
Q(using libarchi)0 72 Q -.15(ve)-.25 G(.).15 E 0 Cg EP
%%Page: 59 59
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(If it cannot locate and open the \214le on disk, libarchi)0 12 Q -.15
(ve)-.25 G(will return an error for an)0 24 Q 2.5(ya)-.15 G
(ttempt to read the entry)-2.5 E(body)0 36 Q(.)-.65 E
(<h3 id="SEE ALSO">)36 48 Q(SEE ALSO)36 60 Q(</h3>)36 72 Q 0 Cg EP
%%Page: 60 60
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html1/ar)0 12 Q(.html">ar\(1\)</a>,)
-.55 E(<a href="../html1/cpio.html">cpio\(1\)</a>,)0 24 Q
(<a href="../html1/mkisofs.html">mkisofs\(1\)</a>,)0 36 Q
(<a href="../html1/shar)0 48 Q(.html">shar\(1\)</a>,)-.55 E
(<a href="../html1/tar)0 60 Q(.html">tar\(1\)</a>,)-.55 E
(<a href="../html1/zip.html">zip\(1\)</a>,)0 72 Q 0 Cg EP
%%Page: 61 61
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html3/zlib)0 12 Q
(.html">zlib\(3\)</a>,)-.4 E
(<a href="../html5/cpio.html">cpio\(5\)</a>,)0 24 Q
(<a href="../html5/mtree.html">mtree\(5\)</a>,)0 36 Q
(<a href="../html5/tar)0 48 Q(.html">tar\(5\)</a>)-.55 E(</body>)0 60 Q
(</html>)0 72 Q 0 Cg EP
%%Trailer
end
%%EOF
@


1.1.1.3
log
@libarchive-2.8.3: Build fix for Linux
@
text
@d1 895
a895 375
<!-- Creator     : groff version 1.19.2 -->
<!-- CreationDate: Sun Mar 14 19:50:28 2010 -->
<!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; }
       pre   { margin-top: 0; margin-bottom: 0; }
       table { margin-top: 0; margin-bottom: 0; }
</style>
<title></title>
</head>
<body>

<hr>


<p valign="top">libarchive-formats(5) FreeBSD File Formats
Manual libarchive-formats(5)</p>

<p style="margin-top: 1em" valign="top"><b>NAME</b></p>

<p style="margin-left:8%;"><b>libarchive-formats</b>
&mdash; archive formats supported by the libarchive
library</p>


<p style="margin-top: 1em" valign="top"><b>DESCRIPTION</b></p>

<p style="margin-left:8%;">The libarchive(3) library reads
and writes a variety of streaming archive formats. Generally
speaking, all of these archive formats consist of a series
of &lsquo;&lsquo;entries&rsquo;&rsquo;. Each entry stores a
single file system object, such as a file, directory, or
symbolic link.</p>

<p style="margin-left:8%; margin-top: 1em">The following
provides a brief description of each format supported by
libarchive, with some information about recognized
extensions or limitations of the current library support.
Note that just because a format is supported by libarchive
does not imply that a program that uses libarchive will
support that format. Applications that use libarchive
specify which formats they wish to support, though many
programs do use libarchive convenience functions to enable
all supported formats.</p>

<p style="margin-left:8%; margin-top: 1em"><b>Tar
Formats</b> <br>
The libarchive(3) library can read most tar archives.
However, it only writes POSIX-standard
&lsquo;&lsquo;ustar&rsquo;&rsquo; and &lsquo;&lsquo;pax
interchange&rsquo;&rsquo; formats.</p>

<p style="margin-left:8%; margin-top: 1em">All tar formats
store each entry in one or more 512-byte records. The first
record is used for file metadata, including filename,
timestamp, and mode information, and the file data is stored
in subsequent records. Later variants have extended this by
either appropriating undefined areas of the header record,
extending the header to multiple records, or by storing
special entries that modify the interpretation of subsequent
entries.</p>

<p style="margin-top: 1em" valign="top"><b>gnutar</b></p>

<p style="margin-left:20%; margin-top: 1em">The
libarchive(3) library can read GNU-format tar archives. It
currently supports the most popular GNU extensions,
including modern long filename and linkname support, as well
as atime and ctime data. The libarchive library does not
support multi-volume archives, nor the old GNU long filename
format. It can read GNU sparse file entries, including the
new POSIX-based formats, but cannot write GNU sparse file
entries.</p>

<p style="margin-top: 1em" valign="top"><b>pax</b></p>

<p style="margin-left:20%; margin-top: 1em">The
libarchive(3) library can read and write POSIX-compliant pax
interchange format archives. Pax interchange format archives
are an extension of the older ustar format that adds a
separate entry with additional attributes stored as
key/value pairs immediately before each regular entry. The
presence of these additional entries is the only difference
between pax interchange format and the older ustar format.
The extended attributes are of unlimited length and are
stored as UTF-8 Unicode strings. Keywords defined in the
standard are in all lowercase; vendors are allowed to define
custom keys by preceding them with the vendor name in all
uppercase. When writing pax archives, libarchive uses many
of the SCHILY keys defined by Joerg Schilling&rsquo;s
&lsquo;&lsquo;star&rsquo;&rsquo; archiver and a few
LIBARCHIVE keys. The libarchive library can read most of the
SCHILY keys and most of the GNU keys introduced by GNU tar.
It silently ignores any keywords that it does not
understand.</p>

<p style="margin-top: 1em" valign="top"><b>restricted
pax</b></p>

<p style="margin-left:20%;">The libarchive library can also
write pax archives in which it attempts to suppress the
extended attributes entry whenever possible. The result will
be identical to a ustar archive unless the extended
attributes entry is required to store a long file name, long
linkname, extended ACL, file flags, or if any of the
standard ustar data (user name, group name, UID, GID, etc)
cannot be fully represented in the ustar header. In all
cases, the result can be dearchived by any program that can
read POSIX-compliant pax interchange format archives.
Programs that correctly read ustar format (see below) will
also be able to read this format; any extended attributes
will be extracted as separate files stored in
<i>PaxHeader</i> directories.</p>

<p style="margin-top: 1em" valign="top"><b>ustar</b></p>

<p style="margin-left:20%; margin-top: 1em">The libarchive
library can both read and write this format. This format has
the following limitations:</p>

<p valign="top"><b>&bull;</b></p>

<p style="margin-left:26%;">Device major and minor numbers
are limited to 21 bits. Nodes with larger numbers will not
be added to the archive.</p>

<p valign="top"><b>&bull;</b></p>

<p style="margin-left:26%;">Path names in the archive are
limited to 255 bytes. (Shorter if there is no / character in
exactly the right place.)</p>

<p valign="top"><b>&bull;</b></p>

<p style="margin-left:26%;">Symbolic links and hard links
are stored in the archive with the name of the referenced
file. This name is limited to 100 bytes.</p>

<p valign="top"><b>&bull;</b></p>

<p style="margin-left:26%;">Extended attributes, file
flags, and other extended security information cannot be
stored.</p>

<p valign="top"><b>&bull;</b></p>

<p style="margin-left:26%;">Archive entries are limited to
8 gigabytes in size.</p>

<p style="margin-left:20%;">Note that the pax interchange
format has none of these restrictions.</p>

<p style="margin-left:8%; margin-top: 1em">The libarchive
library also reads a variety of commonly-used extensions to
the basic tar format. These extensions are recognized
automatically whenever they appear.</p>

<p style="margin-top: 1em" valign="top">Numeric
extensions.</p>

<p style="margin-left:20%;">The POSIX standards require
fixed-length numeric fields to be written with some
character position reserved for terminators. Libarchive
allows these fields to be written without terminator
characters. This extends the allowable range; in particular,
ustar archives with this extension can support entries up to
64 gigabytes in size. Libarchive also recognizes base-256
values in most numeric fields. This essentially removes all
limitations on file size, modification time, and device
numbers.</p>

<p style="margin-top: 1em" valign="top">Solaris
extensions</p>

<p style="margin-left:20%;">Libarchive recognizes ACL and
extended attribute records written by Solaris tar.
Currently, libarchive only has support for old-style ACLs;
the newer NFSv4 ACLs are recognized but discarded.</p>

<p style="margin-left:8%; margin-top: 1em">The first tar
program appeared in Seventh Edition Unix in 1979. The first
official standard for the tar file format was the
&lsquo;&lsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
defined by POSIX in 1988. POSIX.1-2001 extended the ustar
format to create the &lsquo;&lsquo;pax
interchange&rsquo;&rsquo; format.</p>

<p style="margin-left:8%; margin-top: 1em"><b>Cpio
Formats</b> <br>
The libarchive library can read a number of common cpio
variants and can write &lsquo;&lsquo;odc&rsquo;&rsquo; and
&lsquo;&lsquo;newc&rsquo;&rsquo; format archives. A cpio
archive stores each entry as a fixed-size header followed by
a variable-length filename and variable-length data. Unlike
the tar format, the cpio format does only minimal padding of
the header or file data. There are several cpio variants,
which differ primarily in how they store the initial header:
some store the values as octal or hexadecimal numbers in
ASCII, others as binary values of varying byte order and
length.</p>

<p style="margin-top: 1em" valign="top"><b>binary</b></p>

<p style="margin-left:20%; margin-top: 1em">The libarchive
library transparently reads both big-endian and
little-endian variants of the original binary cpio format.
This format used 32-bit binary values for file size and
mtime, and 16-bit binary values for the other fields.</p>

<p style="margin-top: 1em" valign="top"><b>odc</b></p>

<p style="margin-left:20%; margin-top: 1em">The libarchive
library can both read and write this POSIX-standard format,
which is officially known as the &lsquo;&lsquo;cpio
interchange format&rsquo;&rsquo; or the
&lsquo;&lsquo;octet-oriented cpio archive
format&rsquo;&rsquo; and sometimes unofficially referred to
as the &lsquo;&lsquo;old character format&rsquo;&rsquo;.
This format stores the header contents as octal values in
ASCII. It is standard, portable, and immune from byte-order
confusion. File sizes and mtime are limited to 33 bits (8GB
file size), other fields are limited to 18 bits.</p>

<p style="margin-top: 1em" valign="top"><b>SVR4</b></p>

<p style="margin-left:20%; margin-top: 1em">The libarchive
library can read both CRC and non-CRC variants of this
format. The SVR4 format uses eight-digit hexadecimal values
for all header fields. This limits file size to 4GB, and
also limits the mtime and other fields to 32 bits. The SVR4
format can optionally include a CRC of the file contents,
although libarchive does not currently verify this CRC.</p>

<p style="margin-left:8%; margin-top: 1em">Cpio first
appeared in PWB/UNIX 1.0, which was released within AT&amp;T
in 1977. PWB/UNIX 1.0 formed the basis of System III Unix,
released outside of AT&amp;T in 1981. This makes cpio older
than tar, although cpio was not included in Version 7
AT&amp;T Unix. As a result, the tar command became much
better known in universities and research groups that used
Version 7. The combination of the <b>find</b> and
<b>cpio</b> utilities provided very precise control over
file selection. Unfortunately, the format has many
limitations that make it unsuitable for widespread use. Only
the POSIX format permits files over 4GB, and its 18-bit
limit for most other fields makes it unsuitable for modern
systems. In addition, cpio formats only store numeric
UID/GID values (not usernames and group names), which can
make it very difficult to correctly transfer archives across
systems with dissimilar user numbering.</p>

<p style="margin-left:8%; margin-top: 1em"><b>Shar
Formats</b> <br>
A &lsquo;&lsquo;shell archive&rsquo;&rsquo; is a shell
script that, when executed on a POSIX-compliant system, will
recreate a collection of file system objects. The libarchive
library can write two different kinds of shar archives:</p>

<p style="margin-top: 1em" valign="top"><b>shar</b></p>

<p style="margin-left:20%; margin-top: 1em">The traditional
shar format uses a limited set of POSIX commands, including
echo(1), mkdir(1), and sed(1). It is suitable for portably
archiving small collections of plain text files. However, it
is not generally well-suited for large archives (many
implementations of sh(1) have limits on the size of a
script) nor should it be used with non-text files.</p>


<p style="margin-top: 1em" valign="top"><b>shardump</b></p>

<p style="margin-left:20%;">This format is similar to shar
but encodes files using uuencode(1) so that the result will
be a plain text file regardless of the file contents. It
also includes additional shell commands that attempt to
reproduce as many file attributes as possible, including
owner, mode, and flags. The additional commands used to
restore file attributes make shardump archives less portable
than plain shar archives.</p>

<p style="margin-left:8%; margin-top: 1em"><b>ISO9660
format</b> <br>
Libarchive can read and extract from files containing
ISO9660-compliant CDROM images. In many cases, this can
remove the need to burn a physical CDROM just in order to
read the files contained in an ISO9660 image. It also avoids
security and complexity issues that come with virtual mounts
and loopback devices. Libarchive supports the most common
Rockridge extensions and has partial support for Joliet
extensions. If both extensions are present, the Joliet
extensions will be used and the Rockridge extensions will be
ignored. In particular, this can create problems with
hardlinks and symlinks, which are supported by Rockridge but
not by Joliet.</p>

<p style="margin-left:8%; margin-top: 1em"><b>Zip
format</b> <br>
Libarchive can read and write zip format archives that have
uncompressed entries and entries compressed with the
&lsquo;&lsquo;deflate&rsquo;&rsquo; algorithm. Older zip
compression algorithms are not supported. It can extract jar
archives, archives that use Zip64 extensions and many
self-extracting zip archives. Libarchive reads Zip archives
as they are being streamed, which allows it to read archives
of arbitrary size. It currently does not use the central
directory; this limits libarchive&rsquo;s ability to support
some self-extracting archives and ones that have been
modified in certain ways.</p>

<p style="margin-left:8%; margin-top: 1em"><b>Archive
(library) file format</b> <br>
The Unix archive format (commonly created by the ar(1)
archiver) is a general-purpose format which is used almost
exclusively for object files to be read by the link editor
ld(1). The ar format has never been standardised. There are
two common variants: the GNU format derived from SVR4, and
the BSD format, which first appeared in 4.4BSD. The two
differ primarily in their handling of filenames longer than
15 characters: the GNU/SVR4 variant writes a filename table
at the beginning of the archive; the BSD format stores each
long filename in an extension area adjacent to the entry.
Libarchive can read both extensions, including archives that
may include both types of long filenames. Programs using
libarchive can write GNU/SVR4 format if they provide a
filename table to be written into the archive before any of
the entries. Any entries whose names are not in the filename
table will be written using BSD-style long filenames. This
can cause problems for programs such as GNU ld that do not
support the BSD-style long filenames.</p>

<p style="margin-left:8%; margin-top: 1em"><b>mtree</b>
<br>
Libarchive can read and write files in mtree(5) format. This
format is not a true archive format, but rather a textual
description of a file hierarchy in which each line specifies
the name of a file and provides specific metadata about that
file. Libarchive can read all of the keywords supported by
both the NetBSD and FreeBSD versions of mtree(1), although
many of the keywords cannot currently be stored in an
archive_entry object. When writing, libarchive supports use
of the archive_write_set_options(3) interface to specify
which keywords should be included in the output. If
libarchive was compiled with access to suitable
cryptographic libraries (such as the OpenSSL libraries), it
can compute hash entries such as <b>sha512</b> or <b>md5</b>
from file data being written to the mtree writer.</p>

<p style="margin-left:8%; margin-top: 1em">When reading an
mtree file, libarchive will locate the corresponding files
on disk using the <b>contents</b> keyword if present or the
regular filename. If it can locate and open the file on
disk, it will use that to fill in any metadata that is
missing from the mtree file and will read the file contents
and return those to the program using libarchive. If it
cannot locate and open the file on disk, libarchive will
return an error for any attempt to read the entry body.</p>

<p style="margin-top: 1em" valign="top"><b>SEE ALSO</b></p>

<p style="margin-left:8%;">ar(1), cpio(1), mkisofs(1),
shar(1), tar(1), zip(1), zlib(3), cpio(5), mtree(5),
tar(5)</p>


<p style="margin-left:8%; margin-top: 1em">FreeBSD&nbsp;9.0
December&nbsp;27, 2009 FreeBSD&nbsp;9.0</p>
<hr>
</body>
</html>
@


1.1.1.4
log
@Import libarchive-2.8.4:
- Improved reliability of hash function detection
- Fix issues on ancient FreeBSD, QNX, ancient NetBSD and Minix
@
text
@d1 375
a375 895
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
%%CreationDate: Wed Jun 30 11:55:53 2010
%%DocumentNeededResources: font Times-Roman
%%DocumentSuppliedResources: procset grops 1.19 2
%%Pages: 61
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
%%EndComments
%%BeginDefaults
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
%%BeginResource: procset grops 1.19 2
%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/MANUAL{
statusdict begin/manualfeed true store end
}bind def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/Fr{
setrgbcolor fill
}bind def
/setcmykcolor where{
pop
/Fk{
setcmykcolor fill
}bind def
}if
/Fg{
setgray fill
}bind def
/FL/fill load def
/LW/setlinewidth load def
/Cr/setrgbcolor load def
/setcmykcolor where{
pop
/Ck/setcmykcolor load def
}if
/Cg/setgray load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[]0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{}def
/setpagedevice{}def
}bind def
/PEND{
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%EndProlog
%%BeginSetup
%%BeginFeature: *PageSize Default
<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
%%EndFeature
%%IncludeResource: font Times-Roman
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Times-Roman@@0 ENC0/Times-Roman RE
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<html>)0 12 Q(<head>)0 24 Q(<title>)36 36 Q
(December 27, 2009 libarchi)74.5 48 Q -.15(ve)-.25 G(-formats 5).15 E
(</title>)36 72 Q 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<style type="te)36 12 Q(xt/css">)-.15 E(<!--)36
24 Q(body { mar)72 36 Q(gin-left:4%; })-.18 E(H1, H2, H3, H4, H5 {)72 48
Q(color: maroon; padding: 4pt; mar)108 60 Q(gin-left: -4%;)-.18 E
(border: solid; border)108 72 Q(-width: thin; width: 100%;)-.2 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(background: r)108 12 Q(gb\(204,204,255\))-.18 E
(})72 24 Q(-->)36 36 Q(</style>)36 48 Q(</head>)0 60 Q
(<body bgcolor="#FFFFFF" te)0 72 Q(xt="#000000">)-.15 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<h3 id="N)36 12 Q(AME">)-.35 E -.35(NA)36 24 S
(ME).35 E(</h3>)36 36 Q(<b>libarchi)0 48 Q -.15(ve)-.25 G(-formats</b>)
.15 E 2.5(-a)0 60 S(rchi)-2.5 E .3 -.15(ve f)-.25 H
(ormats supported by the libarchi).15 E .3 -.15(ve l)-.25 H(ibrary).15 E
(<h3 id="DESCRIPTION">)36 72 Q 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(DESCRIPTION)36 12 Q(</h3>)36 24 Q(The)0 36 Q
(<a href="../html3/libarchi)0 48 Q -.15(ve)-.25 G(.html">libarchi).15 E
-.15(ve)-.25 G(\(3\)</a>).15 E(library reads and writes a v)0 60 Q
(ariety of streaming archi)-.25 E .3 -.15(ve f)-.25 H(ormats.).15 E
(Generally speaking, all of these archi)0 72 Q .3 -.15(ve f)-.25 H
(ormats consist of a series of).15 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(entries').74 E('.)-.74 E(Each en\
try stores a single \214le system object, such as a \214le, directory)0
24 Q(,)-.65 E(or symbolic link.)0 36 Q(<p>)36 48 Q(The follo)0 60 Q
(wing pro)-.25 E(vides a brief description of each format supported)-.15
E(by libarchi)0 72 Q -.15(ve)-.25 G 2.5(,w).15 G
(ith some information about recognized e)-2.5 E(xtensions or)-.15 E 0 Cg
EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(limitations of the current library support.)0 12
Q(Note that just because a format is supported by libarchi)0 24 Q .3
-.15(ve d)-.25 H(oes not).15 E(imply that a program that uses libarchi)0
36 Q .3 -.15(ve w)-.25 H(ill support that format.).15 E
(Applications that use libarchi)0 48 Q .3 -.15(ve s)-.25 H
(pecify which formats the).15 E 2.5(yw)-.15 G(ish)-2.5 E
(to support, though man)0 60 Q 2.5(yp)-.15 G(rograms do use libarchi)
-2.5 E .3 -.15(ve c)-.25 H(on).15 E -.15(ve)-.4 G(nience).15 E
(functions to enable all supported formats.)0 72 Q 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<h4 id="T)36 12 Q(ar F)-.8 E(ormats">)-.15 E -.8
(Ta)36 24 S 2.5(rF).8 G(ormats)-2.65 E(</h4>)36 36 Q(The)0 48 Q
(<a href="../html3/libarchi)0 60 Q -.15(ve)-.25 G(.html">libarchi).15 E
-.15(ve)-.25 G(\(3\)</a>).15 E(library can read most tar archi)0 72 Q
-.15(ve)-.25 G(s.).15 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Ho)0 12 Q(we)-.25 E -.15(ve)-.25 G .8 -.4(r, i)
.15 H 2.5(to).4 G(nly writes POSIX-standard)-2.5 E -.74(``)0 24 S
(ustar').74 E(')-.74 E(and)0 36 Q -.74(``)0 48 S(pax interchange').74 E
(')-.74 E(formats.)0 60 Q(<p>)36 72 Q 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(All tar formats store each entry in one or more 512-byte records.)0 12
Q(The \214rst record is used for \214le metadata, including \214lename,)
0 24 Q
(timestamp, and mode information, and the \214le data is stored in)0 36
Q(subsequent records.)0 48 Q(Later v)0 60 Q(ariants ha)-.25 E .3 -.15
(ve ex)-.2 H(tended this by either appropriating unde\214ned).15 E
(areas of the header record, e)0 72 Q
(xtending the header to multiple records,)-.15 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(or by storing special entries that modify the interpretation of)0 12 Q
(subsequent entries.)0 24 Q(<p>)36 36 Q(<dl compact>)0 48 Q
(<p><dt><b></b><b>gnutar</b><dd>)0 60 Q(The)0 72 Q 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html3/libarchi)0 12 Q -.15(ve)-.25 G
(.html">libarchi).15 E -.15(ve)-.25 G(\(3\)</a>).15 E
(library can read GNU-format tar archi)0 24 Q -.15(ve)-.25 G(s.).15 E
(It currently supports the most popular GNU e)0 36 Q
(xtensions, including)-.15 E(modern long \214lename and linkname suppor\
t, as well as atime and ctime data.)0 48 Q(The libarchi)0 60 Q .3 -.15
(ve l)-.25 H(ibrary does not support multi-v).15 E(olume)-.2 E(archi)0
72 Q -.15(ve)-.25 G(s, nor the old GNU long \214lename format.).15 E 0
Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(It can read GNU sparse \214le entries, including the ne)0 12 Q 2.5(wP)
-.25 G(OSIX-based)-2.5 E(formats, b)0 24 Q
(ut cannot write GNU sparse \214le entries.)-.2 E
(<p><dt><b></b><b>pax</b><dd>)0 36 Q(The)0 48 Q
(<a href="../html3/libarchi)0 60 Q -.15(ve)-.25 G(.html">libarchi).15 E
-.15(ve)-.25 G(\(3\)</a>).15 E
(library can read and write POSIX-compliant pax interchange format)0 72
Q 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(archi)0 12 Q -.15(ve)-.25 G(s.).15 E -.15(Pa)0
24 S 2.5(xi).15 G(nterchange format archi)-2.5 E -.15(ve)-.25 G 2.5(sa)
.15 G(re an e)-2.5 E(xtension of the older ustar)-.15 E
(format that adds a separate entry with additional attrib)0 36 Q
(utes stored)-.2 E(as k)0 48 Q -.15(ey)-.1 G(/v).15 E
(alue pairs immediately before each re)-.25 E(gular entry)-.15 E(.)-.65
E(The presence of these additional entries is the only dif)0 60 Q
(ference between)-.25 E
(pax interchange format and the older ustar format.)0 72 Q 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(The e)0 12 Q(xtended attrib)-.15 E
(utes are of unlimited length and are stored)-.2 E
(as UTF-8 Unicode strings.)0 24 Q -2.15 -.25(Ke y)0 36 T -.1(wo).25 G
(rds de\214ned in the standard are in all lo).1 E(wercase; v)-.25 E
(endors are allo)-.15 E(wed)-.25 E(to de\214ne custom k)0 48 Q -.15(ey)
-.1 G 2.5(sb).15 G 2.5(yp)-2.5 G(receding them with the v)-2.5 E
(endor name in all uppercase.)-.15 E(When writing pax archi)0 60 Q -.15
(ve)-.25 G(s, libarchi).15 E .3 -.15(ve u)-.25 H(ses man).15 E 2.5(yo)
-.15 G 2.5(ft)-2.5 G(he SCHIL)-2.5 E 2.5(Yk)-1 G -.15(ey)-2.6 G(s).15 E
(de\214ned by Joer)0 72 Q 2.5(gS)-.18 G(chilling')-2.5 E(s)-.55 E 0 Cg
EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(star').74 E(')-.74 E(archi)0 24 Q
-.15(ve)-.25 G 2.5(ra).15 G(nd a fe)-2.5 E 2.5(wL)-.25 G(IB)-2.5 E
(ARCHIVE k)-.35 E -.15(ey)-.1 G(s.).15 E(The libarchi)0 36 Q .3 -.15
(ve l)-.25 H(ibrary can read most of the SCHIL).15 E 2.5(Yk)-1 G -.15
(ey)-2.6 G(s).15 E(and most of the GNU k)0 48 Q -.15(ey)-.1 G 2.5(si).15
G(ntroduced by GNU tar)-2.5 E(.)-.55 E(It silently ignores an)0 60 Q 2.5
(yk)-.15 G -.15(ey)-2.6 G -.1(wo).15 G(rds that it does not understand.)
.1 E(<p><dt><b></b><b>restricted</b><b> pax</b><dd>)0 72 Q 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(The libarchi)0 12 Q .3 -.15(ve l)-.25 H
(ibrary can also write pax archi).15 E -.15(ve)-.25 G 2.5(si).15 G 2.5
(nw)-2.5 G(hich it)-2.5 E(attempts to suppress the e)0 24 Q
(xtended attrib)-.15 E(utes entry whene)-.2 E -.15(ve)-.25 G(r).15 E
(possible.)0 36 Q(The result will be identical to a ustar archi)0 48 Q
.3 -.15(ve u)-.25 H(nless the).15 E -.15(ex)0 60 S(tended attrib).15 E
(utes entry is required to store a long \214le)-.2 E
(name, long linkname, e)0 72 Q(xtended A)-.15 E
(CL, \214le \215ags, or if an)-.4 E 2.5(yo)-.15 G 2.5(ft)-2.5 G
(he standard)-2.5 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(ustar data \(user name, group name, UID, GID, etc\) cannot be fully)0
12 Q(represented in the ustar header)0 24 Q(.)-.55 E
(In all cases, the result can be dearchi)0 36 Q -.15(ve)-.25 G 2.5(db)
.15 G 2.5(ya)-2.5 G .3 -.15(ny p)-2.5 H(rogram that).15 E
(can read POSIX-compliant pax interchange format archi)0 48 Q -.15(ve)
-.25 G(s.).15 E(Programs that correctly read ustar format \(see belo)0
60 Q(w\) will also be)-.25 E(able to read this format; an)0 72 Q 2.5(ye)
-.15 G(xtended attrib)-2.65 E(utes will be e)-.2 E(xtracted as)-.15 E 0
Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(separate \214les stored in)0 12 Q
(<code></code><code>P)0 24 Q(axHeader</code>)-.15 E(directories.)0 36 Q
(<p><dt><b></b><b>ustar</b><dd>)0 48 Q(The libarchi)0 60 Q .3 -.15(ve l)
-.25 H(ibrary can both read and write this format.).15 E
(This format has the follo)0 72 Q(wing limitations:)-.25 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<ul>)0 12 Q(<li>)0 24 Q(De)0 36 Q
(vice major and minor numbers are limited to 21 bits.)-.25 E
(Nodes with lar)0 48 Q(ger numbers will not be added to the archi)-.18 E
-.15(ve)-.25 G(.).15 E(<li>)0 60 Q -.15(Pa)0 72 S(th names in the archi)
.15 E .3 -.15(ve a)-.25 H(re limited to 255 bytes.).15 E 0 Cg EP
%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(\(Shorter if there is no / character in e)0 12 Q
(xactly the right place.\))-.15 E(<li>)0 24 Q
(Symbolic links and hard links are stored in the archi)0 36 Q .3 -.15
(ve w)-.25 H(ith).15 E(the name of the referenced \214le.)0 48 Q
(This name is limited to 100 bytes.)0 60 Q(<li>)0 72 Q 0 Cg EP
%%Page: 22 22
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Extended attrib)0 12 Q
(utes, \214le \215ags, and other e)-.2 E(xtended)-.15 E
(security information cannot be stored.)0 24 Q(<li>)0 36 Q(Archi)0 48 Q
.3 -.15(ve e)-.25 H(ntries are limited to 8 gig).15 E(abytes in size.)
-.05 E(</ul>)0 60 Q
(Note that the pax interchange format has none of these restrictions.)0
72 Q 0 Cg EP
%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</dl>)0 12 Q(<p>)36 24 Q(The libarchi)0 36 Q .3
-.15(ve l)-.25 H(ibrary also reads a v).15 E(ariety of commonly-used e)
-.25 E(xtensions to)-.15 E(the basic tar format.)0 48 Q(These e)0 60 Q
(xtensions are recognized automatically whene)-.15 E -.15(ve)-.25 G 2.5
(rt).15 G(he)-2.5 E 2.5(ya)-.15 G(ppear)-2.5 E(.)-.55 E(<dl compact>)0
72 Q 0 Cg EP
%%Page: 24 24
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<p><dt>Numeric e)0 12 Q(xtensions.<dd>)-.15 E
(The POSIX standards require \214x)0 24 Q
(ed-length numeric \214elds to be written with)-.15 E
(some character position reserv)0 36 Q(ed for terminators.)-.15 E
(Libarchi)0 48 Q .3 -.15(ve a)-.25 H(llo).15 E
(ws these \214elds to be written without terminator characters.)-.25 E
(This e)0 60 Q(xtends the allo)-.15 E -.1(wa)-.25 G
(ble range; in particular).1 E 2.5(,u)-.4 G(star archi)-2.5 E -.15(ve)
-.25 G 2.5(sw).15 G(ith this)-2.5 E -.15(ex)0 72 S
(tension can support entries up to 64 gig).15 E(abytes in size.)-.05 E 0
Cg EP
%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Libarchi)0 12 Q .3 -.15(ve a)-.25 H
(lso recognizes base-256 v).15 E(alues in most numeric \214elds.)-.25 E
(This essentially remo)0 24 Q -.15(ve)-.15 G 2.5(sa).15 G
(ll limitations on \214le size, modi\214cation time,)-2.5 E(and de)0 36
Q(vice numbers.)-.25 E(<p><dt>Solaris e)0 48 Q(xtensions<dd>)-.15 E
(Libarchi)0 60 Q .3 -.15(ve r)-.25 H(ecognizes A).15 E(CL and e)-.4 E
(xtended attrib)-.15 E(ute records written)-.2 E(by Solaris tar)0 72 Q
(.)-.55 E 0 Cg EP
%%Page: 26 26
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Currently)0 12 Q 2.5(,l)-.65 G(ibarchi)-2.5 E .3
-.15(ve o)-.25 H(nly has support for old-style A).15 E(CLs; the)-.4 E
(ne)0 24 Q(wer NFSv4 A)-.25 E(CLs are recognized b)-.4 E(ut discarded.)
-.2 E(</dl>)0 36 Q(<p>)36 48 Q(The \214rst tar program appeared in Se)0
60 Q -.15(ve)-.25 G(nth Edition Unix in 1979.).15 E(The \214rst of)0 72
Q(\214cial standard for the tar \214le format w)-.25 E(as the)-.1 E 0 Cg
EP
%%Page: 27 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(ustar').74 E(')-.74 E
(\(Unix Standard T)0 24 Q(ar\) format de\214ned by POSIX in 1988.)-.8 E
(POSIX.1-2001 e)0 36 Q(xtended the ustar format to create the)-.15 E
-.74(``)0 48 S(pax interchange').74 E(')-.74 E(format.)0 60 Q
(<h4 id="Cpio F)36 72 Q(ormats">)-.15 E 0 Cg EP
%%Page: 28 28
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Cpio F)36 12 Q(ormats)-.15 E(</h4>)36 24 Q
(The libarchi)0 36 Q .3 -.15(ve l)-.25 H
(ibrary can read a number of common cpio v).15 E(ariants and can write)
-.25 E -.74(``)0 48 S(odc').74 E(')-.74 E(and)0 60 Q -.74(``)0 72 S(ne)
.74 E(wc')-.25 E(')-.74 E 0 Cg EP
%%Page: 29 29
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(format archi)0 12 Q -.15(ve)-.25 G(s.).15 E 2.5
(Ac)0 24 S(pio archi)-2.5 E .3 -.15(ve s)-.25 H
(tores each entry as a \214x).15 E(ed-size header follo)-.15 E(wed)-.25
E(by a v)0 36 Q(ariable-length \214lename and v)-.25 E
(ariable-length data.)-.25 E(Unlik)0 48 Q 2.5(et)-.1 G
(he tar format, the cpio format does only minimal padding)-2.5 E
(of the header or \214le data.)0 60 Q(There are se)0 72 Q -.15(ve)-.25 G
(ral cpio v).15 E(ariants, which dif)-.25 E(fer primarily in)-.25 E 0 Cg
EP
%%Page: 30 30
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(ho)0 12 Q 2.5(wt)-.25 G(he)-2.5 E 2.5(ys)-.15 G
(tore the initial header: some store the v)-2.5 E(alues as)-.25 E
(octal or he)0 24 Q(xadecimal numbers in ASCII, others as binary v)-.15
E(alues of)-.25 E -.25(va)0 36 S(rying byte order and length.).25 E
(<dl compact>)0 48 Q(<p><dt><b></b><b>binary</b><dd>)0 60 Q
(The libarchi)0 72 Q .3 -.15(ve l)-.25 H
(ibrary transparently reads both big-endian and little-endian).15 E 0 Cg
EP
%%Page: 31 31
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.25(va)0 12 S
(riants of the original binary cpio format.).25 E
(This format used 32-bit binary v)0 24 Q
(alues for \214le size and mtime,)-.25 E(and 16-bit binary v)0 36 Q
(alues for the other \214elds.)-.25 E(<p><dt><b></b><b>odc</b><dd>)0 48
Q(The libarchi)0 60 Q .3 -.15(ve l)-.25 H
(ibrary can both read and write this).15 E
(POSIX-standard format, which is of)0 72 Q(\214cially kno)-.25 E
(wn as the)-.25 E 0 Cg EP
%%Page: 32 32
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(cpio interchange format').74 E(')
-.74 E(or the)0 24 Q -.74(``)0 36 S(octet-oriented cpio archi).74 E .3
-.15(ve f)-.25 H(ormat').15 E(')-.74 E(and sometimes unof)0 48 Q
(\214cially referred to as the)-.25 E -.74(``)0 60 S
(old character format').74 E('.)-.74 E
(This format stores the header contents as octal v)0 72 Q
(alues in ASCII.)-.25 E 0 Cg EP
%%Page: 33 33
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(It is standard, portable, and immune from byte-order confusion.)0 12 Q
(File sizes and mtime are limited to 33 bits \(8GB \214le size\),)0 24 Q
(other \214elds are limited to 18 bits.)0 36 Q
(<p><dt><b></b><b>SVR4</b><dd>)0 48 Q(The libarchi)0 60 Q .3 -.15(ve l)
-.25 H(ibrary can read both CRC and non-CRC v).15 E(ariants of)-.25 E
(this format.)0 72 Q 0 Cg EP
%%Page: 34 34
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(The SVR4 format uses eight-digit he)0 12 Q
(xadecimal v)-.15 E(alues for)-.25 E(all header \214elds.)0 24 Q
(This limits \214le size to 4GB, and also limits the mtime and)0 36 Q
(other \214elds to 32 bits.)0 48 Q
(The SVR4 format can optionally include a CRC of the \214le)0 60 Q
(contents, although libarchi)0 72 Q .3 -.15(ve d)-.25 H
(oes not currently v).15 E(erify this CRC.)-.15 E 0 Cg EP
%%Page: 35 35
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</dl>)0 12 Q(<p>)36 24 Q
(Cpio \214rst appeared in PWB/UNIX 1.0, which w)0 36 Q
(as released within)-.1 E -1.11(AT)0 48 S(&T in 1977.)1.11 E
(PWB/UNIX 1.0 formed the basis of System III Unix, released outside)0 60
Q(of A)0 72 Q(T&T in 1981.)-1.11 E 0 Cg EP
%%Page: 36 36
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(This mak)0 12 Q(es cpio older than tar)-.1 E 2.5
(,a)-.4 G(lthough cpio w)-2.5 E(as not included)-.1 E(in V)0 24 Q
(ersion 7 A)-1.11 E(T&T Unix.)-1.11 E
(As a result, the tar command became much better kno)0 36 Q(wn in uni)
-.25 E -.15(ve)-.25 G(rsities).15 E(and research groups that used V)0 48
Q(ersion 7.)-1.11 E(The combination of the)0 60 Q(<b>\214nd</b>)0 72 Q 0
Cg EP
%%Page: 37 37
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(and)0 12 Q(<b>cpio</b>)0 24 Q(utilities pro)0 36
Q(vided v)-.15 E(ery precise control o)-.15 E -.15(ve)-.15 G 2.5<728c>
.15 G(le selection.)-2.5 E(Unfortunately)0 48 Q 2.5(,t)-.65 G
(he format has man)-2.5 E 2.5(yl)-.15 G(imitations that mak)-2.5 E 2.5
(ei)-.1 G 2.5(tu)-2.5 G(nsuitable)-2.5 E(for widespread use.)0 60 Q
(Only the POSIX format permits \214les o)0 72 Q -.15(ve)-.15 G 2.5(r4)
.15 G(GB, and its 18-bit)-2.5 E 0 Cg EP
%%Page: 38 38
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(limit for most other \214elds mak)0 12 Q
(es it unsuitable for modern systems.)-.1 E
(In addition, cpio formats only store numeric UID/GID v)0 24 Q
(alues \(not)-.25 E(usernames and group names\), which can mak)0 36 Q
2.5(ei)-.1 G 2.5(tv)-2.5 G(ery dif)-2.65 E(\214cult to correctly)-.25 E
(transfer archi)0 48 Q -.15(ve)-.25 G 2.5(sa).15 G
(cross systems with dissimilar user numbering.)-2.5 E(<h4 id="Shar F)36
60 Q(ormats">)-.15 E(Shar F)36 72 Q(ormats)-.15 E 0 Cg EP
%%Page: 39 39
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</h4>)36 12 Q(A)0 24 Q -.74(``)0 36 S
(shell archi).74 E -.15(ve)-.25 G -.74('').15 G
(is a shell script that, when e)0 48 Q -.15(xe)-.15 G
(cuted on a POSIX-compliant).15 E
(system, will recreate a collection of \214le system objects.)0 60 Q
(The libarchi)0 72 Q .3 -.15(ve l)-.25 H(ibrary can write tw).15 E 2.5
(od)-.1 G(if)-2.5 E(ferent kinds of shar archi)-.25 E -.15(ve)-.25 G(s:)
.15 E 0 Cg EP
%%Page: 40 40
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<dl compact>)0 12 Q
(<p><dt><b></b><b>shar</b><dd>)0 24 Q
(The traditional shar format uses a limited set of POSIX)0 36 Q
(commands, including)0 48 Q(<a href="../html1/echo.html">echo\(1\)</a>,)
0 60 Q(<a href="../html1/mkdir)0 72 Q(.html">mkdir\(1\)</a>,)-.55 E 0 Cg
EP
%%Page: 41 41
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(and)0 12 Q
(<a href="../html1/sed.html">sed\(1\)</a>.)0 24 Q
(It is suitable for portably archi)0 36 Q
(ving small collections of plain te)-.25 E(xt \214les.)-.15 E(Ho)0 48 Q
(we)-.25 E -.15(ve)-.25 G .8 -.4(r, i).15 H 2.5(ti).4 G 2.5(sn)-2.5 G
(ot generally well-suited for lar)-2.5 E(ge archi)-.18 E -.15(ve)-.25 G
(s).15 E(\(man)0 60 Q 2.5(yi)-.15 G(mplementations of)-2.5 E
(<a href="../html1/sh.html">sh\(1\)</a>)0 72 Q 0 Cg EP
%%Page: 42 42
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(ha)0 12 Q .3 -.15(ve l)-.2 H
(imits on the size of a script\) nor should it be used with non-te).15 E
(xt \214les.)-.15 E(<p><dt><b></b><b>shardump</b><dd>)0 24 Q
(This format is similar to shar b)0 36 Q(ut encodes \214les using)-.2 E
(<a href="../html1/uuencode.html">uuencode\(1\)</a>)0 48 Q
(so that the result will be a plain te)0 60 Q(xt \214le re)-.15 E -.05
(ga)-.15 G(rdless of the \214le contents.).05 E(It also includes additi\
onal shell commands that attempt to reproduce as)0 72 Q 0 Cg EP
%%Page: 43 43
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(man)0 12 Q 2.5<798c>-.15 G(le attrib)-2.5 E
(utes as possible, including o)-.2 E(wner)-.25 E 2.5(,m)-.4 G
(ode, and \215ags.)-2.5 E
(The additional commands used to restore \214le attrib)0 24 Q(utes mak)
-.2 E(e)-.1 E(shardump archi)0 36 Q -.15(ve)-.25 G 2.5(sl).15 G
(ess portable than plain shar archi)-2.5 E -.15(ve)-.25 G(s.).15 E
(</dl>)0 48 Q(<h4 id="ISO9660 format">)36 60 Q(ISO9660 format)36 72 Q 0
Cg EP
%%Page: 44 44
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</h4>)36 12 Q(Libarchi)0 24 Q .3 -.15(ve c)-.25
H(an read and e).15 E(xtract from \214les containing ISO9660-compliant)
-.15 E(CDR)0 36 Q(OM images.)-.4 E(In man)0 48 Q 2.5(yc)-.15 G
(ases, this can remo)-2.5 E .3 -.15(ve t)-.15 H(he need to b).15 E
(urn a ph)-.2 E(ysical CDR)-.05 E(OM)-.4 E
(just in order to read the \214les contained in an ISO9660 image.)0 60 Q
(It also a)0 72 Q -.2(vo)-.2 G(ids security and comple).2 E
(xity issues that come with)-.15 E 0 Cg EP
%%Page: 45 45
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(virtual mounts and loopback de)0 12 Q(vices.)
-.25 E(Libarchi)0 24 Q .3 -.15(ve s)-.25 H
(upports the most common Rockridge e).15 E(xtensions and has partial)
-.15 E(support for Joliet e)0 36 Q(xtensions.)-.15 E(If both e)0 48 Q
(xtensions are present, the Joliet e)-.15 E(xtensions will be)-.15 E
(used and the Rockridge e)0 60 Q(xtensions will be ignored.)-.15 E
(In particular)0 72 Q 2.5(,t)-.4 G
(his can create problems with hardlinks and symlinks,)-2.5 E 0 Cg EP
%%Page: 46 46
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(which are supported by Rockridge b)0 12 Q
(ut not by Joliet.)-.2 E(<h4 id="Zip format">)36 24 Q(Zip format)36 36 Q
(</h4>)36 48 Q(Libarchi)0 60 Q .3 -.15(ve c)-.25 H
(an read and write zip format archi).15 E -.15(ve)-.25 G 2.5(st).15 G
(hat ha)-2.5 E -.15(ve)-.2 G
(uncompressed entries and entries compressed with the)0 72 Q 0 Cg EP
%%Page: 47 47
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF -.74(``)0 12 S(de\215ate').74 E(')-.74 E
(algorithm.)0 24 Q(Older zip compression algorithms are not supported.)0
36 Q(It can e)0 48 Q(xtract jar archi)-.15 E -.15(ve)-.25 G(s, archi).15
E -.15(ve)-.25 G 2.5(st).15 G(hat use Zip64 e)-2.5 E(xtensions and man)
-.15 E(y)-.15 E(self-e)0 60 Q(xtracting zip archi)-.15 E -.15(ve)-.25 G
(s.).15 E(Libarchi)0 72 Q .3 -.15(ve r)-.25 H(eads Zip archi).15 E -.15
(ve)-.25 G 2.5(sa).15 G 2.5(st)-2.5 G(he)-2.5 E 2.5(ya)-.15 G
(re being streamed,)-2.5 E 0 Cg EP
%%Page: 48 48
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(which allo)0 12 Q(ws it to read archi)-.25 E
-.15(ve)-.25 G 2.5(so).15 G 2.5(fa)-2.5 G(rbitrary size.)-2.5 E
(It currently does not use the central directory; this)0 24 Q
(limits libarchi)0 36 Q -.15(ve)-.25 G 1.1 -.55('s a).15 H
(bility to support some self-e).55 E(xtracting)-.15 E(archi)0 48 Q -.15
(ve)-.25 G 2.5(sa).15 G(nd ones that ha)-2.5 E .3 -.15(ve b)-.2 H
(een modi\214ed in certain w).15 E(ays.)-.1 E(<h4 id="Archi)36 60 Q .3
-.15(ve \()-.25 H(library\) \214le format">).15 E(Archi)36 72 Q .3 -.15
(ve \()-.25 H(library\) \214le format).15 E 0 Cg EP
%%Page: 49 49
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(</h4>)36 12 Q(The Unix archi)0 24 Q .3 -.15
(ve f)-.25 H(ormat \(commonly created by the).15 E(<a href="../html1/ar)
0 36 Q(.html">ar\(1\)</a>)-.55 E(archi)0 48 Q -.15(ve)-.25 G
(r\) is a general-purpose format which is).15 E(used almost e)0 60 Q
(xclusi)-.15 E -.15(ve)-.25 G(ly for object \214les to be).15 E
(read by the link editor)0 72 Q 0 Cg EP
%%Page: 50 50
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html1/ld.html">ld\(1\)</a>.)0 12 Q
(The ar format has ne)0 24 Q -.15(ve)-.25 G 2.5(rb).15 G
(een standardised.)-2.5 E(There are tw)0 36 Q 2.5(oc)-.1 G(ommon v)-2.5
E(ariants:)-.25 E(the GNU format deri)0 48 Q -.15(ve)-.25 G 2.5(df).15 G
(rom SVR4,)-2.5 E(and the BSD format, which \214rst appeared in 4.4BSD.)
0 60 Q(The tw)0 72 Q 2.5(od)-.1 G(if)-2.5 E
(fer primarily in their handling of \214lenames)-.25 E 0 Cg EP
%%Page: 51 51
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(longer than 15 characters:)0 12 Q
(the GNU/SVR4 v)0 24 Q(ariant writes a \214lename table at the be)-.25 E
(ginning of the archi)-.15 E -.15(ve)-.25 G(;).15 E
(the BSD format stores each long \214lename in an e)0 36 Q(xtension)-.15
E(area adjacent to the entry)0 48 Q(.)-.65 E(Libarchi)0 60 Q .3 -.15
(ve c)-.25 H(an read both e).15 E(xtensions,)-.15 E(including archi)0 72
Q -.15(ve)-.25 G 2.5(st).15 G
(hat may include both types of long \214lenames.)-2.5 E 0 Cg EP
%%Page: 52 52
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(Programs using libarchi)0 12 Q .3 -.15(ve c)-.25
H(an write GNU/SVR4 format).15 E(if the)0 24 Q 2.5(yp)-.15 G(ro)-2.5 E
(vide a \214lename table to be written into)-.15 E(the archi)0 36 Q .3
-.15(ve b)-.25 H(efore an).15 E 2.5(yo)-.15 G 2.5(ft)-2.5 G(he entries.)
-2.5 E(An)0 48 Q 2.5(ye)-.15 G
(ntries whose names are not in the \214lename table)-2.5 E
(will be written using BSD-style long \214lenames.)0 60 Q
(This can cause problems for programs such as)0 72 Q 0 Cg EP
%%Page: 53 53
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(GNU ld that do not support the BSD-style long \214lenames.)0 12 Q
(<h4 id="mtree">)36 24 Q(mtree)36 36 Q(</h4>)36 48 Q(Libarchi)0 60 Q .3
-.15(ve c)-.25 H(an read and write \214les in).15 E
(<a href="../html5/mtree.html">mtree\(5\)</a>)0 72 Q 0 Cg EP
%%Page: 54 54
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(format.)0 12 Q(This format is not a true archi)0
24 Q .3 -.15(ve f)-.25 H(ormat, b).15 E(ut rather a te)-.2 E
(xtual description)-.15 E(of a \214le hierarch)0 36 Q 2.5(yi)-.05 G 2.5
(nw)-2.5 G(hich each line speci\214es the name of a \214le and)-2.5 E
(pro)0 48 Q(vides speci\214c metadata about that \214le.)-.15 E
(Libarchi)0 60 Q .3 -.15(ve c)-.25 H(an read all of the k).15 E -.15(ey)
-.1 G -.1(wo).15 G(rds supported by both).1 E(the NetBSD and FreeBSD v)0
72 Q(ersions of)-.15 E 0 Cg EP
%%Page: 55 55
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html1/mtree.html">mtree\(1\)</a>,)0
12 Q(although man)0 24 Q 2.5(yo)-.15 G 2.5(ft)-2.5 G(he k)-2.5 E -.15
(ey)-.1 G -.1(wo).15 G(rds cannot currently be stored in an).1 E
(<font size="-1"></font><font size="-1">archi)0 36 Q -.15(ve)-.25 G
(_entry</font>).15 E(object.)0 48 Q(When writing, libarchi)0 60 Q .3
-.15(ve s)-.25 H(upports use of the).15 E(<a href="../html3/archi)0 72 Q
-.15(ve)-.25 G(_write_set_options.html">archi).15 E -.15(ve)-.25 G
(_write_set_options\(3\)</a>).15 E 0 Cg EP
%%Page: 56 56
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(interf)0 12 Q(ace to specify which k)-.1 E -.15
(ey)-.1 G -.1(wo).15 G(rds should be included in the).1 E(output.)0 24 Q
(If libarchi)0 36 Q .3 -.15(ve w)-.25 H
(as compiled with access to suitable).05 E
(cryptographic libraries \(such as the OpenSSL libraries\),)0 48 Q
(it can compute hash entries such as)0 60 Q(<b></b><b>sha512</b>)0 72 Q
0 Cg EP
%%Page: 57 57
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(or)0 12 Q(<b></b><b>md5</b>)0 24 Q
(from \214le data being written to the mtree writer)0 36 Q(.)-.55 E(<p>)
36 48 Q(When reading an mtree \214le, libarchi)0 60 Q .3 -.15(ve w)-.25
H(ill locate the corresponding).15 E(\214les on disk using the)0 72 Q 0
Cg EP
%%Page: 58 58
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<b></b><b>contents</b>)0 12 Q -.1(ke)0 24 S(yw)
-.05 E(ord if present or the re)-.1 E(gular \214lename.)-.15 E
(If it can locate and open the \214le on disk, it will use that)0 36 Q
(to \214ll in an)0 48 Q 2.5(ym)-.15 G
(etadata that is missing from the mtree \214le)-2.5 E
(and will read the \214le contents and return those to the program)0 60
Q(using libarchi)0 72 Q -.15(ve)-.25 G(.).15 E 0 Cg EP
%%Page: 59 59
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF
(If it cannot locate and open the \214le on disk, libarchi)0 12 Q -.15
(ve)-.25 G(will return an error for an)0 24 Q 2.5(ya)-.15 G
(ttempt to read the entry)-2.5 E(body)0 36 Q(.)-.65 E
(<h3 id="SEE ALSO">)36 48 Q(SEE ALSO)36 60 Q(</h3>)36 72 Q 0 Cg EP
%%Page: 60 60
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html1/ar)0 12 Q(.html">ar\(1\)</a>,)
-.55 E(<a href="../html1/cpio.html">cpio\(1\)</a>,)0 24 Q
(<a href="../html1/mkisofs.html">mkisofs\(1\)</a>,)0 36 Q
(<a href="../html1/shar)0 48 Q(.html">shar\(1\)</a>,)-.55 E
(<a href="../html1/tar)0 60 Q(.html">tar\(1\)</a>,)-.55 E
(<a href="../html1/zip.html">zip\(1\)</a>,)0 72 Q 0 Cg EP
%%Page: 61 61
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@@0 SF(<a href="../html3/zlib)0 12 Q
(.html">zlib\(3\)</a>,)-.4 E
(<a href="../html5/cpio.html">cpio\(5\)</a>,)0 24 Q
(<a href="../html5/mtree.html">mtree\(5\)</a>,)0 36 Q
(<a href="../html5/tar)0 48 Q(.html">tar\(5\)</a>)-.55 E(</body>)0 60 Q
(</html>)0 72 Q 0 Cg EP
%%Trailer
end
%%EOF
@


1.1.1.5
log
@Import libarchive-3.2.1:
- security fixes and other bugfixes
- support for multhreading in xz 5.2+
@
text
@d1 895
a895 506
<!-- Creator     : groff version 1.22.3 -->
<!-- CreationDate: Sun Jun 19 19:54:09 2016 -->
<!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-FORMATS(5) BSD File Formats Manual
LIBARCHIVE-FORMATS(5)</p>

<p style="margin-top: 1em"><b>NAME</b></p>

<p style="margin-left:6%;"><b>libarchive-formats</b>
&mdash; archive formats supported by the libarchive
library</p>

<p style="margin-top: 1em"><b>DESCRIPTION</b></p>

<p style="margin-left:6%;">The libarchive(3) library reads
and writes a variety of streaming archive formats. Generally
speaking, all of these archive formats consist of a series
of &rsquo;&rsquo;entries&rsquo;&rsquo;. Each entry stores a
single file system object, such as a file, directory, or
symbolic link.</p>

<p style="margin-left:6%; margin-top: 1em">The following
provides a brief description of each format supported by
libarchive, with some information about recognized
extensions or limitations of the current library support.
Note that just because a format is supported by libarchive
does not imply that a program that uses libarchive will
support that format. Applications that use libarchive
specify which formats they wish to support, though many
programs do use libarchive convenience functions to enable
all supported formats.</p>

<p style="margin-left:6%; margin-top: 1em"><b>Tar
Formats</b> <br>
The libarchive(3) library can read most tar archives. It can
write POSIX-standard &rsquo;&rsquo;ustar&rsquo;&rsquo; and
&rsquo;&rsquo;pax interchange&rsquo;&rsquo; formats as well
as v7 tar format and a subset of the legacy GNU tar
format.</p>

<p style="margin-left:6%; margin-top: 1em">All tar formats
store each entry in one or more 512-byte records. The first
record is used for file metadata, including filename,
timestamp, and mode information, and the file data is stored
in subsequent records. Later variants have extended this by
either appropriating undefined areas of the header record,
extending the header to multiple records, or by storing
special entries that modify the interpretation of subsequent
entries.</p>

<p style="margin-top: 1em"><b>gnutar</b></p>

<p style="margin-left:17%; margin-top: 1em">The
libarchive(3) library can read most GNU-format tar archives.
It currently supports the most popular GNU extensions,
including modern long filename and linkname support, as well
as atime and ctime data. The libarchive library does not
support multi-volume archives, nor the old GNU long filename
format. It can read GNU sparse file entries, including the
new POSIX-based formats.</p>

<p style="margin-left:17%; margin-top: 1em">The
libarchive(3) library can write GNU tar format, including
long filename and linkname support, as well as atime and
ctime data.</p>

<p style="margin-top: 1em"><b>pax</b></p>

<p style="margin-left:17%; margin-top: 1em">The
libarchive(3) library can read and write POSIX-compliant pax
interchange format archives. Pax interchange format archives
are an extension of the older ustar format that adds a
separate entry with additional attributes stored as
key/value pairs immediately before each regular entry. The
presence of these additional entries is the only difference
between pax interchange format and the older ustar format.
The extended attributes are of unlimited length and are
stored as UTF-8 Unicode strings. Keywords defined in the
standard are in all lowercase; vendors are allowed to define
custom keys by preceding them with the vendor name in all
uppercase. When writing pax archives, libarchive uses many
of the SCHILY keys defined by Joerg Schilling&rsquo;s
&rsquo;&rsquo;star&rsquo;&rsquo; archiver and a few
LIBARCHIVE keys. The libarchive library can read most of the
SCHILY keys and most of the GNU keys introduced by GNU tar.
It silently ignores any keywords that it does not
understand.</p>

<p style="margin-left:17%; margin-top: 1em">The pax
interchange format converts filenames to Unicode and stores
them using the UTF-8 encoding. Prior to libarchive 3.0,
libarchive erroneously assumed that the system
wide-character routines natively supported Unicode. This
caused it to mis-handle non-ASCII filenames on systems that
did not satisfy this assumption.</p>

<p style="margin-top: 1em"><b>restricted pax</b></p>

<p style="margin-left:17%;">The libarchive library can also
write pax archives in which it attempts to suppress the
extended attributes entry whenever possible. The result will
be identical to a ustar archive unless the extended
attributes entry is required to store a long file name, long
linkname, extended ACL, file flags, or if any of the
standard ustar data (user name, group name, UID, GID, etc)
cannot be fully represented in the ustar header. In all
cases, the result can be dearchived by any program that can
read POSIX-compliant pax interchange format archives.
Programs that correctly read ustar format (see below) will
also be able to read this format; any extended attributes
will be extracted as separate files stored in
<i>PaxHeader</i> directories.</p>

<p style="margin-top: 1em"><b>ustar</b></p>

<p style="margin-left:17%; margin-top: 1em">The libarchive
library can both read and write this format. This format has
the following limitations:</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Device major and minor numbers
are limited to 21 bits. Nodes with larger numbers will not
be added to the archive.</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Path names in the archive are
limited to 255 bytes. (Shorter if there is no / character in
exactly the right place.)</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Symbolic links and hard links
are stored in the archive with the name of the referenced
file. This name is limited to 100 bytes.</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Extended attributes, file
flags, and other extended security information cannot be
stored.</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Archive entries are limited to
8 gigabytes in size.</p>

<p style="margin-left:17%;">Note that the pax interchange
format has none of these restrictions. The ustar format is
old and widely supported. It is recommended when
compatibility is the primary concern.</p>

<p style="margin-top: 1em"><b>v7</b></p>

<p style="margin-left:17%; margin-top: 1em">The libarchive
library can read and write the legacy v7 tar format. This
format has the following limitations:</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Only regular files,
directories, and symbolic links can be archived. Block and
character device nodes, FIFOs, and sockets cannot be
archived.</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Path names in the archive are
limited to 100 bytes.</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Symbolic links and hard links
are stored in the archive with the name of the referenced
file. This name is limited to 100 bytes.</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">User and group information are
stored as numeric IDs; there is no provision for storing
user or group names.</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Extended attributes, file
flags, and other extended security information cannot be
stored.</p>

<p><b>&bull;</b></p>

<p style="margin-left:22%;">Archive entries are limited to
8 gigabytes in size.</p>

<p style="margin-left:17%;">Generally, users should prefer
the ustar format for portability as the v7 tar format is
both less useful and less portable.</p>

<p style="margin-left:6%; margin-top: 1em">The libarchive
library also reads a variety of commonly-used extensions to
the basic tar format. These extensions are recognized
automatically whenever they appear.</p>

<p style="margin-top: 1em">Numeric extensions.</p>

<p style="margin-left:17%;">The POSIX standards require
fixed-length numeric fields to be written with some
character position reserved for terminators. Libarchive
allows these fields to be written without terminator
characters. This extends the allowable range; in particular,
ustar archives with this extension can support entries up to
64 gigabytes in size. Libarchive also recognizes base-256
values in most numeric fields. This essentially removes all
limitations on file size, modification time, and device
numbers.</p>

<p style="margin-top: 1em">Solaris extensions</p>

<p style="margin-left:17%;">Libarchive recognizes ACL and
extended attribute records written by Solaris tar.
Currently, libarchive only has support for old-style ACLs;
the newer NFSv4 ACLs are recognized but discarded.</p>

<p style="margin-left:6%; margin-top: 1em">The first tar
program appeared in Seventh Edition Unix in 1979. The first
official standard for the tar file format was the
&rsquo;&rsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
defined by POSIX in 1988. POSIX.1-2001 extended the ustar
format to create the &rsquo;&rsquo;pax
interchange&rsquo;&rsquo; format.</p>

<p style="margin-left:6%; margin-top: 1em"><b>Cpio
Formats</b> <br>
The libarchive library can read a number of common cpio
variants and can write &rsquo;&rsquo;odc&rsquo;&rsquo; and
&rsquo;&rsquo;newc&rsquo;&rsquo; format archives. A cpio
archive stores each entry as a fixed-size header followed by
a variable-length filename and variable-length data. Unlike
the tar format, the cpio format does only minimal padding of
the header or file data. There are several cpio variants,
which differ primarily in how they store the initial header:
some store the values as octal or hexadecimal numbers in
ASCII, others as binary values of varying byte order and
length.</p>

<p style="margin-top: 1em"><b>binary</b></p>

<p style="margin-left:17%; margin-top: 1em">The libarchive
library transparently reads both big-endian and
little-endian variants of the original binary cpio format.
This format used 32-bit binary values for file size and
mtime, and 16-bit binary values for the other fields.</p>

<p style="margin-top: 1em"><b>odc</b></p>

<p style="margin-left:17%; margin-top: 1em">The libarchive
library can both read and write this POSIX-standard format,
which is officially known as the &rsquo;&rsquo;cpio
interchange format&rsquo;&rsquo; or the
&rsquo;&rsquo;octet-oriented cpio archive
format&rsquo;&rsquo; and sometimes unofficially referred to
as the &rsquo;&rsquo;old character format&rsquo;&rsquo;.
This format stores the header contents as octal values in
ASCII. It is standard, portable, and immune from byte-order
confusion. File sizes and mtime are limited to 33 bits (8GB
file size), other fields are limited to 18 bits.</p>

<p style="margin-top: 1em"><b>SVR4/newc</b></p>

<p style="margin-left:17%;">The libarchive library can read
both CRC and non-CRC variants of this format. The SVR4
format uses eight-digit hexadecimal values for all header
fields. This limits file size to 4GB, and also limits the
mtime and other fields to 32 bits. The SVR4 format can
optionally include a CRC of the file contents, although
libarchive does not currently verify this CRC.</p>

<p style="margin-left:6%; margin-top: 1em">Cpio first
appeared in PWB/UNIX 1.0, which was released within AT&amp;T
in 1977. PWB/UNIX 1.0 formed the basis of System III Unix,
released outside of AT&amp;T in 1981. This makes cpio older
than tar, although cpio was not included in Version 7
AT&amp;T Unix. As a result, the tar command became much
better known in universities and research groups that used
Version 7. The combination of the <b>find</b> and
<b>cpio</b> utilities provided very precise control over
file selection. Unfortunately, the format has many
limitations that make it unsuitable for widespread use. Only
the POSIX format permits files over 4GB, and its 18-bit
limit for most other fields makes it unsuitable for modern
systems. In addition, cpio formats only store numeric
UID/GID values (not usernames and group names), which can
make it very difficult to correctly transfer archives across
systems with dissimilar user numbering.</p>

<p style="margin-left:6%; margin-top: 1em"><b>Shar
Formats</b> <br>
A &rsquo;&rsquo;shell archive&rsquo;&rsquo; is a shell
script that, when executed on a POSIX-compliant system, will
recreate a collection of file system objects. The libarchive
library can write two different kinds of shar archives:</p>

<p style="margin-top: 1em"><b>shar</b></p>

<p style="margin-left:17%; margin-top: 1em">The traditional
shar format uses a limited set of POSIX commands, including
echo(1), mkdir(1), and sed(1). It is suitable for portably
archiving small collections of plain text files. However, it
is not generally well-suited for large archives (many
implementations of sh(1) have limits on the size of a
script) nor should it be used with non-text files.</p>

<p style="margin-top: 1em"><b>shardump</b></p>

<p style="margin-left:17%;">This format is similar to shar
but encodes files using uuencode(1) so that the result will
be a plain text file regardless of the file contents. It
also includes additional shell commands that attempt to
reproduce as many file attributes as possible, including
owner, mode, and flags. The additional commands used to
restore file attributes make shardump archives less portable
than plain shar archives.</p>

<p style="margin-left:6%; margin-top: 1em"><b>ISO9660
format</b> <br>
Libarchive can read and extract from files containing
ISO9660-compliant CDROM images. In many cases, this can
remove the need to burn a physical CDROM just in order to
read the files contained in an ISO9660 image. It also avoids
security and complexity issues that come with virtual mounts
and loopback devices. Libarchive supports the most common
Rockridge extensions and has partial support for Joliet
extensions. If both extensions are present, the Joliet
extensions will be used and the Rockridge extensions will be
ignored. In particular, this can create problems with
hardlinks and symlinks, which are supported by Rockridge but
not by Joliet.</p>

<p style="margin-left:6%; margin-top: 1em">Libarchive reads
ISO9660 images using a streaming strategy. This allows it to
read compressed images directly (decompressing on the fly)
and allows it to read images directly from network sockets,
pipes, and other non-seekable data sources. This strategy
works well for optimized ISO9660 images created by many
popular programs. Such programs collect all directory
information at the beginning of the ISO9660 image so it can
be read from a physical disk with a minimum of seeking.
However, not all ISO9660 images can be read in this
fashion.</p>

<p style="margin-left:6%; margin-top: 1em">Libarchive can
also write ISO9660 images. Such images are fully optimized
with the directory information preceding all file data. This
is done by storing all file data to a temporary file while
collecting directory information in memory. When the image
is finished, libarchive writes out the directory structure
followed by the file data. The location used for the
temporary file can be changed by the usual environment
variables.</p>

<p style="margin-left:6%; margin-top: 1em"><b>Zip
format</b> <br>
Libarchive can read and write zip format archives that have
uncompressed entries and entries compressed with the
&rsquo;&rsquo;deflate&rsquo;&rsquo; algorithm. Other zip
compression algorithms are not supported. It can extract jar
archives, archives that use Zip64 extensions and
self-extracting zip archives. Libarchive can use either of
two different strategies for reading Zip archives: a
streaming strategy which is fast and can handle extremely
large archives, and a seeking strategy which can correctly
process self-extracting Zip archives and archives with
deleted members or other in-place modifications.</p>

<p style="margin-left:6%; margin-top: 1em">The streaming
reader processes Zip archives as they are read. It can read
archives of arbitrary size from tape or network sockets, and
can decode Zip archives that have been separately compressed
or encoded. However, self-extracting Zip archives and
archives with certain types of modifications cannot be
correctly handled. Such archives require that the reader
first process the Central Directory, which is ordinarily
located at the end of a Zip archive and is thus inaccessible
to the streaming reader. If the program using libarchive has
enabled seek support, then libarchive will use this to
processes the central directory first.</p>

<p style="margin-left:6%; margin-top: 1em">In particular,
the seeking reader must be used to correctly handle
self-extracting archives. Such archives consist of a program
followed by a regular Zip archive. The streaming reader
cannot parse the initial program portion, but the seeking
reader starts by reading the Central Directory from the end
of the archive. Similarly, Zip archives that have been
modified in-place can have deleted entries or other garbage
data that can only be accurately detected by first reading
the Central Directory.</p>

<p style="margin-left:6%; margin-top: 1em"><b>Archive
(library) file format</b> <br>
The Unix archive format (commonly created by the ar(1)
archiver) is a general-purpose format which is used almost
exclusively for object files to be read by the link editor
ld(1). The ar format has never been standardised. There are
two common variants: the GNU format derived from SVR4, and
the BSD format, which first appeared in 4.4BSD. The two
differ primarily in their handling of filenames longer than
15 characters: the GNU/SVR4 variant writes a filename table
at the beginning of the archive; the BSD format stores each
long filename in an extension area adjacent to the entry.
Libarchive can read both extensions, including archives that
may include both types of long filenames. Programs using
libarchive can write GNU/SVR4 format if they provide an
entry called <i>//</i> containing a filename table to be
written into the archive before any of the entries. Any
entries whose names are not in the filename table will be
written using BSD-style long filenames. This can cause
problems for programs such as GNU ld that do not support the
BSD-style long filenames.</p>

<p style="margin-left:6%; margin-top: 1em"><b>mtree</b>
<br>
Libarchive can read and write files in mtree(5) format. This
format is not a true archive format, but rather a textual
description of a file hierarchy in which each line specifies
the name of a file and provides specific metadata about that
file. Libarchive can read all of the keywords supported by
both the NetBSD and FreeBSD versions of mtree(8), although
many of the keywords cannot currently be stored in an
archive_entry object. When writing, libarchive supports use
of the archive_write_set_options(3) interface to specify
which keywords should be included in the output. If
libarchive was compiled with access to suitable
cryptographic libraries (such as the OpenSSL libraries), it
can compute hash entries such as <b>sha512</b> or <b>md5</b>
from file data being written to the mtree writer.</p>

<p style="margin-left:6%; margin-top: 1em">When reading an
mtree file, libarchive will locate the corresponding files
on disk using the <b>contents</b> keyword if present or the
regular filename. If it can locate and open the file on
disk, it will use that to fill in any metadata that is
missing from the mtree file and will read the file contents
and return those to the program using libarchive. If it
cannot locate and open the file on disk, libarchive will
return an error for any attempt to read the entry body.</p>

<p style="margin-left:6%; margin-top: 1em"><b>7-Zip</b>
<br>
Libarchive can read and write 7-Zip format archives. TODO:
Need more information</p>

<p style="margin-left:6%; margin-top: 1em"><b>CAB</b> <br>
Libarchive can read Microsoft Cabinet (
&rsquo;&rsquo;CAB&rsquo;&rsquo;) format archives. TODO: Need
more information.</p>

<p style="margin-left:6%; margin-top: 1em"><b>LHA</b> <br>
TODO: Information about libarchive&rsquo;s LHA support</p>

<p style="margin-left:6%; margin-top: 1em"><b>RAR</b> <br>
Libarchive has limited support for reading RAR format
archives. Currently, libarchive can read RARv3 format
archives which have been either created uncompressed, or
compressed using any of the compression methods supported by
the RARv3 format. Libarchive can also read self-extracting
RAR archives.</p>

<p style="margin-left:6%; margin-top: 1em"><b>Warc</b> <br>
Libarchive can read and write &rsquo;&rsquo;web
archives&rsquo;&rsquo;. TODO: Need more information</p>

<p style="margin-left:6%; margin-top: 1em"><b>XAR</b> <br>
Libarchive can read and write the XAR format used by many
Apple tools. TODO: Need more information</p>

<p style="margin-top: 1em"><b>SEE ALSO</b></p>

<p style="margin-left:6%;">ar(1), cpio(1), mkisofs(1),
shar(1), tar(1), zip(1), zlib(3), cpio(5), mtree(5),
tar(5)</p>

<p style="margin-left:6%; margin-top: 1em">BSD
March&nbsp;18, 2012 BSD</p>
<hr>
</body>
</html>
@


1.1.1.6
log
@Import libarchive-3.3.1.
@
text
@d2 1
a2 1
<!-- CreationDate: Sat Feb 25 11:22:06 2017 -->
d37 1
a37 1
of &lsquo;&lsquo;entries&rsquo;&rsquo;. Each entry stores a
d55 2
a56 2
write POSIX-standard &lsquo;&lsquo;ustar&rsquo;&rsquo; and
&lsquo;&lsquo;pax interchange&rsquo;&rsquo; formats as well
d102 1
a102 1
&lsquo;&lsquo;star&rsquo;&rsquo; archiver and a few
d239 3
a241 1
extended attribute records written by Solaris tar.</p>
d246 1
a246 1
&lsquo;&lsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
d248 1
a248 1
format to create the &lsquo;&lsquo;pax
d254 2
a255 2
variants and can write &lsquo;&lsquo;odc&rsquo;&rsquo; and
&lsquo;&lsquo;newc&rsquo;&rsquo; format archives. A cpio
d277 1
a277 1
which is officially known as the &lsquo;&lsquo;cpio
d279 1
a279 1
&lsquo;&lsquo;octet-oriented cpio archive
d281 1
a281 1
as the &lsquo;&lsquo;old character format&rsquo;&rsquo;.
d317 1
a317 1
A &lsquo;&lsquo;shell archive&rsquo;&rsquo; is a shell
d384 1
a384 1
&lsquo;&lsquo;deflate&rsquo;&rsquo; algorithm. Other zip
d474 1
a474 1
&lsquo;&lsquo;CAB&rsquo;&rsquo;) format archives. TODO: Need
d489 1
a489 1
Libarchive can read and write &lsquo;&lsquo;web
d503 1
a503 1
December&nbsp;27, 2016 BSD</p>
@


1.1.1.7
log
@Import libarchive-3.3.2 + 9de5f3 + f9dacbf:
- Support NFS4 ACLs on Linux
- Bugfixes
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Jul 10 02:32:57 2017 -->
d37 1
a37 1
of &rsquo;&rsquo;entries&rsquo;&rsquo;. Each entry stores a
d55 2
a56 2
write POSIX-standard &rsquo;&rsquo;ustar&rsquo;&rsquo; and
&rsquo;&rsquo;pax interchange&rsquo;&rsquo; formats as well
d102 1
a102 1
&rsquo;&rsquo;star&rsquo;&rsquo; archiver and a few
d244 1
a244 1
&rsquo;&rsquo;ustar&rsquo;&rsquo; (Unix Standard Tar) format
d246 1
a246 1
format to create the &rsquo;&rsquo;pax
d252 2
a253 2
variants and can write &rsquo;&rsquo;odc&rsquo;&rsquo; and
&rsquo;&rsquo;newc&rsquo;&rsquo; format archives. A cpio
d275 1
a275 1
which is officially known as the &rsquo;&rsquo;cpio
d277 1
a277 1
&rsquo;&rsquo;octet-oriented cpio archive
d279 1
a279 1
as the &rsquo;&rsquo;old character format&rsquo;&rsquo;.
d315 1
a315 1
A &rsquo;&rsquo;shell archive&rsquo;&rsquo; is a shell
d382 1
a382 1
&rsquo;&rsquo;deflate&rsquo;&rsquo; algorithm. Other zip
d472 1
a472 1
&rsquo;&rsquo;CAB&rsquo;&rsquo;) format archives. TODO: Need
d487 1
a487 1
Libarchive can read and write &rsquo;&rsquo;web
@


1.1.1.8
log
@Import libarchive-3.3.3 as should have done originally.
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Sep  3 22:55:10 2018 -->
@


1.1.1.9
log
@Import libarchive 3.4.0
@
text
@d1 2
a2 2
<!-- Creator     : groff version 1.22.4 -->
<!-- CreationDate: Wed Jun 12 21:10:18 2019 -->
d37 3
a39 3
of &ldquo;entries&rdquo;. Each entry stores a single file
system object, such as a file, directory, or symbolic
link.</p>
d55 4
a58 3
write POSIX-standard &ldquo;ustar&rdquo; and &ldquo;pax
interchange&rdquo; formats as well as v7 tar format and a
subset of the legacy GNU tar format.</p>
d102 5
a106 4
&ldquo;star&rdquo; archiver and a few LIBARCHIVE keys. The
libarchive library can read most of the SCHILY keys and most
of the GNU keys introduced by GNU tar. It silently ignores
any keywords that it does not understand.</p>
d244 4
a247 3
&ldquo;ustar&rdquo; (Unix Standard Tar) format defined by
POSIX in 1988. POSIX.1-2001 extended the ustar format to
create the &ldquo;pax interchange&rdquo; format.</p>
d252 4
a255 4
variants and can write &ldquo;odc&rdquo; and
&ldquo;newc&rdquo; format archives. A cpio archive stores
each entry as a fixed-size header followed by a
variable-length filename and variable-length data. Unlike
d275 9
a283 8
which is officially known as the &ldquo;cpio interchange
format&rdquo; or the &ldquo;octet-oriented cpio archive
format&rdquo; and sometimes unofficially referred to as the
&ldquo;old character format&rdquo;. This format stores the
header contents as octal values in ASCII. It is standard,
portable, and immune from byte-order confusion. File sizes
and mtime are limited to 33 bits (8GB file size), other
fields are limited to 18 bits.</p>
d315 4
a318 4
A &ldquo;shell archive&rdquo; is a shell script that, when
executed on a POSIX-compliant system, will recreate a
collection of file system objects. The libarchive library
can write two different kinds of shar archives:</p>
d382 9
a390 9
&ldquo;deflate&rdquo; algorithm. Other zip compression
algorithms are not supported. It can extract jar archives,
archives that use Zip64 extensions and self-extracting zip
archives. Libarchive can use either of two different
strategies for reading Zip archives: a streaming strategy
which is fast and can handle extremely large archives, and a
seeking strategy which can correctly process self-extracting
Zip archives and archives with deleted members or other
in-place modifications.</p>
d471 3
a473 2
Libarchive can read Microsoft Cabinet ( &ldquo;CAB&rdquo;)
format archives. TODO: Need more information.</p>
d487 2
a488 2
Libarchive can read and write &ldquo;web archives&rdquo;.
TODO: Need more information</p>
@


1.1.1.10
log
@Import libarchive 3.7.2
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Sep 11 22:06:22 2023 -->
d248 11
a258 9
The libarchive library can read and write a number of common
cpio variants. A cpio archive stores each entry as a
fixed-size header followed by a variable-length filename and
variable-length data. Unlike the tar format, the cpio format
does only minimal padding of the header or file data. There
are several cpio variants, which differ primarily in how
they store the initial header: some store the values as
octal or hexadecimal numbers in ASCII, others as binary
values of varying byte order and length.</p>
d264 3
a266 9
little-endian variants of the the two binary cpio formats;
the original one from PWB/UNIX, and the later, more widely
used, variant. This format used 32-bit binary values for
file size and mtime, and 16-bit binary values for the other
fields. The formats support only the file types present in
UNIX at the time of their creation. File sizes are limited
to 24 bits in the PWB format, because of the limits of the
file system, and to 31 bits in the newer binary format,
where signed 32 bit longs were used.</p>
d270 10
a279 10
<p style="margin-left:17%; margin-top: 1em">This is the
POSIX standardized format, which is officially known as the
&ldquo;cpio interchange format&rdquo; or the
&ldquo;octet-oriented cpio archive format&rdquo; and
sometimes unofficially referred to as the &ldquo;old
character format&rdquo;. This format stores the header
contents as octal values in ASCII. It is standard, portable,
and immune from byte-order confusion. File sizes and mtime
are limited to 33 bits (8GB file size), other fields are
limited to 18 bits.</p>
@


1.1.1.11
log
@libarchive: import version 3.7.3
@
text
@d2 1
a2 1
<!-- CreationDate: Sun Apr  7 22:36:27 2024 -->
@


1.1.1.12
log
@Libarchive 3.7.4 is a bugfix and security release

Security fixes:

rar: Fix OOB in rar e8 filter (CVE-2024-26256)
zip: Fix out of boundary access

Important bugfixes:

7zip: Limit amount of properties
bsdtar: Fix error handling around strtol() usages
passphrase: Improve newline handling on Windows
passphrase: Never allow empty passwords
rar: Fix "File CRC Error" when extracting specific rar4 archives
xar: Avoid infinite link loop
zip: Update AppleDouble support for directories
zstd: Implement core detection
@
text
@d2 1
a2 1
<!-- CreationDate: Fri Apr 26 09:23:47 2024 -->
@


1.1.1.13
log
@libarchive: imported version 3.7.5

Libarchive 3.7.5

Security fixes:

fix multiple vulnerabilities identified by SAST
cpio: ignore out-of-range gid/uid/size/ino and harden AFIO parsing
lzop: prevent integer overflow
rar4: protect copy_from_lzss_window_to_unp()
rar4: fix CVE-2024-26256
rar4: fix OOB in delta and audio filter
rar4: fix out of boundary access with large files
rar4: add boundary checks to rgb filter
rar4: fix OOB access with unicode filenames
rar5: clear 'data ready' cache on window buffer reallocs
rpm: calculate huge header sizes correctly
unzip: unify EOF handling
util: fix out of boundary access in mktemp functions
uu: stop processing if lines are too long

Important bugfixes:

7zip: fix issue when skipping first file in 7zip archive that is a multiple of 65536 bytes
ar: fix archive entries having no type
lha: do not allow negative file sizes
lha: fix integer truncation on 32-bit systems
shar: check strdup return value
rar5: don't try to read rediculously long names
xar: fix another infinite loop and expat error handling
many Windows fixes, cleanups and improvements
@
text
@d2 1
a2 1
<!-- CreationDate: Fri Sep 13 20:31:06 2024 -->
@


1.1.1.14
log
@libarchove: import version 3.7.7
@
text
@d1 2
a2 2
<!-- Creator     : groff version 1.23.0 -->
<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
d23 2
a24 2
<p><i>LIBARCHIVE-FORMATS</i>(5) File Formats Manual
<i>LIBARCHIVE-FORMATS</i>(5)</p>
d28 3
a30 2
<p style="margin-left:9%;">libarchive-formats &mdash;
archive formats supported by the libarchive library</p>
d34 6
a39 6
<p style="margin-left:9%;">The <i>libarchive</i>(3) library
reads and writes a variety of streaming archive formats.
Generally speaking, all of these archive formats consist of
a series of &ldquo;entries&rdquo;. Each entry stores a
single file system object, such as a file, directory, or
symbolic link.</p>
d41 1
a41 1
<p style="margin-left:9%; margin-top: 1em">The following
d52 6
a57 2
<p style="margin-left:4%; margin-top: 1em"><b>Tar
Formats</b></p>
d59 1
a59 7
<p style="margin-left:9%;">The <i>libarchive</i>(3) library
can read most tar archives. It can write POSIX-standard
&ldquo;ustar&rdquo; and &ldquo;pax interchange&rdquo;
formats as well as v7 tar format and a subset of the legacy
GNU tar format.</p>

<p style="margin-left:9%; margin-top: 1em">All tar formats
d71 13
a83 13
<p style="margin-left:19%; margin-top: 1em">The
<i>libarchive</i>(3) library can read most GNU-format tar
archives. It currently supports the most popular GNU
extensions, including modern long filename and linkname
support, as well as atime and ctime data. The libarchive
library does not support multi-volume archives, nor the old
GNU long filename format. It can read GNU sparse file
entries, including the new POSIX-based formats.</p>

<p style="margin-left:19%; margin-top: 1em">The
<i>libarchive</i>(3) library can write GNU tar format,
including long filename and linkname support, as well as
atime and ctime data.</p>
d87 18
a104 19
<p style="margin-left:19%; margin-top: 1em">The
<i>libarchive</i>(3) library can read and write
POSIX-compliant pax interchange format archives. Pax
interchange format archives are an extension of the older
ustar format that adds a separate entry with additional
attributes stored as key/value pairs immediately before each
regular entry. The presence of these additional entries is
the only difference between pax interchange format and the
older ustar format. The extended attributes are of unlimited
length and are stored as UTF-8 Unicode strings. Keywords
defined in the standard are in all lowercase; vendors are
allowed to define custom keys by preceding them with the
vendor name in all uppercase. When writing pax archives,
libarchive uses many of the SCHILY keys defined by Joerg
Schilling&rsquo;s &ldquo;star&rdquo; archiver and a few
LIBARCHIVE keys. The libarchive library can read most of the
SCHILY keys and most of the GNU keys introduced by GNU tar.
It silently ignores any keywords that it does not
understand.</p>
d106 1
a106 1
<p style="margin-left:19%; margin-top: 1em">The pax
d116 1
a116 1
<p style="margin-left:19%;">The libarchive library can also
d133 1
a133 1
<p style="margin-left:19%; margin-top: 1em">The libarchive
d139 1
a139 1
<p style="margin-left:24%;">Device major and minor numbers
d145 1
a145 1
<p style="margin-left:24%;">Path names in the archive are
d151 1
a151 1
<p style="margin-left:24%;">Symbolic links and hard links
d157 1
a157 1
<p style="margin-left:24%;">Extended attributes, file
d163 1
a163 1
<p style="margin-left:24%;">Archive entries are limited to
d166 1
a166 1
<p style="margin-left:19%;">Note that the pax interchange
d173 1
a173 1
<p style="margin-left:19%; margin-top: 1em">The libarchive
d179 1
a179 1
<p style="margin-left:24%;">Only regular files,
d186 1
a186 1
<p style="margin-left:24%;">Path names in the archive are
d191 1
a191 1
<p style="margin-left:24%;">Symbolic links and hard links
d197 1
a197 1
<p style="margin-left:24%;">User and group information are
d203 1
a203 1
<p style="margin-left:24%;">Extended attributes, file
d209 1
a209 1
<p style="margin-left:24%;">Archive entries are limited to
d212 1
a212 1
<p style="margin-left:19%;">Generally, users should prefer
d216 1
a216 1
<p style="margin-left:9%; margin-top: 1em">The libarchive
d223 1
a223 1
<p style="margin-left:19%;">The POSIX standards require
d236 1
a236 1
<p style="margin-left:19%;">Libarchive recognizes ACL and
d239 1
a239 1
<p style="margin-left:9%; margin-top: 1em">The first tar
d246 11
a256 13
<p style="margin-left:4%; margin-top: 1em"><b>Cpio
Formats</b></p>

<p style="margin-left:9%;">The libarchive library can read
and write a number of common cpio variants. A cpio archive
stores each entry as a fixed-size header followed by a
variable-length filename and variable-length data. Unlike
the tar format, the cpio format does only minimal padding of
the header or file data. There are several cpio variants,
which differ primarily in how they store the initial header:
some store the values as octal or hexadecimal numbers in
ASCII, others as binary values of varying byte order and
length.</p>
d260 1
a260 1
<p style="margin-left:19%; margin-top: 1em">The libarchive
d274 1
a274 1
<p style="margin-left:19%; margin-top: 1em">This is the
d287 1
a287 1
<p style="margin-left:19%;">The libarchive library can read
d295 1
a295 1
<p style="margin-left:9%; margin-top: 1em">Cpio first
d313 6
a318 8
<p style="margin-left:4%; margin-top: 1em"><b>Shar
Formats</b></p>

<p style="margin-left:9%;">A &ldquo;shell archive&rdquo; is
a shell script that, when executed on a POSIX-compliant
system, will recreate a collection of file system objects.
The libarchive library can write two different kinds of shar
archives:</p>
d322 1
a322 1
<p style="margin-left:19%; margin-top: 1em">The traditional
d324 5
a328 6
<i>echo</i>(1), <i>mkdir</i>(1), and <i>sed</i>(1). It is
suitable for portably archiving small collections of plain
text files. However, it is not generally well-suited for
large archives (many implementations of <i>sh</i>(1) have
limits on the size of a script) nor should it be used with
non-text files.</p>
d332 23
a354 24
<p style="margin-left:19%;">This format is similar to shar
but encodes files using <i>uuencode</i>(1) so that the
result will be a plain text file regardless of the file
contents. It also includes additional shell commands that
attempt to reproduce as many file attributes as possible,
including owner, mode, and flags. The additional commands
used to restore file attributes make shardump archives less
portable than plain shar archives.</p>

<p style="margin-left:4%; margin-top: 1em"><b>ISO9660
format</b></p>

<p style="margin-left:9%;">Libarchive can read and extract
from files containing ISO9660-compliant CDROM images. In
many cases, this can remove the need to burn a physical
CDROM just in order to read the files contained in an
ISO9660 image. It also avoids security and complexity issues
that come with virtual mounts and loopback devices.
Libarchive supports the most common Rockridge extensions and
has partial support for Joliet extensions. If both
extensions are present, the Joliet extensions will be used
and the Rockridge extensions will be ignored. In particular,
this can create problems with hardlinks and symlinks, which
are supported by Rockridge but not by Joliet.</p>
d356 1
a356 1
<p style="margin-left:9%; margin-top: 1em">Libarchive reads
d368 1
a368 1
<p style="margin-left:9%; margin-top: 1em">Libarchive can
d378 13
a390 2
<p style="margin-left:4%; margin-top: 1em"><b>Zip
format</b></p>
d392 1
a392 13
<p style="margin-left:9%;">Libarchive can read and write
zip format archives that have uncompressed entries and
entries compressed with the &ldquo;deflate&rdquo; algorithm.
Other zip compression algorithms are not supported. It can
extract jar archives, archives that use Zip64 extensions and
self-extracting zip archives. Libarchive can use either of
two different strategies for reading Zip archives: a
streaming strategy which is fast and can handle extremely
large archives, and a seeking strategy which can correctly
process self-extracting Zip archives and archives with
deleted members or other in-place modifications.</p>

<p style="margin-left:9%; margin-top: 1em">The streaming
d405 1
a405 1
<p style="margin-left:9%; margin-top: 1em">In particular,
d416 11
a426 13
<p style="margin-left:4%; margin-top: 1em"><b>Archive
(library) file format</b></p>

<p style="margin-left:9%;">The Unix archive format
(commonly created by the <i>ar</i>(1) archiver) is a
general-purpose format which is used almost exclusively for
object files to be read by the link editor <i>ld</i>(1). The
ar format has never been standardised. There are two common
variants: the GNU format derived from SVR4, and the BSD
format, which first appeared in 4.4BSD. The two differ
primarily in their handling of filenames longer than 15
characters: the GNU/SVR4 variant writes a filename table at
the beginning of the archive; the BSD format stores each
d438 11
a448 13

<p style="margin-left:4%; margin-top: 1em"><b>mtree</b></p>

<p style="margin-left:9%;">Libarchive can read and write
files in <i>mtree</i>(5) format. This format is not a true
archive format, but rather a textual description of a file
hierarchy in which each line specifies the name of a file
and provides specific metadata about that file. Libarchive
can read all of the keywords supported by both the NetBSD
and FreeBSD versions of <i>mtree</i>(8), although many of
the keywords cannot currently be stored in an archive_entry
object. When writing, libarchive supports use of the
<i>archive_write_set_options</i>(3) interface to specify
d455 1
a455 1
<p style="margin-left:9%; margin-top: 1em">When reading an
d465 27
d493 1
a493 6
<p style="margin-left:4%; margin-top: 1em"><b>7-Zip</b></p>

<p style="margin-left:9%;">Libarchive can read and write
7-Zip format archives. TODO: Need more information</p>

<p style="margin-left:4%; margin-top: 1em"><b>CAB</b></p>
d495 3
a497 30
<p style="margin-left:9%;">Libarchive can read Microsoft
Cabinet ( &ldquo;CAB&rdquo;) format archives. TODO: Need
more information.</p>

<p style="margin-left:4%; margin-top: 1em"><b>LHA</b></p>

<p style="margin-left:9%;">TODO: Information about
libarchive&rsquo;s LHA support</p>

<p style="margin-left:4%; margin-top: 1em"><b>RAR</b></p>

<p style="margin-left:9%;">Libarchive has limited support
for reading RAR format archives. Currently, libarchive can
read RARv3 format archives which have been either created
uncompressed, or compressed using any of the compression
methods supported by the RARv3 format. Libarchive can also
read self-extracting RAR archives.</p>

<p style="margin-left:4%; margin-top: 1em"><b>Warc</b></p>

<p style="margin-left:9%;">Libarchive can read and write
&ldquo;web archives&rdquo;. TODO: Need more information</p>

<p style="margin-left:4%; margin-top: 1em"><b>XAR</b></p>

<p style="margin-left:9%;">Libarchive can read and write
the XAR format used by many Apple tools. TODO: Need more
information</p>

<p style="margin-top: 1em"><b>SEE ALSO</b></p>
d499 2
a500 5
<p style="margin-left:9%;"><i>ar</i>(1), <i>cpio</i>(1),
<i>mkisofs</i>(1), <i>shar</i>(1), <i>tar</i>(1),
<i>zip</i>(1), <i>zlib</i>(3), <i>cpio</i>(5),
<i>mtree</i>(5), <i>tar</i>(5) Debian December 27, 2016
<i>LIBARCHIVE-FORMATS</i>(5)</p>
@


1.1.1.15
log
@libarchive: imported version 3.7.9
@
text
@d2 1
a2 1
<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
@


1.1.1.16
log
@libarchive: import version 3.8.0

Libarchive 3.8.0 is a feature and bugfix release.

New features:
bsdtar: support --mtime and --clamp-mtime
lib: mbedtls 3.x compatibility
7-zip reader: improve self-extracting archive detection
xar: xmllite support for the XAR reader and writer
zip writer: added XZ, LZMA, ZSTD and BZIP2 support
zip writer: added LZMA + RISCV BCJ filter

Notable security fixes:
rar: do not skip past EOF while reading
rar: fix double free with over 4 billion nodes
rar: fix heap-buffer-overflow
warc: prevent signed integer overflow
tar: fix overflow in build_ustar_entry

Notable bugfixes:
bsdtar: don't hardlink negative inode files together
gz: allow setting the original filename for gzip compressed files
lib: improve lseek handling
lib: support @@-prefixed Unix epoch timestamps as date strings
rar: support large headers on 32 bit systems
tar reader: Improve LFS support on 32 bit systems
@
text
@d2 1
a2 1
<!-- CreationDate: Tue May 20 09:02:20 2025 -->
d391 3
a393 12
entries compressed with the &ldquo;deflate&rdquo; ,
&ldquo;LZMA&rdquo; , &ldquo;XZ&rdquo; , &ldquo;BZIP2&rdquo;
and &ldquo;ZSTD&rdquo; algorithms. Libarchive can also read,
but not write, zip format archives that have entries
compressed with the &ldquo;PPMd&rdquo; algorithm. Other zip
compression algorithms are not supported. The extensions
supported by libarchive are Zip64, Libarchive&rsquo;s
extensions to better support streaming, PKZIP&rsquo;s
traditional ZIP encryption, Info-ZIP&rsquo;s Unix extra
fields, extra time, and Unicode path, as well as
WinZIP&rsquo;s AES encryption. It can extract jar archives,
__MACOSX resource forks extension for OS X, and
@


1.1.1.17
log
@libarchive: import version 3.8.1
@
text
@d2 1
a2 1
<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
@


1.1.1.18
log
@libarchive: imported version 3.8.2
@
text
@d2 1
a2 1
<!-- CreationDate: Wed Oct 15 21:49:47 2025 -->
@


1.1.1.19
log
@libarchive: import version 3.8.3
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Nov 17 22:19:03 2025 -->
@


1.1.1.20
log
@libarchive: import 3.8.4
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Dec  1 12:42:38 2025 -->
@


1.1.1.21
log
@libarchive: import version 3.8.5
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Jan  5 10:42:45 2026 -->
@


1.1.1.22
log
@libarchive: imported version 3.8.6
@
text
@d2 1
a2 1
<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
@


1.1.1.23
log
@libarchive: imported version 3.8.7
@
text
@d2 1
a2 1
<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
@


