Update vendor/libarchive/dist to git 2f3033ca23f8c21160506c3c7ac8a0df0d3fde42
Relevant vendor changes: Issue #1237: Fix integer overflow in archive_read_support_filter_lz4.c PR #1249: Correct some typographical and grammatical errors. PR #1250: Minor corrections to the formatting of manual pages
This commit is contained in:
parent
085fce401b
commit
a297901e6c
@ -16,8 +16,8 @@ FreeBSD_task:
|
||||
prepare_script:
|
||||
- ./build/ci/cirrus_ci/ci.sh prepare
|
||||
configure_script:
|
||||
- ./build/ci/build.sh -a autogen
|
||||
- ./build/ci/build.sh -a configure
|
||||
- env CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./build/ci/build.sh -a autogen
|
||||
- env CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./build/ci/build.sh -a configure
|
||||
build_script:
|
||||
- ./build/ci/build.sh -a build
|
||||
test_script:
|
||||
|
37
.github/workflows/ci.yml
vendored
Normal file
37
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
name: Ubuntu
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
Build-and-test:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
bs: [autotools, cmake]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get install -y build-essential cmake libssl-dev libacl1-dev libbz2-dev liblzma-dev libzip-dev liblz4-dev libzstd-dev lzop
|
||||
- name: Autogen
|
||||
run: ./build/ci/build.sh -a autogen
|
||||
env:
|
||||
BS: ${{ matrix.bs }}
|
||||
- name: Configure
|
||||
run: ./build/ci/build.sh -a configure
|
||||
env:
|
||||
BS: ${{ matrix.bs }}
|
||||
- name: Build
|
||||
run: ./build/ci/build.sh -a build
|
||||
env:
|
||||
BS: ${{ matrix.bs }}
|
||||
- name: Test
|
||||
run: ./build/ci/build.sh -a test
|
||||
env:
|
||||
BS: ${{ matrix.bs }}
|
||||
- name: Install
|
||||
run: ./build/ci/build.sh -a install
|
||||
env:
|
||||
BS: ${{ matrix.bs }}
|
11
cat/bsdcat.1
11
cat/bsdcat.1
@ -34,16 +34,15 @@
|
||||
.Nm
|
||||
.Op options
|
||||
.Op files
|
||||
.Pp
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
expands files to standard output.
|
||||
.Sh OPTIONS
|
||||
.Nm
|
||||
typically takes a filename as an argument or reads standard input when used in a
|
||||
pipe. In both cases decompressed data it written to standard output.
|
||||
pipe.
|
||||
In both cases decompressed data it written to standard output.
|
||||
.Sh EXAMPLES
|
||||
.Pp
|
||||
To decompress a file:
|
||||
.Pp
|
||||
.Dl bsdcat example.txt.gz > example.txt
|
||||
@ -55,8 +54,8 @@ To decompress standard input in a pipe:
|
||||
Both examples achieve the same results - a decompressed file by redirecting
|
||||
output.
|
||||
.Sh SEE ALSO
|
||||
.Xr uncompress 1 ,
|
||||
.Xr zcat 1 ,
|
||||
.Xr bzcat 1 ,
|
||||
.Xr uncompress 1 ,
|
||||
.Xr xzcat 1 ,
|
||||
.Xr libarchive-formats 5 ,
|
||||
.Xr zcat 1 ,
|
||||
.Xr libarchive-formats 5
|
||||
|
@ -61,7 +61,8 @@ or
|
||||
The following options are available:
|
||||
.Bl -tag -width indent
|
||||
.It Fl b
|
||||
Use an alternative binary format. Content of files will be uuencoded.
|
||||
Use an alternative binary format.
|
||||
Content of files will be uuencoded.
|
||||
This option should be used to archive binary files correctly.
|
||||
In this mode also file permissions will be stored to the archive.
|
||||
uudecode(1) is needed to extract archives created with this option.
|
||||
@ -72,8 +73,8 @@ Redirect output to
|
||||
If
|
||||
.Ar file
|
||||
given on command line is a directory the entire subtree will be archived.
|
||||
Symbolic links given on command line are followed. Other symbolic links will
|
||||
be archived as such.
|
||||
Symbolic links given on command line are followed.
|
||||
Other symbolic links will be archived as such.
|
||||
.El
|
||||
.Sh EXAMPLES
|
||||
To create a shell archive of the program
|
||||
@ -111,7 +112,9 @@ The
|
||||
command makes no provisions for hard links.
|
||||
.Pp
|
||||
Files containing magic characters or files without a newline ('\\n') as the
|
||||
last character are not handled correctly with the default format. Use the -b
|
||||
last character are not handled correctly with the default format.
|
||||
Use the
|
||||
.Fl b
|
||||
option for binary files.
|
||||
.Pp
|
||||
It is easy to insert trojan horses into
|
||||
|
@ -75,7 +75,6 @@ Pass-through.
|
||||
Read a list of filenames from standard input and copy the files to the
|
||||
specified directory.
|
||||
.El
|
||||
.Pp
|
||||
.Sh OPTIONS
|
||||
Unless specifically stated otherwise, options are applicable in
|
||||
all operating modes.
|
||||
@ -385,10 +384,10 @@ For best compatibility, scripts should limit themselves to the
|
||||
standard syntax.
|
||||
.Sh SEE ALSO
|
||||
.Xr bzip2 1 ,
|
||||
.Xr tar 1 ,
|
||||
.Xr gzip 1 ,
|
||||
.Xr mt 1 ,
|
||||
.Xr pax 1 ,
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr libarchive-formats 5 ,
|
||||
|
@ -52,7 +52,7 @@
|
||||
*/
|
||||
#if defined(__BORLANDC__) && __BORLANDC__ >= 0x560
|
||||
# include <stdint.h>
|
||||
#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__)
|
||||
#elif !defined(__WATCOMC__) && !defined(_MSC_VER) && !defined(__INTERIX) && !defined(__BORLANDC__) && !defined(_SCO_DS) && !defined(__osf__) && !defined(__CLANG_INTTYPES_H)
|
||||
# include <inttypes.h>
|
||||
#endif
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
||||
.Nm archive_entry_clear ,
|
||||
.Nm archive_entry_clone ,
|
||||
.Nm archive_entry_free ,
|
||||
.Nm archive_entry_new ,
|
||||
.Nm archive_entry_new
|
||||
.Nd functions for managing archive entry descriptions
|
||||
.Sh LIBRARY
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
@ -126,7 +126,6 @@ using the current locale.
|
||||
Similarly, if you store a wide string and then store a
|
||||
narrow string for the same data, the previously-set wide string will
|
||||
be discarded in favor of the new data.
|
||||
.Pp
|
||||
.\" .Sh EXAMPLE
|
||||
.\" .Sh RETURN VALUES
|
||||
.\" .Sh ERRORS
|
||||
@ -134,8 +133,8 @@ be discarded in favor of the new data.
|
||||
.Xr archive_entry_acl 3 ,
|
||||
.Xr archive_entry_paths 3 ,
|
||||
.Xr archive_entry_perms 3 ,
|
||||
.Xr archive_entry_time 3
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_entry_time 3 ,
|
||||
.Xr libarchive 3
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm libarchive
|
||||
|
@ -118,15 +118,16 @@ Streaming Archive Library (libarchive, -larchive)
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Dq Access Control Lists (ACLs)
|
||||
extend the standard Unix perssion model.
|
||||
extend the standard Unix permission model.
|
||||
The ACL interface of
|
||||
.Nm libarchive
|
||||
supports both POSIX.1e and NFSv4 style ACLs. Use of ACLs is restricted by
|
||||
supports both POSIX.1e and NFSv4 style ACLs.
|
||||
Use of ACLs is restricted by
|
||||
various levels of ACL support in operating systems, file systems and archive
|
||||
formats.
|
||||
.Ss POSIX.1e Access Control Lists
|
||||
A POSIX.1e ACL consists of a number of independent entries.
|
||||
Each entry specifies the permission set as bitmask of basic permissions.
|
||||
Each entry specifies the permission set as a bitmask of basic permissions.
|
||||
Valid permissions in the
|
||||
.Fa permset
|
||||
are:
|
||||
@ -147,13 +148,13 @@ The user specified by the name field.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_USER_OBJ
|
||||
The owner of the file.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_GROUP
|
||||
The group specied by the name field.
|
||||
The group specified by the name field.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ
|
||||
The group who owns the file.
|
||||
The group which owns the file.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_MASK
|
||||
The maximum permissions to be obtained via group permissions.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_OTHER
|
||||
Any principal who is not file owner or a member of the owning group.
|
||||
Any principal who is not the file owner or a member of the owning group.
|
||||
.El
|
||||
.Pp
|
||||
The principals
|
||||
@ -164,12 +165,12 @@ and
|
||||
are equivalent to user, group and other in the classic Unix permission
|
||||
model and specify non-extended ACL entries.
|
||||
.Pp
|
||||
All files with have an access ACL
|
||||
All files have an access ACL
|
||||
.Pq Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS .
|
||||
This specifies the permissions required for access to the file itself.
|
||||
Directories have an additional ACL
|
||||
.Pq Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT ,
|
||||
which controls the initial access ACL for newly created directory entries.
|
||||
which controls the initial access ACL for newly-created directory entries.
|
||||
.Ss NFSv4 Access Control Lists
|
||||
A NFSv4 ACL consists of multiple individual entries called Access Control
|
||||
Entries (ACEs).
|
||||
@ -197,11 +198,11 @@ The user specified by the name field.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_USER_OBJ
|
||||
The owner of the file.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_GROUP
|
||||
The group specied by the name field.
|
||||
The group specified by the name field.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_GROUP_OBJ
|
||||
The group who owns the file.
|
||||
The group which owns the file.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_EVERYONE
|
||||
Any principal who is not file owner or a member of the owning group.
|
||||
Any principal who is not the file owner or a member of the owning group.
|
||||
.El
|
||||
.Pp
|
||||
Entries with the
|
||||
@ -216,9 +217,10 @@ integer.
|
||||
.Pp
|
||||
NFSv4 ACE permissions and flags are stored in the same
|
||||
.Fa permset
|
||||
bitfield. Some permissions share the same constant and permission character but
|
||||
have different effect on directories than on files. The following ACE
|
||||
permissions are supported:
|
||||
bitfield.
|
||||
Some permissions share the same constant and permission character
|
||||
but have different effect on directories than on files.
|
||||
The following ACE permissions are supported:
|
||||
.Bl -tag -offset indent -compact -width ARCHIV
|
||||
.It Dv ARCHIVE_ENTRY_ACL_READ_DATA ( Sy r )
|
||||
Read data (file).
|
||||
@ -265,7 +267,8 @@ Inherit parent directory ACE to subdirectories.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY ( Sy i )
|
||||
Only inherit, do not apply the permission on the directory itself.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT ( Sy n )
|
||||
Do not propagate inherit flags. Only first-level entries inherit ACLs.
|
||||
Do not propagate inherit flags.
|
||||
Only first-level entries inherit ACLs.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS ( Sy S )
|
||||
Trigger alarm or audit on successful access.
|
||||
.It Dv ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS ( Sy F )
|
||||
@ -279,8 +282,8 @@ and
|
||||
.Fn archive_entry_acl_add_entry_w
|
||||
add a single ACL entry.
|
||||
For the access ACL and non-extended principals, the classic Unix permissions
|
||||
are updated. An archive entry cannot contain both POSIX.1e and NFSv4 ACL
|
||||
entries.
|
||||
are updated.
|
||||
An archive entry cannot contain both POSIX.1e and NFSv4 ACL entries.
|
||||
.Pp
|
||||
.Fn archive_entry_acl_clear
|
||||
removes all ACL entries and resets the enumeration pointer.
|
||||
@ -300,7 +303,8 @@ for POSIX.1e ACLs and
|
||||
.It Dv ARCHIVE_ENTRY_ACL_TYPE_AUDIT
|
||||
.It Dv ARCHIVE_ENTRY_ACL_TYPE_ALARM
|
||||
.El
|
||||
for NFSv4 ACLs. For POSIX.1e ACLs if
|
||||
for NFSv4 ACLs.
|
||||
For POSIX.1e ACLs if
|
||||
.Dv ARCHIVE_ENTRY_ACL_TYPE_ACCESS
|
||||
is included and at least one extended ACL entry is found,
|
||||
the three non-extended ACLs are added.
|
||||
@ -312,7 +316,8 @@ add new
|
||||
.Pq or merge with existing
|
||||
ACL entries from
|
||||
.Pq wide
|
||||
text. The argument
|
||||
text.
|
||||
The argument
|
||||
.Fa type
|
||||
may take one of the following values:
|
||||
.Bl -tag -offset indent -compact -width "ARCHIVE_ENTRY_ACL_TYPE_DEFAULT"
|
||||
@ -322,11 +327,13 @@ may take one of the following values:
|
||||
.El
|
||||
Supports all formats that can be created with
|
||||
.Fn archive_entry_acl_to_text
|
||||
or respective
|
||||
or respectively
|
||||
.Fn archive_entry_acl_to_text_w .
|
||||
Existing ACL entries are preserved. To get a clean new ACL from text
|
||||
Existing ACL entries are preserved.
|
||||
To get a clean new ACL from text
|
||||
.Fn archive_entry_acl_clear
|
||||
must be called first. Entries prefixed with
|
||||
must be called first.
|
||||
Entries prefixed with
|
||||
.Dq default:
|
||||
are treated as
|
||||
.Dv ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
|
||||
@ -354,7 +361,7 @@ prepare reading the list of ACL entries with
|
||||
.Fn archive_entry_acl_next
|
||||
or
|
||||
.Fn archive_entry_acl_next_w .
|
||||
The function returns either 0, if no non-extended ACLs are found.
|
||||
The function returns 0 if no non-extended ACLs are found.
|
||||
In this case, the access permissions should be obtained by
|
||||
.Xr archive_entry_mode 3
|
||||
or set using
|
||||
@ -367,7 +374,8 @@ and
|
||||
.Fn archive_entry_acl_to_text_w
|
||||
convert the ACL entries for the given type into a
|
||||
.Pq wide
|
||||
string of ACL entries separated by newline. If the pointer
|
||||
string of ACL entries separated by newline.
|
||||
If the pointer
|
||||
.Fa len_p
|
||||
is not NULL, then the function shall return the length of the string
|
||||
.Pq not including the NULL terminator
|
||||
@ -415,7 +423,8 @@ are prefixed with
|
||||
.Dq default: .
|
||||
.Pp
|
||||
.Fn archive_entry_acl_types
|
||||
get ACL entry types contained in an archive entry's ACL. As POSIX.1e and NFSv4
|
||||
get ACL entry types contained in an archive entry's ACL.
|
||||
As POSIX.1e and NFSv4
|
||||
ACL entries cannot be mixed, this function is a very efficient way to detect if
|
||||
an ACL already contains POSIX.1e or NFSv4 ACL entries.
|
||||
.Sh RETURN VALUES
|
||||
|
@ -28,7 +28,7 @@
|
||||
.Sh NAME
|
||||
.Nm archive_entry_symlink_type ,
|
||||
.Nm archive_entry_set_symlink_type
|
||||
.Nd miscellaneous functions for manipulating properties of archive_entry.
|
||||
.Nd miscellaneous functions for manipulating properties of archive_entry
|
||||
.Sh LIBRARY
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
.Sh SYNOPSIS
|
||||
@ -42,7 +42,8 @@ The function
|
||||
.Fn archive_entry_symlink_type
|
||||
returns and the function
|
||||
.Fn archive_entry_set_symlink_type
|
||||
sets the type of the symbolic link stored in an archive entry. These functions
|
||||
sets the type of the symbolic link stored in an archive entry.
|
||||
These functions
|
||||
have special meaning on operating systems that support multiple symbolic link
|
||||
types (e.g. Microsoft Windows).
|
||||
.Pp
|
||||
|
@ -133,7 +133,7 @@ The accessor functions are named
|
||||
.Fn XXX_w .
|
||||
.It UTF-8
|
||||
Unicode strings encoded as UTF-8.
|
||||
This are convience functions to update both the multibyte and wide
|
||||
These are convenience functions to update both the multibyte and wide
|
||||
character strings at the same time.
|
||||
.El
|
||||
.Pp
|
||||
@ -141,13 +141,13 @@ The sourcepath is a pure filesystem concept and never stored in an
|
||||
archive directly.
|
||||
.Pp
|
||||
For that reason, it is only available as multibyte string.
|
||||
The link path is a convience function for conditionally setting
|
||||
The link path is a convenience function for conditionally setting
|
||||
hardlink or symlink destination.
|
||||
It doesn't have a corresponding get accessor function.
|
||||
.Pp
|
||||
.Fn archive_entry_set_XXX
|
||||
is an alias for
|
||||
is an alias for
|
||||
.Fn archive_entry_copy_XXX .
|
||||
.Sh SEE ALSO
|
||||
.Xr archive_entry 3
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_entry 3 ,
|
||||
.Xr libarchive 3
|
||||
|
@ -126,7 +126,7 @@ The corresponding functions
|
||||
and
|
||||
.Fn archive_entry_set_perm
|
||||
store the given user id, group id and permission in the entry.
|
||||
The permission is also set as side effect of calling
|
||||
The permission is also set as a side effect of calling
|
||||
.Fn archive_entry_set_mode .
|
||||
.Pp
|
||||
.Fn archive_entry_strmode
|
||||
@ -143,12 +143,12 @@ The accessor functions are named
|
||||
.Fn XXX_w .
|
||||
.It UTF-8
|
||||
Unicode strings encoded as UTF-8.
|
||||
This are convience functions to update both the multibyte and wide
|
||||
These are convenience functions to update both the multibyte and wide
|
||||
character strings at the same time.
|
||||
.El
|
||||
.Pp
|
||||
.Fn archive_entry_set_XXX
|
||||
is an alias for
|
||||
is an alias for
|
||||
.Fn archive_entry_copy_XXX .
|
||||
.Ss File Flags
|
||||
File flags are transparently converted between a bitmap
|
||||
@ -182,7 +182,7 @@ The
|
||||
.Fn archive_entry_copy_fflags_text
|
||||
and
|
||||
.Fn archive_entry_copy_fflags_text_w
|
||||
functions parse the provided text and sets the internal bitmap values.
|
||||
functions parse the provided text and set the internal bitmap values.
|
||||
This is a platform-specific operation; names that are not meaningful
|
||||
on the current platform will be ignored.
|
||||
The function returns a pointer to the start of the first name that was not
|
||||
@ -197,8 +197,8 @@ which stops parsing at the first unrecognized name.)
|
||||
.Xr archive_entry 3 ,
|
||||
.Xr archive_entry_acl 3 ,
|
||||
.Xr archive_read_disk 3 ,
|
||||
.Xr archive_write_disk 3
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write_disk 3 ,
|
||||
.Xr libarchive 3
|
||||
.Sh BUGS
|
||||
The platform types
|
||||
.Vt uid_t
|
||||
|
@ -54,7 +54,7 @@
|
||||
.Nm archive_entry_rdevmajor ,
|
||||
.Nm archive_entry_set_rdevmajor ,
|
||||
.Nm archive_entry_rdevminor ,
|
||||
.Nm archive_entry_set_rdevminor ,
|
||||
.Nm archive_entry_set_rdevminor
|
||||
.Nd accessor functions for manipulating archive entry descriptions
|
||||
.Sh LIBRARY
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
@ -267,8 +267,8 @@ platforms.
|
||||
Some archive formats use the combined form, while other formats use
|
||||
the split form.
|
||||
.Sh SEE ALSO
|
||||
.Xr stat 2 ,
|
||||
.Xr archive_entry_acl 3 ,
|
||||
.Xr archive_entry_perms 3 ,
|
||||
.Xr archive_entry_time 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr stat 2
|
||||
.Xr libarchive 3
|
||||
|
@ -48,7 +48,7 @@
|
||||
.Nm archive_entry_mtime_nsec ,
|
||||
.Nm archive_entry_mtime_is_set ,
|
||||
.Nm archive_entry_set_mtime ,
|
||||
.Nm archive_entry_unset_mtime ,
|
||||
.Nm archive_entry_unset_mtime
|
||||
.Nd functions for manipulating times in archive entry descriptions
|
||||
.Sh LIBRARY
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
@ -113,8 +113,8 @@ The current state can be queried using
|
||||
.Fn XXX_is_set .
|
||||
Unset time fields have a second and nanosecond field of 0.
|
||||
.Sh SEE ALSO
|
||||
.Xr archive_entry 3
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_entry 3 ,
|
||||
.Xr libarchive 3
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm libarchive
|
||||
|
@ -155,7 +155,7 @@ to close the archive, then call
|
||||
.Fn archive_read_free
|
||||
to release all resources, including all memory allocated by the library.
|
||||
.\"
|
||||
.Sh EXAMPLE
|
||||
.Sh EXAMPLES
|
||||
The following illustrates basic usage of the library.
|
||||
In this example,
|
||||
the callback functions are simply wrappers around the standard
|
||||
@ -217,16 +217,16 @@ myclose(struct archive *a, void *client_data)
|
||||
.\" .Sh ERRORS
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read_new 3 ,
|
||||
.Xr archive_read_data 3 ,
|
||||
.Xr archive_read_extract 3 ,
|
||||
.Xr archive_read_filter 3 ,
|
||||
.Xr archive_read_format 3 ,
|
||||
.Xr archive_read_header 3 ,
|
||||
.Xr archive_read_new 3 ,
|
||||
.Xr archive_read_open 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr tar 5
|
||||
.Sh HISTORY
|
||||
The
|
||||
|
@ -59,16 +59,16 @@ or empty, this function will do nothing and
|
||||
will be returned.
|
||||
Otherwise,
|
||||
.Cm ARCHIVE_OK
|
||||
will be returned.
|
||||
will be returned.
|
||||
.It Fn archive_read_set_passphrase_callback
|
||||
Register callback function that will be invoked to get a passphrase
|
||||
for decrption after trying all passphrases registered by the
|
||||
Register a callback function that will be invoked to get a passphrase
|
||||
for decryption after trying all the passphrases registered by the
|
||||
.Fn archive_read_add_passphrase
|
||||
function failed.
|
||||
.El
|
||||
.\" .Sh ERRORS
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_read_set_options 3
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr libarchive 3
|
||||
|
@ -28,7 +28,7 @@
|
||||
.Dt ARCHIVE_READ_DATA 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm archive_read_data
|
||||
.Nm archive_read_data ,
|
||||
.Nm archive_read_data_block ,
|
||||
.Nm archive_read_data_skip ,
|
||||
.Nm archive_read_data_into_fd
|
||||
@ -118,7 +118,6 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_read_extract 3 ,
|
||||
.Xr archive_read_filter 3 ,
|
||||
@ -127,4 +126,5 @@ functions.
|
||||
.Xr archive_read_open 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr tar 5
|
||||
|
@ -99,9 +99,10 @@ following values:
|
||||
.Bl -tag -compact -width "indent"
|
||||
.It Cm ARCHIVE_READDISK_HONOR_NODUMP
|
||||
Skip files and directories with the nodump file attribute (file flag) set.
|
||||
By default, the nodump file atrribute is ignored.
|
||||
By default, the nodump file attribute is ignored.
|
||||
.It Cm ARCHIVE_READDISK_MAC_COPYFILE
|
||||
Mac OS X specific. Read metadata (ACLs and extended attributes) with
|
||||
Mac OS X specific.
|
||||
Read metadata (ACLs and extended attributes) with
|
||||
.Xr copyfile 3 .
|
||||
By default, metadata is read using
|
||||
.Xr copyfile 3 .
|
||||
@ -120,7 +121,7 @@ or
|
||||
for more information on file attributes.
|
||||
.It Cm ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
|
||||
Do not traverse mount points.
|
||||
By defaut, moint points are traversed.
|
||||
By default, mount points are traversed.
|
||||
.It Cm ARCHIVE_READDISK_NO_XATTR
|
||||
Do not read extended file attributes (xattrs).
|
||||
By default, extended file attributes are read from disk.
|
||||
@ -216,7 +217,7 @@ of some other operation.
|
||||
(For example, directory traversal libraries often provide this information.)
|
||||
.Pp
|
||||
Where necessary, user and group ids are converted to user and group names
|
||||
using the currently registered lookup functions above.
|
||||
using the currently-registered lookup functions above.
|
||||
This affects the file ownership fields and ACL values in the
|
||||
.Tn struct archive_entry
|
||||
object.
|
||||
@ -226,7 +227,7 @@ More information about the
|
||||
object and the overall design of the library can be found in the
|
||||
.Xr libarchive 3
|
||||
overview.
|
||||
.Sh EXAMPLE
|
||||
.Sh EXAMPLES
|
||||
The following illustrates basic usage of the library by
|
||||
showing how to use it to copy an item on disk into an archive.
|
||||
.Bd -literal -offset indent
|
||||
@ -291,11 +292,11 @@ and
|
||||
functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr archive_write_disk 3 ,
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3
|
||||
.Sh HISTORY
|
||||
The
|
||||
|
@ -126,7 +126,6 @@ and
|
||||
functions.
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_read_data 3 ,
|
||||
.Xr archive_read_filter 3 ,
|
||||
@ -134,4 +133,5 @@ functions.
|
||||
.Xr archive_read_open 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr tar 5
|
||||
|
@ -147,8 +147,8 @@ and
|
||||
functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_read_data 3 ,
|
||||
.Xr archive_read_format 3 ,
|
||||
.Xr archive_read_format 3
|
||||
.Xr archive_read_format 3 ,
|
||||
.Xr libarchive 3
|
||||
|
@ -102,7 +102,7 @@ For example,
|
||||
.Fn archive_read_support_format_tar
|
||||
enables support for a variety of standard tar formats, old-style tar,
|
||||
ustar, pax interchange format, and many common variants.
|
||||
.It Fn archive_read_support_format_all
|
||||
.It Fn archive_read_support_format_all
|
||||
Enables support for all available formats except the
|
||||
.Dq raw
|
||||
format (see below).
|
||||
@ -125,7 +125,7 @@ it is not possible to accurately determine a format for
|
||||
an empty file based purely on contents.
|
||||
So empty files are treated by libarchive as a distinct
|
||||
format.
|
||||
.It Fn archive_read_support_format_raw
|
||||
.It Fn archive_read_support_format_raw
|
||||
The
|
||||
.Dq raw
|
||||
format handler allows libarchive to be used to read arbitrary data.
|
||||
@ -153,11 +153,11 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read_data 3 ,
|
||||
.Xr archive_read_filter 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr tar 5
|
||||
.Sh BUGS
|
||||
Many traditional archiver programs treat
|
||||
|
@ -83,11 +83,11 @@ and
|
||||
functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read_new 3 ,
|
||||
.Xr archive_read_data 3 ,
|
||||
.Xr archive_read_filter 3 ,
|
||||
.Xr archive_read_format 3 ,
|
||||
.Xr archive_read_new 3 ,
|
||||
.Xr archive_read_open 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3
|
||||
.Xr archive_util 3 ,
|
||||
.Xr libarchive 3
|
||||
|
@ -79,7 +79,6 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_read_data 3 ,
|
||||
.Xr archive_read_extract 3 ,
|
||||
@ -88,4 +87,5 @@ functions.
|
||||
.Xr archive_read_open 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr tar 5
|
||||
|
@ -50,10 +50,10 @@ object can be found in the overview manual page for
|
||||
.\" .Sh ERRORS
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read_data 3 ,
|
||||
.Xr archive_read_filter 3 ,
|
||||
.Xr archive_read_format 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr tar 5
|
||||
|
@ -205,7 +205,7 @@ On failure, the callback should invoke
|
||||
.Fn archive_set_error
|
||||
to register an error code and message and
|
||||
return
|
||||
.Cm ARCHIVE_FATAL.
|
||||
.Cm ARCHIVE_FATAL .
|
||||
.\" .Sh EXAMPLE
|
||||
.\"
|
||||
.Sh RETURN VALUES
|
||||
@ -223,11 +223,11 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_read_data 3 ,
|
||||
.Xr archive_read_filter 3 ,
|
||||
.Xr archive_read_format 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr tar 5
|
||||
|
@ -212,7 +212,8 @@ Use
|
||||
to disable.
|
||||
.It Cm read_concatenated_archives
|
||||
Ignore zeroed blocks in the archive, which occurs when multiple tar archives
|
||||
have been concatenated together. Without this option, only the contents of
|
||||
have been concatenated together.
|
||||
Without this option, only the contents of
|
||||
the first concatenated archive would be read.
|
||||
.El
|
||||
.El
|
||||
@ -226,6 +227,6 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr archive_read 3
|
||||
.Xr libarchive 3
|
||||
|
@ -131,12 +131,20 @@ archive_read_support_filter_gzip(struct archive *_a)
|
||||
*/
|
||||
static ssize_t
|
||||
peek_at_header(struct archive_read_filter *filter, int *pbits,
|
||||
struct private_data *state)
|
||||
#ifdef HAVE_ZLIB_H
|
||||
struct private_data *state
|
||||
#else
|
||||
void *state
|
||||
#endif
|
||||
)
|
||||
{
|
||||
const unsigned char *p;
|
||||
ssize_t avail, len;
|
||||
int bits = 0;
|
||||
int header_flags;
|
||||
#ifndef HAVE_ZLIB_H
|
||||
(void)state; /* UNUSED */
|
||||
#endif
|
||||
|
||||
/* Start by looking at the first ten bytes of the header, which
|
||||
* is all fixed layout. */
|
||||
@ -153,8 +161,10 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
|
||||
bits += 3;
|
||||
header_flags = p[3];
|
||||
/* Bytes 4-7 are mod time in little endian. */
|
||||
#ifdef HAVE_ZLIB_H
|
||||
if (state)
|
||||
state->mtime = archive_le32dec(p + 4);
|
||||
#endif
|
||||
/* Byte 8 is deflate flags. */
|
||||
/* XXXX TODO: return deflate flags back to consume_header for use
|
||||
in initializing the decompressor. */
|
||||
@ -171,7 +181,9 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
|
||||
|
||||
/* Null-terminated optional filename. */
|
||||
if (header_flags & 8) {
|
||||
#ifdef HAVE_ZLIB_H
|
||||
ssize_t file_start = len;
|
||||
#endif
|
||||
do {
|
||||
++len;
|
||||
if (avail < len)
|
||||
@ -181,11 +193,13 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
|
||||
return (0);
|
||||
} while (p[len - 1] != 0);
|
||||
|
||||
#ifdef HAVE_ZLIB_H
|
||||
if (state) {
|
||||
/* Reset the name in case of repeat header reads. */
|
||||
free(state->name);
|
||||
state->name = strdup((const char *)&p[file_start]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Null-terminated optional comment. */
|
||||
@ -236,24 +250,6 @@ gzip_bidder_bid(struct archive_read_filter_bidder *self,
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry)
|
||||
{
|
||||
struct private_data *state;
|
||||
|
||||
state = (struct private_data *)self->data;
|
||||
|
||||
/* A mtime of 0 is considered invalid/missing. */
|
||||
if (state->mtime != 0)
|
||||
archive_entry_set_mtime(entry, state->mtime, 0);
|
||||
|
||||
/* If the name is available, extract it. */
|
||||
if (state->name)
|
||||
archive_entry_set_pathname(entry, state->name);
|
||||
|
||||
return (ARCHIVE_OK);
|
||||
}
|
||||
|
||||
#ifndef HAVE_ZLIB_H
|
||||
|
||||
/*
|
||||
@ -277,6 +273,24 @@ gzip_bidder_init(struct archive_read_filter *self)
|
||||
|
||||
#else
|
||||
|
||||
static int
|
||||
gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry)
|
||||
{
|
||||
struct private_data *state;
|
||||
|
||||
state = (struct private_data *)self->data;
|
||||
|
||||
/* A mtime of 0 is considered invalid/missing. */
|
||||
if (state->mtime != 0)
|
||||
archive_entry_set_mtime(entry, state->mtime, 0);
|
||||
|
||||
/* If the name is available, extract it. */
|
||||
if (state->name)
|
||||
archive_entry_set_pathname(entry, state->name);
|
||||
|
||||
return (ARCHIVE_OK);
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the filter object.
|
||||
*/
|
||||
@ -306,7 +320,9 @@ gzip_bidder_init(struct archive_read_filter *self)
|
||||
self->read = gzip_filter_read;
|
||||
self->skip = NULL; /* not supported */
|
||||
self->close = gzip_filter_close;
|
||||
#ifdef HAVE_ZLIB_H
|
||||
self->read_header = gzip_read_header;
|
||||
#endif
|
||||
|
||||
state->in_stream = 0; /* We're not actually within a stream yet. */
|
||||
|
||||
|
@ -460,7 +460,7 @@ lz4_filter_read_descriptor(struct archive_read_filter *self)
|
||||
|
||||
__archive_read_filter_consume(self->upstream, descriptor_bytes);
|
||||
|
||||
/* Make sure we have an enough buffer for uncompressed data. */
|
||||
/* Make sure we have a large enough buffer for uncompressed data. */
|
||||
if (lz4_allocate_out_block(self) != ARCHIVE_OK)
|
||||
return (ARCHIVE_FATAL);
|
||||
if (state->flags.stream_checksum)
|
||||
@ -520,7 +520,7 @@ lz4_filter_read_data_block(struct archive_read_filter *self, const void **p)
|
||||
if (read_buf == NULL)
|
||||
goto truncated_error;
|
||||
|
||||
/* Optional process, checking a block sum. */
|
||||
/* Optional processing, checking a block sum. */
|
||||
if (checksum_size) {
|
||||
unsigned int chsum = __archive_xxhash.XXH32(
|
||||
read_buf + 4, (int)compressed_size, 0);
|
||||
@ -640,7 +640,7 @@ lz4_filter_read_default_stream(struct archive_read_filter *self, const void **p)
|
||||
if (ret == 0 && *p == NULL)
|
||||
state->stage = SELECT_STREAM;
|
||||
|
||||
/* Optional process, checking a stream sum. */
|
||||
/* Optional processing, checking a stream sum. */
|
||||
if (state->flags.stream_checksum) {
|
||||
if (state->stage == SELECT_STREAM) {
|
||||
unsigned int checksum;
|
||||
@ -660,7 +660,7 @@ lz4_filter_read_default_stream(struct archive_read_filter *self, const void **p)
|
||||
if (checksum != checksum_stream) {
|
||||
archive_set_error(&self->archive->archive,
|
||||
ARCHIVE_ERRNO_MISC,
|
||||
"lz4 stream cheksum error");
|
||||
"lz4 stream checksum error");
|
||||
return (ARCHIVE_FATAL);
|
||||
}
|
||||
} else if (ret > 0)
|
||||
@ -674,7 +674,7 @@ static ssize_t
|
||||
lz4_filter_read_legacy_stream(struct archive_read_filter *self, const void **p)
|
||||
{
|
||||
struct private_data *state = (struct private_data *)self->data;
|
||||
int compressed;
|
||||
uint32_t compressed;
|
||||
const char *read_buf;
|
||||
ssize_t ret;
|
||||
|
||||
|
@ -487,7 +487,7 @@ process_extra(struct archive_read *a, struct archive_entry *entry,
|
||||
/* Some ZIP files may have trailing 0 bytes. Let's check they
|
||||
* are all 0 and ignore them instead of returning an error.
|
||||
*
|
||||
* This is not techincally correct, but some ZIP files look
|
||||
* This is not technically correct, but some ZIP files look
|
||||
* like this and other tools support those files - so let's
|
||||
* also support them.
|
||||
*/
|
||||
@ -1053,7 +1053,7 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry,
|
||||
|
||||
/* Make sure that entries with a trailing '/' are marked as directories
|
||||
* even if the External File Attributes contains bogus values. If this
|
||||
* is not a directory and there is no type, assume regularfile. */
|
||||
* is not a directory and there is no type, assume a regular file. */
|
||||
if ((zip_entry->mode & AE_IFMT) != AE_IFDIR) {
|
||||
int has_slash;
|
||||
|
||||
@ -1104,7 +1104,7 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry,
|
||||
}
|
||||
|
||||
if (zip_entry->flags & LA_FROM_CENTRAL_DIRECTORY) {
|
||||
/* If this came from the central dir, it's size info
|
||||
/* If this came from the central dir, its size info
|
||||
* is definitive, so ignore the length-at-end flag. */
|
||||
zip_entry->zip_flags &= ~ZIP_LENGTH_AT_END;
|
||||
/* If local header is missing a value, use the one from
|
||||
|
@ -458,7 +458,7 @@ archive_wstring_append_from_mbs_in_codepage(struct archive_wstring *dest,
|
||||
|
||||
if (from_cp == CP_C_LOCALE) {
|
||||
/*
|
||||
* "C" locale special process.
|
||||
* "C" locale special processing.
|
||||
*/
|
||||
wchar_t *ws;
|
||||
const unsigned char *mp;
|
||||
@ -680,7 +680,7 @@ archive_string_append_from_wcs_in_codepage(struct archive_string *as,
|
||||
|
||||
if (to_cp == CP_C_LOCALE) {
|
||||
/*
|
||||
* "C" locale special process.
|
||||
* "C" locale special processing.
|
||||
*/
|
||||
const wchar_t *wp = ws;
|
||||
char *p;
|
||||
@ -889,7 +889,7 @@ add_converter(struct archive_string_conv *sc, int (*converter)
|
||||
struct archive_string_conv *))
|
||||
{
|
||||
if (sc == NULL || sc->nconverter >= 2)
|
||||
__archive_errx(1, "Programing error");
|
||||
__archive_errx(1, "Programming error");
|
||||
sc->converter[sc->nconverter++] = converter;
|
||||
}
|
||||
|
||||
|
@ -92,10 +92,10 @@ Clears any error information left over from a previous call.
|
||||
Not generally used in client code.
|
||||
.It Fn archive_compression
|
||||
Synonym for
|
||||
.Fn archive_filter_code(a, 0) .
|
||||
.Fn archive_filter_code a 0 .
|
||||
.It Fn archive_compression_name
|
||||
Synonym for
|
||||
.Fn archive_filter_name(a, 0) .
|
||||
.Fn archive_filter_name a 0 .
|
||||
.It Fn archive_copy_error
|
||||
Copies error information from one archive to another.
|
||||
.It Fn archive_errno
|
||||
@ -142,13 +142,13 @@ filter 0 is the gunzip filter,
|
||||
filter 1 is the uudecode filter,
|
||||
and filter 2 is the pseudo-filter that wraps the archive read functions.
|
||||
In this case, requesting
|
||||
.Fn archive_position(a, -1)
|
||||
.Fn archive_position a -1
|
||||
would be a synonym for
|
||||
.Fn archive_position(a, 2)
|
||||
.Fn archive_position a 2
|
||||
which would return the number of bytes currently read from the archive, while
|
||||
.Fn archive_position(a, 1)
|
||||
.Fn archive_position a 1
|
||||
would return the number of bytes after uudecoding, and
|
||||
.Fn archive_position(a, 0)
|
||||
.Fn archive_position a 0
|
||||
would return the number of bytes after decompression.
|
||||
.It Fn archive_filter_name
|
||||
Returns a textual name identifying the indicated filter.
|
||||
@ -170,9 +170,9 @@ A textual description of the format of the current entry.
|
||||
.It Fn archive_position
|
||||
Returns the number of bytes read from or written to the indicated filter.
|
||||
In particular,
|
||||
.Fn archive_position(a, 0)
|
||||
.Fn archive_position a 0
|
||||
returns the number of bytes read or written by the format handler, while
|
||||
.Fn archive_position(a, -1)
|
||||
.Fn archive_position a -1
|
||||
returns the number of bytes read or written to the archive.
|
||||
See
|
||||
.Fn archive_filter_count
|
||||
|
@ -118,7 +118,7 @@ After all entries have been written, use the
|
||||
.Fn archive_write_free
|
||||
function to release all resources.
|
||||
.\"
|
||||
.Sh EXAMPLE
|
||||
.Sh EXAMPLES
|
||||
The following sketch illustrates basic usage of the library.
|
||||
In this example,
|
||||
the callback functions are simply wrappers around the standard
|
||||
@ -192,7 +192,7 @@ write_archive(const char *outname, const char **filename)
|
||||
if (archive_write_set_format_filter_by_ext(a, outname) != ARCHIVE_OK) {
|
||||
archive_write_add_filter_gzip(a);
|
||||
archive_write_set_format_ustar(a);
|
||||
}
|
||||
}
|
||||
archive_write_open(a, mydata, myopen, mywrite, myclose);
|
||||
while (*filename) {
|
||||
stat(*filename, &st);
|
||||
@ -225,8 +225,8 @@ int main(int argc, const char **argv)
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -107,8 +107,8 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -82,9 +82,9 @@ and consider any non-negative value as success.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write_finish_entry 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -113,7 +113,8 @@ or
|
||||
.Pq FreeBSD, Mac OS X
|
||||
for more information on file attributes.
|
||||
.It Cm ARCHIVE_EXTRACT_MAC_METADATA
|
||||
Mac OS X specific. Restore metadata using
|
||||
Mac OS X specific.
|
||||
Restore metadata using
|
||||
.Xr copyfile 3 .
|
||||
By default,
|
||||
.Xr copyfile 3
|
||||
@ -264,9 +265,9 @@ and
|
||||
functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3
|
||||
.Sh HISTORY
|
||||
The
|
||||
|
@ -431,7 +431,7 @@ la_opendirat(int fd, const char *path) {
|
||||
errno = ENOTSUP;
|
||||
return (-1);
|
||||
} else
|
||||
return (open(fd, path, flags));
|
||||
return (open(path, flags));
|
||||
#else
|
||||
return (openat(fd, path, flags));
|
||||
#endif
|
||||
|
@ -43,7 +43,7 @@
|
||||
.Nm archive_write_add_filter_program ,
|
||||
.Nm archive_write_add_filter_uuencode ,
|
||||
.Nm archive_write_add_filter_xz ,
|
||||
.Nm archive_write_add_filter_zstd ,
|
||||
.Nm archive_write_add_filter_zstd
|
||||
.Nd functions enabling output filters
|
||||
.Sh LIBRARY
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
@ -125,10 +125,10 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr archive_write_format 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -71,9 +71,9 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write_data 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -52,7 +52,7 @@
|
||||
.Nm archive_write_set_format_v7tar ,
|
||||
.Nm archive_write_set_format_warc ,
|
||||
.Nm archive_write_set_format_xar ,
|
||||
.Nm archive_write_set_format_zip ,
|
||||
.Nm archive_write_set_format_zip
|
||||
.Nd functions for creating archives
|
||||
.Sh LIBRARY
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
@ -166,9 +166,9 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr libarchive-formats 5 ,
|
||||
.Xr mtree 5 ,
|
||||
|
@ -56,7 +56,7 @@ after calling this function, the only call that can succeed is
|
||||
to release the resources.
|
||||
This can be used to speed recovery when the archive creation
|
||||
must be aborted.
|
||||
Note that the created archive is likely to be malformed in this case;
|
||||
Note that the created archive is likely to be malformed in this case;
|
||||
.It Fn archive_write_close
|
||||
Complete the archive and invoke the close callback.
|
||||
.It Fn archive_write_finish
|
||||
@ -89,8 +89,8 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -66,8 +66,8 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -50,9 +50,9 @@ object can be found in the overview manual page for
|
||||
.\" .Sh ERRORS
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -200,7 +200,7 @@ On failure, the callback should invoke
|
||||
.Fn archive_set_error
|
||||
to register an error code and message and
|
||||
return
|
||||
.Cm ARCHIVE_FATAL.
|
||||
.Cm ARCHIVE_FATAL .
|
||||
.Pp
|
||||
Note that if the client-provided write callback function
|
||||
returns a non-zero value, that error will be propagated back to the caller
|
||||
@ -234,13 +234,13 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr archive_write_blocksize 3 ,
|
||||
.Xr archive_write_filter 3 ,
|
||||
.Xr archive_write_format 3 ,
|
||||
.Xr archive_write_new 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr cpio 5 ,
|
||||
.Xr mtree 5 ,
|
||||
.Xr tar 5
|
||||
|
@ -3650,7 +3650,7 @@ wb_consume(struct archive_write *a, size_t size)
|
||||
if (size > iso9660->wbuff_remaining ||
|
||||
iso9660->wbuff_remaining == 0) {
|
||||
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
|
||||
"Internal Programing error: iso9660:wb_consume()"
|
||||
"Internal Programming error: iso9660:wb_consume()"
|
||||
" size=%jd, wbuff_remaining=%jd",
|
||||
(intmax_t)size, (intmax_t)iso9660->wbuff_remaining);
|
||||
return (ARCHIVE_FATAL);
|
||||
@ -3671,7 +3671,7 @@ wb_set_offset(struct archive_write *a, int64_t off)
|
||||
|
||||
if (iso9660->wbuff_type != WB_TO_TEMP) {
|
||||
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
|
||||
"Internal Programing error: iso9660:wb_set_offset()");
|
||||
"Internal Programming error: iso9660:wb_set_offset()");
|
||||
return (ARCHIVE_FATAL);
|
||||
}
|
||||
|
||||
@ -8128,7 +8128,7 @@ zisofs_write_to_temp(struct archive_write *a, const void *buff, size_t s)
|
||||
{
|
||||
(void)buff; /* UNUSED */
|
||||
(void)s; /* UNUSED */
|
||||
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "Programing error");
|
||||
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "Programming error");
|
||||
return (ARCHIVE_FATAL);
|
||||
}
|
||||
|
||||
|
@ -186,7 +186,7 @@ struct mtree_writer {
|
||||
#endif
|
||||
/* Keyword options */
|
||||
int keys;
|
||||
#define F_CKSUM 0x00000001 /* check sum */
|
||||
#define F_CKSUM 0x00000001 /* checksum */
|
||||
#define F_DEV 0x00000002 /* device type */
|
||||
#define F_DONE 0x00000004 /* directory done */
|
||||
#define F_FLAGS 0x00000008 /* file flags */
|
||||
@ -371,7 +371,7 @@ mtree_quote(struct archive_string *s, const char *str)
|
||||
}
|
||||
|
||||
/*
|
||||
* Indent a line as mtree utility to be readable for people.
|
||||
* Indent a line as the mtree utility does so it is readable for people.
|
||||
*/
|
||||
static void
|
||||
mtree_indent(struct mtree_writer *mtree)
|
||||
@ -446,8 +446,8 @@ mtree_indent(struct mtree_writer *mtree)
|
||||
|
||||
/*
|
||||
* Write /set keyword.
|
||||
* Set most used value of uid,gid,mode and fflags, which are
|
||||
* collected by attr_counter_set_collect() function.
|
||||
* Set the most used value of uid, gid, mode and fflags, which are
|
||||
* collected by the attr_counter_set_collect() function.
|
||||
*/
|
||||
static void
|
||||
write_global(struct mtree_writer *mtree)
|
||||
@ -649,7 +649,7 @@ attr_counter_inc(struct attr_counter **top, struct attr_counter *ac,
|
||||
}
|
||||
|
||||
/*
|
||||
* Tabulate uid,gid,mode and fflags of a entry in order to be used for /set.
|
||||
* Tabulate uid, gid, mode and fflags of a entry in order to be used for /set.
|
||||
*/
|
||||
static int
|
||||
attr_counter_set_collect(struct mtree_writer *mtree, struct mtree_entry *me)
|
||||
@ -912,7 +912,7 @@ archive_write_mtree_header(struct archive_write *a,
|
||||
|
||||
/* If the current file is a regular file, we have to
|
||||
* compute the sum of its content.
|
||||
* Initialize a bunch of sum check context. */
|
||||
* Initialize a bunch of checksum context. */
|
||||
if (mtree_entry->reg_info)
|
||||
sum_init(mtree);
|
||||
|
||||
@ -1265,7 +1265,7 @@ archive_write_mtree_free(struct archive_write *a)
|
||||
if (mtree == NULL)
|
||||
return (ARCHIVE_OK);
|
||||
|
||||
/* Make sure we dot not leave any entries. */
|
||||
/* Make sure we do not leave any entries. */
|
||||
mtree_entry_register_free(mtree);
|
||||
archive_string_free(&mtree->cur_dirstr);
|
||||
archive_string_free(&mtree->ebuf);
|
||||
@ -2024,7 +2024,7 @@ mtree_entry_tree_add(struct archive_write *a, struct mtree_entry **filep)
|
||||
|
||||
if (file->parentdir.length == 0) {
|
||||
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
|
||||
"Internal programing error "
|
||||
"Internal programming error "
|
||||
"in generating canonical name for %s",
|
||||
file->pathname.s);
|
||||
return (ARCHIVE_FAILED);
|
||||
|
@ -24,7 +24,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd February 2, 2012
|
||||
.Dd July 27, 2019
|
||||
.Dt ARCHIVE_WRITE_OPTIONS 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -70,7 +70,7 @@ specific write modules.
|
||||
.Fn archive_write_set_filter_option ,
|
||||
.Fn archive_write_set_format_option
|
||||
.Xc
|
||||
Specifies an option that will be passed to currently-registered
|
||||
Specifies an option that will be passed to the currently-registered
|
||||
filters (including decompression filters) or format readers.
|
||||
.Pp
|
||||
If
|
||||
@ -138,7 +138,7 @@ If either function returns
|
||||
.Cm ARCHIVE_FATAL
|
||||
will be returned
|
||||
immediately.
|
||||
Otherwise, greater of the two values will be returned.
|
||||
Otherwise, the greater of the two values will be returned.
|
||||
.\"
|
||||
.It Fn archive_write_set_options
|
||||
.Ar options
|
||||
@ -203,22 +203,28 @@ These options are used to set standard ISO9660 metadata.
|
||||
.Bl -tag -compact -width indent
|
||||
.It Cm abstract-file Ns = Ns Ar filename
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the abstract for this volume. Default: none.
|
||||
as holding the abstract for this volume.
|
||||
Default: none.
|
||||
.It Cm application-id Ns = Ns Ar filename
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the application identifier for this volume. Default: none.
|
||||
as holding the application identifier for this volume.
|
||||
Default: none.
|
||||
.It Cm biblio-file Ns = Ns Ar filename
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the bibliography for this volume. Default: none.
|
||||
as holding the bibliography for this volume.
|
||||
Default: none.
|
||||
.It Cm copyright-file Ns = Ns Ar filename
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the copyright for this volume. Default: none.
|
||||
as holding the copyright for this volume.
|
||||
Default: none.
|
||||
.It Cm publisher Ns = Ns Ar filename
|
||||
The file with the specified name will be identified in the ISO9660 metadata
|
||||
as holding the publisher information for this volume. Default: none.
|
||||
as holding the publisher information for this volume.
|
||||
Default: none.
|
||||
.It Cm volume-id Ns = Ns Ar string
|
||||
The specified string will be used as the Volume Identifier in the ISO9660 metadata.
|
||||
It is limited to 32 bytes. Default: none.
|
||||
It is limited to 32 bytes.
|
||||
Default: none.
|
||||
.El
|
||||
.It Format iso9660 - boot support
|
||||
These options are used to make an ISO9660 image that can be directly
|
||||
@ -266,7 +272,7 @@ If the boot image is exactly 1.2MB, 1.44MB, or 2.88MB, then
|
||||
the default is
|
||||
.Cm fd ,
|
||||
otherwise the default is
|
||||
.Cm no-emulation.
|
||||
.Cm no-emulation .
|
||||
.El
|
||||
.It Format iso9660 - filename and size extensions
|
||||
Various extensions to the base ISO9660 format.
|
||||
@ -290,7 +296,7 @@ This does not impact names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.
|
||||
.It Cm allow-period
|
||||
If enabled, allows filenames to contain trailing period characters, in violation of the ISO9660 specification.
|
||||
If disabled,trailing periods will be converted to underscore characters.
|
||||
If disabled, trailing periods will be converted to underscore characters.
|
||||
This does not impact names stored in the Rockridge or Joliet extension area.
|
||||
Default: disabled.
|
||||
.It Cm allow-pvd-lowercase
|
||||
@ -398,6 +404,27 @@ Specifies a filename that should not be compressed when using
|
||||
This option can be provided multiple times to suppress compression
|
||||
on many files.
|
||||
.El
|
||||
.It Format 7zip
|
||||
.Bl -tag -compact -width indent
|
||||
.It Cm compression
|
||||
The value is one of
|
||||
.Dq store ,
|
||||
.Dq deflate ,
|
||||
.Dq bzip2 ,
|
||||
.Dq lzma1 ,
|
||||
.Dq lzma2
|
||||
or
|
||||
.Dq ppmd
|
||||
to indicate how the following entries should be compressed.
|
||||
Note that this setting is ignored for directories, symbolic links,
|
||||
and other special entries.
|
||||
.It Cm compression-level
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
compression level.
|
||||
Values between 0 and 9 are supported.
|
||||
The interpretation of the compression level depends on the chosen
|
||||
compression method.
|
||||
.El
|
||||
.It Format zip
|
||||
.Bl -tag -compact -width indent
|
||||
.It Cm compression
|
||||
@ -408,6 +435,15 @@ or
|
||||
to indicate how the following entries should be compressed.
|
||||
Note that this setting is ignored for directories, symbolic links,
|
||||
and other special entries.
|
||||
.It Cm compression-level
|
||||
The value is interpreted as a decimal integer specifying the
|
||||
compression level.
|
||||
Values between 0 and 9 are supported.
|
||||
A compression level of 0 switches the compression method to
|
||||
.Dq store ,
|
||||
other values will enable
|
||||
.Dq deflate
|
||||
compression with the given level.
|
||||
.It Cm experimental
|
||||
This boolean option enables or disables experimental Zip features
|
||||
that may not be compatible with other Zip implementations.
|
||||
@ -465,9 +501,9 @@ functions.
|
||||
.\"
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_write 3
|
||||
.Xr archive_write 3 ,
|
||||
.Xr libarchive 3
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm libarchive
|
||||
|
@ -49,7 +49,7 @@ Streaming Archive Library (libarchive, -larchive)
|
||||
.Sh DESCRIPTION
|
||||
.Bl -tag -width indent
|
||||
.It Fn archive_write_set_passphrase
|
||||
Set a passphrase for writing an encryption archive.
|
||||
Set a passphrase for writing an encrypted archive.
|
||||
If
|
||||
.Ar passphrase
|
||||
is
|
||||
@ -59,16 +59,16 @@ or empty, this function will do nothing and
|
||||
will be returned.
|
||||
Otherwise,
|
||||
.Cm ARCHIVE_OK
|
||||
will be returned.
|
||||
will be returned.
|
||||
.It Fn archive_write_set_passphrase_callback
|
||||
Register callback function that will be invoked to get a passphrase
|
||||
for encrption if the passphrase was not set by the
|
||||
Register a callback function that will be invoked to get a passphrase
|
||||
for encryption if the passphrase was not set by the
|
||||
.Fn archive_write_set_passphrase
|
||||
function.
|
||||
.El
|
||||
.\" .Sh ERRORS
|
||||
.Sh SEE ALSO
|
||||
.Xr tar 1 ,
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr archive_write_set_options 3
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr libarchive 3
|
||||
|
@ -35,7 +35,6 @@
|
||||
This page describes user-visible changes in libarchive3, and lists
|
||||
public functions and other symbols changed, deprecated or removed
|
||||
in libarchive3, along with their replacements if any.
|
||||
.Pp
|
||||
.\"
|
||||
.Ss Multiple Filters
|
||||
.\"
|
||||
@ -330,13 +329,13 @@ or
|
||||
.Li 10240
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_read_filter 3 ,
|
||||
.Xr archive_read_format 3 ,
|
||||
.Xr archive_read_set_options 3 ,
|
||||
.Xr archive_util 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr archive_write_filter 3 ,
|
||||
.Xr archive_write_format 3 ,
|
||||
.Xr archive_write_set_options 3 ,
|
||||
.Xr archive_util 3
|
||||
.Xr libarchive 3
|
||||
|
@ -350,8 +350,8 @@ as a dedicated ZIP program.
|
||||
.Xr archive_entry 3 ,
|
||||
.Xr archive_read 3 ,
|
||||
.Xr archive_write 3 ,
|
||||
.Xr archive_write_disk 3
|
||||
.Xr libarchive 3 ,
|
||||
.Xr archive_write_disk 3 ,
|
||||
.Xr libarchive 3
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm libarchive
|
||||
|
@ -133,7 +133,6 @@ or
|
||||
.Sy char
|
||||
file types.
|
||||
The value must be one of the following forms:
|
||||
.Pp
|
||||
.Bl -tag -width 4n
|
||||
.It Ar format , Ns Ar major , Ns Ar minor Ns Bo , Ns Ar subunit Bc
|
||||
A device with
|
||||
@ -165,8 +164,8 @@ are recognized:
|
||||
.Sy solaris ,
|
||||
.Sy sunos ,
|
||||
.Sy svr3 ,
|
||||
.Sy svr4 ,
|
||||
and
|
||||
.Sy svr4 ,
|
||||
and
|
||||
.Sy ultrix .
|
||||
.Pp
|
||||
See
|
||||
@ -288,12 +287,10 @@ The file owner as a numeric value.
|
||||
.It Cm uname
|
||||
The file owner as a symbolic name.
|
||||
.El
|
||||
.Pp
|
||||
.Sh SEE ALSO
|
||||
.Xr cksum 1 ,
|
||||
.Xr find 1 ,
|
||||
.Xr mtree 8
|
||||
.Sh BUGS
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
|
@ -441,7 +441,7 @@ archives to store files much larger than the historic 8GB limit.
|
||||
Vendor-specific attributes used by Joerg Schilling's
|
||||
.Nm star
|
||||
implementation.
|
||||
.It Cm SCHILY.acl.access , Cm SCHILY.acl.default, Cm SCHILY.acl.ace
|
||||
.It Cm SCHILY.acl.access , Cm SCHILY.acl.default , Cm SCHILY.acl.ace
|
||||
Stores the access, default and NFSv4 ACLs as textual strings in a format
|
||||
that is an extension of the format specified by POSIX.1e draft 17.
|
||||
In particular, each user or group access specification can include
|
||||
@ -456,7 +456,7 @@ The file flags.
|
||||
.It Cm SCHILY.realsize
|
||||
The full size of the file on disk.
|
||||
XXX explain? XXX
|
||||
.It Cm SCHILY.dev, Cm SCHILY.ino , Cm SCHILY.nlinks
|
||||
.It Cm SCHILY.dev , Cm SCHILY.ino , Cm SCHILY.nlinks
|
||||
The device number, inode number, and link count for the entry.
|
||||
In particular, note that a pax interchange format archive using Joerg
|
||||
Schilling's
|
||||
@ -473,7 +473,7 @@ The time when the file was created.
|
||||
.Dq ctime
|
||||
attribute, which refers to the time when the file
|
||||
metadata was last changed.)
|
||||
.It Cm LIBARCHIVE.xattr. Ns Ar namespace Ns . Ns Ar key
|
||||
.It Cm LIBARCHIVE.xattr . Ns Ar namespace . Ns Ar key
|
||||
Libarchive stores POSIX.1e-style extended attributes using
|
||||
keys of this form.
|
||||
The
|
||||
@ -890,7 +890,8 @@ GNU tar long pathname for the following header.
|
||||
.It Cm M
|
||||
GNU tar multivolume marker, indicating the file is a continuation of a file from the previous volume.
|
||||
.It Cm N
|
||||
GNU tar long filename support. Deprecated.
|
||||
GNU tar long filename support.
|
||||
Deprecated.
|
||||
.It Cm S
|
||||
GNU tar sparse regular file.
|
||||
.It Cm V
|
||||
|
@ -48,7 +48,7 @@ test_filter_by_name(const char *filter_name, int filter_code,
|
||||
r = archive_write_add_filter_by_name(a, filter_name);
|
||||
if (r == ARCHIVE_WARN) {
|
||||
if (!can_filter_prog()) {
|
||||
skipping("%s filter not suported on this platform",
|
||||
skipping("%s filter not supported on this platform",
|
||||
filter_name);
|
||||
assertEqualInt(ARCHIVE_OK, archive_write_free(a));
|
||||
free(buff);
|
||||
@ -59,7 +59,7 @@ test_filter_by_name(const char *filter_name, int filter_code,
|
||||
"lzma compression not supported on this platform") == 0 ||
|
||||
strcmp(archive_error_string(a),
|
||||
"xz compression not supported on this platform") == 0)) {
|
||||
skipping("%s filter not suported on this platform", filter_name);
|
||||
skipping("%s filter not supported on this platform", filter_name);
|
||||
assertEqualInt(ARCHIVE_OK, archive_write_free(a));
|
||||
free(buff);
|
||||
return;
|
||||
|
@ -61,7 +61,7 @@ test_format_filter_by_ext(const char *output_file,
|
||||
strcmp(archive_error_string(a),
|
||||
"xz compression not supported on this platform") == 0)) {
|
||||
const char *filter_name = archive_filter_name(a, 0);
|
||||
skipping("%s filter not suported on this platform", filter_name);
|
||||
skipping("%s filter not supported on this platform", filter_name);
|
||||
assertEqualInt(ARCHIVE_OK, archive_write_free(a));
|
||||
free(buff);
|
||||
return;
|
||||
|
@ -36,7 +36,9 @@ DEFINE_TEST(test_read_format_raw)
|
||||
const char *reffile1 = "test_read_format_raw.data";
|
||||
const char *reffile2 = "test_read_format_raw.data.Z";
|
||||
const char *reffile3 = "test_read_format_raw.bufr";
|
||||
#ifdef HAVE_ZLIB_H
|
||||
const char *reffile4 = "test_read_format_raw.data.gz";
|
||||
#endif
|
||||
|
||||
/* First, try pulling data out of an uninterpretable file. */
|
||||
extract_reference_file(reffile1);
|
||||
@ -119,6 +121,7 @@ DEFINE_TEST(test_read_format_raw)
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
|
||||
#ifdef HAVE_ZLIB_H
|
||||
/* Fourth, try with gzip which has metadata. */
|
||||
extract_reference_file(reffile4);
|
||||
assert((a = archive_read_new()) != NULL);
|
||||
@ -144,4 +147,5 @@ DEFINE_TEST(test_read_format_raw)
|
||||
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
#endif
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ verify_basic(struct archive *a, int seek_checks)
|
||||
} else {
|
||||
assertEqualInt(ARCHIVE_FAILED, archive_read_data(a, buff, 19));
|
||||
assertEqualString(archive_error_string(a),
|
||||
"Unsupported ZIP compression method (deflation)");
|
||||
"Unsupported ZIP compression method (8: deflation)");
|
||||
assert(archive_errno(a) != 0);
|
||||
}
|
||||
|
||||
@ -162,7 +162,7 @@ verify_basic(struct archive *a, int seek_checks)
|
||||
} else {
|
||||
assertEqualInt(ARCHIVE_FAILED, archive_read_data(a, buff, 19));
|
||||
assertEqualString(archive_error_string(a),
|
||||
"Unsupported ZIP compression method (deflation)");
|
||||
"Unsupported ZIP compression method (8: deflation)");
|
||||
assert(archive_errno(a) != 0);
|
||||
}
|
||||
assertEqualInt(ARCHIVE_EOF, archive_read_next_header(a, &ae));
|
||||
@ -231,7 +231,7 @@ verify_info_zip_ux(struct archive *a, int seek_checks)
|
||||
} else {
|
||||
assertEqualInt(ARCHIVE_FAILED, archive_read_data(a, buff, 19));
|
||||
assertEqualString(archive_error_string(a),
|
||||
"Unsupported ZIP compression method (deflation)");
|
||||
"Unsupported ZIP compression method (8: deflation)");
|
||||
assert(archive_errno(a) != 0);
|
||||
}
|
||||
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
|
||||
@ -302,7 +302,7 @@ verify_extract_length_at_end(struct archive *a, int seek_checks)
|
||||
} else {
|
||||
assertEqualIntA(a, ARCHIVE_FAILED, archive_read_extract(a, ae, 0));
|
||||
assertEqualString(archive_error_string(a),
|
||||
"Unsupported ZIP compression method (deflation)");
|
||||
"Unsupported ZIP compression method (8: deflation)");
|
||||
assert(archive_errno(a) != 0);
|
||||
}
|
||||
|
||||
|
@ -130,7 +130,7 @@ DEFINE_TEST(test_read_format_zip_traditional_encryption_data)
|
||||
assertEqualInt(ARCHIVE_FAILED,
|
||||
archive_read_data(a, buff, sizeof(buff)));
|
||||
assertEqualString(archive_error_string(a),
|
||||
"Unsupported ZIP compression method (deflation)");
|
||||
"Unsupported ZIP compression method (8: deflation)");
|
||||
assert(archive_errno(a) != 0);
|
||||
}
|
||||
|
||||
@ -148,7 +148,7 @@ DEFINE_TEST(test_read_format_zip_traditional_encryption_data)
|
||||
assertEqualInt(ARCHIVE_FAILED,
|
||||
archive_read_data(a, buff, sizeof(buff)));
|
||||
assertEqualString(archive_error_string(a),
|
||||
"Unsupported ZIP compression method (deflation)");
|
||||
"Unsupported ZIP compression method (8: deflation)");
|
||||
assert(archive_errno(a) != 0);
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ DEFINE_TEST(test_write_filter_zstd)
|
||||
char *buff, *data;
|
||||
size_t buffsize, datasize;
|
||||
char path[16];
|
||||
size_t used1, used2;
|
||||
size_t used1, used2, used3;
|
||||
int i, r;
|
||||
|
||||
buffsize = 2000000;
|
||||
@ -125,7 +125,7 @@ DEFINE_TEST(test_write_filter_zstd)
|
||||
assertEqualIntA(a, ARCHIVE_OK,
|
||||
archive_write_set_filter_option(a, NULL, "compression-level", "9"));
|
||||
assertEqualIntA(a, ARCHIVE_OK,
|
||||
archive_write_set_filter_option(a, NULL, "compression-level", "6"));
|
||||
archive_write_set_filter_option(a, NULL, "compression-level", "7"));
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, buffsize, &used2));
|
||||
for (i = 0; i < 100; i++) {
|
||||
sprintf(path, "file%03d", i);
|
||||
@ -140,10 +140,6 @@ DEFINE_TEST(test_write_filter_zstd)
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_write_free(a));
|
||||
|
||||
failure("compression-level=6 wrote %d bytes, default wrote %d bytes",
|
||||
(int)used2, (int)used1);
|
||||
assert(used2 < used1);
|
||||
|
||||
assert((a = archive_read_new()) != NULL);
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
|
||||
r = archive_read_support_filter_zstd(a);
|
||||
@ -167,6 +163,64 @@ DEFINE_TEST(test_write_filter_zstd)
|
||||
}
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
|
||||
/*
|
||||
* One more time at level 1
|
||||
*/
|
||||
assert((a = archive_write_new()) != NULL);
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
|
||||
assertEqualIntA(a, ARCHIVE_OK,
|
||||
archive_write_set_bytes_per_block(a, 10));
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_zstd(a));
|
||||
assertEqualIntA(a, ARCHIVE_OK,
|
||||
archive_write_set_filter_option(a, NULL, "compression-level", "1"));
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, buffsize, &used3));
|
||||
assert((ae = archive_entry_new()) != NULL);
|
||||
archive_entry_set_filetype(ae, AE_IFREG);
|
||||
archive_entry_set_size(ae, datasize);
|
||||
for (i = 0; i < 100; i++) {
|
||||
sprintf(path, "file%03d", i);
|
||||
archive_entry_copy_pathname(ae, path);
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae));
|
||||
assertA(datasize == (size_t)archive_write_data(a, data, datasize));
|
||||
}
|
||||
archive_entry_free(ae);
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_write_free(a));
|
||||
|
||||
assert((a = archive_read_new()) != NULL);
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
|
||||
r = archive_read_support_filter_zstd(a);
|
||||
if (r == ARCHIVE_WARN) {
|
||||
skipping("zstd reading not fully supported on this platform");
|
||||
} else {
|
||||
assertEqualIntA(a, ARCHIVE_OK,
|
||||
archive_read_support_filter_all(a));
|
||||
assertEqualIntA(a, ARCHIVE_OK,
|
||||
archive_read_open_memory(a, buff, used3));
|
||||
for (i = 0; i < 100; i++) {
|
||||
sprintf(path, "file%03d", i);
|
||||
failure("Trying to read %s", path);
|
||||
if (!assertEqualIntA(a, ARCHIVE_OK,
|
||||
archive_read_next_header(a, &ae)))
|
||||
break;
|
||||
assertEqualString(path, archive_entry_pathname(ae));
|
||||
assertEqualInt((int)datasize, archive_entry_size(ae));
|
||||
}
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
}
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
|
||||
/*
|
||||
* Check output sizes for various compression levels, expectation
|
||||
* is that archive size for level=7 < default < level=1
|
||||
*/
|
||||
failure("compression-level=7 wrote %d bytes, default wrote %d bytes",
|
||||
(int)used2, (int)used1);
|
||||
assert(used2 < used1);
|
||||
failure("compression-level=1 wrote %d bytes, default wrote %d bytes",
|
||||
(int)used3, (int)used1);
|
||||
assert(used1 < used3);
|
||||
|
||||
/*
|
||||
* Test various premature shutdown scenarios to make sure we
|
||||
* don't crash or leak memory.
|
||||
|
56
tar/bsdtar.1
56
tar/bsdtar.1
@ -167,12 +167,14 @@ if it is unknown suffix or no suffix, creates a new archive with
|
||||
restricted pax format and bzip2 compression.
|
||||
.It Fl Fl acls
|
||||
(c, r, u, x modes only)
|
||||
Archive or extract POSIX.1e or NFSv4 ACLs. This is the reverse of
|
||||
Archive or extract POSIX.1e or NFSv4 ACLs.
|
||||
This is the reverse of
|
||||
.Fl Fl no-acls
|
||||
and the default behavior in c, r, and u modes (except on Mac OS X) or if
|
||||
.Nm
|
||||
is run in x mode as root. On Mac OS X this option translates extended ACLs
|
||||
to NFSv4 ACLs. To store extended ACLs the
|
||||
is run in x mode as root.
|
||||
On Mac OS X this option translates extended ACLs to NFSv4 ACLs.
|
||||
To store extended ACLs the
|
||||
.Fl Fl mac-metadata
|
||||
option is preferred.
|
||||
.It Fl B , Fl Fl read-full-blocks
|
||||
@ -390,10 +392,12 @@ Do not extract modification time.
|
||||
By default, the modification time is set to the time stored in the archive.
|
||||
.It Fl Fl mac-metadata
|
||||
(c, r, u and x mode only)
|
||||
Mac OS X specific. Archive or extract extended ACLs and extended file
|
||||
Mac OS X specific.
|
||||
Archive or extract extended ACLs and extended file
|
||||
attributes using
|
||||
.Xr copyfile 3
|
||||
in AppleDouble format. This is the reverse of
|
||||
in AppleDouble format.
|
||||
This is the reverse of
|
||||
.Fl Fl no-mac-metadata .
|
||||
and the default behavior in c, r, and u modes or if
|
||||
.Nm
|
||||
@ -439,24 +443,28 @@ option to
|
||||
.Xr find 1 .
|
||||
.It Fl Fl no-acls
|
||||
(c, r, u, x modes only)
|
||||
Do not archive or extract POSIX.1e or NFSv4 ACLs. This is the reverse of
|
||||
Do not archive or extract POSIX.1e or NFSv4 ACLs.
|
||||
This is the reverse of
|
||||
.Fl Fl acls
|
||||
and the default behavior if
|
||||
.Nm
|
||||
is run as non-root in x mode (on Mac OS X as any user in c, r, u and x modes).
|
||||
.It Fl Fl no-fflags
|
||||
(c, r, u, x modes only)
|
||||
Do not archive or extract file attributes or file flags. This is the reverse of
|
||||
Do not archive or extract file attributes or file flags.
|
||||
This is the reverse of
|
||||
.Fl Fl fflags
|
||||
and the default behavior if
|
||||
.Nm
|
||||
is run as non-root in x mode.
|
||||
.It Fl Fl no-mac-metadata
|
||||
(x mode only)
|
||||
Mac OS X specific. Do not archive or extract ACLs and extended file attributes
|
||||
Mac OS X specific.
|
||||
Do not archive or extract ACLs and extended file attributes
|
||||
using
|
||||
.Xr copyfile 3
|
||||
in AppleDouble format. This is the reverse of
|
||||
in AppleDouble format.
|
||||
This is the reverse of
|
||||
.Fl Fl mac-metadata .
|
||||
and the default behavior if
|
||||
.Nm
|
||||
@ -480,7 +488,8 @@ and the default behavior if
|
||||
is run as non-root.
|
||||
.It Fl Fl no-xattrs
|
||||
(c, r, u, x modes only)
|
||||
Do not archive or extract extended file attributes. This is the reverse of
|
||||
Do not archive or extract extended file attributes.
|
||||
This is the reverse of
|
||||
.Fl Fl xattrs
|
||||
and the default behavior if
|
||||
.Nm
|
||||
@ -577,7 +586,8 @@ to disable.
|
||||
.It Cm gzip:compression-level
|
||||
A decimal integer from 1 to 9 specifying the gzip compression level.
|
||||
.It Cm gzip:timestamp
|
||||
Store timestamp. This is enabled by default, use
|
||||
Store timestamp.
|
||||
This is enabled by default, use
|
||||
.Cm !timestamp
|
||||
or
|
||||
.Cm gzip:!timestamp
|
||||
@ -593,7 +603,8 @@ A decimal integer from 1 to 9 specifying the lrzip compression level.
|
||||
.It Cm lz4:compression-level
|
||||
A decimal integer from 1 to 9 specifying the lzop compression level.
|
||||
.It Cm lz4:stream-checksum
|
||||
Enable stream checksum. This is by default, use
|
||||
Enable stream checksum.
|
||||
This is by default, use
|
||||
.Cm lz4:!stream-checksum
|
||||
to disable.
|
||||
.It Cm lz4:block-checksum
|
||||
@ -646,9 +657,10 @@ Supported values are zipcrypt (traditional zip encryption),
|
||||
aes128 (WinZip AES-128 encryption) and aes256 (WinZip AES-256 encryption).
|
||||
.It Cm read_concatenated_archives
|
||||
Ignore zeroed blocks in the archive, which occurs when multiple tar archives
|
||||
have been concatenated together. Without this option, only the contents of
|
||||
the first concatenated archive would be read. This option is comparable to
|
||||
the
|
||||
have been concatenated together.
|
||||
Without this option, only the contents of
|
||||
the first concatenated archive would be read.
|
||||
This option is comparable to the
|
||||
.Fl i , Fl Fl ignore-zeros
|
||||
option of GNU tar.
|
||||
.El
|
||||
@ -670,11 +682,13 @@ This option suppresses these behaviors.
|
||||
Preserve file permissions.
|
||||
Attempt to restore the full permissions, including file modes, file attributes
|
||||
or file flags, extended file attributes and ACLs, if available, for each item
|
||||
extracted from the archive. This is the reverse of
|
||||
extracted from the archive.
|
||||
This is the reverse of
|
||||
.Fl Fl no-same-permissions
|
||||
and the default if
|
||||
.Nm
|
||||
is being run as root. It can be partially overridden by also specifying
|
||||
is being run as root.
|
||||
It can be partially overridden by also specifying
|
||||
.Fl Fl no-acls ,
|
||||
.Fl Fl no-fflags ,
|
||||
.Fl Fl no-mac-metadata
|
||||
@ -845,7 +859,8 @@ See
|
||||
for more information about the handling of exclusions.
|
||||
.It Fl Fl xattrs
|
||||
(c, r, u, x modes only)
|
||||
Archive or extract extended file attributes. This is the reverse of
|
||||
Archive or extract extended file attributes.
|
||||
This is the reverse of
|
||||
.Fl Fl no-xattrs
|
||||
and the default behavior in c, r, and u modes or if
|
||||
.Nm
|
||||
@ -937,9 +952,9 @@ To examine the contents of an ISO 9660 cdrom image:
|
||||
To move file hierarchies, invoke
|
||||
.Nm
|
||||
as
|
||||
.Dl Nm Fl cf Pa - Fl C Pa srcdir\ . | Nm Fl xpf Pa - Fl C Pa destdir
|
||||
.Dl Nm Fl cf Pa - Fl C Pa srcdir \&. | Nm Fl xpf Pa - Fl C Pa destdir
|
||||
or more traditionally
|
||||
.Dl cd srcdir \&; Nm Fl cf Pa -\ . | ( cd destdir \&; Nm Fl xpf Pa - )
|
||||
.Dl cd srcdir \&; Nm Fl cf Pa - \&. | ( cd destdir \&; Nm Fl xpf Pa - )
|
||||
.Pp
|
||||
In create mode, the list of files and directories to be archived
|
||||
can also include directory change instructions of the form
|
||||
@ -967,7 +982,6 @@ An input file in
|
||||
.Xr mtree 5
|
||||
format can be used to create an output archive with arbitrary ownership,
|
||||
permissions, or names that differ from existing data on disk:
|
||||
.Pp
|
||||
.Bd -literal -offset indent
|
||||
$ cat input.mtree
|
||||
#mtree
|
||||
|
@ -120,7 +120,7 @@ DEFINE_TEST(test_option_n)
|
||||
"d2/file4\n",
|
||||
"test5.out");
|
||||
|
||||
/* Test 6: -t without -n and non-existant directory selected */
|
||||
/* Test 6: -t without -n and non-existent directory selected */
|
||||
assertEqualInt(0,
|
||||
systemf("%s -tf partial-archive.tar d2 >test6.out 2>test6.err",
|
||||
testprog));
|
||||
@ -128,7 +128,7 @@ DEFINE_TEST(test_option_n)
|
||||
assertTextFileContents("d2/file4\n",
|
||||
"test6.out");
|
||||
|
||||
/* Test 7: -t with -n and non-existant directory selected */
|
||||
/* Test 7: -t with -n and non-existent directory selected */
|
||||
status = systemf("%s -tnf partial-archive.tar d2 "
|
||||
">test7.out 2>test7.err", testprog);
|
||||
assert(status);
|
||||
|
@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$");
|
||||
DEFINE_TEST(test_option_xattrs)
|
||||
{
|
||||
#if !ARCHIVE_XATTR_SUPPORT
|
||||
skipping("Extended atributes are not supported on this platform");
|
||||
skipping("Extended attributes are not supported on this platform");
|
||||
#else /* ARCHIVE_XATTR_SUPPORT */
|
||||
|
||||
const char *testattr = "user.libarchive.test";
|
||||
|
@ -298,7 +298,7 @@ my_CreateSymbolicLinkA(const char *linkname, const char *target,
|
||||
ret = (*f)(src, tgt, tmpflags);
|
||||
/*
|
||||
* Prior to Windows 10 the SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
|
||||
* is not undestood
|
||||
* is not understood
|
||||
*/
|
||||
if (!ret)
|
||||
ret = (*f)(src, tgt, flags);
|
||||
|
Loading…
Reference in New Issue
Block a user