aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2019-09-26 01:42:09 +0000
committerMartin Matuska <mm@FreeBSD.org>2019-09-26 01:42:09 +0000
commita297901e6c90d415ac49c88002dd4e02dc49e32b (patch)
treed717949fae352e99fdd30d0cee7a2f09cbe11595
parent085fce401bac81381be296026985e704e94a99e2 (diff)
downloadsrc-a297901e6c90d415ac49c88002dd4e02dc49e32b.tar.gz
src-a297901e6c90d415ac49c88002dd4e02dc49e32b.zip
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
Notes
Notes: svn path=/vendor/libarchive/dist/; revision=352731
-rw-r--r--.cirrus.yml4
-rw-r--r--.github/workflows/ci.yml37
-rw-r--r--cat/bsdcat.111
-rw-r--r--contrib/shar/shar.111
-rw-r--r--cpio/bsdcpio.13
-rw-r--r--libarchive/archive.h2
-rw-r--r--libarchive/archive_entry.37
-rw-r--r--libarchive/archive_entry_acl.359
-rw-r--r--libarchive/archive_entry_misc.35
-rw-r--r--libarchive/archive_entry_paths.310
-rw-r--r--libarchive/archive_entry_perms.312
-rw-r--r--libarchive/archive_entry_stat.36
-rw-r--r--libarchive/archive_entry_time.36
-rw-r--r--libarchive/archive_read.36
-rw-r--r--libarchive/archive_read_add_passphrase.310
-rw-r--r--libarchive/archive_read_data.34
-rw-r--r--libarchive/archive_read_disk.313
-rw-r--r--libarchive/archive_read_extract.32
-rw-r--r--libarchive/archive_read_filter.34
-rw-r--r--libarchive/archive_read_format.36
-rw-r--r--libarchive/archive_read_free.36
-rw-r--r--libarchive/archive_read_header.32
-rw-r--r--libarchive/archive_read_new.32
-rw-r--r--libarchive/archive_read_open.34
-rw-r--r--libarchive/archive_read_set_options.37
-rw-r--r--libarchive/archive_read_support_filter_gzip.c54
-rw-r--r--libarchive/archive_read_support_filter_lz4.c10
-rw-r--r--libarchive/archive_read_support_format_zip.c6
-rw-r--r--libarchive/archive_string.c6
-rw-r--r--libarchive/archive_util.316
-rw-r--r--libarchive/archive_write.36
-rw-r--r--libarchive/archive_write_blocksize.32
-rw-r--r--libarchive/archive_write_data.32
-rw-r--r--libarchive/archive_write_disk.35
-rw-r--r--libarchive/archive_write_disk_posix.c2
-rw-r--r--libarchive/archive_write_filter.34
-rw-r--r--libarchive/archive_write_finish_entry.32
-rw-r--r--libarchive/archive_write_format.34
-rw-r--r--libarchive/archive_write_free.34
-rw-r--r--libarchive/archive_write_header.32
-rw-r--r--libarchive/archive_write_new.32
-rw-r--r--libarchive/archive_write_open.34
-rw-r--r--libarchive/archive_write_set_format_iso9660.c6
-rw-r--r--libarchive/archive_write_set_format_mtree.c16
-rw-r--r--libarchive/archive_write_set_options.362
-rw-r--r--libarchive/archive_write_set_passphrase.312
-rw-r--r--libarchive/libarchive_changes.35
-rw-r--r--libarchive/libarchive_internals.34
-rw-r--r--libarchive/mtree.57
-rw-r--r--libarchive/tar.59
-rw-r--r--libarchive/test/test_archive_write_add_filter_by_name.c4
-rw-r--r--libarchive/test/test_archive_write_set_format_filter_by_ext.c2
-rw-r--r--libarchive/test/test_read_format_raw.c4
-rw-r--r--libarchive/test/test_read_format_zip.c8
-rw-r--r--libarchive/test/test_read_format_zip_traditional_encryption_data.c4
-rw-r--r--libarchive/test/test_write_filter_zstd.c66
-rw-r--r--tar/bsdtar.156
-rw-r--r--tar/test/test_option_n.c4
-rw-r--r--tar/test/test_option_xattrs.c2
-rw-r--r--test_utils/test_main.c2
60 files changed, 407 insertions, 236 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 33d6e473d9fa..d87e48983e8e 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -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:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 000000000000..11fa1b6b8464
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -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 }}
diff --git a/cat/bsdcat.1 b/cat/bsdcat.1
index 4f82b1e57c06..036623e4e4d6 100644
--- a/cat/bsdcat.1
+++ b/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
diff --git a/contrib/shar/shar.1 b/contrib/shar/shar.1
index e3152f299ebe..31561978f05c 100644
--- a/contrib/shar/shar.1
+++ b/contrib/shar/shar.1
@@ -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
diff --git a/cpio/bsdcpio.1 b/cpio/bsdcpio.1
index 786a717097ed..514c1a2c1937 100644
--- a/cpio/bsdcpio.1
+++ b/cpio/bsdcpio.1
@@ -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 ,
diff --git a/libarchive/archive.h b/libarchive/archive.h
index 7b196e7bb9ea..263d5ea354c9 100644
--- a/libarchive/archive.h
+++ b/libarchive/archive.h
@@ -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
diff --git a/libarchive/archive_entry.3 b/libarchive/archive_entry.3
index f75916c9e41b..2f62a4be233e 100644
--- a/libarchive/archive_entry.3
+++ b/libarchive/archive_entry.3
@@ -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
diff --git a/libarchive/archive_entry_acl.3 b/libarchive/archive_entry_acl.3
index 534dbfac6ef6..7dcc5854ce10 100644
--- a/libarchive/archive_entry_acl.3
+++ b/libarchive/archive_entry_acl.3
@@ -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
diff --git a/libarchive/archive_entry_misc.3 b/libarchive/archive_entry_misc.3
index 9b1e3ea207d3..dfab7ddb559b 100644
--- a/libarchive/archive_entry_misc.3
+++ b/libarchive/archive_entry_misc.3
@@ -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
diff --git a/libarchive/archive_entry_paths.3 b/libarchive/archive_entry_paths.3
index f647212a98be..0f849c9ebb35 100644
--- a/libarchive/archive_entry_paths.3
+++ b/libarchive/archive_entry_paths.3
@@ -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
diff --git a/libarchive/archive_entry_perms.3 b/libarchive/archive_entry_perms.3
index aae3648bb210..0291b7b4988b 100644
--- a/libarchive/archive_entry_perms.3
+++ b/libarchive/archive_entry_perms.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
diff --git a/libarchive/archive_entry_stat.3 b/libarchive/archive_entry_stat.3
index 26611e4c62e9..aa5c8e03f9f9 100644
--- a/libarchive/archive_entry_stat.3
+++ b/libarchive/archive_entry_stat.3
@@ -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
diff --git a/libarchive/archive_entry_time.3 b/libarchive/archive_entry_time.3
index 186452159370..d0563eaef43a 100644
--- a/libarchive/archive_entry_time.3
+++ b/libarchive/archive_entry_time.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
diff --git a/libarchive/archive_read.3 b/libarchive/archive_read.3
index d37e7327cb5e..cbedd0a19129 100644
--- a/libarchive/archive_read.3
+++ b/libarchive/archive_read.3
@@ -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
diff --git a/libarchive/archive_read_add_passphrase.3 b/libarchive/archive_read_add_passphrase.3
index 8b242ea79b1e..ca60d4fc62f7 100644
--- a/libarchive/archive_read_add_passphrase.3
+++ b/libarchive/archive_read_add_passphrase.3
@@ -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
diff --git a/libarchive/archive_read_data.3 b/libarchive/archive_read_data.3
index c1bc15d7cc8c..78c0c9000419 100644
--- a/libarchive/archive_read_data.3
+++ b/libarchive/archive_read_data.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
diff --git a/libarchive/archive_read_disk.3 b/libarchive/archive_read_disk.3
index 027f63cb630f..82d6a5c8562c 100644
--- a/libarchive/archive_read_disk.3
+++ b/libarchive/archive_read_disk.3
@@ -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
diff --git a/libarchive/archive_read_extract.3 b/libarchive/archive_read_extract.3
index 6ec0ced939b6..858f39742553 100644
--- a/libarchive/archive_read_extract.3
+++ b/libarchive/archive_read_extract.3
@@ -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
diff --git a/libarchive/archive_read_filter.3 b/libarchive/archive_read_filter.3
index ef0a70175332..1ba5fcbd6efd 100644
--- a/libarchive/archive_read_filter.3
+++ b/libarchive/archive_read_filter.3
@@ -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
diff --git a/libarchive/archive_read_format.3 b/libarchive/archive_read_format.3
index 91c5d2cfd4b6..f3804ce3796a 100644
--- a/libarchive/archive_read_format.3
+++ b/libarchive/archive_read_format.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
diff --git a/libarchive/archive_read_free.3 b/libarchive/archive_read_free.3
index 5b218225ba0e..8371c3a0c60c 100644
--- a/libarchive/archive_read_free.3
+++ b/libarchive/archive_read_free.3
@@ -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
diff --git a/libarchive/archive_read_header.3 b/libarchive/archive_read_header.3
index 480a666ca395..1e97f3a27507 100644
--- a/libarchive/archive_read_header.3
+++ b/libarchive/archive_read_header.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
diff --git a/libarchive/archive_read_new.3 b/libarchive/archive_read_new.3
index 0c9d1a7fbb27..8bb6b848b06a 100644
--- a/libarchive/archive_read_new.3
+++ b/libarchive/archive_read_new.3
@@ -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
diff --git a/libarchive/archive_read_open.3 b/libarchive/archive_read_open.3
index 2278ebc330c3..f67677823bd0 100644
--- a/libarchive/archive_read_open.3
+++ b/libarchive/archive_read_open.3
@@ -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
diff --git a/libarchive/archive_read_set_options.3 b/libarchive/archive_read_set_options.3
index 1a251cefecd1..d23f028b0ce2 100644
--- a/libarchive/archive_read_set_options.3
+++ b/libarchive/archive_read_set_options.3
@@ -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
diff --git a/libarchive/archive_read_support_filter_gzip.c b/libarchive/archive_read_support_filter_gzip.c
index 458b6f729164..9fa9e2b0ddb8 100644
--- a/libarchive/archive_read_support_filter_gzip.c
+++ b/libarchive/archive_read_support_filter_gzip.c
@@ -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. */
diff --git a/libarchive/archive_read_support_filter_lz4.c b/libarchive/archive_read_support_filter_lz4.c
index 147f5027ff4d..43ee6c2b7266 100644
--- a/libarchive/archive_read_support_filter_lz4.c
+++ b/libarchive/archive_read_support_filter_lz4.c
@@ -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;
diff --git a/libarchive/archive_read_support_format_zip.c b/libarchive/archive_read_support_format_zip.c
index ab21e222f5af..9934bf1504dc 100644
--- a/libarchive/archive_read_support_format_zip.c
+++ b/libarchive/archive_read_support_format_zip.c
@@ -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
diff --git a/libarchive/archive_string.c b/libarchive/archive_string.c
index 76a1624043f8..979a418b6779 100644
--- a/libarchive/archive_string.c
+++ b/libarchive/archive_string.c
@@ -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;
}
diff --git a/libarchive/archive_util.3 b/libarchive/archive_util.3
index 99ab842a28ca..d5d4e7dfd7d5 100644
--- a/libarchive/archive_util.3
+++ b/libarchive/archive_util.3
@@ -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
diff --git a/libarchive/archive_write.3 b/libarchive/archive_write.3
index c1164f5b5fdb..e7f7f1384ee8 100644
--- a/libarchive/archive_write.3
+++ b/libarchive/archive_write.3
@@ -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
diff --git a/libarchive/archive_write_blocksize.3 b/libarchive/archive_write_blocksize.3
index afd84ea4d393..4973f9990566 100644
--- a/libarchive/archive_write_blocksize.3
+++ b/libarchive/archive_write_blocksize.3
@@ -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
diff --git a/libarchive/archive_write_data.3 b/libarchive/archive_write_data.3
index 9c16cd9b4f70..bc208b45d53a 100644
--- a/libarchive/archive_write_data.3
+++ b/libarchive/archive_write_data.3
@@ -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
diff --git a/libarchive/archive_write_disk.3 b/libarchive/archive_write_disk.3
index 949c9ef106f2..ff8e1a36a75c 100644
--- a/libarchive/archive_write_disk.3
+++ b/libarchive/archive_write_disk.3
@@ -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
diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c
index 283f3e787678..6ae8a6a89bbf 100644
--- a/libarchive/archive_write_disk_posix.c
+++ b/libarchive/archive_write_disk_posix.c
@@ -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
diff --git a/libarchive/archive_write_filter.3 b/libarchive/archive_write_filter.3
index d6fa07131a80..c83eb77b6a5e 100644
--- a/libarchive/archive_write_filter.3
+++ b/libarchive/archive_write_filter.3
@@ -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
diff --git a/libarchive/archive_write_finish_entry.3 b/libarchive/archive_write_finish_entry.3
index dc1b94b82a5c..5797e16a6dbc 100644
--- a/libarchive/archive_write_finish_entry.3
+++ b/libarchive/archive_write_finish_entry.3
@@ -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
diff --git a/libarchive/archive_write_format.3 b/libarchive/archive_write_format.3
index aaafb0a8617c..47a740339622 100644
--- a/libarchive/archive_write_format.3
+++ b/libarchive/archive_write_format.3
@@ -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 ,
diff --git a/libarchive/archive_write_free.3 b/libarchive/archive_write_free.3
index 1b2d07131d8e..5210e2a633de 100644
--- a/libarchive/archive_write_free.3
+++ b/libarchive/archive_write_free.3
@@ -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
diff --git a/libarchive/archive_write_header.3 b/libarchive/archive_write_header.3
index 4de58f3b9f37..2217b1871bba 100644
--- a/libarchive/archive_write_header.3
+++ b/libarchive/archive_write_header.3
@@ -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
diff --git a/libarchive/archive_write_new.3 b/libarchive/archive_write_new.3
index f05d269d3e8d..788cbb855985 100644
--- a/libarchive/archive_write_new.3
+++ b/libarchive/archive_write_new.3
@@ -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
diff --git a/libarchive/archive_write_open.3 b/libarchive/archive_write_open.3
index 457873e61483..0129d10b7f2d 100644
--- a/libarchive/archive_write_open.3
+++ b/libarchive/archive_write_open.3
@@ -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
diff --git a/libarchive/archive_write_set_format_iso9660.c b/libarchive/archive_write_set_format_iso9660.c
index badc88bad0c9..cacbdde7dcb0 100644
--- a/libarchive/archive_write_set_format_iso9660.c
+++ b/libarchive/archive_write_set_format_iso9660.c
@@ -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);
}
diff --git a/libarchive/archive_write_set_format_mtree.c b/libarchive/archive_write_set_format_mtree.c
index 0f2431e6abe0..aa41e9acc22b 100644
--- a/libarchive/archive_write_set_format_mtree.c
+++ b/libarchive/archive_write_set_format_mtree.c
@@ -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);
diff --git a/libarchive/archive_write_set_options.3 b/libarchive/archive_write_set_options.3
index aeb7a1848658..a9f70a664092 100644
--- a/libarchive/archive_write_set_options.3
+++ b/libarchive/archive_write_set_options.3
@@ -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
diff --git a/libarchive/archive_write_set_passphrase.3 b/libarchive/archive_write_set_passphrase.3
index 2585595e331a..2db77034c76e 100644
--- a/libarchive/archive_write_set_passphrase.3
+++ b/libarchive/archive_write_set_passphrase.3
@@ -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
diff --git a/libarchive/libarchive_changes.3 b/libarchive/libarchive_changes.3
index adc87febd71d..6bf8db038c73 100644
--- a/libarchive/libarchive_changes.3
+++ b/libarchive/libarchive_changes.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
diff --git a/libarchive/libarchive_internals.3 b/libarchive/libarchive_internals.3
index 8275d66e68f1..d672f3e8a64d 100644
--- a/libarchive/libarchive_internals.3
+++ b/libarchive/libarchive_internals.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
diff --git a/libarchive/mtree.5 b/libarchive/mtree.5
index e607e4a81977..8147796f3100 100644
--- a/libarchive/mtree.5
+++ b/libarchive/mtree.5
@@ -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
diff --git a/libarchive/tar.5 b/libarchive/tar.5
index 30b837dc4133..34ad4f79315e 100644
--- a/libarchive/tar.5
+++ b/libarchive/tar.5
@@ -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
diff --git a/libarchive/test/test_archive_write_add_filter_by_name.c b/libarchive/test/test_archive_write_add_filter_by_name.c
index d962af92311b..ba8c1d0472f6 100644
--- a/libarchive/test/test_archive_write_add_filter_by_name.c
+++ b/libarchive/test/test_archive_write_add_filter_by_name.c
@@ -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;
diff --git a/libarchive/test/test_archive_write_set_format_filter_by_ext.c b/libarchive/test/test_archive_write_set_format_filter_by_ext.c
index c073505f7c97..4fe18e18c2d1 100644
--- a/libarchive/test/test_archive_write_set_format_filter_by_ext.c
+++ b/libarchive/test/test_archive_write_set_format_filter_by_ext.c
@@ -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;
diff --git a/libarchive/test/test_read_format_raw.c b/libarchive/test/test_read_format_raw.c
index 0dac8bfbab4a..3961723b48a1 100644
--- a/libarchive/test/test_read_format_raw.c
+++ b/libarchive/test/test_read_format_raw.c
@@ -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
}
diff --git a/libarchive/test/test_read_format_zip.c b/libarchive/test/test_read_format_zip.c
index b6e957a96cec..9afbfb6c5866 100644
--- a/libarchive/test/test_read_format_zip.c
+++ b/libarchive/test/test_read_format_zip.c
@@ -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);
}
diff --git a/libarchive/test/test_read_format_zip_traditional_encryption_data.c b/libarchive/test/test_read_format_zip_traditional_encryption_data.c
index 305261567ec8..20e55bbc6948 100644
--- a/libarchive/test/test_read_format_zip_traditional_encryption_data.c
+++ b/libarchive/test/test_read_format_zip_traditional_encryption_data.c
@@ -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);
}
diff --git a/libarchive/test/test_write_filter_zstd.c b/libarchive/test/test_write_filter_zstd.c
index da3c806671a4..ba1b6bfe716b 100644
--- a/libarchive/test/test_write_filter_zstd.c
+++ b/libarchive/test/test_write_filter_zstd.c
@@ -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);
@@ -168,6 +164,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.
*/
diff --git a/tar/bsdtar.1 b/tar/bsdtar.1
index 6d8d6d3d617a..04b56553ce02 100644
--- a/tar/bsdtar.1
+++ b/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
diff --git a/tar/test/test_option_n.c b/tar/test/test_option_n.c
index e474ac1d5754..f36658ef1656 100644
--- a/tar/test/test_option_n.c
+++ b/tar/test/test_option_n.c
@@ -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);
diff --git a/tar/test/test_option_xattrs.c b/tar/test/test_option_xattrs.c
index bce8a94e4dd2..79dfff528303 100644
--- a/tar/test/test_option_xattrs.c
+++ b/tar/test/test_option_xattrs.c
@@ -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";
diff --git a/test_utils/test_main.c b/test_utils/test_main.c
index 59c835ba81fa..1b9af9a9c37b 100644
--- a/test_utils/test_main.c
+++ b/test_utils/test_main.c
@@ -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);