The ’’Access Control
-Lists (ACLs)’’ extend the standard Unix
-permission model. The ACL interface of libarchive
-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.
+
The “Access Control Lists
+(ACLs)” extend the standard Unix permission model. The
+ACL interface of libarchive 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.
POSIX.1e
Access Control Lists
@@ -430,11 +430,11 @@ formats that can be created with
archive_entry_acl_to_text_w(). Existing ACL entries
are preserved. To get a clean new ACL from text
archive_entry_acl_clear() must be called first.
-Entries prefixed with ’’default:’’
-are treated as ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless
-type is ARCHIVE_ENTRY_ACL_TYPE_NFS4. Invalid entries,
-non-parseable ACL entries and entries beginning with the
-’#’ character (comments) are skipped.
+Entries prefixed with “default:” are treated as
+ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless type is
+ARCHIVE_ENTRY_ACL_TYPE_NFS4. Invalid entries, non-parseable
+ACL entries and entries beginning with the ’#’
+character (comments) are skipped.
Prefix each default ACL entry
-with the word ’’default:’’.
+with the word “default:”.
ARCHIVE_ENTRY_ACL_STYLE_SOLARIS
@@ -511,7 +511,7 @@ returned. It the entry contains POSIX.1e ACLs and none of
the flags ARCHIVE_ENTRY_ACL_TYPE_ACCESS or
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are specified, both access
and default entries are returned and default entries are
-prefixed with ’’default:’’.
+prefixed with “default:”.
archive_entry_acl_types()
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_linkify.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_linkify.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_linkify.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_linkify.3.html
index b92ff26..c6f214c 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_linkify.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_linkify.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_misc.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_misc.3.html
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_misc.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_misc.3.html
index e55e194..a0365c1 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_misc.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_misc.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_paths.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_paths.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_paths.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_paths.3.html
index 510090b..127c394 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_paths.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_paths.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_perms.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_perms.3.html
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_perms.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_perms.3.html
index 35838a5..7a912cd 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_perms.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_perms.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_stat.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_stat.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_stat.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_stat.3.html
index 2786956..5b0e476 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_stat.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_stat.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -323,8 +323,8 @@ respectively.
The number of
references (hardlinks) can be obtained by calling
-archive_entry_nlinks() and set with
-archive_entry_set_nlinks().
+archive_entry_nlink() and set with
+archive_entry_set_nlink().
Identifying
unique files
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_entry_time.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_entry_time.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_entry_time.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_entry_time.3.html
index fdd3cfe..fd62535 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_entry_time.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_entry_time.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read.3.html
index e04db2f..13a14b1 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -224,7 +224,7 @@ example, many implementations of tar(1) allow you to append
entries to an empty file. Of course, it is impossible to
determine the format of an empty file by inspecting the
contents, so this library treats empty files as having a
-special ’’empty’’ format.
+special “empty” format.
BSD
February 2, 2012 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_add_passphrase.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_add_passphrase.3.html
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_add_passphrase.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_add_passphrase.3.html
index 1cd60de..d39b665 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_add_passphrase.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_add_passphrase.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_data.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_data.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_data.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_data.3.html
index f9775c7..a610e15 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_data.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_data.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_disk.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_disk.3.html
similarity index 94%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_disk.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_disk.3.html
index ac1e306..c1dc2d6 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_disk.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_disk.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -188,13 +188,11 @@ is not restored.
archive_read_disk_set_symlink_hybrid()
This sets the mode used for
-handling symbolic links. The
-’’logical’’ mode follows all
-symbolic links. The ’’physical’’
-mode does not follow any symbolic links. The
-’’hybrid’’ mode currently behaves
-identically to the ’’logical’’
-mode.
+handling symbolic links. The “logical” mode
+follows all symbolic links. The “physical” mode
+does not follow any symbolic links. The “hybrid”
+mode currently behaves identically to the
+“logical” mode.
archive_read_disk_gname(),
@@ -348,11 +346,10 @@ was written by Tim Kientzle
BUGS
-
The
-’’standard’’ user name and group
-name lookup functions are not the defaults because
-getgrgid(3) and getpwuid(3) are sometimes too large for
-particular applications. The current design allows the
+
The “standard” user
+name and group name lookup functions are not the defaults
+because getgrgid(3) and getpwuid(3) are sometimes too large
+for particular applications. The current design allows the
application author to use a more compact implementation when
appropriate.
@@ -371,9 +368,8 @@ such information.
This API should
provide a set of methods for walking a directory tree. That
would make it a direct parallel of the archive_read(3) API.
-When such methods are implemented, the
-’’hybrid’’ symbolic link mode will
-make sense.
+When such methods are implemented, the “hybrid”
+symbolic link mode will make sense.
BSD
April 3, 2017 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_extract.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_extract.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_extract.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_extract.3.html
index 6c41457..c98352c 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_extract.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_extract.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_filter.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_filter.3.html
similarity index 89%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_filter.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_filter.3.html
index b7f240f..d38e9df 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_filter.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_filter.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -59,6 +59,12 @@ functions for reading streaming archives
@@ -156,14 +162,22 @@ functions may fall back on external programs if an
appropriate library was not available at build time.
Decompression using an external program is usually slower
than decompression through built-in libraries. Note that
-’’none’’ is always enabled by
-default.
+“none” is always enabled by default.
archive_read_support_filter_all()
Enables all available
decompression filters.
+
archive_read_support_filter_by_code()
+
+
Enables a single filter
+specified by the filter code. This function does not work
+with ARCHIVE_FILTER_PROGRAM. Note: In
+statically-linked executables, this will cause your program
+to include support for every filter. If executable size is a
+concern, you may wish to avoid using this function.
+
archive_read_support_filter_program()
Data is fed through the
@@ -202,8 +216,8 @@ and archive_error_string() functions.
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_format.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_format.3.html
similarity index 92%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_format.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_format.3.html
index 197fc23..cbc8261 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_format.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_format.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -153,8 +153,8 @@ variants.
archive_read_support_format_all()
Enables support for all
-available formats except the ’’raw’’
-format (see below).
+available formats except the “raw” format (see
+below).
archive_read_support_format_by_code()
@@ -179,11 +179,10 @@ distinct format.
archive_read_support_format_raw()
-
The
-’’raw’’ format handler allows
-libarchive to be used to read arbitrary data. It treats any
-data stream as an archive with a single entry. The pathname
-of this entry is ’’data’’; all other
+
The “raw” format
+handler allows libarchive to be used to read arbitrary data.
+It treats any data stream as an archive with a single entry.
+The pathname of this entry is “data”; all other
entry fields are unset. This is not enabled by
archive_read_support_format_all() in order to avoid
erroneous handling of damaged archives.
@@ -213,12 +212,11 @@ example, many implementations of tar(1) allow you to append
entries to an empty file. Of course, it is impossible to
determine the format of an empty file by inspecting the
contents, so this library treats empty files as having a
-special ’’empty’’ format.
+special “empty” format.
Using the
-’’raw’’ handler together with any
-other handler will often work but can produce surprising
-results.
+“raw” handler together with any other handler
+will often work but can produce surprising results.
BSD
February 2, 2012 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_free.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_free.3.html
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_free.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_free.3.html
index d16f30a..2f54cca 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_free.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_free.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_header.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_header.3.html
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_header.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_header.3.html
index a1a0dd4..e6711d6 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_header.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_header.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_new.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_new.3.html
similarity index 95%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_new.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_new.3.html
index 6841a05..3cd3b64 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_new.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_new.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_open.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_open.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_open.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_open.3.html
index 25ade61..0ed14df 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_open.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_open.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_read_set_options.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_read_set_options.3.html
similarity index 92%
rename from dependencies/libarchive-3.4.2/doc/html/archive_read_set_options.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_read_set_options.3.html
index 861fb2c..ce14464 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_read_set_options.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_read_set_options.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -142,7 +142,7 @@ option with this name will ignore it.
The option will
be provided to every module with a value of
-’’1’’.
+“1”.
!option
@@ -165,12 +165,26 @@ character set name that will be used when translating file
names.
Format cpio
-hdrcharset
+compat-2x
+
+
Libarchive 2.x incorrectly
+encoded Unicode filenames on some platforms. This option
+mimics the libarchive 2.x filename handling so that such
+archives can be read correctly.
+
+
hdrcharset
The value is used as a
character set name that will be used when translating file
names.
+
pwb
+
+
When reading a
+binary CPIO archive, assume that it is in the original PWB
+cpio format, and handle file mode bits accordingly. The
+default is to assume v7 format.
+
Format iso9660
joliet
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_util.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_util.3.html
similarity index 92%
rename from dependencies/libarchive-3.4.2/doc/html/archive_util.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_util.3.html
index d8701fb..acd2ee7 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_util.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_util.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -253,23 +253,14 @@ This function should be used within I/O callbacks to set
system-specific error codes and error descriptions. This
function accepts a printf-like format string and arguments.
However, you should be careful to use only the following
-printf format specifiers: ’’%c’’,
-’’%d’’,
-’’%jd’’,
-’’%jo’’,
-’’%ju’’,
-’’%jx’’,
-’’%ld’’,
-’’%lo’’,
-’’%lu’’,
-’’%lx’’,
-’’%o’’,
-’’%u’’,
-’’%s’’,
-’’%x’’,
-’’%%’’. Field-width specifiers and
-other printf features are not uniformly supported and should
-not be used.
+printf format specifiers: “%c”,
+“%d”, “%jd”, “%jo”,
+“%ju”, “%jx”, “%ld”,
+“%lo”, “%lu”, “%lx”,
+“%o”, “%u”, “%s”,
+“%x”, “%%”. Field-width specifiers
+and other printf features are not uniformly supported and
+should not be used.
SEE ALSO
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write.3.html
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write.3.html
index ccc5830..9657293 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -274,11 +274,11 @@ limitations and provides a generic key/value attribute
facility for vendor-defined extensions. One oversight in
POSIX is the failure to provide a standard attribute for
large device numbers. This library uses
-’’SCHILY.devminor’’ and
-’’SCHILY.devmajor’’ for device
-numbers that exceed the range supported by the
-backwards-compatible ustar header. These keys are compatible
-with Joerg Schilling’s star archiver. Other
+“SCHILY.devminor” and
+“SCHILY.devmajor” for device numbers that exceed
+the range supported by the backwards-compatible ustar
+header. These keys are compatible with Joerg
+Schilling’s star archiver. Other
implementations may not recognize these keys and will thus
be unable to correctly restore device nodes with large
device numbers from archives created by this library.
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_blocksize.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_blocksize.3.html
similarity index 95%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write_blocksize.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write_blocksize.3.html
index 5548a0a..e87406f 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write_blocksize.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_blocksize.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -97,8 +97,8 @@ compression. The uncompressed data is always unpadded. The
default is to pad the last block to the full block size
(note that archive_write_open_filename() will set
this based on the file type). Unlike the other
-’’set’’ functions, this function can
-be called after the archive is opened.
+“set” functions, this function can be called
+after the archive is opened.
archive_write_get_bytes_in_last_block()
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_data.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_data.3.html
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write_data.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write_data.3.html
index 9984207..3a6c693 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write_data.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_data.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_disk.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_disk.3.html
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write_disk.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write_disk.3.html
index 6936137..9d8aaad 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write_disk.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_disk.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -358,12 +358,11 @@ of the final object happen to match those specified in the
entry.
The
-’’standard’’ user-id and group-id
-lookup functions are not the defaults because getgrnam(3)
-and getpwnam(3) are sometimes too large for particular
-applications. The current design allows the application
-author to use a more compact implementation when
-appropriate.
+“standard” user-id and group-id lookup functions
+are not the defaults because getgrnam(3) and getpwnam(3) are
+sometimes too large for particular applications. The current
+design allows the application author to use a more compact
+implementation when appropriate.
There should be
a corresponding archive_read_disk interface that
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_filter.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_filter.3.html
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write_filter.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write_filter.3.html
index 9444515..a1b24ef 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write_filter.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_filter.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_finish_entry.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_finish_entry.3.html
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write_finish_entry.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write_finish_entry.3.html
index c3b6eda..843e0b0 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write_finish_entry.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_finish_entry.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_format.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_format.3.html
similarity index 90%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write_format.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write_format.3.html
index fbdff7b..50f5bd1 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write_format.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_format.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -33,7 +33,10 @@ ARCHIVE_WRITE_FORMAT(3)
@@ -87,6 +97,14 @@ compression layer to write the constructed archive. This
does not alter the default archive padding.
+
archive_write_open2()
+
+
Same as
+archive_write_open() with an additional fourth free
+callback. This function should be preferred to
+archive_write_open().
+
+
archive_write_open_fd()
A convenience form of
@@ -115,9 +133,8 @@ require correct blocking.
A convenience form of
archive_write_open() that accepts a filename. A NULL
argument indicates that the output should be written to
-standard output; an argument of
-’’-’’ will open a file with that
-name. If you have not invoked
+standard output; an argument of “-” will open a
+file with that name. If you have not invoked
archive_write_set_bytes_in_last_block(), then
archive_write_open_filename() will adjust the
last-block padding depending on the file: it will enable
@@ -125,7 +142,7 @@ padding when writing to standard output or to a character or
block device node, it will disable padding otherwise. You
can override this by manually invoking
archive_write_set_bytes_in_last_block() before
-calling archive_write_open(). The
+calling archive_write_open2(). The
archive_write_open_filename() function is safe for
use with tape drives or other block-oriented devices.
@@ -133,7 +150,7 @@ use with tape drives or other block-oriented devices.
archive_write_open_memory()
A convenience form of
-archive_write_open() that accepts a pointer to a
+archive_write_open2() that accepts a pointer to a
block of memory that will receive the archive. The final
size_t * argument points to a variable that will be
updated after each write to reflect how much of the buffer
@@ -158,7 +175,7 @@ behavior.
need to define and register callback functions that will be
invoked to write data to the resulting archive. These
functions are registered by calling
-archive_write_open():
+archive_write_open2():
typedef
intarchive_open_callback(struct archive
@@ -169,7 +186,10 @@ callback is invoked by archive_write_open(). It
should return ARCHIVE_OK if the underlying file or
data source is successfully opened. If the open fails, it
should call archive_set_error() to register an error
-code and message and return ARCHIVE_FATAL.
+code and message and return ARCHIVE_FATAL. Please
+note that if open fails, close is not called and resources
+must be freed inside the open callback or with the free
+callback.
typedef
la_ssize_t
@@ -197,10 +217,19 @@ int archive_close_callback(struct archive
The close
callback is invoked by archive_close when the archive
-processing is complete. The callback should return
+processing is complete. If the open callback fails, the
+close callback is not invoked. The callback should return
ARCHIVE_OK on success. On failure, the callback
should invoke archive_set_error() to register an
-error code and message and return ARCHIVE_FATAL.
The free
+callback is always invoked on archive_free. The return code
+of this callback is not processed.
Note that if the
client-provided write callback function returns a non-zero
@@ -234,7 +263,7 @@ archive_write_set_options(3), libarchive(3), cpio(5),
mtree(5), tar(5)
BSD
-February 2, 2012 BSD
+November 12, 2020 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_set_options.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_set_options.3.html
similarity index 91%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write_set_options.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write_set_options.3.html
index e000e25..1c23d5e 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write_set_options.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_set_options.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -138,7 +138,7 @@ option with this name will ignore it.
The option will
be provided to every module with a value of
-’’1’’.
+“1”.
!option
@@ -187,11 +187,9 @@ enabled by default.
compression=type
Use type as compression
-method. Supported values are
-’’bzip2’’,
-’’gzipi’’,
-’’lzo’’ (ultra fast), and
-’’zpaq’’ (best, extremely slow).
+method. Supported values are “bzip2”,
+“gzipi”, “lzo” (ultra fast), and
+“zpaq” (best, extremely slow).
compression-level
@@ -265,19 +263,17 @@ compression-level
The value is interpreted as a
decimal integer specifying the compression level. Supported
-values are from 1 to 22.
+values depend on the library version, common values are from
+1 to 22.
Format 7zip
compression
The value is one of
-’’store’’,
-’’deflate’’,
-’’bzip2’’,
-’’lzma1’’,
-’’lzma2’’ or
-’’ppmd’’ to indicate how the
-following entries should be compressed. Note that this
+“store”, “deflate”,
+“bzip2”, “lzma1”,
+“lzma2” or “ppmd” to indicate how
+the following entries should be compressed. Note that this
setting is ignored for directories, symbolic links, and
other special entries.
@@ -289,7 +285,7 @@ between 0 and 9 are supported. The interpretation of the
compression level depends on the chosen compression
method.
-
Format cpio
+
Format bin
hdrcharset
The value is used as a
@@ -598,8 +594,8 @@ cksum, device, flags, gid,
Enable a particular keyword in
the mtree output. Prefix with an exclamation mark to disable
the corresponding keyword. The default is equivalent to
-’’device, flags, gid, gname, link, mode, nlink,
-size, time, type, uid, uname’’.
@@ -624,29 +620,38 @@ hdrcharset
character set name that will be used when translating file
names.
+
Format odc
+hdrcharset
+
+
The value is used as a
+character set name that will be used when translating file
+names.
+
+
Format pwb
+hdrcharset
+
+
The value is used as a
+character set name that will be used when translating file
+names.
+
Format pax
hdrcharset
The value is used as a
character set name that will be used when translating file,
group and user names. The value is one of
-’’BINARY’’ or
-’’UTF-8’’. With
-’’BINARY’’ there is no character
-conversion, with ’’UTF-8’’ names are
-converted to UTF-8.
+“BINARY” or “UTF-8”. With
+“BINARY” there is no character conversion, with
+“UTF-8” names are converted to UTF-8.
xattrheader
When storing extended
attributes, this option configures which headers should be
-written. The value is one of
-’’all’’,
-’’LIBARCHIVE’’, or
-’’SCHILY’’. By default, both
-’’LIBARCHIVE.xattr’’ and
-’’SCHILY.xattr’’ headers are
-written.
+written. The value is one of “all”,
+“LIBARCHIVE”, or “SCHILY”. By
+default, both “LIBARCHIVE.xattr” and
+“SCHILY.xattr” headers are written.
Format ustar
hdrcharset
@@ -665,28 +670,22 @@ group and user names.
Format warc
omit-warcinfo
-
Set to
-’’true’’ to disable output of the
-warcinfo record.
+
Set to “true” to
+disable output of the warcinfo record.
Format xar
checksum=type
Use type as file
-checksum method. Supported values are
-’’none’’,
-’’md5’’, and
-’’sha1’’ (default).
+checksum method. Supported values are “none”,
+“md5”, and “sha1” (default).
compression=type
Use type as compression
-method. Supported values are
-’’none’’,
-’’bzip2’’,
-’’gzip’’ (default),
-’’lzma’’ and
-’’xz’’.
+method. Supported values are “none”,
+“bzip2”, “gzip” (default),
+“lzma” and “xz”.
compression_level
@@ -697,17 +696,15 @@ from 1 to 9 specifying the compression level.
Use type as table of
contents checksum method. Supported values are
-’’none’’,
-’’md5’’ and
-’’sha1’’ (default).
+“none”, “md5” and “sha1”
+(default).
Format zip
compression
The value is either
-’’store’’ or
-’’deflate’’ to indicate how the
-following entries should be compressed. Note that this
+“store” or “deflate” to indicate how
+the following entries should be compressed. Note that this
setting is ignored for directories, symbolic links, and
other special entries.
@@ -716,10 +713,9 @@ other special entries.
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
-’’store’’, other values will enable
-’’deflate’’ compression with the
-given level.
+switches the compression method to “store”,
+other values will enable “deflate” compression
+with the given level.
encryption
@@ -729,11 +725,10 @@ traditional zip encryption.
encryption=type
Use type as encryption
-type. Supported values are
-’’zipcrypt’’ (traditional zip
-encryption), ’’aes128’’ (WinZip
-AES-128 encryption) and ’’aes256’’
-(WinZip AES-256 encryption).
+type. Supported values are “zipcrypt”
+(traditional zip encryption), “aes128” (WinZip
+AES-128 encryption) and “aes256” (WinZip AES-256
+encryption).
experimental
diff --git a/dependencies/libarchive-3.4.2/doc/html/archive_write_set_passphrase.3.html b/dependencies/libarchive-3.5.2/doc/html/archive_write_set_passphrase.3.html
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/html/archive_write_set_passphrase.3.html
rename to dependencies/libarchive-3.5.2/doc/html/archive_write_set_passphrase.3.html
index f8c765b..30734c9 100644
--- a/dependencies/libarchive-3.4.2/doc/html/archive_write_set_passphrase.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/archive_write_set_passphrase.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/bsdcpio.1.html b/dependencies/libarchive-3.5.2/doc/html/bsdcpio.1.html
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/html/bsdcpio.1.html
rename to dependencies/libarchive-3.5.2/doc/html/bsdcpio.1.html
index 862e8fe..d68897c 100644
--- a/dependencies/libarchive-3.4.2/doc/html/bsdcpio.1.html
+++ b/dependencies/libarchive-3.5.2/doc/html/bsdcpio.1.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -81,6 +81,18 @@ modes.
characters instead of newlines. This is necessary if any of
the filenames being read might contain newlines.
+
-6, --pwb
+
+
When reading a binary format
+archive, assume it’s the earlier one, from the PWB
+variant of 6th Edition UNIX. When writing a cpio archive,
+use the PWB format.
+
+
-7, --binary
+
+
(o mode only) When writing a
+cpio archive, use the (newer, non-PWB) binary format.
+
-A
(o mode only)
@@ -430,10 +442,9 @@ pattern:
This example
copies files from src to dest that are more
-than 2 days old and which contain the word
-’’
There is no current POSIX
standard for the cpio command; it appeared in ISO/IEC
-9945-1:1996 (’’POSIX.1’’) but was
-dropped from IEEE Std 1003.1-2001
-(’’POSIX.1’’).
+9945-1:1996 (“POSIX.1”) but was dropped from
+IEEE Std 1003.1-2001 (“POSIX.1”).
The cpio, ustar,
and pax interchange file formats are defined by IEEE Std
-1003.1-2001 (’’POSIX.1’’) for the
-pax command.
+1003.1-2001 (“POSIX.1”) for the pax command.
HISTORY
@@ -482,12 +491,12 @@ pax command.
find utilities were written by Dick Haight while
working in AT&T’s Unix Support Group. They first
appeared in 1977 in PWB/UNIX 1.0, the
-’’Programmer’s Work Bench’’
-system developed for use within AT&T. They were first
-released outside of AT&T as part of System III Unix in
-1981. As a result, cpio actually predates tar,
-even though it was not well-known outside of AT&T until
-some time later.
+“Programmer’s Work Bench” system developed
+for use within AT&T. They were first released outside of
+AT&T as part of System III Unix in 1981. As a result,
+cpio actually predates tar, even though it was
+not well-known outside of AT&T until some time
+later.
This is a
complete re-implementation based on the libarchive(3)
@@ -502,8 +511,8 @@ to transfer files between systems with dissimilar user and
group numbering. Older cpio formats limit the user and group
numbers to 16 or 18 bits, which is insufficient for modern
systems. The cpio archive formats cannot support files over
-4 gigabytes, except for the ’’odc’’
-variant, which can support files up to 8 gigabytes.
+4 gigabytes, except for the “odc” variant, which
+can support files up to 8 gigabytes.
BSD
September 16, 2014 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/html/bsdtar.1.html b/dependencies/libarchive-3.5.2/doc/html/bsdtar.1.html
similarity index 95%
rename from dependencies/libarchive-3.4.2/doc/html/bsdtar.1.html
rename to dependencies/libarchive-3.5.2/doc/html/bsdtar.1.html
index fbcf26a..7ae3e72 100644
--- a/dependencies/libarchive-3.4.2/doc/html/bsdtar.1.html
+++ b/dependencies/libarchive-3.5.2/doc/html/bsdtar.1.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -32,9 +32,9 @@ tape archives
tar
[bundled-flags 〈
-
args 〉] [〈
-file 〉 | 〈
-pattern 〉 ...]
+
args 〉 ] [〈
+file 〉 | 〈
+pattern 〉 ...]
tar {-c}
[options]
@@ -54,10 +54,9 @@ and ISO 9660 cdrom images and can create tar, pax, cpio, ar,
zip, 7-zip, and shar archives.
The first
-synopsis form shows a ’’bundled’’
-option word. This usage is provided for compatibility with
-historical implementations. See COMPATIBILITY below for
-details.
+synopsis form shows a “bundled” option word.
+This usage is provided for compatibility with historical
+implementations. See COMPATIBILITY below for details.
The other
synopsis forms show the preferred usage. The first option to
@@ -176,9 +175,9 @@ format,
tar -a -jcfarchive.tgz source.c source.h
-
ignores the
-’’-j’’ option, and creates a new
-archive with restricted pax format and gzip compression,
+
ignores the “-j”
+option, and creates a new archive with restricted pax format
+and gzip compression,
tar -a -jcfarchive.xxx source.c source.h
@@ -265,15 +264,13 @@ mode as root.
(c, r, u mode only) Use the
specified format for the created archive. Supported formats
-include ’’cpio’’,
-’’pax’’,
-’’shar’’, and
-’’ustar’’. Other formats may also be
-supported; see libarchive-formats(5) for more information
-about currently-supported formats. In r and u modes, when
-extending an existing archive, the format specified here
-must be compatible with the format of the existing archive
-on disk.
+include “cpio”, “pax”,
+“shar”, and “ustar”. Other formats
+may also be supported; see libarchive-formats(5) for more
+information about currently-supported formats. In r and u
+modes, when extending an existing archive, the format
+specified here must be compatible with the format of the
+existing archive on disk.
-ffile,
--filefile
@@ -735,8 +732,9 @@ improve compression ratio.
zstd:compression-level
-
A decimal integer from 1 to 22
-specifying the zstd compression level.
+
A decimal integer specifying
+the zstd compression level. Supported values depend on the
+library version, common values are from 1 to 22.
lzop:compression-level
@@ -758,8 +756,8 @@ output. Supported keywords include: cksum,
nlink, rmd160, sha1, sha256,
sha384, sha512, size, time,
uid, uname. The default is equivalent to:
-’’device, flags, gid, gname, link, mode, nlink,
-size, time, type, uid, uname’’.
+“device, flags, gid, gname, link, mode, nlink, size,
+time, type, uid, uname”.
mtree:all
@@ -929,13 +927,12 @@ checks.
In x or t mode, tar will
read the list of names to be extracted from filename.
In c mode, tar will read names to be archived from
-filename. The special name
-’’-C’’ on a line by itself will
-cause the current directory to be changed to the directory
-specified on the following line. Names are terminated by
-newlines unless --null is specified. Note that
---null also disables the special handling of lines
-containing ’’-C’’. Note: If you are
+filename. The special name “-C” on a line
+by itself will cause the current directory to be changed to
+the directory specified on the following line. Names are
+terminated by newlines unless --null is specified.
+Note that --null also disables the special handling
+of lines containing “-C”. Note: If you are
generating lists of files using find(1), you probably want
to use -n as well.
@@ -1152,10 +1149,9 @@ $ tar -cvf output.tar @input.mtree
The
--newer and --newer-mtime switches accept a
variety of common date and time specifications, including
-’’12 Mar 2005 7:14:29pm’’,
-’’2005-03-12 19:14’’,
-’’5 minutes ago’’, and
-’’19:14 PST May 1’’.
+“12 Mar 2005 7:14:29pm”, “2005-03-12
+19:14”, “5 minutes ago”, and “19:14
+PST May 1”.
The
--options argument can be used to control various
@@ -1283,18 +1279,16 @@ libarchive-formats(5), tar(5)
There is no current POSIX
standard for the tar command; it appeared in ISO/IEC
-9945-1:1996 (’’POSIX.1’’) but was
-dropped from IEEE Std 1003.1-2001
-(’’POSIX.1’’). The options supported
-by this implementation were developed by surveying a number
-of existing tar implementations as well as the old POSIX
-specification for tar and the current POSIX specification
-for pax.
+9945-1:1996 (“POSIX.1”) but was dropped from
+IEEE Std 1003.1-2001 (“POSIX.1”). The options
+supported by this implementation were developed by surveying
+a number of existing tar implementations as well as the old
+POSIX specification for tar and the current POSIX
+specification for pax.
The ustar and
pax interchange file formats are defined by IEEE Std
-1003.1-2001 (’’POSIX.1’’) for the
-pax command.
+1003.1-2001 (“POSIX.1”) for the pax command.
HISTORY
@@ -1315,9 +1309,9 @@ library. It was first released with FreeBSD 5.4 in May,
BUGS
This program follows ISO/IEC
-9945-1:1996 (’’POSIX.1’’) for the
-definition of the -l option. Note that GNU tar prior
-to version 1.15 treated -l as a synonym for the
+9945-1:1996 (“POSIX.1”) for the definition of
+the -l option. Note that GNU tar prior to version
+1.15 treated -l as a synonym for the
--one-file-system option.
The -C
diff --git a/dependencies/libarchive-3.4.2/doc/html/cpio.5.html b/dependencies/libarchive-3.5.2/doc/html/cpio.5.html
similarity index 50%
rename from dependencies/libarchive-3.4.2/doc/html/cpio.5.html
rename to dependencies/libarchive-3.5.2/doc/html/cpio.5.html
index de28c5c..672be05 100644
--- a/dependencies/libarchive-3.4.2/doc/html/cpio.5.html
+++ b/dependencies/libarchive-3.5.2/doc/html/cpio.5.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -46,69 +46,47 @@ those integers (binary, octal, or hexadecimal). The header
is followed by the pathname of the entry (the length of the
pathname is stored in the header) and any file data. The end
of the archive is indicated by a special record with the
-pathname ’’TRAILER!!!’’.
+pathname “TRAILER!!!”.
PWB
format
-XXX Any documentation of the original PWB/UNIX 1.0 format?
-XXX
-
-
Old Binary
-Format
-The old binary cpio format stores numbers as 2-byte
-and 4-byte binary values. Each entry begins with a header in
-the following format:
+The PWB binary cpio format is the original format,
+when cpio was introduced as part of the Programmer’s
+Work Bench system, a variant of 6th Edition UNIX. It stores
+numbers as 2-byte and 4-byte binary values. Each entry
+begins with a header in the following format:
struct
-header_old_cpio {
-unsigned short c_magic;
-unsigned short c_dev;
-unsigned short c_ino;
-unsigned short c_mode;
-unsigned short c_uid;
-unsigned short c_gid;
-unsigned short c_nlink;
-unsigned short c_rdev;
The short
+fields here are 16-bit integer values, while the long
+fields are 32 bit integers. Since PWB UNIX, like the 6th
+Edition UNIX it was based on, only ran on PDP-11 computers,
+they are in PDP-endian format, which has little-endian
+shorts, and big-endian longs. That is, the long integer
+whose hexadecimal representation is 0x12345678 would be
+stored in four successive bytes as 0x34, 0x12, 0x78, 0x56.
+The fields are as follows:
+
h_magic
-
unsigned short c_mtime[2];
-
-
-
+
The integer value octal
+070707.
-
unsigned short c_namesize;
-
-
-
-
-
-
-
-
unsigned short c_filesize[2];
-
-
-
};
-
-
The unsigned
-short fields here are 16-bit integer values; the
-unsigned int fields are 32-bit integer values. The
-fields are as follows
-
-
magic
-
-
The integer
-value octal 070707. This value can be used to determine
-whether this archive is written with little-endian or
-big-endian integers.
-
-
dev, ino
+
h_dev, h_ino
The device and inode numbers
from the disk. These are used by programs that read
@@ -117,37 +95,27 @@ the same file. Programs that synthesize cpio archives
should be careful to set these to distinct values for each
entry.
-
mode
+
h_mode
The mode
-specifies both the regular permissions and the file type. It
-consists of several bit fields as follows:
+specifies both the regular permissions and the file type,
+and it also holds a couple of bits that are irrelevant to
+the cpio format, because the field is actually a raw copy of
+the mode field in the inode representing the file. These are
+the IALLOC flag, which shows that the inode entry is in use,
+and the ILARG flag, which shows that the file it represents
+is large enough to have indirect blocks pointers in the
+inode. The mode is decoded as follows:
-
0170000
+
0100000
-
This masks the
-file type bits.
-
-
0140000
-
-
File type value
-for sockets.
-
-
0120000
-
-
File type value
-for symbolic links. For symbolic links, the link body is
-stored as file data.
-
-
0100000
-
-
File type value
-for regular files.
+
IALLOC flag -
+irrelevant to cpio.
0060000
-
File type value
-for block special devices.
+
This masks the
+file type bits.
0040000
@@ -159,10 +127,15 @@ for directories.
File type value
for character special devices.
-
0010000
+
0060000
File type value
-for named pipes or FIFOs.
+for block special devices.
+
+
0010000
+
+
ILARG flag -
+irrelevant to cpio.
0004000
@@ -174,9 +147,7 @@ for named pipes or FIFOs.
0001000
-
Sticky bit. On
-some systems, this modifies the behavior of executables
-and/or directories.
+
Sticky bit.
0000777
@@ -184,68 +155,166 @@ and/or directories.
bits specify read/write/execute permissions for world,
group, and user following standard POSIX conventions.
-
uid, gid
+
h_uid, h_gid
The numeric user id and group
id of the owner.
-
nlink
+
h_nlink
-
The number of
-links to this file. Directories always have a value of at
-least two here. Note that hardlinked files include file data
-with every copy in the archive.
+
The number of links to this
+file. Directories always have a value of at least two here.
+Note that hardlinked files include file data with every copy
+in the archive.
-
rdev
+
h_majmin
-
For block
-special and character special entries, this field contains
-the associated device number. For all other entry types, it
+
For block special and character
+special entries, this field contains the associated device
+number, with the major number in the high byte, and the
+minor number in the low byte. For all other entry types, it
should be set to zero by writers and ignored by readers.
-
mtime
+
h_mtime
-
Modification
-time of the file, indicated as the number of seconds since
-the start of the epoch, 00:00:00 UTC January 1, 1970. The
-four-byte integer is stored with the most-significant 16
-bits first followed by the least-significant 16 bits. Each
-of the two 16 bit values are stored in machine-native byte
-order.
+
Modification time of the file,
+indicated as the number of seconds since the start of the
+epoch, 00:00:00 UTC January 1, 1970.
-
namesize
+
h_namesize
The number of bytes in the
pathname that follows the header. This count includes the
trailing NUL byte.
-
filesize
+
h_filesize
The size of the file. Note that
-this archive format is limited to four gigabyte file sizes.
-See mtime above for a description of the storage of
-four-byte integers.
+this archive format is limited to 16 megabyte file sizes,
+because PWB UNIX, like 6th Edition, only used an unsigned 24
+bit integer for the file size internally.
The pathname
-immediately follows the fixed header. If the namesize
+immediately follows the fixed header. If h_namesize
is odd, an additional NUL byte is added after the pathname.
-The file data is then appended, padded with NUL bytes to an
-even length.
+The file data is then appended, again with an additional NUL
+appended if needed to get the next header at an even
+offset.
Hardlinked files
are not given special treatment; the full file contents are
included with each copy of the file.
+
New Binary
+Format
+The new binary cpio format showed up when cpio was
+adopted into late 7th Edition UNIX. It is exactly like the
+PWB binary format, described above, except for three
+changes:
+
+
First, UNIX now
+ran on more than one hardware type, so the endianness of 16
+bit integers must be determined by observing the magic
+number at the start of the header. The 32 bit integers are
+still always stored with the most significant word first,
+though, so each of those two, in the struct shown above, was
+stored as an array of two 16 bit integers, in the
+traditional order. Those 16 bit integers, like all the
+others in the struct, were accessed using a macro that byte
+swapped them if necessary.
+
+
Next, 7th
+Edition had more file types to store, and the IALLOC and
+ILARG flag bits were re-purposed to accommodate these. The
+revised use of the various bits is as follows:
+
+
0170000
+
+
This masks the
+file type bits.
+
+
0140000
+
+
File type value
+for sockets.
+
+
0120000
+
+
File type value
+for symbolic links. For symbolic links, the link body is
+stored as file data.
+
+
0100000
+
+
File type value
+for regular files.
+
+
0060000
+
+
File type value
+for block special devices.
+
+
0040000
+
+
File type value
+for directories.
+
+
0020000
+
+
File type value
+for character special devices.
+
+
0010000
+
+
File type value
+for named pipes or FIFOs.
+
+
0004000
+
+
SUID bit.
+
+
0002000
+
+
SGID bit.
+
+
0001000
+
+
Sticky bit.
+
+
0000777
+
+
The lower 9
+bits specify read/write/execute permissions for world,
+group, and user following standard POSIX conventions.
+
+
Finally, the
+file size field now represents a signed 32 bit integer in
+the underlying file system, so the maximum file size has
+increased to 2 gigabytes.
+
+
Note that there
+is no obvious way to tell which of the two binary formats an
+archive uses, other than to see which one makes more sense.
+The typical error scenario is that a PWB format archive
+unpacked as if it were in the new format will create named
+sockets instead of directories, and then fail to unpack
+files that should go in those directories. Running
+bsdcpio -itv on an unknown archive will make it
+obvious which it is: if it’s PWB format, directories
+will be listed with an ’s’ instead of a
+’d’ as the first character of the mode string,
+and the larger files will have a ’?’ in that
+position.
+
Portable
ASCII Format
Version 2 of the Single UNIX Specification
-(’’SUSv2’’) standardized an ASCII
-variant that is portable across all platforms. It is
-commonly known as the ’’old
-character’’ format or as the
-’’odc’’ format. It stores the same
-numeric fields as the old binary format, but represents them
-as 6-character or 11-character octal values.
+(“SUSv2”) standardized an ASCII variant that is
+portable across all platforms. It is commonly known as the
+“old character” format or as the
+“odc” format. It stores the same numeric fields
+as the old binary format, but represents them as 6-character
+or 11-character octal values.
The fields are
-identical to those in the old binary format. The name and
-file body follow the fixed header. Unlike the old binary
-format, there is no additional padding after the pathname or
-file contents. If the files being archived are themselves
+identical to those in the new binary format. The name and
+file body follow the fixed header. Unlike the binary
+formats, there is no additional padding after the pathname
+or file contents. If the files being archived are themselves
entirely ASCII, then the resulting archive will be entirely
ASCII, except for the NUL byte that terminates the name
field.
@@ -297,12 +366,12 @@ char c_check[8];
Except as
specified below, the fields here match those specified for
-the old binary format above.
+the new binary format above.
magic
The string
-’’070701’’.
+“070701”.
check
@@ -319,18 +388,18 @@ ASCII format, which supports 8 gigabyte files).
In this format,
hardlinked files are handled by setting the filesize to zero
-for each entry except the last one that appears in the
+for each entry except the first one that appears in the
archive.
New CRC
Format
The CRC format is identical to the new ASCII format
described in the previous section except that the magic
-field is set to ’’070702’’ and the
-check field is set to the sum of all bytes in the
-file data. This sum is computed treating all bytes as
-unsigned values and using unsigned arithmetic. Only the
-least-significant 32 bits of the sum are stored.
+field is set to “070702” and the check
+field is set to the sum of all bytes in the file data. This
+sum is computed treating all bytes as unsigned values and
+using unsigned arithmetic. Only the least-significant 32
+bits of the sum are stored.
HP
variants
@@ -355,39 +424,37 @@ XXX
The cpio utility is no
longer a part of POSIX or the Single Unix Standard. It last
appeared in Version 2 of the Single UNIX Specification
-(’’SUSv2’’). It has been supplanted
-in subsequent standards by pax(1). The portable ASCII format
-is currently part of the specification for the pax(1)
-utility.
+(“SUSv2”). It has been supplanted in subsequent
+standards by pax(1). The portable ASCII format is currently
+part of the specification for the pax(1) utility.
HISTORY
The original cpio utility was
written by Dick Haight while working in AT&T’s
Unix Support Group. It appeared in 1977 as part of PWB/UNIX
-1.0, the ’’Programmer’s Work
-Bench’’ derived from Version 6 AT&T
-UNIX that was used internally at AT&T. Both the old
-binary and old character formats were in use by 1980,
-according to the System III source released by SCO under
-their ’’Ancient Unix’’ license. The
-character format was adopted as part of IEEE Std 1003.1-1988
-(’’POSIX.1’’). XXX when did
+1.0, the “Programmer’s Work Bench” derived
+from AT&T UNIX 6th Edition UNIX that was used internally
+at AT&T. Both the new binary and old character formats
+were in use by 1980, according to the System III source
+released by SCO under their “Ancient Unix”
+license. The character format was adopted as part of IEEE
+Std 1003.1-1988 (“POSIX.1”). XXX when did
"newc" appear? Who invented it? When did HP come
out with their variant? When did Sun introduce ACLs and
extended attributes? XXX
BUGS
-
The
-’’CRC’’ format is mis-named, as it
-uses a simple checksum and not a cyclic redundancy
-check.
+
The “CRC” format is
+mis-named, as it uses a simple checksum and not a cyclic
+redundancy check.
-
The old binary
-format is limited to 16 bits for user id, group id, device,
-and inode numbers. It is limited to 4 gigabyte file
-sizes.
+
The binary
+formats are limited to 16 bits for user id, group id,
+device, and inode numbers. They are limited to 16 megabyte
+and 2 gigabyte file sizes for the older and newer variants,
+respectively.
The old ASCII
format is limited to 18 bits for the user id, group id,
diff --git a/dependencies/libarchive-3.4.2/doc/html/libarchive-formats.5.html b/dependencies/libarchive-3.5.2/doc/html/libarchive-formats.5.html
similarity index 84%
rename from dependencies/libarchive-3.4.2/doc/html/libarchive-formats.5.html
rename to dependencies/libarchive-3.5.2/doc/html/libarchive-formats.5.html
index 345c300..037207b 100644
--- a/dependencies/libarchive-3.4.2/doc/html/libarchive-formats.5.html
+++ b/dependencies/libarchive-3.5.2/doc/html/libarchive-formats.5.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -34,9 +34,9 @@ library
The libarchive(3) library reads
and writes a variety of streaming archive formats. Generally
speaking, all of these archive formats consist of a series
-of ’’entries’’. Each entry stores a
-single file system object, such as a file, directory, or
-symbolic link.
+of “entries”. Each entry stores a single file
+system object, such as a file, directory, or symbolic
+link.
The following
provides a brief description of each format supported by
@@ -52,10 +52,9 @@ all supported formats.
Tar
Formats
The libarchive(3) library can read most tar archives. It can
-write POSIX-standard ’’ustar’’ and
-’’pax interchange’’ formats as well
-as v7 tar format and a subset of the legacy GNU tar
-format.
+write POSIX-standard “ustar” and “pax
+interchange” formats as well as v7 tar format and a
+subset of the legacy GNU tar format.
All tar formats
store each entry in one or more 512-byte records. The first
@@ -99,11 +98,10 @@ standard are in all lowercase; vendors are allowed to define
custom keys by preceding them with the vendor name in all
uppercase. When writing pax archives, libarchive uses many
of the SCHILY keys defined by Joerg Schilling’s
-’’star’’ archiver and a few
-LIBARCHIVE keys. The libarchive library can read most of the
-SCHILY keys and most of the GNU keys introduced by GNU tar.
-It silently ignores any keywords that it does not
-understand.
+“star” archiver and a few LIBARCHIVE keys. The
+libarchive library can read most of the SCHILY keys and most
+of the GNU keys introduced by GNU tar. It silently ignores
+any keywords that it does not understand.
The pax
interchange format converts filenames to Unicode and stores
@@ -241,46 +239,48 @@ extended attribute records written by Solaris tar.
The first tar
program appeared in Seventh Edition Unix in 1979. The first
official standard for the tar file format was the
-’’ustar’’ (Unix Standard Tar) format
-defined by POSIX in 1988. POSIX.1-2001 extended the ustar
-format to create the ’’pax
-interchange’’ format.
+“ustar” (Unix Standard Tar) format defined by
+POSIX in 1988. POSIX.1-2001 extended the ustar format to
+create the “pax interchange” format.
Cpio
Formats
-The libarchive library can read a number of common cpio
-variants and can write ’’odc’’ and
-’’newc’’ format archives. A cpio
-archive stores each entry as a fixed-size header followed by
-a variable-length filename and variable-length data. Unlike
-the tar format, the cpio format does only minimal padding of
-the header or file data. There are several cpio variants,
-which differ primarily in how they store the initial header:
-some store the values as octal or hexadecimal numbers in
-ASCII, others as binary values of varying byte order and
-length.
+The libarchive library can read and write a number of common
+cpio variants. A cpio archive stores each entry as a
+fixed-size header followed by a variable-length filename and
+variable-length data. Unlike the tar format, the cpio format
+does only minimal padding of the header or file data. There
+are several cpio variants, which differ primarily in how
+they store the initial header: some store the values as
+octal or hexadecimal numbers in ASCII, others as binary
+values of varying byte order and length.
binary
The libarchive
library transparently reads both big-endian and
-little-endian variants of the original binary cpio format.
-This format used 32-bit binary values for file size and
-mtime, and 16-bit binary values for the other fields.
+little-endian variants of the the two binary cpio formats;
+the original one from PWB/UNIX, and the later, more widely
+used, variant. This format used 32-bit binary values for
+file size and mtime, and 16-bit binary values for the other
+fields. The formats support only the file types present in
+UNIX at the time of their creation. File sizes are limited
+to 24 bits in the PWB format, because of the limits of the
+file system, and to 31 bits in the newer binary format,
+where signed 32 bit longs were used.
odc
-
The libarchive
-library can both read and write this POSIX-standard format,
-which is officially known as the ’’cpio
-interchange format’’ or the
-’’octet-oriented cpio archive
-format’’ and sometimes unofficially referred to
-as the ’’old character format’’.
-This format stores the header contents as octal values in
-ASCII. It is standard, portable, and immune from byte-order
-confusion. File sizes and mtime are limited to 33 bits (8GB
-file size), other fields are limited to 18 bits.
+
This is the
+POSIX standardized format, which is officially known as the
+“cpio interchange format” or the
+“octet-oriented cpio archive format” and
+sometimes unofficially referred to as the “old
+character format”. This format stores the header
+contents as octal values in ASCII. It is standard, portable,
+and immune from byte-order confusion. File sizes and mtime
+are limited to 33 bits (8GB file size), other fields are
+limited to 18 bits.
SVR4/newc
@@ -312,10 +312,10 @@ systems with dissimilar user numbering.
Shar
Formats
-A ’’shell archive’’ is a shell
-script that, when executed on a POSIX-compliant system, will
-recreate a collection of file system objects. The libarchive
-library can write two different kinds of shar archives:
+A “shell archive” is a shell script that, when
+executed on a POSIX-compliant system, will recreate a
+collection of file system objects. The libarchive library
+can write two different kinds of shar archives:
shar
@@ -379,15 +379,15 @@ variables.
format
Libarchive can read and write zip format archives that have
uncompressed entries and entries compressed with the
-’’deflate’’ algorithm. Other zip
-compression algorithms are not supported. It can extract jar
-archives, archives that use Zip64 extensions and
-self-extracting zip archives. Libarchive can use either of
-two different strategies for reading Zip archives: a
-streaming strategy which is fast and can handle extremely
-large archives, and a seeking strategy which can correctly
-process self-extracting Zip archives and archives with
-deleted members or other in-place modifications.
+“deflate” algorithm. Other zip compression
+algorithms are not supported. It can extract jar archives,
+archives that use Zip64 extensions and self-extracting zip
+archives. Libarchive can use either of two different
+strategies for reading Zip archives: a streaming strategy
+which is fast and can handle extremely large archives, and a
+seeking strategy which can correctly process self-extracting
+Zip archives and archives with deleted members or other
+in-place modifications.
The streaming
reader processes Zip archives as they are read. It can read
@@ -468,9 +468,8 @@ Libarchive can read and write 7-Zip format archives. TODO:
Need more information
CAB
-Libarchive can read Microsoft Cabinet (
-’’CAB’’) format archives. TODO: Need
-more information.
+Libarchive can read Microsoft Cabinet ( “CAB”)
+format archives. TODO: Need more information.
LHA
TODO: Information about libarchive’s LHA support
@@ -484,8 +483,8 @@ the RARv3 format. Libarchive can also read self-extracting
RAR archives.
Warc
-Libarchive can read and write ’’web
-archives’’. TODO: Need more information
+Libarchive can read and write “web archives”.
+TODO: Need more information
XAR
Libarchive can read and write the XAR format used by many
diff --git a/dependencies/libarchive-3.4.2/doc/html/libarchive.3.html b/dependencies/libarchive-3.5.2/doc/html/libarchive.3.html
similarity index 95%
rename from dependencies/libarchive-3.4.2/doc/html/libarchive.3.html
rename to dependencies/libarchive-3.5.2/doc/html/libarchive.3.html
index efaa08a..647e86a 100644
--- a/dependencies/libarchive-3.4.2/doc/html/libarchive.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/libarchive.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -53,12 +53,12 @@ for:
•
most variants of the POSIX
-’’ustar’’ format,
+“ustar” format,
•
-
the POSIX ’’pax
-interchange’’ format,
+
the POSIX “pax
+interchange” format,
•
@@ -117,17 +117,16 @@ format to use. The library can write
•
POSIX-standard
-’’ustar’’ archives,
+“ustar” archives,
•
-
POSIX ’’pax
-interchange format’’ archives,
+
POSIX “pax interchange
+format” archives,
•
-
POSIX octet-oriented cpio
-archives,
+
cpio archives,
•
diff --git a/dependencies/libarchive-3.4.2/doc/html/libarchive_changes.3.html b/dependencies/libarchive-3.5.2/doc/html/libarchive_changes.3.html
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/html/libarchive_changes.3.html
rename to dependencies/libarchive-3.5.2/doc/html/libarchive_changes.3.html
index a19bff3..0ac6352 100644
--- a/dependencies/libarchive-3.4.2/doc/html/libarchive_changes.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/libarchive_changes.3.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -57,13 +57,13 @@ can be easily converted to UTF-8.
Libarchive3 uses
the standard iconv library to convert between character sets
-and is introducing the notion of a ’’default
-character set for the archive’’. To support
-this, archive_entry objects can now be bound to a particular
-archive when they are created. The automatic character set
-conversions performed by archive_entry objects when reading
-and writing filenames, usernames, and other strings will now
-use an appropriate default character set:
+and is introducing the notion of a “default character
+set for the archive”. To support this, archive_entry
+objects can now be bound to a particular archive when they
+are created. The automatic character set conversions
+performed by archive_entry objects when reading and writing
+filenames, usernames, and other strings will now use an
+appropriate default character set:
If the
archive_entry object is bound to an archive, it will use the
diff --git a/dependencies/libarchive-3.4.2/doc/html/libarchive_internals.3.html b/dependencies/libarchive-3.5.2/doc/html/libarchive_internals.3.html
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/html/libarchive_internals.3.html
rename to dependencies/libarchive-3.5.2/doc/html/libarchive_internals.3.html
index bff4352..2220bca 100644
--- a/dependencies/libarchive-3.4.2/doc/html/libarchive_internals.3.html
+++ b/dependencies/libarchive-3.5.2/doc/html/libarchive_internals.3.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/dependencies/libarchive-3.4.2/doc/html/mtree.5.html b/dependencies/libarchive-3.5.2/doc/html/mtree.5.html
similarity index 94%
rename from dependencies/libarchive-3.4.2/doc/html/mtree.5.html
rename to dependencies/libarchive-3.5.2/doc/html/mtree.5.html
index 1dda8b5..812aba3 100644
--- a/dependencies/libarchive-3.4.2/doc/html/mtree.5.html
+++ b/dependencies/libarchive-3.5.2/doc/html/mtree.5.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -175,8 +175,8 @@ pathname of a file that holds the contents of this file.
The file flags
as a symbolic name. See chflags(1) for information on these
names. If no flags are to be set the string
-’’none’’ may be used to override the
-current default.
+“none” may be used to override the current
+default.
gid
@@ -239,9 +239,9 @@ file hierarchy.
resdevice
The
-’’resident’’ device number of the
-file, e.g. the ID of the device that contains the file. Its
-format is the same as the one for device.
+“resident” device number of the file, e.g. the
+ID of the device that contains the file. Its format is the
+same as the one for device.
ripemd160digest
@@ -261,8 +261,7 @@ the file.
sha1
The FIPS 160-1
-(’’SHA-1’’) message digest of the
-file.
+(“SHA-1”) message digest of the file.
sha1digest
@@ -272,8 +271,7 @@ file.
sha256
The FIPS 180-2
-(’’SHA-256’’) message digest of the
-file.
+(“SHA-256”) message digest of the file.
sha256digest
@@ -283,8 +281,7 @@ file.
sha384
The FIPS 180-2
-(’’SHA-384’’) message digest of the
-file.
+(“SHA-384”) message digest of the file.
sha384digest
@@ -294,8 +291,7 @@ file.
sha512
The FIPS 180-2
-(’’SHA-512’’) message digest of the
-file.
+(“SHA-512”) message digest of the file.
sha512digest
@@ -373,8 +369,7 @@ digests were added in FreeBSD 4.0, as new attacks have
demonstrated weaknesses in MD5. The SHA-256 digest was added
in FreeBSD 6.0. Support for file flags was added in
FreeBSD 4.0, and mostly comes from NetBSD. The
-’’full’’ entry format was added by
-NetBSD.
+“full” entry format was added by NetBSD.
BSD
September 4, 2013 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/html/tar.5.html b/dependencies/libarchive-3.5.2/doc/html/tar.5.html
similarity index 84%
rename from dependencies/libarchive-3.4.2/doc/html/tar.5.html
rename to dependencies/libarchive-3.5.2/doc/html/tar.5.html
index b3f0f03..d009950 100644
--- a/dependencies/libarchive-3.4.2/doc/html/tar.5.html
+++ b/dependencies/libarchive-3.5.2/doc/html/tar.5.html
@@ -1,5 +1,5 @@
-
-
+
+
@@ -50,16 +50,15 @@ entirely of zero bytes.
compatibility with tape drives that use fixed block sizes,
programs that read or write tar files always read or write a
fixed number of records with each I/O operation. These
-’’blocks’’ are always a multiple of
-the record size. The maximum block size supported by early
+“blocks” are always a multiple of the record
+size. The maximum block size supported by early
implementations was 10240 bytes or 20 records. This is still
the default for most implementations although block sizes of
1MiB (2048 records) or larger are commonly used with modern
-high-speed tape drives. (Note: the terms
-’’block’’ and
-’’record’’ here are not entirely
-standard; this document follows the convention established
-by John Gilmore in documenting pdtar.)
+high-speed tape drives. (Note: the terms “block”
+and “record” here are not entirely standard;
+this document follows the convention established by John
+Gilmore in documenting pdtar.)
Old-Style
Archive Format
@@ -239,25 +238,25 @@ size and mtime fields must end in a space; the checksum is
terminated by a null and a space. Early implementations
filled the numeric fields with leading spaces. This seems to
have been common practice until the IEEE Std 1003.1-1988
-(’’POSIX.1’’) standard was released.
-For best portability, modern implementations should fill the
-numeric fields with leading zeros.
+(“POSIX.1”) standard was released. For best
+portability, modern implementations should fill the numeric
+fields with leading zeros.
Pre-POSIX
Archives
An early draft of IEEE Std 1003.1-1988
-(’’POSIX.1’’) served as the basis
-for John Gilmore’s pdtar program and many
-system implementations from the late 1980s and early 1990s.
-These archives generally follow the POSIX ustar format
-described below with the following variations:
+(“POSIX.1”) served as the basis for John
+Gilmore’s pdtar program and many system
+implementations from the late 1980s and early 1990s. These
+archives generally follow the POSIX ustar format described
+below with the following variations:
•
The magic value consists of the
-five characters ’’ustar’’ followed
-by a space. The version field contains a space character
-followed by a null.
+five characters “ustar” followed by a space. The
+version field contains a space character followed by a
+null.
•
@@ -273,13 +272,13 @@ archives.
POSIX ustar
Archives
-IEEE Std 1003.1-1988 (’’POSIX.1’’)
-defined a standard tar file format to be read and written by
-compliant implementations of tar(1). This format is often
-called the ’’ustar’’ format, after
-the magic value used in the header. (The name is an acronym
-for ’’Unix Standard TAR’’.) It
-extends the historic format with new fields:
+IEEE Std 1003.1-1988 (“POSIX.1”) defined a
+standard tar file format to be read and written by compliant
+implementations of tar(1). This format is often called the
+“ustar” format, after the magic value used in
+the header. (The name is an acronym for “Unix Standard
+TAR”.) It extends the historic format with new
+fields:
struct
header_posix_ustar {
@@ -432,40 +431,40 @@ header_posix_ustar {
the earlier linkflag field with several new type
values:
-
’’0’’
+
“0”
Regular file.
NUL should be treated as a synonym, for compatibility
purposes.
-
’’1’’
+
“1”
Hard link.
-
’’2’’
+
“2”
Symbolic
link.
-
’’3’’
+
“3”
Character
device node.
-
’’4’’
+
“4”
Block device
node.
-
’’5’’
+
“5”
Directory.
-
’’6’’
+
“6”
FIFO node.
-
’’7’’
+
“7”
Reserved.
@@ -493,16 +492,16 @@ should be set to zero by writers and ignored by readers.
magic
Contains the
-magic value ’’ustar’’ followed by a
-NUL byte to indicate that this is a POSIX standard archive.
-Full compliance requires the uname and gname fields be
-properly set.
+magic value “ustar” followed by a NUL byte to
+indicate that this is a POSIX standard archive. Full
+compliance requires the uname and gname fields be properly
+set.
version
Version. This should be
-’’00’’ (two copies of the ASCII
-digit zero) for POSIX standard archives.
+“00” (two copies of the ASCII digit zero) for
+POSIX standard archives.
uname, gname
@@ -589,17 +588,16 @@ implementation.
Interchange Format
There are many attributes that cannot be portably stored in
a POSIX ustar archive. IEEE Std 1003.1-2001
-(’’POSIX.1’’) defined a
-’’pax interchange format’’ that uses
-two new types of entries to hold text-formatted metadata
-that applies to following entries. Note that a pax
-interchange format archive is a ustar archive in every
-respect. The new data is stored in ustar-compatible archive
-entries that use the ’’x’’ or
-’’g’’ typeflag. In particular, older
-implementations that do not fully support these extensions
-will extract the metadata into regular files, where the
-metadata can be examined as necessary.
+(“POSIX.1”) defined a “pax interchange
+format” that uses two new types of entries to hold
+text-formatted metadata that applies to following entries.
+Note that a pax interchange format archive is a ustar
+archive in every respect. The new data is stored in
+ustar-compatible archive entries that use the
+“x” or “g” typeflag. In particular,
+older implementations that do not fully support these
+extensions will extract the metadata into regular files,
+where the metadata can be examined as necessary.
An entry in a
pax interchange format archive consists of one or two
@@ -640,17 +638,16 @@ pax extended attributes are assumed to be in UTF-8,
including pathnames, user names, and group names. In some
cases, it is not possible to translate local conventions
into UTF-8. If this key is present and the value is the
-six-character ASCII string
-’’BINARY’’, then all textual values
-are assumed to be in a platform-dependent multi-byte
-encoding. Note that there are only two valid values for this
-key: ’’BINARY’’ or
-’’ISO-IR 10646 2000 UTF-8’’.
-No other values are permitted by the standard, and the
-latter value should generally not be used as it is the
-default when this key is not specified. In particular, this
-flag should not be used as a general mechanism to allow
-filenames to be stored in arbitrary encodings.
+six-character ASCII string “BINARY”, then all
+textual values are assumed to be in a platform-dependent
+multi-byte encoding. Note that there are only two valid
+values for this key: “BINARY” or
+“ISO-IR 10646 2000 UTF-8”. No
+other values are permitted by the standard, and the latter
+value should generally not be used as it is the default when
+this key is not specified. In particular, this flag should
+not be used as a general mechanism to allow filenames to be
+stored in arbitrary encodings.
uname, uid,
gname, gid
@@ -739,8 +736,8 @@ it.
The time when the file was
created. (This should not be confused with the POSIX
-’’ctime’’ attribute, which refers to
-the time when the file metadata was last changed.)
+“ctime” attribute, which refers to the time when
+the file metadata was last changed.)
LIBARCHIVE.xattr.namespace.key
@@ -748,13 +745,11 @@ the time when the file metadata was last changed.)
Libarchive stores
POSIX.1e-style extended attributes using keys of this form.
The key value is URL-encoded: All non-ASCII
-characters and the two special characters
-’’=’’ and
-’’%’’ are encoded as
-’’%’’ followed by two uppercase
-hexadecimal digits. The value of this key is the extended
-attribute value encoded in base 64. XXX Detail the base-64
-format here XXX
+characters and the two special characters “=”
+and “%” are encoded as “%” followed
+by two uppercase hexadecimal digits. The value of this key
+is the extended attribute value encoded in base 64. XXX
+Detail the base-64 format here XXX
VENDOR.*
@@ -1137,23 +1132,21 @@ equal to realsize.
They contained a list of files to be renamed or symlinked
after extraction; this was originally used to support long
names. The contents of this record are a text description of
-the operations to be done, in the form ’’Rename
-%s to %s\n’’ or ’’Symlink %s to
-%s\n’’; in either case, both filenames are
-escaped using K&R C syntax. Due to security concerns,
-"N" records are now generally ignored when reading
-archives.
+the operations to be done, in the form “Rename %s to
+%s\n” or “Symlink %s to %s\n”; in either
+case, both filenames are escaped using K&R C syntax. Due
+to security concerns, "N" records are now
+generally ignored when reading archives.
S
This is a
-’’sparse’’ regular file. Sparse
-files are stored as a series of fragments. The header
-contains a list of fragment offset/length pairs. If more
-than four such entries are required, the header is extended
-as necessary with ’’extra’’ header
-extensions (an older format that is no longer used), or
-’’sparse’’ extensions.
+“sparse” regular file. Sparse files are stored
+as a series of fragments. The header contains a list of
+fragment offset/length pairs. If more than four such entries
+are required, the header is extended as necessary with
+“extra” header extensions (an older format that
+is no longer used), or “sparse” extensions.
V
@@ -1164,16 +1157,15 @@ This entry should generally be ignored on extraction.
magic
The magic field
-holds the five characters ’’ustar’’
-followed by a space. Note that POSIX ustar archives have a
-trailing null.
+holds the five characters “ustar” followed by a
+space. Note that POSIX ustar archives have a trailing
+null.
version
The version field holds a space
character followed by a null. Note that POSIX ustar archives
-use two copies of the ASCII digit
-’’0’’.
+use two copies of the ASCII digit “0”.
atime, ctime
@@ -1200,10 +1192,10 @@ written to the file at appropriate offsets.
isextended
If this is set to non-zero, the
-header will be followed by additional ’’sparse
-header’’ records. Each such record contains
-information about as many as 21 additional sparse blocks as
-shown here:
+header will be followed by additional “sparse
+header” records. Each such record contains information
+about as many as 21 additional sparse blocks as shown
+here:
struct
gnu_sparse_header {
@@ -1288,52 +1280,49 @@ interchange format archives when you specify the
format closely, using some SCHILY tags and
introducing new keywords to store sparse file information.
There have been three iterations of the sparse file support,
-referred to as ’’0.0’’,
-’’0.1’’, and
-’’1.0’’.
+referred to as “0.0”, “0.1”, and
+“1.0”.
The
-’’0.0’’ format used an initial
-GNU.sparse.numblocks attribute to indicate the number
-of blocks in the file, a pair of GNU.sparse.offset
-and GNU.sparse.numbytes to indicate the offset and
-size of each block, and a single GNU.sparse.size to
-indicate the full size of the file. This is not the same as
-the size in the tar header because the latter value does not
-include the size of any holes. This format required that the
-order of attributes be preserved and relied on readers
-accepting multiple appearances of the same attribute names,
-which is not officially permitted by the standards.
+
The “0.0” format
+used an initial GNU.sparse.numblocks attribute to
+indicate the number of blocks in the file, a pair of
+GNU.sparse.offset and GNU.sparse.numbytes to
+indicate the offset and size of each block, and a single
+GNU.sparse.size to indicate the full size of the
+file. This is not the same as the size in the tar header
+because the latter value does not include the size of any
+holes. This format required that the order of attributes be
+preserved and relied on readers accepting multiple
+appearances of the same attribute names, which is not
+officially permitted by the standards.
GNU.sparse.map
-
The
-’’0.1’’ format used a single
-attribute that stored a comma-separated list of decimal
-numbers. Each pair of numbers indicated the offset and size,
-respectively, of a block of data. This does not work well if
-the archive is extracted by an archiver that does not
-recognize this extension, since many pax implementations
-simply discard unrecognized attributes.
+
The “0.1” format
+used a single attribute that stored a comma-separated list
+of decimal numbers. Each pair of numbers indicated the
+offset and size, respectively, of a block of data. This does
+not work well if the archive is extracted by an archiver
+that does not recognize this extension, since many pax
+implementations simply discard unrecognized attributes.
The
-’’1.0’’ format stores the sparse
-block map in one or more 512-byte blocks prepended to the
-file data in the entry body. The pax attributes indicate the
-existence of this map (via the GNU.sparse.major and
-GNU.sparse.minor fields) and the full size of the
-file. The GNU.sparse.name holds the true name of the
-file. To avoid confusion, the name stored in the regular tar
-header is a modified name so that extraction errors will be
-apparent to users.
+
The “1.0” format
+stores the sparse block map in one or more 512-byte blocks
+prepended to the file data in the entry body. The pax
+attributes indicate the existence of this map (via the
+GNU.sparse.major and GNU.sparse.minor fields)
+and the full size of the file. The GNU.sparse.name
+holds the true name of the file. To avoid confusion, the
+name stored in the regular tar header is a modified name so
+that extraction errors will be apparent to users.
Solaris
Tar
@@ -1341,9 +1330,9 @@ XXX More Details Needed XXX
Solaris tar
(beginning with SunOS XXX 5.7 ?? XXX) supports an
-’’extended’’ format that is
-fundamentally similar to pax interchange format, with the
-following differences:
+“extended” format that is fundamentally similar
+to pax interchange format, with the following
+differences:
•
@@ -1380,17 +1369,17 @@ Tar
The tar distributed with Apple’s Mac OS X stores most
regular files as two separate files in the tar archive. The
two files have the same name except that the first one has
-’’._’’ prepended to the last path
-element. This special file stores an AppleDouble-encoded
-binary blob with additional metadata about the second file,
-including ACL, extended attributes, and resources. To
-recreate the original file on disk, each separate file can
-be extracted and the Mac OS X copyfile() function can
-be used to unpack the separate metadata file and apply it to
-th regular file. Conversely, the same function provides a
-’’pack’’ option to encode the
-extended metadata from a file into a separate file whose
-contents can then be put into a tar archive.
+“._” prepended to the last path element. This
+special file stores an AppleDouble-encoded binary blob with
+additional metadata about the second file, including ACL,
+extended attributes, and resources. To recreate the original
+file on disk, each separate file can be extracted and the
+Mac OS X copyfile() function can be used to unpack
+the separate metadata file and apply it to th regular file.
+Conversely, the same function provides a “pack”
+option to encode the extended metadata from a file into a
+separate file whose contents can then be put into a tar
+archive.
Note that the
Apple extended attributes interact badly with long
@@ -1526,11 +1515,11 @@ interchange format per-file extensions.
The tar utility is no
longer a part of POSIX or the Single Unix Standard. It last
appeared in Version 2 of the Single UNIX Specification
-(’’SUSv2’’). It has been supplanted
-in subsequent standards by pax(1). The ustar format is
-currently part of the specification for the pax(1) utility.
-The pax interchange file format is new with IEEE Std
-1003.1-2001 (’’POSIX.1’’).
+(“SUSv2”). It has been supplanted in subsequent
+standards by pax(1). The ustar format is currently part of
+the specification for the pax(1) utility. The pax
+interchange file format is new with IEEE Std 1003.1-2001
+(“POSIX.1”).
HISTORY
diff --git a/dependencies/libarchive-3.4.2/doc/man/.ignore_me b/dependencies/libarchive-3.5.2/doc/man/.ignore_me
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/.ignore_me
rename to dependencies/libarchive-3.5.2/doc/man/.ignore_me
diff --git a/dependencies/libarchive-3.4.2/doc/man/Makefile b/dependencies/libarchive-3.5.2/doc/man/Makefile
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/man/Makefile
rename to dependencies/libarchive-3.5.2/doc/man/Makefile
index 1d56a6d..82bac3b 100644
--- a/dependencies/libarchive-3.4.2/doc/man/Makefile
+++ b/dependencies/libarchive-3.5.2/doc/man/Makefile
@@ -107,15 +107,15 @@ archive_write_set_passphrase.3: ../mdoc2man.awk ../../libarchive/archive_write_s
cpio.5: ../mdoc2man.awk ../../libarchive/cpio.5
awk -f ../mdoc2man.awk < ../../libarchive/cpio.5 > cpio.5
-libarchive-formats.5: ../mdoc2man.awk ../../libarchive/libarchive-formats.5
- awk -f ../mdoc2man.awk < ../../libarchive/libarchive-formats.5 > libarchive-formats.5
-
libarchive.3: ../mdoc2man.awk ../../libarchive/libarchive.3
awk -f ../mdoc2man.awk < ../../libarchive/libarchive.3 > libarchive.3
libarchive_changes.3: ../mdoc2man.awk ../../libarchive/libarchive_changes.3
awk -f ../mdoc2man.awk < ../../libarchive/libarchive_changes.3 > libarchive_changes.3
+libarchive-formats.5: ../mdoc2man.awk ../../libarchive/libarchive-formats.5
+ awk -f ../mdoc2man.awk < ../../libarchive/libarchive-formats.5 > libarchive-formats.5
+
libarchive_internals.3: ../mdoc2man.awk ../../libarchive/libarchive_internals.3
awk -f ../mdoc2man.awk < ../../libarchive/libarchive_internals.3 > libarchive_internals.3
@@ -130,4 +130,4 @@ bsdtar.1: ../mdoc2man.awk ../../tar/bsdtar.1
bsdcpio.1: ../mdoc2man.awk ../../cpio/bsdcpio.1
awk -f ../mdoc2man.awk < ../../cpio/bsdcpio.1 > bsdcpio.1
-all: archive_entry.3 archive_entry_acl.3 archive_entry_linkify.3 archive_entry_misc.3 archive_entry_paths.3 archive_entry_perms.3 archive_entry_stat.3 archive_entry_time.3 archive_read.3 archive_read_add_passphrase.3 archive_read_data.3 archive_read_disk.3 archive_read_extract.3 archive_read_filter.3 archive_read_format.3 archive_read_free.3 archive_read_header.3 archive_read_new.3 archive_read_open.3 archive_read_set_options.3 archive_util.3 archive_write.3 archive_write_blocksize.3 archive_write_data.3 archive_write_disk.3 archive_write_filter.3 archive_write_finish_entry.3 archive_write_format.3 archive_write_free.3 archive_write_header.3 archive_write_new.3 archive_write_open.3 archive_write_set_options.3 archive_write_set_passphrase.3 cpio.5 libarchive-formats.5 libarchive.3 libarchive_changes.3 libarchive_internals.3 mtree.5 tar.5 bsdtar.1 bsdcpio.1
+all: archive_entry.3 archive_entry_acl.3 archive_entry_linkify.3 archive_entry_misc.3 archive_entry_paths.3 archive_entry_perms.3 archive_entry_stat.3 archive_entry_time.3 archive_read.3 archive_read_add_passphrase.3 archive_read_data.3 archive_read_disk.3 archive_read_extract.3 archive_read_filter.3 archive_read_format.3 archive_read_free.3 archive_read_header.3 archive_read_new.3 archive_read_open.3 archive_read_set_options.3 archive_util.3 archive_write.3 archive_write_blocksize.3 archive_write_data.3 archive_write_disk.3 archive_write_filter.3 archive_write_finish_entry.3 archive_write_format.3 archive_write_free.3 archive_write_header.3 archive_write_new.3 archive_write_open.3 archive_write_set_options.3 archive_write_set_passphrase.3 cpio.5 libarchive.3 libarchive_changes.3 libarchive-formats.5 libarchive_internals.3 mtree.5 tar.5 bsdtar.1 bsdcpio.1
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_entry.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_entry.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_acl.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_acl.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_acl.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_acl.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_linkify.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_linkify.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_linkify.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_linkify.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_misc.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_misc.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_misc.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_misc.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_paths.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_paths.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_paths.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_paths.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_perms.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_perms.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_perms.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_perms.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_stat.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_stat.3
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_stat.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_stat.3
index c4f98a7..b482782 100644
--- a/dependencies/libarchive-3.4.2/doc/man/archive_entry_stat.3
+++ b/dependencies/libarchive-3.5.2/doc/man/archive_entry_stat.3
@@ -260,9 +260,9 @@ and
set and unset the size, respectively.
.PP
The number of references (hardlinks) can be obtained by calling
-\fB\%archive_entry_nlinks\fP()
+\fB\%archive_entry_nlink\fP()
and set with
-\fB\%archive_entry_set_nlinks\fP().
+\fB\%archive_entry_set_nlink\fP().
.SS Identifying unique files
The functions
\fB\%archive_entry_dev\fP()
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_entry_time.3 b/dependencies/libarchive-3.5.2/doc/man/archive_entry_time.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_entry_time.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_entry_time.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_add_passphrase.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_add_passphrase.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_add_passphrase.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_add_passphrase.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_data.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_data.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_data.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_data.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_disk.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_disk.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_disk.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_disk.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_extract.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_extract.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_extract.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_extract.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_filter.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_filter.3
similarity index 89%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_filter.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_filter.3
index 3a12af0..afb2764 100644
--- a/dependencies/libarchive-3.4.2/doc/man/archive_read_filter.3
+++ b/dependencies/libarchive-3.5.2/doc/man/archive_read_filter.3
@@ -1,4 +1,4 @@
-.TH ARCHIVE_READ_FILTER 3 "August 14, 2014" ""
+.TH ARCHIVE_READ_FILTER 3 "June 9, 2020" ""
.SH NAME
.ad l
\fB\%archive_read_support_filter_all\fP,
@@ -28,6 +28,10 @@ Streaming Archive Library (libarchive, -larchive)
.br
\fIint\fP
.br
+\fB\%archive_read_support_filter_by_code\fP(\fI\%struct\ archive\ *\fP, \fI\%int\fP);
+.br
+\fIint\fP
+.br
\fB\%archive_read_support_filter_bzip2\fP(\fI\%struct\ archive\ *\fP);
.br
\fIint\fP
@@ -115,6 +119,15 @@ is always enabled by default.
\fB\%archive_read_support_filter_all\fP()
Enables all available decompression filters.
.TP
+\fB\%archive_read_support_filter_by_code\fP()
+Enables a single filter specified by the filter code.
+This function does not work with
+\fBARCHIVE_FILTER_PROGRAM\fP.
+Note: In statically-linked executables, this will cause
+your program to include support for every filter.
+If executable size is a concern, you may wish to avoid
+using this function.
+.TP
\fB\%archive_read_support_filter_program\fP()
Data is fed through the specified external program before being dearchived.
Note that this disables automatic detection of the compression format,
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_format.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_format.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_format.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_format.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_free.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_free.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_free.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_free.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_header.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_header.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_header.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_header.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_new.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_new.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_new.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_new.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_open.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_open.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_open.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_open.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_read_set_options.3 b/dependencies/libarchive-3.5.2/doc/man/archive_read_set_options.3
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/man/archive_read_set_options.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_read_set_options.3
index a1c321f..01a87c9 100644
--- a/dependencies/libarchive-3.4.2/doc/man/archive_read_set_options.3
+++ b/dependencies/libarchive-3.5.2/doc/man/archive_read_set_options.3
@@ -156,9 +156,20 @@ used when translating file names.
Format cpio
.RS 5
.TP
+\fBcompat-2x\fP
+Libarchive 2.x incorrectly encoded Unicode filenames on
+some platforms.
+This option mimics the libarchive 2.x filename handling
+so that such archives can be read correctly.
+.TP
\fBhdrcharset\fP
The value is used as a character set name that will be
used when translating file names.
+.TP
+\fBpwb\fP
+When reading a binary CPIO archive, assume that it is
+in the original PWB cpio format, and handle file mode
+bits accordingly. The default is to assume v7 format.
.RE
.TP
Format iso9660
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_util.3 b/dependencies/libarchive-3.5.2/doc/man/archive_util.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_util.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_util.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_blocksize.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_blocksize.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_blocksize.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_blocksize.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_data.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_data.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_data.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_data.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_disk.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_disk.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_disk.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_disk.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_filter.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_filter.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_filter.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_filter.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_finish_entry.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_finish_entry.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_finish_entry.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_finish_entry.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_format.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_format.3
similarity index 89%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_format.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_format.3
index 80ed63d..9f8c0b3 100644
--- a/dependencies/libarchive-3.4.2/doc/man/archive_write_format.3
+++ b/dependencies/libarchive-3.5.2/doc/man/archive_write_format.3
@@ -8,7 +8,10 @@
\fB\%archive_write_set_format_ar_svr4\fP,
\fB\%archive_write_set_format_by_name\fP,
\fB\%archive_write_set_format_cpio\fP,
+\fB\%archive_write_set_format_cpio_bin\fP,
\fB\%archive_write_set_format_cpio_newc\fP,
+\fB\%archive_write_set_format_cpio_odc\fP,
+\fB\%archive_write_set_format_cpio_pwb\fP,
\fB\%archive_write_set_format_filter_by_ext\fP,
\fB\%archive_write_set_format_filter_by_ext_def\fP,
\fB\%archive_write_set_format_gnutar\fP,
@@ -64,10 +67,22 @@ Streaming Archive Library (libarchive, -larchive)
.br
\fIint\fP
.br
+\fB\%archive_write_set_format_cpio_bin\fP(\fI\%struct\ archive\ *\fP);
+.br
+\fIint\fP
+.br
\fB\%archive_write_set_format_cpio_newc\fP(\fI\%struct\ archive\ *\fP);
.br
\fIint\fP
.br
+\fB\%archive_write_set_format_cpio_odc\fP(\fI\%struct\ archive\ *\fP);
+.br
+\fIint\fP
+.br
+\fB\%archive_write_set_format_cpio_pwb\fP(\fI\%struct\ archive\ *\fP);
+.br
+\fIint\fP
+.br
\fB\%archive_write_set_format_filter_by_ext\fP(\fI\%struct\ archive\ *\fP, \fI\%const\ char\ *filename\fP);
.br
\fIint\fP
@@ -143,16 +158,19 @@ to create a new archive with the same format as an existing archive.
\fB\%archive_write_set_format_by_name\fP()
Sets the corresponding format based on the common name.
.TP
-\fB\%archive_write_set_format_filter_by_ext\fP(),
+\fB\%archive_write_set_format_filter_by_ext\fP()
\fB\%archive_write_set_format_filter_by_ext_def\fP()
Sets both filters and format based on the output filename.
Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz
.TP
\fB\%archive_write_set_format_7zip\fP()
-\fB\%archive_write_set_format_ar_bsd\fP(),
-\fB\%archive_write_set_format_ar_svr4\fP(),
+\fB\%archive_write_set_format_ar_bsd\fP()
+\fB\%archive_write_set_format_ar_svr4\fP()
\fB\%archive_write_set_format_cpio\fP()
+\fB\%archive_write_set_format_cpio_bin\fP()
\fB\%archive_write_set_format_cpio_newc\fP()
+\fB\%archive_write_set_format_cpio_odc\fP()
+\fB\%archive_write_set_format_cpio_pwb\fP()
\fB\%archive_write_set_format_gnutar\fP()
\fB\%archive_write_set_format_iso9660\fP()
\fB\%archive_write_set_format_mtree\fP()
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_free.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_free.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_free.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_free.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_header.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_header.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_header.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_header.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_new.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_new.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_new.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_new.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_open.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_open.3
similarity index 86%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_open.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_open.3
index ab76795..f14f33d 100644
--- a/dependencies/libarchive-3.4.2/doc/man/archive_write_open.3
+++ b/dependencies/libarchive-3.5.2/doc/man/archive_write_open.3
@@ -1,7 +1,8 @@
-.TH ARCHIVE_WRITE_OPEN 3 "February 2, 2012" ""
+.TH ARCHIVE_WRITE_OPEN 3 "November 12, 2020" ""
.SH NAME
.ad l
\fB\%archive_write_open\fP,
+\fB\%archive_write_open2\fP,
\fB\%archive_write_open_fd\fP,
\fB\%archive_write_open_FILE\fP,
\fB\%archive_write_open_filename\fP,
@@ -20,6 +21,10 @@ Streaming Archive Library (libarchive, -larchive)
.br
\fIint\fP
.br
+\fB\%archive_write_open2\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP, \fI\%archive_open_callback\ *\fP, \fI\%archive_write_callback\ *\fP, \fI\%archive_close_callback\ *\fP, \fI\%archive_free_callback\ *\fP);
+.br
+\fIint\fP
+.br
\fB\%archive_write_open_fd\fP(\fI\%struct\ archive\ *\fP, \fI\%int\ fd\fP);
.br
\fIint\fP
@@ -44,6 +49,12 @@ pointers to three callback functions which will be invoked by
the compression layer to write the constructed archive.
This does not alter the default archive padding.
.TP
+\fB\%archive_write_open2\fP()
+Same as
+\fB\%archive_write_open\fP()
+with an additional fourth free callback. This function should be preferred to
+\fB\%archive_write_open\fP().
+.TP
\fB\%archive_write_open_fd\fP()
A convenience form of
\fB\%archive_write_open\fP()
@@ -86,7 +97,7 @@ to a character or block device node, it will disable padding otherwise.
You can override this by manually invoking
\fB\%archive_write_set_bytes_in_last_block\fP()
before calling
-\fB\%archive_write_open\fP().
+\fB\%archive_write_open2\fP().
The
\fB\%archive_write_open_filename\fP()
function is safe for use with tape drives or other
@@ -94,7 +105,7 @@ block-oriented devices.
.TP
\fB\%archive_write_open_memory\fP()
A convenience form of
-\fB\%archive_write_open\fP()
+\fB\%archive_write_open2\fP()
that accepts a pointer to a block of memory that will receive
the archive.
The final
@@ -126,7 +137,7 @@ To use this library, you will need to define and register
callback functions that will be invoked to write data to the
resulting archive.
These functions are registered by calling
-\fB\%archive_write_open\fP():
+\fB\%archive_write_open2\fP():
.RS 5
.IP
\fItypedef int\fP
@@ -143,6 +154,8 @@ If the open fails, it should call
\fB\%archive_set_error\fP()
to register an error code and message and return
\fBARCHIVE_FATAL\fP.
+Please note that if open fails, close is not called and resources must be
+freed inside the open callback or with the free callback.
.RS 5
.IP
\fItypedef la_ssize_t\fP
@@ -168,7 +181,8 @@ to register an error code and message and return -1.
.RE
.PP
The close callback is invoked by archive_close when
-the archive processing is complete.
+the archive processing is complete. If the open callback fails, the close
+callback is not invoked.
The callback should return
\fBARCHIVE_OK\fP
on success.
@@ -176,7 +190,14 @@ On failure, the callback should invoke
\fB\%archive_set_error\fP()
to register an error code and message and
return
-\fBARCHIVE_FATAL\fP.
+.RS 5
+.IP
+\fItypedef int\fP
+\fB\%archive_free_callback\fP(\fI\%struct\ archive\ *\fP, \fI\%void\ *client_data\fP)
+.RE
+.PP
+The free callback is always invoked on archive_free.
+The return code of this callback is not processed.
.PP
Note that if the client-provided write callback function
returns a non-zero value, that error will be propagated back to the caller
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_set_options.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_set_options.3
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_set_options.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_set_options.3
index e5a4f7b..b5b8009 100644
--- a/dependencies/libarchive-3.4.2/doc/man/archive_write_set_options.3
+++ b/dependencies/libarchive-3.5.2/doc/man/archive_write_set_options.3
@@ -251,7 +251,8 @@ Filter zstd
.TP
\fBcompression-level\fP
The value is interpreted as a decimal integer specifying the
-compression level. Supported values are from 1 to 22.
+compression level. Supported values depend on the library version,
+common values are from 1 to 22.
.RE
.TP
Format 7zip
@@ -278,7 +279,7 @@ The interpretation of the compression level depends on the chosen
compression method.
.RE
.TP
-Format cpio
+Format bin
.RS 5
.TP
\fBhdrcharset\fP
@@ -568,6 +569,22 @@ The value is used as a character set name that will be
used when translating file names.
.RE
.TP
+Format odc
+.RS 5
+.TP
+\fBhdrcharset\fP
+The value is used as a character set name that will be
+used when translating file names.
+.RE
+.TP
+Format pwb
+.RS 5
+.TP
+\fBhdrcharset\fP
+The value is used as a character set name that will be
+used when translating file names.
+.RE
+.TP
Format pax
.RS 5
.TP
diff --git a/dependencies/libarchive-3.4.2/doc/man/archive_write_set_passphrase.3 b/dependencies/libarchive-3.5.2/doc/man/archive_write_set_passphrase.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/archive_write_set_passphrase.3
rename to dependencies/libarchive-3.5.2/doc/man/archive_write_set_passphrase.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/bsdcpio.1 b/dependencies/libarchive-3.5.2/doc/man/bsdcpio.1
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/man/bsdcpio.1
rename to dependencies/libarchive-3.5.2/doc/man/bsdcpio.1
index 8f31df6..81135e1 100644
--- a/dependencies/libarchive-3.4.2/doc/man/bsdcpio.1
+++ b/dependencies/libarchive-3.5.2/doc/man/bsdcpio.1
@@ -66,6 +66,15 @@ all operating modes.
Read filenames separated by NUL characters instead of newlines.
This is necessary if any of the filenames being read might contain newlines.
.TP
+\fB\-6\fP, \fB\-Fl\fP pwb
+When reading a binary format archive, assume it's the earlier one,
+from the PWB variant of 6th Edition UNIX.
+When writing a cpio archive, use the PWB format.
+.TP
+\fB\-7\fP, \fB\-Fl\fP binary
+(o mode only)
+When writing a cpio archive, use the (newer, non-PWB) binary format.
+.TP
\fB\-A\fP
(o mode only)
Append to the specified archive.
diff --git a/dependencies/libarchive-3.4.2/doc/man/bsdtar.1 b/dependencies/libarchive-3.5.2/doc/man/bsdtar.1
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/man/bsdtar.1
rename to dependencies/libarchive-3.5.2/doc/man/bsdtar.1
index 1a7d9db..512db63 100644
--- a/dependencies/libarchive-3.4.2/doc/man/bsdtar.1
+++ b/dependencies/libarchive-3.5.2/doc/man/bsdtar.1
@@ -709,7 +709,8 @@ Use the previous block of the block being compressed for
a compression dictionary to improve compression ratio.
.TP
\fBzstd:compression-level\fP
-A decimal integer from 1 to 22 specifying the zstd compression level.
+A decimal integer specifying the zstd compression level. Supported values depend
+on the library version, common values are from 1 to 22.
.TP
\fBlzop:compression-level\fP
A decimal integer from 1 to 9 specifying the lzop compression level.
diff --git a/dependencies/libarchive-3.4.2/doc/man/cpio.5 b/dependencies/libarchive-3.5.2/doc/man/cpio.5
similarity index 61%
rename from dependencies/libarchive-3.4.2/doc/man/cpio.5
rename to dependencies/libarchive-3.5.2/doc/man/cpio.5
index 481f775..4dd0bc8 100644
--- a/dependencies/libarchive-3.4.2/doc/man/cpio.5
+++ b/dependencies/libarchive-3.5.2/doc/man/cpio.5
@@ -30,43 +30,47 @@ The end of the archive is indicated by a special record with
the pathname
``TRAILER!!!''.
.SS PWB format
-XXX Any documentation of the original PWB/UNIX 1.0 format? XXX
-.SS Old Binary Format
-The old binary
+The PWB binary
\fB\%cpio\fP
-format stores numbers as 2-byte and 4-byte binary values.
+format is the original format, when cpio was introduced as part of the
+Programmer's Work Bench system, a variant of 6th Edition UNIX. It
+stores numbers as 2-byte and 4-byte binary values.
Each entry begins with a header in the following format:
+.PP
.RS 4
.nf
-struct header_old_cpio {
- unsigned short c_magic;
- unsigned short c_dev;
- unsigned short c_ino;
- unsigned short c_mode;
- unsigned short c_uid;
- unsigned short c_gid;
- unsigned short c_nlink;
- unsigned short c_rdev;
- unsigned short c_mtime[2];
- unsigned short c_namesize;
- unsigned short c_filesize[2];
+struct header_pwb_cpio {
+ short h_magic;
+ short h_dev;
+ short h_ino;
+ short h_mode;
+ short h_uid;
+ short h_gid;
+ short h_nlink;
+ short h_majmin;
+ long h_mtime;
+ short h_namesize;
+ long h_filesize;
};
.RE
.PP
The
-\fIunsigned\fP short
-fields here are 16-bit integer values; the
-\fIunsigned\fP int
-fields are 32-bit integer values.
-The fields are as follows
+\fIshort\fP
+fields here are 16-bit integer values, while the
+\fIlong\fP
+fields are 32 bit integers. Since PWB UNIX, like the 6th Edition UNIX
+it was based on, only ran on PDP-11 computers, they
+are in PDP-endian format, which has little-endian shorts, and
+big-endian longs. That is, the long integer whose hexadecimal
+representation is 0x12345678 would be stored in four successive bytes
+as 0x34, 0x12, 0x78, 0x56.
+The fields are as follows:
.RS 5
.TP
-\fImagic\fP
+\fIh_magic\fP
The integer value octal 070707.
-This value can be used to determine whether this archive is
-written with little-endian or big-endian integers.
.TP
-\fIdev\fP, \fIino\fP
+\fIh_dev\fP, \fIh_ino\fP
The device and inode numbers from the disk.
These are used by programs that read
\fB\%cpio\fP
@@ -75,9 +79,110 @@ Programs that synthesize
\fB\%cpio\fP
archives should be careful to set these to distinct values for each entry.
.TP
-\fImode\fP
-The mode specifies both the regular permissions and the file type.
-It consists of several bit fields as follows:
+\fIh_mode\fP
+The mode specifies both the regular permissions and the file type, and
+it also holds a couple of bits that are irrelevant to the cpio format,
+because the field is actually a raw copy of the mode field in the inode
+representing the file. These are the IALLOC flag, which shows that
+the inode entry is in use, and the ILARG flag, which shows that the
+file it represents is large enough to have indirect blocks pointers in
+the inode.
+The mode is decoded as follows:
+.PP
+.RS 5
+.TP
+0100000
+IALLOC flag - irrelevant to cpio.
+.TP
+0060000
+This masks the file type bits.
+.TP
+0040000
+File type value for directories.
+.TP
+0020000
+File type value for character special devices.
+.TP
+0060000
+File type value for block special devices.
+.TP
+0010000
+ILARG flag - irrelevant to cpio.
+.TP
+0004000
+SUID bit.
+.TP
+0002000
+SGID bit.
+.TP
+0001000
+Sticky bit.
+.TP
+0000777
+The lower 9 bits specify read/write/execute permissions
+for world, group, and user following standard POSIX conventions.
+.RE
+.TP
+\fIh_uid\fP, \fIh_gid\fP
+The numeric user id and group id of the owner.
+.TP
+\fIh_nlink\fP
+The number of links to this file.
+Directories always have a value of at least two here.
+Note that hardlinked files include file data with every copy in the archive.
+.TP
+\fIh_majmin\fP
+For block special and character special entries,
+this field contains the associated device number, with the major
+number in the high byte, and the minor number in the low byte.
+For all other entry types, it should be set to zero by writers
+and ignored by readers.
+.TP
+\fIh_mtime\fP
+Modification time of the file, indicated as the number
+of seconds since the start of the epoch,
+00:00:00 UTC January 1, 1970.
+.TP
+\fIh_namesize\fP
+The number of bytes in the pathname that follows the header.
+This count includes the trailing NUL byte.
+.TP
+\fIh_filesize\fP
+The size of the file. Note that this archive format is limited to 16
+megabyte file sizes, because PWB UNIX, like 6th Edition, only used
+an unsigned 24 bit integer for the file size internally.
+.RE
+.PP
+The pathname immediately follows the fixed header.
+If
+\fBh_namesize\fP
+is odd, an additional NUL byte is added after the pathname.
+The file data is then appended, again with an additional NUL
+appended if needed to get the next header at an even offset.
+.PP
+Hardlinked files are not given special treatment;
+the full file contents are included with each copy of the
+file.
+.SS New Binary Format
+The new binary
+\fB\%cpio\fP
+format showed up when cpio was adopted into late 7th Edition UNIX.
+It is exactly like the PWB binary format, described above, except for
+three changes:
+.PP
+First, UNIX now ran on more than one hardware type, so the endianness
+of 16 bit integers must be determined by observing the magic number at
+the start of the header. The 32 bit integers are still always stored
+with the most significant word first, though, so each of those two, in
+the struct shown above, was stored as an array of two 16 bit integers,
+in the traditional order. Those 16 bit integers, like all the others
+in the struct, were accessed using a macro that byte swapped them if
+necessary.
+.PP
+Next, 7th Edition had more file types to store, and the IALLOC and ILARG
+flag bits were re-purposed to accommodate these. The revised use of the
+various bits is as follows:
+.PP
.RS 5
.TP
0170000
@@ -113,58 +218,27 @@ SGID bit.
.TP
0001000
Sticky bit.
-On some systems, this modifies the behavior of executables and/or directories.
.TP
0000777
The lower 9 bits specify read/write/execute permissions
for world, group, and user following standard POSIX conventions.
.RE
-.TP
-\fIuid\fP, \fIgid\fP
-The numeric user id and group id of the owner.
-.TP
-\fInlink\fP
-The number of links to this file.
-Directories always have a value of at least two here.
-Note that hardlinked files include file data with every copy in the archive.
-.TP
-\fIrdev\fP
-For block special and character special entries,
-this field contains the associated device number.
-For all other entry types, it should be set to zero by writers
-and ignored by readers.
-.TP
-\fImtime\fP
-Modification time of the file, indicated as the number
-of seconds since the start of the epoch,
-00:00:00 UTC January 1, 1970.
-The four-byte integer is stored with the most-significant 16 bits first
-followed by the least-significant 16 bits.
-Each of the two 16 bit values are stored in machine-native byte order.
-.TP
-\fInamesize\fP
-The number of bytes in the pathname that follows the header.
-This count includes the trailing NUL byte.
-.TP
-\fIfilesize\fP
-The size of the file.
-Note that this archive format is limited to
-four gigabyte file sizes.
-See
-\fImtime\fP
-above for a description of the storage of four-byte integers.
-.RE
.PP
-The pathname immediately follows the fixed header.
-If the
-\fBnamesize\fP
-is odd, an additional NUL byte is added after the pathname.
-The file data is then appended, padded with NUL
-bytes to an even length.
+Finally, the file size field now represents a signed 32 bit integer in
+the underlying file system, so the maximum file size has increased to
+2 gigabytes.
.PP
-Hardlinked files are not given special treatment;
-the full file contents are included with each copy of the
-file.
+Note that there is no obvious way to tell which of the two binary
+formats an archive uses, other than to see which one makes more
+sense. The typical error scenario is that a PWB format archive
+unpacked as if it were in the new format will create named sockets
+instead of directories, and then fail to unpack files that should
+go in those directories. Running
+\fIbsdcpio\fP -itv
+on an unknown archive will make it obvious which it is: if it's
+PWB format, directories will be listed with an 's' instead of
+a 'd' as the first character of the mode string, and the larger
+files will have a '?' in that position.
.SS Portable ASCII Format
Version 2 of the Single UNIX Specification (``SUSv2'')
standardized an ASCII variant that is portable across all
@@ -176,6 +250,7 @@ format or as the
format.
It stores the same numeric fields as the old binary format, but
represents them as 6-character or 11-character octal values.
+.PP
.RS 4
.nf
struct cpio_odc_header {
@@ -193,9 +268,9 @@ struct cpio_odc_header {
};
.RE
.PP
-The fields are identical to those in the old binary format.
+The fields are identical to those in the new binary format.
The name and file body follow the fixed header.
-Unlike the old binary format, there is no additional padding
+Unlike the binary formats, there is no additional padding
after the pathname or file contents.
If the files being archived are themselves entirely ASCII, then
the resulting archive will be entirely ASCII, except for the
@@ -204,6 +279,7 @@ NUL byte that terminates the name field.
The "new" ASCII format uses 8-byte hexadecimal fields for
all numbers and separates device numbers into separate fields
for major and minor numbers.
+.PP
.RS 4
.nf
struct cpio_newc_header {
@@ -225,7 +301,7 @@ struct cpio_newc_header {
.RE
.PP
Except as specified below, the fields here match those specified
-for the old binary format above.
+for the new binary format above.
.RS 5
.TP
\fImagic\fP
@@ -244,7 +320,7 @@ Note that this format supports only 4 gigabyte files (unlike the
older ASCII format, which supports 8 gigabyte files).
.PP
In this format, hardlinked files are handled by setting the
-filesize to zero for each entry except the last one that
+filesize to zero for each entry except the first one that
appears in the archive.
.SS New CRC Format
The CRC format is identical to the new ASCII format described
@@ -291,9 +367,9 @@ while working in AT&T's Unix Support Group.
It appeared in 1977 as part of PWB/UNIX 1.0, the
``Programmer's Work Bench''
derived from
-At v6
+At 6th Edition UNIX
that was used internally at AT&T.
-Both the old binary and old character formats were in use
+Both the new binary and old character formats were in use
by 1980, according to the System III source released
by SCO under their
``Ancient Unix''
@@ -308,9 +384,9 @@ The
format is mis-named, as it uses a simple checksum and
not a cyclic redundancy check.
.PP
-The old binary format is limited to 16 bits for user id,
-group id, device, and inode numbers.
-It is limited to 4 gigabyte file sizes.
+The binary formats are limited to 16 bits for user id, group id,
+device, and inode numbers. They are limited to 16 megabyte and 2
+gigabyte file sizes for the older and newer variants, respectively.
.PP
The old ASCII format is limited to 18 bits for
the user id, group id, device, and inode numbers.
diff --git a/dependencies/libarchive-3.4.2/doc/man/libarchive-formats.5 b/dependencies/libarchive-3.5.2/doc/man/libarchive-formats.5
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/man/libarchive-formats.5
rename to dependencies/libarchive-3.5.2/doc/man/libarchive-formats.5
index 091cbfb..2d5d191 100644
--- a/dependencies/libarchive-3.4.2/doc/man/libarchive-formats.5
+++ b/dependencies/libarchive-3.5.2/doc/man/libarchive-formats.5
@@ -182,30 +182,29 @@ POSIX.1-2001 extended the ustar format to create the
``pax interchange''
format.
.SS Cpio Formats
-The libarchive library can read a number of common cpio variants and can write
-``odc''
-and
-``newc''
-format archives.
-A cpio archive stores each entry as a fixed-size header followed
-by a variable-length filename and variable-length data.
-Unlike the tar format, the cpio format does only minimal padding
-of the header or file data.
-There are several cpio variants, which differ primarily in
-how they store the initial header: some store the values as
-octal or hexadecimal numbers in ASCII, others as binary values of
-varying byte order and length.
+The libarchive library can read and write a number of common cpio
+variants. A cpio archive stores each entry as a fixed-size header
+followed by a variable-length filename and variable-length data.
+Unlike the tar format, the cpio format does only minimal padding of
+the header or file data. There are several cpio variants, which
+differ primarily in how they store the initial header: some store the
+values as octal or hexadecimal numbers in ASCII, others as binary
+values of varying byte order and length.
.RS 5
.TP
\fBbinary\fP
-The libarchive library transparently reads both big-endian and little-endian
-variants of the original binary cpio format.
-This format used 32-bit binary values for file size and mtime,
-and 16-bit binary values for the other fields.
+The libarchive library transparently reads both big-endian and
+little-endian variants of the the two binary cpio formats; the
+original one from PWB/UNIX, and the later, more widely used, variant.
+This format used 32-bit binary values for file size and mtime, and
+16-bit binary values for the other fields. The formats support only
+the file types present in UNIX at the time of their creation. File
+sizes are limited to 24 bits in the PWB format, because of the limits
+of the file system, and to 31 bits in the newer binary format, where
+signed 32 bit longs were used.
.TP
\fBodc\fP
-The libarchive library can both read and write this
-POSIX-standard format, which is officially known as the
+This is the POSIX standardized format, which is officially known as the
``cpio interchange format''
or the
``octet-oriented cpio archive format''
diff --git a/dependencies/libarchive-3.4.2/doc/man/libarchive.3 b/dependencies/libarchive-3.5.2/doc/man/libarchive.3
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/man/libarchive.3
rename to dependencies/libarchive-3.5.2/doc/man/libarchive.3
index 245a826..310ad15 100644
--- a/dependencies/libarchive-3.4.2/doc/man/libarchive.3
+++ b/dependencies/libarchive-3.5.2/doc/man/libarchive.3
@@ -79,7 +79,7 @@ POSIX
``pax interchange format''
archives,
.IP \(bu
-POSIX octet-oriented cpio archives,
+cpio archives,
.IP \(bu
Zip archive,
.IP \(bu
diff --git a/dependencies/libarchive-3.4.2/doc/man/libarchive_changes.3 b/dependencies/libarchive-3.5.2/doc/man/libarchive_changes.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/libarchive_changes.3
rename to dependencies/libarchive-3.5.2/doc/man/libarchive_changes.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/libarchive_internals.3 b/dependencies/libarchive-3.5.2/doc/man/libarchive_internals.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/libarchive_internals.3
rename to dependencies/libarchive-3.5.2/doc/man/libarchive_internals.3
diff --git a/dependencies/libarchive-3.4.2/doc/man/mtree.5 b/dependencies/libarchive-3.5.2/doc/man/mtree.5
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/mtree.5
rename to dependencies/libarchive-3.5.2/doc/man/mtree.5
diff --git a/dependencies/libarchive-3.4.2/doc/man/tar.5 b/dependencies/libarchive-3.5.2/doc/man/tar.5
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/man/tar.5
rename to dependencies/libarchive-3.5.2/doc/man/tar.5
diff --git a/dependencies/libarchive-3.4.2/doc/mdoc2man.awk b/dependencies/libarchive-3.5.2/doc/mdoc2man.awk
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/mdoc2man.awk
rename to dependencies/libarchive-3.5.2/doc/mdoc2man.awk
diff --git a/dependencies/libarchive-3.4.2/doc/mdoc2wiki.awk b/dependencies/libarchive-3.5.2/doc/mdoc2wiki.awk
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/mdoc2wiki.awk
rename to dependencies/libarchive-3.5.2/doc/mdoc2wiki.awk
diff --git a/dependencies/libarchive-3.4.2/doc/pdf/.ignore_me b/dependencies/libarchive-3.5.2/doc/pdf/.ignore_me
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/pdf/.ignore_me
rename to dependencies/libarchive-3.5.2/doc/pdf/.ignore_me
diff --git a/dependencies/libarchive-3.4.2/doc/pdf/Makefile b/dependencies/libarchive-3.5.2/doc/pdf/Makefile
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/pdf/Makefile
rename to dependencies/libarchive-3.5.2/doc/pdf/Makefile
index b5bf21e..48a5311 100644
--- a/dependencies/libarchive-3.4.2/doc/pdf/Makefile
+++ b/dependencies/libarchive-3.5.2/doc/pdf/Makefile
@@ -107,15 +107,15 @@ archive_write_set_passphrase.3.pdf: ../../libarchive/archive_write_set_passphras
cpio.5.pdf: ../../libarchive/cpio.5
groff -mdoc -T ps ../../libarchive/cpio.5 | ps2pdf - - > cpio.5.pdf
-libarchive-formats.5.pdf: ../../libarchive/libarchive-formats.5
- groff -mdoc -T ps ../../libarchive/libarchive-formats.5 | ps2pdf - - > libarchive-formats.5.pdf
-
libarchive.3.pdf: ../../libarchive/libarchive.3
groff -mdoc -T ps ../../libarchive/libarchive.3 | ps2pdf - - > libarchive.3.pdf
libarchive_changes.3.pdf: ../../libarchive/libarchive_changes.3
groff -mdoc -T ps ../../libarchive/libarchive_changes.3 | ps2pdf - - > libarchive_changes.3.pdf
+libarchive-formats.5.pdf: ../../libarchive/libarchive-formats.5
+ groff -mdoc -T ps ../../libarchive/libarchive-formats.5 | ps2pdf - - > libarchive-formats.5.pdf
+
libarchive_internals.3.pdf: ../../libarchive/libarchive_internals.3
groff -mdoc -T ps ../../libarchive/libarchive_internals.3 | ps2pdf - - > libarchive_internals.3.pdf
@@ -130,4 +130,4 @@ bsdtar.1.pdf: ../../tar/bsdtar.1
bsdcpio.1.pdf: ../../cpio/bsdcpio.1
groff -mdoc -T ps ../../cpio/bsdcpio.1 | ps2pdf - - > bsdcpio.1.pdf
-all: archive_entry.3.pdf archive_entry_acl.3.pdf archive_entry_linkify.3.pdf archive_entry_misc.3.pdf archive_entry_paths.3.pdf archive_entry_perms.3.pdf archive_entry_stat.3.pdf archive_entry_time.3.pdf archive_read.3.pdf archive_read_add_passphrase.3.pdf archive_read_data.3.pdf archive_read_disk.3.pdf archive_read_extract.3.pdf archive_read_filter.3.pdf archive_read_format.3.pdf archive_read_free.3.pdf archive_read_header.3.pdf archive_read_new.3.pdf archive_read_open.3.pdf archive_read_set_options.3.pdf archive_util.3.pdf archive_write.3.pdf archive_write_blocksize.3.pdf archive_write_data.3.pdf archive_write_disk.3.pdf archive_write_filter.3.pdf archive_write_finish_entry.3.pdf archive_write_format.3.pdf archive_write_free.3.pdf archive_write_header.3.pdf archive_write_new.3.pdf archive_write_open.3.pdf archive_write_set_options.3.pdf archive_write_set_passphrase.3.pdf cpio.5.pdf libarchive-formats.5.pdf libarchive.3.pdf libarchive_changes.3.pdf libarchive_internals.3.pdf mtree.5.pdf tar.5.pdf bsdtar.1.pdf bsdcpio.1.pdf
+all: archive_entry.3.pdf archive_entry_acl.3.pdf archive_entry_linkify.3.pdf archive_entry_misc.3.pdf archive_entry_paths.3.pdf archive_entry_perms.3.pdf archive_entry_stat.3.pdf archive_entry_time.3.pdf archive_read.3.pdf archive_read_add_passphrase.3.pdf archive_read_data.3.pdf archive_read_disk.3.pdf archive_read_extract.3.pdf archive_read_filter.3.pdf archive_read_format.3.pdf archive_read_free.3.pdf archive_read_header.3.pdf archive_read_new.3.pdf archive_read_open.3.pdf archive_read_set_options.3.pdf archive_util.3.pdf archive_write.3.pdf archive_write_blocksize.3.pdf archive_write_data.3.pdf archive_write_disk.3.pdf archive_write_filter.3.pdf archive_write_finish_entry.3.pdf archive_write_format.3.pdf archive_write_free.3.pdf archive_write_header.3.pdf archive_write_new.3.pdf archive_write_open.3.pdf archive_write_set_options.3.pdf archive_write_set_passphrase.3.pdf cpio.5.pdf libarchive.3.pdf libarchive_changes.3.pdf libarchive-formats.5.pdf libarchive_internals.3.pdf mtree.5.pdf tar.5.pdf bsdtar.1.pdf bsdcpio.1.pdf
diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry.3.pdf
similarity index 55%
rename from dependencies/libarchive-3.4.2/doc/pdf/archive_entry.3.pdf
rename to dependencies/libarchive-3.5.2/doc/pdf/archive_entry.3.pdf
index 724b586..0a159f2 100644
Binary files a/dependencies/libarchive-3.4.2/doc/pdf/archive_entry.3.pdf and b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_acl.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_acl.3.pdf
new file mode 100644
index 0000000..a428f40
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_acl.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_linkify.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_linkify.3.pdf
new file mode 100644
index 0000000..983eb0c
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_linkify.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_misc.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_misc.3.pdf
new file mode 100644
index 0000000..4a815f3
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_misc.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_paths.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_paths.3.pdf
new file mode 100644
index 0000000..3165b31
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_paths.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_perms.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_perms.3.pdf
new file mode 100644
index 0000000..cd4a6dd
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_perms.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_stat.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_stat.3.pdf
new file mode 100644
index 0000000..432760b
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_stat.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_time.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_time.3.pdf
new file mode 100644
index 0000000..29289ce
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_entry_time.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read.3.pdf
new file mode 100644
index 0000000..553e24f
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_add_passphrase.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_add_passphrase.3.pdf
new file mode 100644
index 0000000..4600a06
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_add_passphrase.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_data.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_data.3.pdf
new file mode 100644
index 0000000..ed8628f
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_data.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_disk.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_disk.3.pdf
new file mode 100644
index 0000000..ff4845e
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_disk.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_extract.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_extract.3.pdf
new file mode 100644
index 0000000..3d0f002
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_extract.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_filter.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_filter.3.pdf
new file mode 100644
index 0000000..830ff89
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_filter.3.pdf differ
diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_format.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_format.3.pdf
similarity index 54%
rename from dependencies/libarchive-3.4.2/doc/pdf/archive_read_format.3.pdf
rename to dependencies/libarchive-3.5.2/doc/pdf/archive_read_format.3.pdf
index 54bf0df..554df99 100644
Binary files a/dependencies/libarchive-3.4.2/doc/pdf/archive_read_format.3.pdf and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_format.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_free.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_free.3.pdf
new file mode 100644
index 0000000..5c5c370
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_free.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_header.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_header.3.pdf
new file mode 100644
index 0000000..aabfcba
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_header.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_new.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_new.3.pdf
new file mode 100644
index 0000000..69eab90
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_new.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_open.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_open.3.pdf
new file mode 100644
index 0000000..3fad700
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_open.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_read_set_options.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_set_options.3.pdf
new file mode 100644
index 0000000..084687f
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_read_set_options.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_util.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_util.3.pdf
new file mode 100644
index 0000000..3cee5fe
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_util.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write.3.pdf
new file mode 100644
index 0000000..5c318d5
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_blocksize.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_blocksize.3.pdf
new file mode 100644
index 0000000..99473f7
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_blocksize.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_data.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_data.3.pdf
new file mode 100644
index 0000000..f40d118
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_data.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_disk.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_disk.3.pdf
new file mode 100644
index 0000000..03ec498
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_disk.3.pdf differ
diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_filter.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_filter.3.pdf
similarity index 51%
rename from dependencies/libarchive-3.4.2/doc/pdf/archive_write_filter.3.pdf
rename to dependencies/libarchive-3.5.2/doc/pdf/archive_write_filter.3.pdf
index ccfba0d..5953814 100644
Binary files a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_filter.3.pdf and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_filter.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_finish_entry.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_finish_entry.3.pdf
new file mode 100644
index 0000000..c06343c
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_finish_entry.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_format.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_format.3.pdf
new file mode 100644
index 0000000..777a497
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_format.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_free.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_free.3.pdf
new file mode 100644
index 0000000..0ef0d7d
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_free.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_header.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_header.3.pdf
new file mode 100644
index 0000000..9cd7603
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_header.3.pdf differ
diff --git a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_new.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_new.3.pdf
similarity index 53%
rename from dependencies/libarchive-3.4.2/doc/pdf/archive_write_new.3.pdf
rename to dependencies/libarchive-3.5.2/doc/pdf/archive_write_new.3.pdf
index 4622de7..3688e70 100644
Binary files a/dependencies/libarchive-3.4.2/doc/pdf/archive_write_new.3.pdf and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_new.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_open.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_open.3.pdf
new file mode 100644
index 0000000..09bdadb
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_open.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_set_options.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_set_options.3.pdf
new file mode 100644
index 0000000..686be86
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_set_options.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/archive_write_set_passphrase.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_set_passphrase.3.pdf
new file mode 100644
index 0000000..3681f06
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/archive_write_set_passphrase.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/bsdcpio.1.pdf b/dependencies/libarchive-3.5.2/doc/pdf/bsdcpio.1.pdf
new file mode 100644
index 0000000..ff11dc5
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/bsdcpio.1.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/bsdtar.1.pdf b/dependencies/libarchive-3.5.2/doc/pdf/bsdtar.1.pdf
new file mode 100644
index 0000000..07804d0
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/bsdtar.1.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/cpio.5.pdf b/dependencies/libarchive-3.5.2/doc/pdf/cpio.5.pdf
new file mode 100644
index 0000000..29722b2
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/cpio.5.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/libarchive-formats.5.pdf b/dependencies/libarchive-3.5.2/doc/pdf/libarchive-formats.5.pdf
new file mode 100644
index 0000000..b4f1b57
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/libarchive-formats.5.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/libarchive.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/libarchive.3.pdf
new file mode 100644
index 0000000..6450684
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/libarchive.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/libarchive_changes.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/libarchive_changes.3.pdf
new file mode 100644
index 0000000..566bd8d
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/libarchive_changes.3.pdf differ
diff --git a/dependencies/libarchive-3.4.2/doc/pdf/libarchive_internals.3.pdf b/dependencies/libarchive-3.5.2/doc/pdf/libarchive_internals.3.pdf
similarity index 57%
rename from dependencies/libarchive-3.4.2/doc/pdf/libarchive_internals.3.pdf
rename to dependencies/libarchive-3.5.2/doc/pdf/libarchive_internals.3.pdf
index 9b23729..03fc168 100644
Binary files a/dependencies/libarchive-3.4.2/doc/pdf/libarchive_internals.3.pdf and b/dependencies/libarchive-3.5.2/doc/pdf/libarchive_internals.3.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/mtree.5.pdf b/dependencies/libarchive-3.5.2/doc/pdf/mtree.5.pdf
new file mode 100644
index 0000000..13b63f0
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/mtree.5.pdf differ
diff --git a/dependencies/libarchive-3.5.2/doc/pdf/tar.5.pdf b/dependencies/libarchive-3.5.2/doc/pdf/tar.5.pdf
new file mode 100644
index 0000000..84e5eff
Binary files /dev/null and b/dependencies/libarchive-3.5.2/doc/pdf/tar.5.pdf differ
diff --git a/dependencies/libarchive-3.4.2/doc/text/.ignore_me b/dependencies/libarchive-3.5.2/doc/text/.ignore_me
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/text/.ignore_me
rename to dependencies/libarchive-3.5.2/doc/text/.ignore_me
diff --git a/dependencies/libarchive-3.4.2/doc/text/Makefile b/dependencies/libarchive-3.5.2/doc/text/Makefile
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/text/Makefile
rename to dependencies/libarchive-3.5.2/doc/text/Makefile
index cace75d..d533e84 100644
--- a/dependencies/libarchive-3.4.2/doc/text/Makefile
+++ b/dependencies/libarchive-3.5.2/doc/text/Makefile
@@ -107,15 +107,15 @@ archive_write_set_passphrase.3.txt: ../../libarchive/archive_write_set_passphras
cpio.5.txt: ../../libarchive/cpio.5
nroff -mdoc ../../libarchive/cpio.5 | col -b > cpio.5.txt
-libarchive-formats.5.txt: ../../libarchive/libarchive-formats.5
- nroff -mdoc ../../libarchive/libarchive-formats.5 | col -b > libarchive-formats.5.txt
-
libarchive.3.txt: ../../libarchive/libarchive.3
nroff -mdoc ../../libarchive/libarchive.3 | col -b > libarchive.3.txt
libarchive_changes.3.txt: ../../libarchive/libarchive_changes.3
nroff -mdoc ../../libarchive/libarchive_changes.3 | col -b > libarchive_changes.3.txt
+libarchive-formats.5.txt: ../../libarchive/libarchive-formats.5
+ nroff -mdoc ../../libarchive/libarchive-formats.5 | col -b > libarchive-formats.5.txt
+
libarchive_internals.3.txt: ../../libarchive/libarchive_internals.3
nroff -mdoc ../../libarchive/libarchive_internals.3 | col -b > libarchive_internals.3.txt
@@ -130,4 +130,4 @@ bsdtar.1.txt: ../../tar/bsdtar.1
bsdcpio.1.txt: ../../cpio/bsdcpio.1
nroff -mdoc ../../cpio/bsdcpio.1 | col -b > bsdcpio.1.txt
-all: archive_entry.3.txt archive_entry_acl.3.txt archive_entry_linkify.3.txt archive_entry_misc.3.txt archive_entry_paths.3.txt archive_entry_perms.3.txt archive_entry_stat.3.txt archive_entry_time.3.txt archive_read.3.txt archive_read_add_passphrase.3.txt archive_read_data.3.txt archive_read_disk.3.txt archive_read_extract.3.txt archive_read_filter.3.txt archive_read_format.3.txt archive_read_free.3.txt archive_read_header.3.txt archive_read_new.3.txt archive_read_open.3.txt archive_read_set_options.3.txt archive_util.3.txt archive_write.3.txt archive_write_blocksize.3.txt archive_write_data.3.txt archive_write_disk.3.txt archive_write_filter.3.txt archive_write_finish_entry.3.txt archive_write_format.3.txt archive_write_free.3.txt archive_write_header.3.txt archive_write_new.3.txt archive_write_open.3.txt archive_write_set_options.3.txt archive_write_set_passphrase.3.txt cpio.5.txt libarchive-formats.5.txt libarchive.3.txt libarchive_changes.3.txt libarchive_internals.3.txt mtree.5.txt tar.5.txt bsdtar.1.txt bsdcpio.1.txt
+all: archive_entry.3.txt archive_entry_acl.3.txt archive_entry_linkify.3.txt archive_entry_misc.3.txt archive_entry_paths.3.txt archive_entry_perms.3.txt archive_entry_stat.3.txt archive_entry_time.3.txt archive_read.3.txt archive_read_add_passphrase.3.txt archive_read_data.3.txt archive_read_disk.3.txt archive_read_extract.3.txt archive_read_filter.3.txt archive_read_format.3.txt archive_read_free.3.txt archive_read_header.3.txt archive_read_new.3.txt archive_read_open.3.txt archive_read_set_options.3.txt archive_util.3.txt archive_write.3.txt archive_write_blocksize.3.txt archive_write_data.3.txt archive_write_disk.3.txt archive_write_filter.3.txt archive_write_finish_entry.3.txt archive_write_format.3.txt archive_write_free.3.txt archive_write_header.3.txt archive_write_new.3.txt archive_write_open.3.txt archive_write_set_options.3.txt archive_write_set_passphrase.3.txt cpio.5.txt libarchive.3.txt libarchive_changes.3.txt libarchive-formats.5.txt libarchive_internals.3.txt mtree.5.txt tar.5.txt bsdtar.1.txt bsdcpio.1.txt
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry.3.txt
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/text/archive_entry.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_entry.3.txt
index 8e4600d..f3d57db 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_entry.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry.3.txt
@@ -2,7 +2,7 @@ ARCHIVE_ENTRY(3) BSD Library Functions Manual ARCHIVE_ENTRY(3)
NAME
archive_entry_clear, archive_entry_clone, archive_entry_free,
- archive_entry_new -- functions for managing archive entry descriptions
+ archive_entry_new — functions for managing archive entry descriptions
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -65,8 +65,8 @@ DESCRIPTION
Stores the provided data in the object. In particular, for
strings, the pointer is stored, not the referenced string.
archive_entry_copy_XXXX()
- As above, except that the referenced data is copied into the
- object.
+ As above, except that the referenced data is copied into the ob‐
+ ject.
archive_entry_XXXX()
Returns the specified data. In the case of strings, a const-
qualified pointer to the string is returned.
@@ -76,7 +76,7 @@ DESCRIPTION
For example, if you store a narrow string and read the corresponding wide
string, the object will transparently convert formats 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 dis-
+ string for the same data, the previously-set wide string will be dis‐
carded in favor of the new data.
SEE ALSO
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_acl.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_acl.3.txt
similarity index 90%
rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_acl.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_acl.3.txt
index 34281cf..f0e118c 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_acl.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_acl.3.txt
@@ -6,8 +6,8 @@ NAME
archive_entry_acl_from_text, archive_entry_acl_from_text_w,
archive_entry_acl_next, archive_entry_acl_reset,
archive_entry_acl_to_text, archive_entry_acl_to_text_w,
- archive_entry_acl_types -- functions for manipulating Access Control
- Lists in archive entry descriptions
+ archive_entry_acl_types — functions for manipulating Access Control Lists
+ in archive entry descriptions
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -57,7 +57,7 @@ SYNOPSIS
archive_entry_acl_types(struct archive_entry *a);
DESCRIPTION
- The ``Access Control Lists (ACLs)'' extend the standard Unix permission
+ The “Access Control Lists (ACLs)” extend the standard Unix permission
model. The ACL interface of libarchive 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.
@@ -86,9 +86,9 @@ DESCRIPTION
and ARCHIVE_ENTRY_ACL_OTHER are equivalent to user, group and other in
the classic Unix permission model and specify non-extended ACL entries.
- All files have an access ACL (ARCHIVE_ENTRY_ACL_TYPE_ACCESS). This spec-
- ifies the permissions required for access to the file itself. Directo-
- ries have an additional ACL (ARCHIVE_ENTRY_ACL_TYPE_DEFAULT), which con-
+ All files have an access ACL (ARCHIVE_ENTRY_ACL_TYPE_ACCESS). This spec‐
+ ifies the permissions required for access to the file itself. Directo‐
+ ries have an additional ACL (ARCHIVE_ENTRY_ACL_TYPE_DEFAULT), which con‐
trols the initial access ACL for newly-created directory entries.
NFSv4 Access Control Lists
@@ -96,14 +96,14 @@ DESCRIPTION
Entries (ACEs).
There are four possible types of a NFSv4 ACE:
- ARCHIVE_ENTRY_ACL_TYPE_ALLOW Allow principal to perform actions
- requiring given permissions.
- ARCHIVE_ENTRY_ACL_TYPE_DENY Prevent principal from performing
- actions requiring given permissions.
+ ARCHIVE_ENTRY_ACL_TYPE_ALLOW Allow principal to perform actions re‐
+ quiring given permissions.
+ ARCHIVE_ENTRY_ACL_TYPE_DENY Prevent principal from performing ac‐
+ tions requiring given permissions.
ARCHIVE_ENTRY_ACL_TYPE_AUDIT Log access attempts by principal which
require given permissions.
- ARCHIVE_ENTRY_ACL_TYPE_ALARM Trigger a system alarm on access
- attempts by principal which require
+ ARCHIVE_ENTRY_ACL_TYPE_ALARM Trigger a system alarm on access at‐
+ tempts by principal which require
given permissions.
The tag specifies the principal to which the permission applies. Valid
@@ -182,7 +182,7 @@ DESCRIPTION
classic Unix permissions are updated. An archive entry cannot contain
both POSIX.1e and NFSv4 ACL entries.
- archive_entry_acl_clear() removes all ACL entries and resets the enumera-
+ archive_entry_acl_clear() removes all ACL entries and resets the enumera‐
tion pointer.
archive_entry_acl_count() counts the ACL entries that have the given type
@@ -195,8 +195,8 @@ DESCRIPTION
ARCHIVE_ENTRY_ACL_TYPE_AUDIT
ARCHIVE_ENTRY_ACL_TYPE_ALARM
for NFSv4 ACLs. For POSIX.1e ACLs if ARCHIVE_ENTRY_ACL_TYPE_ACCESS is
- included and at least one extended ACL entry is found, the three non-
- extended ACLs are added.
+ included and at least one extended ACL entry is found, the three non-ex‐
+ tended ACLs are added.
archive_entry_acl_from_text() and archive_entry_acl_from_text_w() add new
(or merge with existing) ACL entries from (wide) text. The argument type
@@ -207,23 +207,23 @@ DESCRIPTION
Supports all formats that can be created with archive_entry_acl_to_text()
or respectively archive_entry_acl_to_text_w(). Existing ACL entries are
preserved. To get a clean new ACL from text archive_entry_acl_clear()
- must be called first. Entries prefixed with ``default:'' are treated as
+ must be called first. Entries prefixed with “default:” are treated as
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT unless type is
ARCHIVE_ENTRY_ACL_TYPE_NFS4. Invalid entries, non-parseable ACL entries
- and entries beginning with the '#' character (comments) are skipped.
+ and entries beginning with the ‘#’ character (comments) are skipped.
archive_entry_acl_next() return the next entry of the ACL list. This
- functions may only be called after archive_entry_acl_reset() has indi-
+ functions may only be called after archive_entry_acl_reset() has indi‐
cated the presence of extended ACL entries.
archive_entry_acl_reset() prepare reading the list of ACL entries with
archive_entry_acl_next(). The function returns 0 if no non-extended ACLs
are found. In this case, the access permissions should be obtained by
- archive_entry_mode(3) or set using chmod(2). Otherwise, the function
- returns the same value as archive_entry_acl_count().
+ archive_entry_mode(3) or set using chmod(2). Otherwise, the function re‐
+ turns the same value as archive_entry_acl_count().
archive_entry_acl_to_text() and archive_entry_acl_to_text_w() convert the
- ACL entries for the given type into a (wide) string of ACL entries sepa-
+ ACL entries for the given type into a (wide) string of ACL entries sepa‐
rated by newline. If the pointer len_p is not NULL, then the function
shall return the length of the string (not including the NULL terminator)
in the location pointed to by len_p. The flag argument is a bitwise-or.
@@ -234,7 +234,7 @@ DESCRIPTION
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT
Output POSIX.1e default ACLs.
ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT
- Prefix each default ACL entry with the word ``default:''.
+ Prefix each default ACL entry with the word “default:”.
ARCHIVE_ENTRY_ACL_STYLE_SOLARIS
The mask and other ACLs don not contain a double colon.
@@ -250,23 +250,22 @@ DESCRIPTION
ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA
Separate ACL entries with comma instead of newline.
- If the archive entry contains NFSv4 ACLs, all types of NFSv4 ACLs are
- returned. It the entry contains POSIX.1e ACLs and none of the flags
- ARCHIVE_ENTRY_ACL_TYPE_ACCESS or ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are spec-
+ If the archive entry contains NFSv4 ACLs, all types of NFSv4 ACLs are re‐
+ turned. It the entry contains POSIX.1e ACLs and none of the flags
+ ARCHIVE_ENTRY_ACL_TYPE_ACCESS or ARCHIVE_ENTRY_ACL_TYPE_DEFAULT are spec‐
ified, both access and default entries are returned and default entries
- are prefixed with ``default:''.
+ are prefixed with “default:”.
- archive_entry_acl_types() 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
+ archive_entry_acl_types() get ACL entry types contained in an archive en‐
+ try's ACL. As POSIX.1e and NFSv4 ACL entries cannot be mixed, this func‐
+ tion is a very efficient way to detect if an ACL already contains
POSIX.1e or NFSv4 ACL entries.
RETURN VALUES
- archive_entry_acl_count() and archive_entry_acl_reset() returns the num-
+ archive_entry_acl_count() and archive_entry_acl_reset() returns the num‐
ber of ACL entries that match the given type mask. For POSIX.1e ACLS if
- the type mask includes ARCHIVE_ENTRY_ACL_TYPE_ACCESS and at least one
- extended ACL entry exists, the three classic Unix permissions are
- counted.
+ the type mask includes ARCHIVE_ENTRY_ACL_TYPE_ACCESS and at least one ex‐
+ tended ACL entry exists, the three classic Unix permissions are counted.
archive_entry_acl_from_text() and archive_entry_acl_from_text_w() return
ARCHIVE_OK if all entries were successfully parsed and ARCHIVE_WARN if
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_linkify.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_linkify.3.txt
similarity index 82%
rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_linkify.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_linkify.3.txt
index abbcd61..6c8a5dd 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_linkify.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_linkify.3.txt
@@ -3,7 +3,7 @@ ARCHIVE_ENTRY_LINKIFY(3) BSD Library Functions Manual ARCHIVE_ENTRY_LINKIFY(3)
NAME
archive_entry_linkresolver, archive_entry_linkresolver_new,
archive_entry_linkresolver_set_strategy, archive_entry_linkresolver_free,
- archive_entry_linkify -- hardlink resolver functions
+ archive_entry_linkify — hardlink resolver functions
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -27,8 +27,8 @@ SYNOPSIS
DESCRIPTION
Programs that want to create archives have to deal with hardlinks.
- Hardlinks are handled in different ways by the archive formats. The
- basic strategies are:
+ Hardlinks are handled in different ways by the archive formats. The ba‐
+ sic strategies are:
1. Ignore hardlinks and store the body for each reference (old cpio,
zip).
@@ -37,23 +37,23 @@ DESCRIPTION
3. Store the body the last time an inode is seen (new cpio).
- The archive_entry_linkresolver functions help by providing a unified
- interface and handling the complexity behind the scene.
+ The archive_entry_linkresolver functions help by providing a unified in‐
+ terface and handling the complexity behind the scene.
- The archive_entry_linkresolver functions assume that archive_entry
- instances have valid nlinks, inode and device values. The inode and
- device value is used to match entries. The nlinks value is used to
- determined if all references have been found and if the internal refer-
- ences can be recycled.
+ The archive_entry_linkresolver functions assume that archive_entry in‐
+ stances have valid nlinks, inode and device values. The inode and device
+ value is used to match entries. The nlinks value is used to determined
+ if all references have been found and if the internal references can be
+ recycled.
- The archive_entry_linkresolver_new() function allocates a new link
- resolver. The instance can be freed using
+ The archive_entry_linkresolver_new() function allocates a new link re‐
+ solver. The instance can be freed using
archive_entry_linkresolver_free(). All deferred entries are flushed and
the internal storage is freed.
- The archive_entry_linkresolver_set_strategy() function selects the opti-
- mal hardlink strategy for the given format. The format code can be
- obtained from archive_format(3). The function can be called more than
+ The archive_entry_linkresolver_set_strategy() function selects the opti‐
+ mal hardlink strategy for the given format. The format code can be ob‐
+ tained from archive_format(3). The function can be called more than
once, but it is recommended to flush all deferred entries first.
The archive_entry_linkify() function is the core of
@@ -66,16 +66,16 @@ DESCRIPTION
2. For tar like archive formats, *sparse is set to NULL. If *entry is
NULL, no action is taken. If the hardlink count of *entry is larger
- than 1 and the file type is a regular file or symbolic link, the
- internal list is searched for a matching inode. If such an inode is
+ than 1 and the file type is a regular file or symbolic link, the in‐
+ ternal list is searched for a matching inode. If such an inode is
found, the link count is decremented and the file size of *entry is
set to 0 to notify that no body should be written. If no such inode
is found, a copy of the entry is added to the internal cache with a
link count reduced by one.
3. For new cpio like archive formats a value for *entry of NULL is used
- to flush deferred entries. In that case *entry is set to an arbi-
- trary deferred entry and the entry itself is removed from the inter-
+ to flush deferred entries. In that case *entry is set to an arbi‐
+ trary deferred entry and the entry itself is removed from the inter‐
nal list. If the internal list is empty, *entry is set to NULL. In
either case, *sparse is set to NULL and the function returns. If
the hardlink count of *entry is one or the file type is a directory
@@ -83,8 +83,8 @@ DESCRIPTION
Otherwise, the internal list is searched for a matching inode. If
such an inode is not found, the entry is added to the internal list,
both *entry and *sparse are set to NULL and the function returns.
- If such an inode is found, the link count is decremented. If it
- remains larger than one, the existing entry on the internal list is
+ If such an inode is found, the link count is decremented. If it re‐
+ mains larger than one, the existing entry on the internal list is
swapped with *entry after retaining the link count. The existing
entry is returned in *entry. If the link count reached one, the new
entry is also removed from the internal list and returned in
@@ -101,8 +101,8 @@ DESCRIPTION
4. If *sparse is not NULL, archive it.
5. After all entries have been written to disk, call
- archive_entry_linkify() with *entry set to NULL and archive the
- returned entry as long as it is not NULL.
+ archive_entry_linkify() with *entry set to NULL and archive the re‐
+ turned entry as long as it is not NULL.
RETURN VALUES
archive_entry_linkresolver_new() returns NULL on malloc(3) failures.
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_misc.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_misc.3.txt
similarity index 86%
rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_misc.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_misc.3.txt
index 7cc9676..77fd7fa 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_misc.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_misc.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_ENTRY_MISC(3) BSD Library Functions Manual ARCHIVE_ENTRY_MISC(3)
NAME
- archive_entry_symlink_type, archive_entry_set_symlink_type -- miscella-
+ archive_entry_symlink_type, archive_entry_set_symlink_type — miscella‐
neous functions for manipulating properties of archive_entry
LIBRARY
@@ -19,13 +19,13 @@ SYNOPSIS
DESCRIPTION
The function archive_entry_symlink_type() returns and the function
archive_entry_set_symlink_type() 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. Micro-
- soft Windows).
+ stored in an archive entry. These functions have special meaning on op‐
+ erating systems that support multiple symbolic link types (e.g. Microsoft
+ Windows).
Supported values are:
- AE_SYMLINK_TYPE_UNDEFINED Symbolic link target type is not defined
- (default on unix systems)
+ AE_SYMLINK_TYPE_UNDEFINED Symbolic link target type is not defined (de‐
+ fault on unix systems)
AE_SYMLINK_TYPE_FILE Symbolic link points to a file
AE_SYMLINK_TYPE_DIRECTORY Symbolic link points to a directory
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_paths.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_paths.3.txt
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_paths.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_paths.3.txt
index 9e639f8..b883257 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_paths.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_paths.3.txt
@@ -12,7 +12,7 @@ NAME
archive_entry_sourcepath, archive_entry_copy_sourcepath,
archive_entry_symlink, archive_entry_symlink_w,
archive_entry_set_symlink, archive_entry_copy_symlink,
- archive_entry_copy_symlink_w, archive_entry_update_symlink_utf8 -- func-
+ archive_entry_copy_symlink_w, archive_entry_update_symlink_utf8 — func‐
tions for manipulating path names in archive entry descriptions
LIBRARY
@@ -103,7 +103,7 @@ SYNOPSIS
DESCRIPTION
Path names supported by archive_entry(3):
hardlink Destination of the hardlink.
- link Update only. For a symlink, update the destination. Other-
+ link Update only. For a symlink, update the destination. Other‐
wise, make the entry a hardlink and alter the destination for
that.
pathname Path in the archive
@@ -117,11 +117,11 @@ DESCRIPTION
wchar_t * Wide character strings in the current locale. The accessor
functions are named XXX_w().
- UTF-8 Unicode strings encoded as UTF-8. These are convenience func-
+ UTF-8 Unicode strings encoded as UTF-8. These are convenience func‐
tions to update both the multibyte and wide character strings
at the same time.
- The sourcepath is a pure filesystem concept and never stored in an ar-
+ The sourcepath is a pure filesystem concept and never stored in an ar‐
chive directly.
For that reason, it is only available as multibyte string. The link path
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_perms.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_perms.3.txt
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_perms.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_perms.3.txt
index e5b09ec..ace02cc 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_perms.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_perms.3.txt
@@ -10,9 +10,9 @@ NAME
archive_entry_copy_gname, archive_entry_copy_gname_w,
archive_entry_update_gname_utf8, archive_entry_fflags,
archive_entry_fflags_text, archive_entry_set_fflags,
- archive_entry_copy_fflags_text, archive_entry_copy_fflags_text_w -- func-
- tions for manipulating ownership and permissions in archive entry
- descriptions
+ archive_entry_copy_fflags_text, archive_entry_copy_fflags_text_w — func‐
+ tions for manipulating ownership and permissions in archive entry de‐
+ scriptions
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -119,7 +119,7 @@ DESCRIPTION
wchar_t * Wide character strings in the current locale. The accessor
functions are named XXX_w().
- UTF-8 Unicode strings encoded as UTF-8. These are convenience func-
+ UTF-8 Unicode strings encoded as UTF-8. These are convenience func‐
tions to update both the multibyte and wide character strings
at the same time.
@@ -133,7 +133,7 @@ DESCRIPTION
text, even if it is ill-formed. If you need to canonicalize a textual
flags string, you should first set the text form, then request the bitmap
form, then use that to set the bitmap form. Setting the bitmap format
- will clear the internal text representation and force it to be recon-
+ will clear the internal text representation and force it to be recon‐
structed when you next request the text form.
The bitmap format consists of two integers, one containing bits that
@@ -152,8 +152,8 @@ DESCRIPTION
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 recognized, or NULL if every
- name was recognized. Note that every name -- including names that follow
- an unrecognized name -- will be evaluated, and the bitmaps will be set to
+ name was recognized. Note that every name — including names that follow
+ an unrecognized name — will be evaluated, and the bitmaps will be set to
reflect every name that is recognized. (In particular, this differs from
strtofflags(3), which stops parsing at the first unrecognized name.)
@@ -163,7 +163,7 @@ SEE ALSO
BUGS
The platform types uid_t and gid_t are often 16 or 32 bit wide. In this
- case it is possible that the ids can not be correctly restored from ar-
+ case it is possible that the ids can not be correctly restored from ar‐
chives and get truncated.
BSD February 2, 2012 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_stat.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_stat.3.txt
similarity index 89%
rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_stat.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_stat.3.txt
index ef69bb6..9969685 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_stat.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_stat.3.txt
@@ -11,8 +11,8 @@ NAME
archive_entry_ino_is_set, archive_entry_ino64, archive_entry_set_ino64,
archive_entry_nlink, archive_entry_rdev, archive_entry_set_rdev,
archive_entry_rdevmajor, archive_entry_set_rdevmajor,
- archive_entry_rdevminor, archive_entry_set_rdevminor -- accessor func-
- tions for manipulating archive entry descriptions
+ archive_entry_rdevminor, archive_entry_set_rdevminor — accessor functions
+ for manipulating archive entry descriptions
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -113,14 +113,13 @@ SYNOPSIS
DESCRIPTION
Copying to and from struct stat
The function archive_entry_stat() converts the various fields stored in
- the archive entry to the format used by stat(2). The return value
- remains valid until either archive_entry_clear() or archive_entry_free()
- is called. It is not affected by calls to the set accessor functions.
- It currently sets the following values in struct stat: st_atime,
- st_ctime, st_dev, st_gid, st_ino, st_mode, st_mtime, st_nlink, st_rdev,
- st_size, st_uid. In addition, st_birthtime and high-precision informa-
- tion for time-related fields will be included on platforms that support
- it.
+ the archive entry to the format used by stat(2). The return value re‐
+ mains valid until either archive_entry_clear() or archive_entry_free() is
+ called. It is not affected by calls to the set accessor functions. It
+ currently sets the following values in struct stat: st_atime, st_ctime,
+ st_dev, st_gid, st_ino, st_mode, st_mtime, st_nlink, st_rdev, st_size,
+ st_uid. In addition, st_birthtime and high-precision information for
+ time-related fields will be included on platforms that support it.
The function archive_entry_copy_stat() copies fields from the platform's
struct stat. Fields not provided by struct stat are unchanged.
@@ -137,7 +136,7 @@ DESCRIPTION
AE_IFDIR Directory
AE_IFIFO Named pipe (fifo)
Not all file types are supported by all platforms. The constants used by
- stat(2) may have different numeric values from the corresponding con-
+ stat(2) may have different numeric values from the corresponding con‐
stants above.
The functions archive_entry_mode() and archive_entry_set_mode() get/set a
@@ -152,7 +151,7 @@ DESCRIPTION
unset the size, respectively.
The number of references (hardlinks) can be obtained by calling
- archive_entry_nlinks() and set with archive_entry_set_nlinks().
+ archive_entry_nlink() and set with archive_entry_set_nlink().
Identifying unique files
The functions archive_entry_dev() and archive_entry_ino64() are used by
@@ -167,11 +166,11 @@ DESCRIPTION
The inode number can be obtained using archive_entry_ino(). This is a
legacy interface that uses the platform ino_t, which may be very small.
- To set the inode number, archive_entry_set_ino64() is the preferred
- interface.
+ To set the inode number, archive_entry_set_ino64() is the preferred in‐
+ terface.
Accessor functions for block and character devices
- Block and character devices are characterised either using a device num-
+ Block and character devices are characterised either using a device num‐
ber or a pair of major and minor number. The combined device number can
be obtained with archive_device_rdev() and set with
archive_device_set_rdev(). The major and minor numbers are accessed by
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_entry_time.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_entry_time.3.txt
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/text/archive_entry_time.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_entry_time.3.txt
index d2d5328..49052c3 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_entry_time.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_entry_time.3.txt
@@ -10,7 +10,7 @@ NAME
archive_entry_ctime_is_set, archive_entry_set_ctime,
archive_entry_unset_ctime, archive_entry_mtime, archive_entry_mtime_nsec,
archive_entry_mtime_is_set, archive_entry_set_mtime,
- archive_entry_unset_mtime -- functions for manipulating times in archive
+ archive_entry_unset_mtime — functions for manipulating times in archive
entry descriptions
LIBRARY
@@ -95,7 +95,7 @@ DESCRIPTION
All timestamp fields are optional. The XXX_unset() functions can be used
to mark the corresponding field as missing. The current state can be
- queried using XXX_is_set(). Unset time fields have a second and nanosec-
+ queried using XXX_is_set(). Unset time fields have a second and nanosec‐
ond field of 0.
SEE ALSO
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read.3.txt
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read.3.txt
index 0481d95..a9c3ad1 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_READ(3) BSD Library Functions Manual ARCHIVE_READ(3)
NAME
- archive_read -- functions for reading streaming archives
+ archive_read — functions for reading streaming archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -11,9 +11,9 @@ SYNOPSIS
DESCRIPTION
These functions provide a complete API for reading streaming archives.
- The general process is to first create the struct archive object, set
- options, initialize the reader, iterate over the archive headers and
- associated data, then close the archive and release all resources.
+ The general process is to first create the struct archive object, set op‐
+ tions, initialize the reader, iterate over the archive headers and asso‐
+ ciated data, then close the archive and release all resources.
Create archive object
See archive_read_new(3).
@@ -24,10 +24,10 @@ DESCRIPTION
Enable filters and formats
See archive_read_filter(3) and archive_read_format(3).
- You can then modify this object for the desired operations with the vari-
+ You can then modify this object for the desired operations with the vari‐
ous archive_read_set_XXX() and archive_read_support_XXX() functions. In
particular, you will need to invoke appropriate
- archive_read_support_XXX() functions to enable the corresponding compres-
+ archive_read_support_XXX() functions to enable the corresponding compres‐
sion and format support. Note that these latter functions perform two
distinct operations: they cause the corresponding support code to be
linked into your program, and they enable the corresponding auto-detect
@@ -43,7 +43,7 @@ DESCRIPTION
See archive_read_open(3).
Once you have prepared the struct archive object, you call
- archive_read_open() to actually open the archive and prepare it for read-
+ archive_read_open() to actually open the archive and prepare it for read‐
ing. There are several variants of this function; the most basic expects
you to provide pointers to several functions that can provide blocks of
bytes from the archive. There are convenience forms that allow you to
@@ -58,11 +58,11 @@ DESCRIPTION
Each archive entry consists of a header followed by a certain amount of
data. You can obtain the next header with archive_read_next_header(),
- which returns a pointer to an struct archive_entry structure with infor-
+ which returns a pointer to an struct archive_entry structure with infor‐
mation about the current archive element. If the entry is a regular
file, then the header will be followed by the file data. You can use
archive_read_data() (which works much like the read(2) system call) to
- read this data from the archive, or archive_read_data_block() which pro-
+ read this data from the archive, or archive_read_data_block() which pro‐
vides a slightly more efficient interface. You may prefer to use the
higher-level archive_read_data_skip(), which reads and discards the data
for this entry, archive_read_data_into_fd(), which copies the data to the
@@ -147,10 +147,10 @@ AUTHORS
The libarchive library was written by Tim Kientzle .
BUGS
- Many traditional archiver programs treat empty files as valid empty ar-
+ Many traditional archiver programs treat empty files as valid empty ar‐
chives. For example, many implementations of tar(1) allow you to append
entries to an empty file. Of course, it is impossible to determine the
format of an empty file by inspecting the contents, so this library
- treats empty files as having a special ``empty'' format.
+ treats empty files as having a special “empty” format.
BSD February 2, 2012 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_add_passphrase.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_add_passphrase.3.txt
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_add_passphrase.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_add_passphrase.3.txt
index 67d572e..f3075b7 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_add_passphrase.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_add_passphrase.3.txt
@@ -1,8 +1,8 @@
ARCHIVE_READ_ADD_PASS... BSD Library Functions Manual ARCHIVE_READ_ADD_PASS...
NAME
- archive_read_add_passphrase, archive_read_set_passphrase_callback --
- functions for reading encrypted archives
+ archive_read_add_passphrase, archive_read_set_passphrase_callback — func‐
+ tions for reading encrypted archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -26,7 +26,7 @@ DESCRIPTION
archive_read_set_passphrase_callback()
Register a callback function that will be invoked to get a
- passphrase for decryption after trying all the passphrases regis-
+ passphrase for decryption after trying all the passphrases regis‐
tered by the archive_read_add_passphrase() function failed.
SEE ALSO
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_data.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_data.3.txt
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_data.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_data.3.txt
index 9cda859..b39ebe0 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_data.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_data.3.txt
@@ -2,7 +2,7 @@ ARCHIVE_READ_DATA(3) BSD Library Functions Manual ARCHIVE_READ_DATA(3)
NAME
archive_read_data, archive_read_data_block, archive_read_data_skip,
- archive_read_data_into_fd -- functions for reading streaming archives
+ archive_read_data_into_fd — functions for reading streaming archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -27,35 +27,35 @@ DESCRIPTION
archive_read_data()
Read data associated with the header just read. Internally, this
is a convenience function that calls archive_read_data_block()
- and fills any gaps with nulls so that callers see a single con-
+ and fills any gaps with nulls so that callers see a single con‐
tinuous stream of data.
archive_read_data_block()
Return the next available block of data for this entry. Unlike
archive_read_data(), the archive_read_data_block() function
avoids copying data and allows you to correctly handle sparse
- files, as supported by some archive formats. The library guaran-
+ files, as supported by some archive formats. The library guaran‐
tees that offsets will increase and that blocks will not overlap.
Note that the blocks returned from this function can be much
larger than the block size read from disk, due to compression and
internal buffer optimizations.
archive_read_data_skip()
A convenience function that repeatedly calls
- archive_read_data_block() to skip all of the data for this ar-
+ archive_read_data_block() to skip all of the data for this ar‐
chive entry. Note that this function is invoked automatically by
- archive_read_next_header2() if the previous entry was not com-
+ archive_read_next_header2() if the previous entry was not com‐
pletely consumed.
archive_read_data_into_fd()
A convenience function that repeatedly calls
- archive_read_data_block() to copy the entire entry to the pro-
+ archive_read_data_block() to copy the entire entry to the pro‐
vided file descriptor.
RETURN VALUES
Most functions return zero on success, non-zero on error. The possible
return codes include: ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN
(the operation succeeded but a non-critical error was encountered),
- ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera-
- tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal
- error; the archive should be closed immediately).
+ ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐
+ tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐
+ ror; the archive should be closed immediately).
archive_read_data() returns a count of bytes actually read or zero at the
end of the entry. On error, a value of ARCHIVE_FATAL, ARCHIVE_WARN, or
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_disk.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_disk.3.txt
similarity index 83%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_disk.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_disk.3.txt
index 925fa71..b9f8d90 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_disk.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_disk.3.txt
@@ -7,7 +7,7 @@ NAME
archive_read_disk_set_symlink_hybrid, archive_read_disk_entry_from_file,
archive_read_disk_gname, archive_read_disk_uname,
archive_read_disk_set_uname_lookup, archive_read_disk_set_gname_lookup,
- archive_read_disk_set_standard_lookup -- functions for reading objects
+ archive_read_disk_set_standard_lookup — functions for reading objects
from disk
LIBRARY
@@ -70,55 +70,55 @@ DESCRIPTION
(file flag) set. By default, the nodump file attribute
is ignored.
ARCHIVE_READDISK_MAC_COPYFILE
- Mac OS X specific. Read metadata (ACLs and extended
- attributes) with copyfile(3). By default, metadata is
- read using copyfile(3).
+ Mac OS X specific. Read metadata (ACLs and extended at‐
+ tributes) with copyfile(3). By default, metadata is read
+ using copyfile(3).
ARCHIVE_READDISK_NO_ACL
Do not read Access Control Lists. By default, ACLs are
read from disk.
ARCHIVE_READDISK_NO_FFLAGS
Do not read file attributes (file flags). By default,
file attributes are read from disk. See chattr(1)
- (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor-
+ (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor‐
mation on file attributes.
ARCHIVE_READDISK_NO_TRAVERSE_MOUNTS
Do not traverse mount points. By default, mount points
are traversed.
ARCHIVE_READDISK_NO_XATTR
- Do not read extended file attributes (xattrs). By
- default, extended file attributes are read from disk.
- See xattr(7) (Linux), xattr(2) (Mac OS X), or
- getextattr(8) (FreeBSD) for more information on extended
- file attributes.
+ Do not read extended file attributes (xattrs). By de‐
+ fault, extended file attributes are read from disk. See
+ xattr(7) (Linux), xattr(2) (Mac OS X), or getextattr(8)
+ (FreeBSD) for more information on extended file at‐
+ tributes.
ARCHIVE_READDISK_RESTORE_ATIME
- Restore access time of traversed files. By default,
- access time of traversed files is not restored.
+ Restore access time of traversed files. By default, ac‐
+ cess time of traversed files is not restored.
archive_read_disk_set_symlink_logical(),
archive_read_disk_set_symlink_physical(),
archive_read_disk_set_symlink_hybrid()
This sets the mode used for handling symbolic links. The
- ``logical'' mode follows all symbolic links. The ``physical''
- mode does not follow any symbolic links. The ``hybrid'' mode
- currently behaves identically to the ``logical'' mode.
+ “logical” mode follows all symbolic links. The “physical” mode
+ does not follow any symbolic links. The “hybrid” mode currently
+ behaves identically to the “logical” mode.
archive_read_disk_gname(), archive_read_disk_uname()
- Returns a user or group name given a gid or uid value. By
- default, these always return a NULL string.
+ Returns a user or group name given a gid or uid value. By de‐
+ fault, these always return a NULL string.
archive_read_disk_set_gname_lookup(),
archive_read_disk_set_uname_lookup()
These allow you to override the functions used for user and group
name lookups. You may also provide a void * pointer to a private
data structure and a cleanup function for that data. The cleanup
- function will be invoked when the struct archive object is
- destroyed or when new lookup functions are registered.
+ function will be invoked when the struct archive object is de‐
+ stroyed or when new lookup functions are registered.
archive_read_disk_set_standard_lookup()
This convenience function installs a standard set of user and
group name lookup functions. These functions use getpwuid(3) and
getgrgid(3) to convert ids to names, defaulting to NULL if the
- names cannot be looked up. These functions also implement a sim-
+ names cannot be looked up. These functions also implement a sim‐
ple memory cache to reduce the number of calls to getpwuid(3) and
getgrgid(3).
@@ -130,15 +130,15 @@ DESCRIPTION
source path will be used.)
Information is read from disk using the path name from the struct
- archive_entry object. If a file descriptor is provided, some
- information will be obtained using that file descriptor, on plat-
+ archive_entry object. If a file descriptor is provided, some in‐
+ formation will be obtained using that file descriptor, on plat‐
forms that support the appropriate system calls.
If a pointer to a struct stat is provided, information from that
- structure will be used instead of reading from the disk where
- appropriate. This can provide performance benefits in scenarios
+ structure will be used instead of reading from the disk where ap‐
+ propriate. This can provide performance benefits in scenarios
where struct stat information has already been read from the disk
- as a side effect of some other operation. (For example, direc-
+ as a side effect of some other operation. (For example, direc‐
tory traversal libraries often provide this information.)
Where necessary, user and group ids are converted to user and
@@ -182,14 +182,14 @@ RETURN VALUES
negative error codes for errors. Specific error codes include:
ARCHIVE_RETRY for operations that might succeed if retried, ARCHIVE_WARN
for unusual conditions that do not prevent further operations, and
- ARCHIVE_FATAL for serious errors that make remaining operations impossi-
+ ARCHIVE_FATAL for serious errors that make remaining operations impossi‐
ble.
archive_read_disk_new() returns a pointer to a newly-allocated struct
archive object or NULL if the allocation failed for any reason.
archive_read_disk_gname() and archive_read_disk_uname() return const char
- * pointers to the textual name or NULL if the lookup failed for any rea-
+ * pointers to the textual name or NULL if the lookup failed for any rea‐
son. The returned pointer points to internal storage that may be reused
on the next call to either of these functions; callers should copy the
string if they need to continue accessing it.
@@ -204,30 +204,30 @@ SEE ALSO
HISTORY
The libarchive library first appeared in FreeBSD 5.3. The
- archive_read_disk interface was added to libarchive 2.6 and first
- appeared in FreeBSD 8.0.
+ archive_read_disk interface was added to libarchive 2.6 and first ap‐
+ peared in FreeBSD 8.0.
AUTHORS
The libarchive library was written by Tim Kientzle
.
BUGS
- The ``standard'' user name and group name lookup functions are not the
- defaults because getgrgid(3) and getpwuid(3) are sometimes too large for
- particular applications. The current design allows the application
- author to use a more compact implementation when appropriate.
+ The “standard” user name and group name lookup functions are not the de‐
+ faults because getgrgid(3) and getpwuid(3) are sometimes too large for
+ particular applications. The current design allows the application au‐
+ thor to use a more compact implementation when appropriate.
The full list of metadata read from disk by
archive_read_disk_entry_from_file() is necessarily system-dependent.
- The archive_read_disk_entry_from_file() function reads as much informa-
+ The archive_read_disk_entry_from_file() function reads as much informa‐
tion as it can from disk. Some method should be provided to limit this
so that clients who do not need ACLs, for instance, can avoid the extra
work needed to look up such information.
This API should provide a set of methods for walking a directory tree.
That would make it a direct parallel of the archive_read(3) API. When
- such methods are implemented, the ``hybrid'' symbolic link mode will make
+ such methods are implemented, the “hybrid” symbolic link mode will make
sense.
BSD April 3, 2017 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_extract.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_extract.3.txt
similarity index 80%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_extract.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_extract.3.txt
index 1cccb51..aaf1237 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_extract.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_extract.3.txt
@@ -2,7 +2,7 @@ ARCHIVE_READ_EXTRACT(3) BSD Library Functions Manual ARCHIVE_READ_EXTRACT(3)
NAME
archive_read_extract, archive_read_extract2,
- archive_read_extract_set_progress_callback -- functions for reading
+ archive_read_extract_set_progress_callback — functions for reading
streaming archives
LIBRARY
@@ -29,12 +29,11 @@ DESCRIPTION
archive_write_disk(3) interfaces. The first call to
archive_read_extract() creates a restore object using
archive_write_disk_new(3) and
- archive_write_disk_set_standard_lookup(3), then transparently
- invokes archive_write_disk_set_options(3),
- archive_write_header(3), archive_write_data(3), and
- archive_write_finish_entry(3) to create the entry on disk and
- copy data into it. The flags argument is passed unmodified to
- archive_write_disk_set_options(3).
+ archive_write_disk_set_standard_lookup(3), then transparently in‐
+ vokes archive_write_disk_set_options(3), archive_write_header(3),
+ archive_write_data(3), and archive_write_finish_entry(3) to cre‐
+ ate the entry on disk and copy data into it. The flags argument
+ is passed unmodified to archive_write_disk_set_options(3).
archive_read_extract2()
This is another version of archive_read_extract() that allows you
to provide your own restore object. In particular, this allows
@@ -46,21 +45,21 @@ DESCRIPTION
options yourself.
archive_read_extract_set_progress_callback()
Sets a pointer to a user-defined callback that can be used for
- updating progress displays during extraction. The progress func-
+ updating progress displays during extraction. The progress func‐
tion will be invoked during the extraction of large regular
files. The progress function will be invoked with the pointer
- provided to this call. Generally, the data pointed to should
- include a reference to the archive object and the archive_entry
- object so that various statistics can be retrieved for the
- progress display.
+ provided to this call. Generally, the data pointed to should in‐
+ clude a reference to the archive object and the archive_entry ob‐
+ ject so that various statistics can be retrieved for the progress
+ display.
RETURN VALUES
Most functions return zero on success, non-zero on error. The possible
return codes include: ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN
(the operation succeeded but a non-critical error was encountered),
- ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera-
- tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal
- error; the archive should be closed immediately).
+ ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐
+ tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐
+ ror; the archive should be closed immediately).
ERRORS
Detailed error codes and textual descriptions are available from the
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_filter.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_filter.3.txt
similarity index 84%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_filter.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_filter.3.txt
index 9cfb5f8..01b6c97 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_filter.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_filter.3.txt
@@ -7,7 +7,7 @@ NAME
archive_read_support_filter_none, archive_read_support_filter_rpm,
archive_read_support_filter_uu, archive_read_support_filter_xz,
archive_read_support_filter_zstd, archive_read_support_filter_program,
- archive_read_support_filter_program_signature -- functions for reading
+ archive_read_support_filter_program_signature — functions for reading
streaming archives
LIBRARY
@@ -19,6 +19,9 @@ SYNOPSIS
int
archive_read_support_filter_all(struct archive *);
+ int
+ archive_read_support_filter_by_code(struct archive *, int);
+
int
archive_read_support_filter_bzip2(struct archive *);
@@ -83,14 +86,20 @@ DESCRIPTION
specified compression. These functions may fall back on external
programs if an appropriate library was not available at build
time. Decompression using an external program is usually slower
- than decompression through built-in libraries. Note that
- ``none'' is always enabled by default.
+ than decompression through built-in libraries. Note that “none”
+ is always enabled by default.
archive_read_support_filter_all()
Enables all available decompression filters.
+ archive_read_support_filter_by_code()
+ Enables a single filter specified by the filter code. This func‐
+ tion does not work with ARCHIVE_FILTER_PROGRAM. Note: In stati‐
+ cally-linked executables, this will cause your program to include
+ support for every filter. If executable size is a concern, you
+ may wish to avoid using this function.
archive_read_support_filter_program()
Data is fed through the specified external program before being
dearchived. Note that this disables automatic detection of the
- compression format, so it makes no sense to specify this in con-
+ compression format, so it makes no sense to specify this in con‐
junction with any other decompression option.
archive_read_support_filter_program_signature()
This feeds data through the specified external program but only
@@ -112,4 +121,4 @@ SEE ALSO
archive_read(3), archive_read_data(3), archive_read_format(3),
archive_read_format(3), libarchive(3)
-BSD August 14, 2014 BSD
+BSD June 9, 2020 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_format.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_format.3.txt
similarity index 78%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_format.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_format.3.txt
index c5eb5c7..cd80251 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_format.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_format.3.txt
@@ -8,7 +8,7 @@ NAME
archive_read_support_format_lha, archive_read_support_format_mtree,
archive_read_support_format_rar, archive_read_support_format_raw,
archive_read_support_format_tar, archive_read_support_format_xar,
- archive_read_support_format_zip -- functions for reading streaming ar-
+ archive_read_support_format_zip — functions for reading streaming ar‐
chives
LIBRARY
@@ -74,33 +74,33 @@ DESCRIPTION
archive_read_support_format_tar(),
archive_read_support_format_xar(),
archive_read_support_format_zip()
- Enables support---including auto-detection code---for the speci-
+ Enables support---including auto-detection code---for the speci‐
fied archive format. For example,
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.
archive_read_support_format_all()
- Enables support for all available formats except the ``raw'' for-
- mat (see below).
+ Enables support for all available formats except the “raw” format
+ (see below).
archive_read_support_format_by_code()
Enables a single format specified by the format code. This can
be useful when reading a single archive twice; use
- archive_format() after reading the first time and pass the
- resulting code to this function to selectively enable only the
- necessary format support. Note: In statically-linked executa-
- bles, this will cause your program to include support for every
- format. If executable size is a concern, you may wish to avoid
- using this function.
+ archive_format() after reading the first time and pass the re‐
+ sulting code to this function to selectively enable only the nec‐
+ essary format support. Note: In statically-linked executables,
+ this will cause your program to include support for every format.
+ If executable size is a concern, you may wish to avoid using this
+ function.
archive_read_support_format_empty()
- Enables support for treating empty files as empty archives.
- Because empty files are valid for several different formats, it
- is not possible to accurately determine a format for an empty
- file based purely on contents. So empty files are treated by
+ Enables support for treating empty files as empty archives. Be‐
+ cause empty files are valid for several different formats, 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.
archive_read_support_format_raw()
- The ``raw'' format handler allows libarchive to be used to read
- arbitrary data. It treats any data stream as an archive with a
- single entry. The pathname of this entry is ``data''; all other
+ The “raw” format handler allows libarchive to be used to read ar‐
+ bitrary data. It treats any data stream as an archive with a
+ single entry. The pathname of this entry is “data”; all other
entry fields are unset. This is not enabled by
archive_read_support_format_all() in order to avoid erroneous
handling of damaged archives.
@@ -117,13 +117,13 @@ SEE ALSO
archive_read_set_options(3), archive_util(3), libarchive(3), tar(5)
BUGS
- Many traditional archiver programs treat empty files as valid empty ar-
+ Many traditional archiver programs treat empty files as valid empty ar‐
chives. For example, many implementations of tar(1) allow you to append
entries to an empty file. Of course, it is impossible to determine the
format of an empty file by inspecting the contents, so this library
- treats empty files as having a special ``empty'' format.
+ treats empty files as having a special “empty” format.
- Using the ``raw'' handler together with any other handler will often work
+ Using the “raw” handler together with any other handler will often work
but can produce surprising results.
BSD February 2, 2012 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_free.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_free.3.txt
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_free.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_free.3.txt
index ae2ea19..508b267 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_free.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_free.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_READ_FREE(3) BSD Library Functions Manual ARCHIVE_READ_FREE(3)
NAME
- archive_read_close, archive_read_finish, archive_read_free -- functions
+ archive_read_close, archive_read_finish, archive_read_free — functions
for reading streaming archives
LIBRARY
@@ -25,7 +25,7 @@ DESCRIPTION
archive_read_finish()
This is a deprecated synonym for archive_read_free(). The new
name was introduced with libarchive 3.0. Applications that need
- to compile with either libarchive 2 or libarchive 3 should con-
+ to compile with either libarchive 2 or libarchive 3 should con‐
tinue to use the archive_read_finish() name. Both names will be
supported until libarchive 4.0 is released, which is not expected
to occur earlier than 2013.
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_header.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_header.3.txt
similarity index 88%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_header.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_header.3.txt
index 0998d35..855711a 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_header.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_header.3.txt
@@ -1,8 +1,8 @@
ARCHIVE_READ_HEADER(3) BSD Library Functions Manual ARCHIVE_READ_HEADER(3)
NAME
- archive_read_next_header, archive_read_next_header2 -- functions for
- reading streaming archives
+ archive_read_next_header, archive_read_next_header2 — functions for read‐
+ ing streaming archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -29,9 +29,9 @@ DESCRIPTION
RETURN VALUES
These functions return ARCHIVE_OK (the operation succeeded), ARCHIVE_WARN
(the operation succeeded but a non-critical error was encountered),
- ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera-
- tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal
- error; the archive should be closed immediately).
+ ARCHIVE_EOF (end-of-archive was encountered), ARCHIVE_RETRY (the opera‐
+ tion failed but can be retried), and ARCHIVE_FATAL (there was a fatal er‐
+ ror; the archive should be closed immediately).
ERRORS
Detailed error codes and textual descriptions are available from the
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_new.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_new.3.txt
similarity index 91%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_new.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_new.3.txt
index 302bedd..706285c 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_new.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_new.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_READ_NEW(3) BSD Library Functions Manual ARCHIVE_READ_NEW(3)
NAME
- archive_read_new -- functions for reading streaming archives
+ archive_read_new — functions for reading streaming archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_open.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_open.3.txt
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_open.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_open.3.txt
index 3960485..7ef2937 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_open.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_open.3.txt
@@ -3,7 +3,7 @@ ARCHIVE_READ_OPEN(3) BSD Library Functions Manual ARCHIVE_READ_OPEN(3)
NAME
archive_read_open, archive_read_open2, archive_read_open_fd,
archive_read_open_FILE, archive_read_open_filename,
- archive_read_open_memory -- functions for reading streaming archives
+ archive_read_open_memory — functions for reading streaming archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -52,7 +52,7 @@ DESCRIPTION
pointer. This function should not be used with tape drives or
other devices that require strict I/O blocking.
archive_read_open_fd()
- Like archive_read_open(), except that it accepts a file descrip-
+ Like archive_read_open(), except that it accepts a file descrip‐
tor and block size rather than a set of function pointers. Note
that the file descriptor will not be automatically closed at end-
of-archive. This function is safe for use with tape drives or
@@ -60,16 +60,16 @@ DESCRIPTION
archive_read_open_file()
This is a deprecated synonym for archive_read_open_filename().
archive_read_open_filename()
- Like archive_read_open(), except that it accepts a simple file-
- name and a block size. A NULL filename represents standard
- input. This function is safe for use with tape drives or other
+ Like archive_read_open(), except that it accepts a simple file‐
+ name and a block size. A NULL filename represents standard in‐
+ put. This function is safe for use with tape drives or other
blocked devices.
archive_read_open_memory()
Like archive_read_open(), except that it accepts a pointer and
size of a block of memory containing the archive data.
- A complete description of the struct archive and struct archive_entry
- objects can be found in the overview manual page for libarchive(3).
+ A complete description of the struct archive and struct archive_entry ob‐
+ jects can be found in the overview manual page for libarchive(3).
CLIENT CALLBACKS
The callback functions must match the following prototypes:
@@ -88,8 +88,8 @@ CLIENT CALLBACKS
The open callback is invoked by archive_open(). It should return
ARCHIVE_OK if the underlying file or data source is successfully opened.
- If the open fails, it should call archive_set_error() to register an
- error code and message and return ARCHIVE_FATAL.
+ If the open fails, it should call archive_set_error() to register an er‐
+ ror code and message and return ARCHIVE_FATAL.
The read callback is invoked whenever the library requires raw bytes from
the archive. The read callback should read data into a buffer, set the
@@ -98,8 +98,8 @@ CLIENT CALLBACKS
callback again only after it has consumed this data. The library imposes
no constraints on the size of the data blocks returned. On end-of-file,
the read callback should return zero. On error, the read callback should
- invoke archive_set_error() to register an error code and message and
- return -1.
+ invoke archive_set_error() to register an error code and message and re‐
+ turn -1.
The skip callback is invoked when the library wants to ignore a block of
data. The return value is the number of bytes actually skipped, which
@@ -110,7 +110,7 @@ CLIENT CALLBACKS
gains when reading uncompressed archives from slow disk drives or other
media that can skip quickly.
- The close callback is invoked by archive_close when the archive process-
+ The close callback is invoked by archive_close when the archive process‐
ing is complete. The callback should return ARCHIVE_OK on success. On
failure, the callback should invoke archive_set_error() to register an
error code and message and return ARCHIVE_FATAL.
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_read_set_options.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_read_set_options.3.txt
similarity index 86%
rename from dependencies/libarchive-3.4.2/doc/text/archive_read_set_options.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_read_set_options.3.txt
index ff159a2..fa516fd 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_read_set_options.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_read_set_options.3.txt
@@ -2,8 +2,8 @@ ARCHIVE_READ_OPTIONS(3) BSD Library Functions Manual ARCHIVE_READ_OPTIONS(3)
NAME
archive_read_set_filter_option, archive_read_set_format_option,
- archive_read_set_option, archive_read_set_options -- functions control-
- ling options for reading archives
+ archive_read_set_option, archive_read_set_options — functions controlling
+ options for reading archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -25,14 +25,14 @@ SYNOPSIS
archive_read_set_options(struct archive *, const char *options);
DESCRIPTION
- These functions provide a way for libarchive clients to configure spe-
+ These functions provide a way for libarchive clients to configure spe‐
cific read modules.
archive_read_set_filter_option(), archive_read_set_format_option()
Specifies an option that will be passed to currently-registered
filters (including decompression filters) or format readers.
- If option and value are both NULL, these functions will do noth-
+ If option and value are both NULL, these functions will do noth‐
ing and ARCHIVE_OK will be returned. If option is NULL but value
is not, these functions will do nothing and ARCHIVE_FAILED will
be returned.
@@ -51,7 +51,7 @@ DESCRIPTION
archive_read_set_option()
Calls archive_read_set_format_option(), then
archive_read_set_filter_option(). If either function returns
- ARCHIVE_FATAL, ARCHIVE_FATAL will be returned immediately. Oth-
+ ARCHIVE_FATAL, ARCHIVE_FATAL will be returned immediately. Oth‐
erwise, greater of the two values will be returned.
archive_read_set_options()
@@ -68,7 +68,7 @@ DESCRIPTION
Modules that do not accept an option with this name will
ignore it.
option The option will be provided to every module with a value
- of ``1''.
+ of “1”.
!option
The option will be provided to every module with a NULL
value.
@@ -82,9 +82,17 @@ OPTIONS
The value is used as a character set name that will be
used when translating file names.
Format cpio
+ compat-2x
+ Libarchive 2.x incorrectly encoded Unicode filenames on
+ some platforms. This option mimics the libarchive 2.x
+ filename handling so that such archives can be read cor‐
+ rectly.
hdrcharset
The value is used as a character set name that will be
used when translating file names.
+ pwb When reading a binary CPIO archive, assume that it is in
+ the original PWB cpio format, and handle file mode bits
+ accordingly. The default is to assume v7 format.
Format iso9660
joliet Support Joliet extensions. Defaults to enabled, use
!joliet to disable.
@@ -107,7 +115,7 @@ OPTIONS
compat-2x
Libarchive 2.x incorrectly encoded Unicode filenames on
some platforms. This option mimics the libarchive 2.x
- filename handling so that such archives can be read cor-
+ filename handling so that such archives can be read cor‐
rectly.
hdrcharset
The value is used as a character set name that will be
@@ -115,12 +123,12 @@ OPTIONS
mac-ext
Support Mac OS metadata extension that records data in
special files beginning with a period and underscore.
- Defaults to enabled on Mac OS, disabled on other plat-
+ Defaults to enabled on Mac OS, disabled on other plat‐
forms. Use !mac-ext to disable.
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 con-
+ Without this option, only the contents of the first con‐
catenated archive would be read.
ERRORS
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_util.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_util.3.txt
similarity index 89%
rename from dependencies/libarchive-3.4.2/doc/text/archive_util.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_util.3.txt
index 77c41bd..4827c0a 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_util.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_util.3.txt
@@ -5,7 +5,7 @@ NAME
archive_copy_error, archive_errno, archive_error_string,
archive_file_count, archive_filter_code, archive_filter_count,
archive_filter_name, archive_format, archive_format_name,
- archive_position, archive_set_error -- libarchive utility functions
+ archive_position, archive_set_error — libarchive utility functions
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -70,8 +70,8 @@ DESCRIPTION
Copies error information from one archive to another.
archive_errno()
Returns a numeric error code (see errno(2)) indicating the reason
- for the most recent error return. Note that this can not be
- reliably used to detect whether an error has occurred. It should
+ for the most recent error return. Note that this can not be re‐
+ liably used to detect whether an error has occurred. It should
be used only after another libarchive function has returned an
error status.
archive_error_string()
@@ -87,13 +87,13 @@ DESCRIPTION
archive_filter_count() for details of the numbering.
archive_filter_count()
Returns the number of filters in the current pipeline. For read
- archive handles, these filters are added automatically by the
- automatic format detection. For write archive handles, these
- filters are added by calls to the various
- archive_write_add_filter_XXX() functions. Filters in the result-
+ archive handles, these filters are added automatically by the au‐
+ tomatic format detection. For write archive handles, these fil‐
+ ters are added by calls to the various
+ archive_write_add_filter_XXX() functions. Filters in the result‐
ing pipeline are numbered so that filter 0 is the filter closest
to the format handler. As a convenience, functions that expect a
- filter number will accept -1 as a synonym for the highest-num-
+ filter number will accept -1 as a synonym for the highest-num‐
bered filter.
For example, when reading a uuencoded gzipped tar archive, there
@@ -104,13 +104,13 @@ DESCRIPTION
archive_position(a, 2) which would return the number of bytes
currently read from the archive, while archive_position(a, 1)
would return the number of bytes after uudecoding, and
- archive_position(a, 0) would return the number of bytes after
- decompression.
+ archive_position(a, 0) would return the number of bytes after de‐
+ compression.
archive_filter_name()
Returns a textual name identifying the indicated filter. See
archive_filter_count() for details of the numbering.
archive_format()
- Returns a numeric code indicating the format of the current ar-
+ Returns a numeric code indicating the format of the current ar‐
chive entry. This value is set by a successful call to
archive_read_next_header(). Note that it is common for this
value to change from entry to entry. For example, a tar archive
@@ -123,20 +123,20 @@ DESCRIPTION
Returns the number of bytes read from or written to the indicated
filter. In particular, archive_position(a, 0) returns the number
of bytes read or written by the format handler, while
- archive_position(a, -1) returns the number of bytes read or writ-
+ archive_position(a, -1) returns the number of bytes read or writ‐
ten to the archive. See archive_filter_count() for details of
the numbering here.
archive_set_error()
Sets the numeric error code and error description that will be
returned by archive_errno() and archive_error_string(). This
- function should be used within I/O callbacks to set system-spe-
+ function should be used within I/O callbacks to set system-spe‐
cific error codes and error descriptions. This function accepts
a printf-like format string and arguments. However, you should
be careful to use only the following printf format specifiers:
- ``%c'', ``%d'', ``%jd'', ``%jo'', ``%ju'', ``%jx'', ``%ld'',
- ``%lo'', ``%lu'', ``%lx'', ``%o'', ``%u'', ``%s'', ``%x'',
- ``%%''. Field-width specifiers and other printf features are not
- uniformly supported and should not be used.
+ “%c”, “%d”, “%jd”, “%jo”, “%ju”, “%jx”, “%ld”, “%lo”, “%lu”,
+ “%lx”, “%o”, “%u”, “%s”, “%x”, “%%”. Field-width specifiers and
+ other printf features are not uniformly supported and should not
+ be used.
SEE ALSO
archive_read(3), archive_write(3), libarchive(3), printf(3)
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write.3.txt
similarity index 87%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write.3.txt
index ce77dab..f8d08b3 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_WRITE(3) BSD Library Functions Manual ARCHIVE_WRITE(3)
NAME
- archive_write -- functions for creating archives
+ archive_write — functions for creating archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -25,7 +25,7 @@ DESCRIPTION
See archive_write_filter(3), archive_write_format(3) and
archive_write_blocksize(3).
- You can then modify this object for the desired operations with the vari-
+ You can then modify this object for the desired operations with the vari‐
ous archive_write_set_XXX() functions. In particular, you will need to
invoke appropriate archive_write_add_XXX() and archive_write_set_XXX()
functions to enable the corresponding compression and format support.
@@ -38,8 +38,8 @@ DESCRIPTION
Once you have prepared the struct archive object, you call
archive_write_open() to actually open the archive and prepare it for
- writing. There are several variants of this function; the most basic
- expects you to provide pointers to several functions that can provide
+ writing. There are several variants of this function; the most basic ex‐
+ pects you to provide pointers to several functions that can provide
blocks of bytes from the archive. There are convenience forms that allow
you to specify a filename, file descriptor, FILE * object, or a block of
memory from which to write the archive data.
@@ -57,12 +57,12 @@ DESCRIPTION
Release resources
See archive_write_free(3).
- After all entries have been written, use the archive_write_free() func-
+ After all entries have been written, use the archive_write_free() func‐
tion to release all resources.
EXAMPLES
- The following sketch illustrates basic usage of the library. In this
- example, the callback functions are simply wrappers around the standard
+ The following sketch illustrates basic usage of the library. In this ex‐
+ ample, the callback functions are simply wrappers around the standard
open(2), write(2), and close(2) system calls.
#ifdef __linux__
@@ -173,20 +173,20 @@ AUTHORS
BUGS
There are many peculiar bugs in historic tar implementations that may
cause certain programs to reject archives written by this library. For
- example, several historic implementations calculated header checksums
- incorrectly and will thus reject valid archives; GNU tar does not fully
+ example, several historic implementations calculated header checksums in‐
+ correctly and will thus reject valid archives; GNU tar does not fully
support pax interchange format; some old tar implementations required
specific field terminations.
The default pax interchange format eliminates most of the historic tar
- limitations and provides a generic key/value attribute facility for ven-
+ limitations and provides a generic key/value attribute facility for ven‐
dor-defined extensions. One oversight in POSIX is the failure to provide
a standard attribute for large device numbers. This library uses
- ``SCHILY.devminor'' and ``SCHILY.devmajor'' for device numbers that
- exceed the range supported by the backwards-compatible ustar header.
- These keys are compatible with Joerg Schilling's star archiver. Other
- implementations may not recognize these keys and will thus be unable to
- correctly restore device nodes with large device numbers from archives
- created by this library.
+ “SCHILY.devminor” and “SCHILY.devmajor” for device numbers that exceed
+ the range supported by the backwards-compatible ustar header. These keys
+ are compatible with Joerg Schilling's star archiver. Other implementa‐
+ tions may not recognize these keys and will thus be unable to correctly
+ restore device nodes with large device numbers from archives created by
+ this library.
BSD February 2, 2012 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_blocksize.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_blocksize.3.txt
similarity index 94%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_blocksize.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_blocksize.3.txt
index ee161af..8f92638 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_blocksize.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_blocksize.3.txt
@@ -3,7 +3,7 @@ ARCHIVE_WRITE_BLOCKSI... BSD Library Functions Manual ARCHIVE_WRITE_BLOCKSI...
NAME
archive_write_get_bytes_per_block, archive_write_set_bytes_per_block,
archive_write_get_bytes_in_last_block,
- archive_write_set_bytes_in_last_block -- functions for creating archives
+ archive_write_set_bytes_in_last_block — functions for creating archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -43,11 +43,11 @@ DESCRIPTION
the other blocks. Otherwise, the final block will be padded to a
multiple of this size. In particular, setting it to 1 will cause
the final block to not be padded. For compressed output, any
- padding generated by this option is applied only after the com-
+ padding generated by this option is applied only after the com‐
pression. The uncompressed data is always unpadded. The default
is to pad the last block to the full block size (note that
archive_write_open_filename() will set this based on the file
- type). Unlike the other ``set'' functions, this function can be
+ type). Unlike the other “set” functions, this function can be
called after the archive is opened.
archive_write_get_bytes_in_last_block()
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_data.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_data.3.txt
similarity index 79%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_data.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_data.3.txt
index b152279..96f8d1c 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_data.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_data.3.txt
@@ -1,8 +1,8 @@
ARCHIVE_WRITE_DATA(3) BSD Library Functions Manual ARCHIVE_WRITE_DATA(3)
NAME
- archive_write_data, archive_write_data_block -- functions for creating
- archives
+ archive_write_data, archive_write_data_block — functions for creating ar‐
+ chives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -26,7 +26,7 @@ DESCRIPTION
like archive_write_data() except that it performs a seek on the
file being written to the specified offset before writing the
data. This is useful when restoring sparse files from archive
- formats that support sparse files. Returns number of bytes writ-
+ formats that support sparse files. Returns number of bytes writ‐
ten or -1 on error. (Note: This is currently not supported for
archive_write handles, only for archive_write_disk handles.
@@ -39,11 +39,11 @@ ERRORS
archive_errno() and archive_error_string() functions.
BUGS
- In libarchive 3.x, this function sometimes returns zero on success
- instead of returning the number of bytes written. Specifically, this
- occurs when writing to an archive_write_disk handle. Clients should
- treat any value less than zero as an error and consider any non-negative
- value as success.
+ In libarchive 3.x, this function sometimes returns zero on success in‐
+ stead of returning the number of bytes written. Specifically, this oc‐
+ curs when writing to an archive_write_disk handle. Clients should treat
+ any value less than zero as an error and consider any non-negative value
+ as success.
SEE ALSO
tar(1), archive_write_finish_entry(3), archive_write_set_options(3),
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_disk.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_disk.3.txt
similarity index 76%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_disk.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_disk.3.txt
index d27016e..1536edc 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_disk.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_disk.3.txt
@@ -4,7 +4,7 @@ NAME
archive_write_disk_new, archive_write_disk_set_options,
archive_write_disk_set_skip_file, archive_write_disk_set_group_lookup,
archive_write_disk_set_standard_lookup,
- archive_write_disk_set_user_lookup -- functions for creating objects on
+ archive_write_disk_set_user_lookup — functions for creating objects on
disk
LIBRARY
@@ -37,13 +37,13 @@ SYNOPSIS
DESCRIPTION
These functions provide a complete API for creating objects on disk from
- struct archive_entry descriptions. They are most naturally used when
- extracting objects from an archive using the archive_read() interface.
- The general process is to read struct archive_entry objects from an ar-
- chive, then write those objects to a struct archive object created using
- the archive_write_disk() family functions. This interface is deliber-
- ately very similar to the archive_write() interface used to write objects
- to a streaming archive.
+ struct archive_entry descriptions. They are most naturally used when ex‐
+ tracting objects from an archive using the archive_read() interface. The
+ general process is to read struct archive_entry objects from an archive,
+ then write those objects to a struct archive object created using the
+ archive_write_disk() family functions. This interface is deliberately
+ very similar to the archive_write() interface used to write objects to a
+ streaming archive.
archive_write_disk_new()
Allocates and initializes a struct archive object suitable for
@@ -52,84 +52,84 @@ DESCRIPTION
archive_write_disk_set_skip_file()
Records the device and inode numbers of a file that should not be
overwritten. This is typically used to ensure that an extraction
- process does not overwrite the archive from which objects are
- being read. This capability is technically unnecessary but can
- be a significant performance optimization in practice.
+ process does not overwrite the archive from which objects are be‐
+ ing read. This capability is technically unnecessary but can be
+ a significant performance optimization in practice.
archive_write_disk_set_options()
The options field consists of a bitwise OR of one or more of the
following values:
ARCHIVE_EXTRACT_ACL
- Attempt to restore Access Control Lists. By default,
- extended ACLs are ignored.
+ Attempt to restore Access Control Lists. By default, ex‐
+ tended ACLs are ignored.
ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS
Before removing a file system object prior to replacing
- it, clear platform-specific file flags which might pre-
+ it, clear platform-specific file flags which might pre‐
vent its removal.
ARCHIVE_EXTRACT_FFLAGS
- Attempt to restore file attributes (file flags). By
- default, file attributes are ignored. See chattr(1)
- (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor-
+ Attempt to restore file attributes (file flags). By de‐
+ fault, file attributes are ignored. See chattr(1)
+ (Linux) or chflags(1) (FreeBSD, Mac OS X) for more infor‐
mation on file attributes.
ARCHIVE_EXTRACT_MAC_METADATA
Mac OS X specific. Restore metadata using copyfile(3).
By default, copyfile(3) metadata is ignored.
ARCHIVE_EXTRACT_NO_OVERWRITE
- Existing files on disk will not be overwritten. By
- default, existing regular files are truncated and over-
- written; existing directories will have their permissions
- updated; other pre-existing objects are unlinked and
- recreated from scratch.
+ Existing files on disk will not be overwritten. By de‐
+ fault, existing regular files are truncated and overwrit‐
+ ten; existing directories will have their permissions up‐
+ dated; other pre-existing objects are unlinked and recre‐
+ ated from scratch.
ARCHIVE_EXTRACT_OWNER
The user and group IDs should be set on the restored
- file. By default, the user and group IDs are not
- restored.
+ file. By default, the user and group IDs are not re‐
+ stored.
ARCHIVE_EXTRACT_PERM
Full permissions (including SGID, SUID, and sticky bits)
should be restored exactly as specified, without obeying
the current umask. Note that SUID and SGID bits can only
be restored if the user and group ID of the object on
- disk are correct. If ARCHIVE_EXTRACT_OWNER is not speci-
+ disk are correct. If ARCHIVE_EXTRACT_OWNER is not speci‐
fied, then SUID and SGID bits will only be restored if
the default user and group IDs of newly-created objects
on disk happen to match those specified in the archive
entry. By default, only basic permissions are restored,
and umask is obeyed.
ARCHIVE_EXTRACT_SAFE_WRITES
- Extract files atomically, by first creating a unique tem-
- porary file and then renaming it to its required destina-
+ Extract files atomically, by first creating a unique tem‐
+ porary file and then renaming it to its required destina‐
tion name. This avoids a race where an application might
see a partial file (or no file) during extraction.
ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS
Refuse to extract an absolute path. The default is to
not refuse such paths.
ARCHIVE_EXTRACT_SECURE_NODOTDOT
- Refuse to extract a path that contains a .. element any-
+ Refuse to extract a path that contains a .. element any‐
where within it. The default is to not refuse such
- paths. Note that paths ending in .. always cause an
- error, regardless of this flag.
+ paths. Note that paths ending in .. always cause an er‐
+ ror, regardless of this flag.
ARCHIVE_EXTRACT_SECURE_SYMLINKS
Refuse to extract any object whose final location would
be altered by a symlink on disk. This is intended to
- help guard against a variety of mischief caused by ar-
+ help guard against a variety of mischief caused by ar‐
chives that (deliberately or otherwise) extract files
outside of the current directory. The default is not to
perform this check. If
ARCHIVE_EXTRACT_SPARSE
Scan data for blocks of NUL bytes and try to recreate
- them with holes. This results in sparse files, indepen-
+ them with holes. This results in sparse files, indepen‐
dent of whether the archive format supports or uses them.
ARCHIVE_EXTRACT_UNLINK is specified together with this
option, the library will remove any intermediate symlinks
it finds and return an error only if such symlink could
not be removed.
ARCHIVE_EXTRACT_TIME
- The timestamps (mtime, ctime, and atime) should be
- restored. By default, they are ignored. Note that
- restoring of atime is not currently supported.
+ The timestamps (mtime, ctime, and atime) should be re‐
+ stored. By default, they are ignored. Note that restor‐
+ ing of atime is not currently supported.
ARCHIVE_EXTRACT_UNLINK
- Existing files on disk will be unlinked before any
- attempt to create them. In some cases, this can prove to
+ Existing files on disk will be unlinked before any at‐
+ tempt to create them. In some cases, this can prove to
be a significant performance improvement. By default,
existing files are truncated and rewritten, but the file
is not recreated. In particular, the default behavior
@@ -147,7 +147,7 @@ DESCRIPTION
describe the ownership of the file itself and also appear in ACL
lists. By default, the library uses the ids and ignores the
names, but this can be overridden by registering user and group
- lookup functions. To register, you must provide a lookup func-
+ lookup functions. To register, you must provide a lookup func‐
tion which accepts both a name and id and returns a suitable id.
You may also provide a void * pointer to a private data structure
and a cleanup function for that data. The cleanup function will
@@ -157,7 +157,7 @@ DESCRIPTION
This convenience function installs a standard set of user and
group lookup functions. These functions use getpwnam(3) and
getgrnam(3) to convert names to ids, defaulting to the ids if the
- names cannot be looked up. These functions also implement a sim-
+ names cannot be looked up. These functions also implement a sim‐
ple memory cache to reduce the number of calls to getpwnam(3) and
getgrnam(3).
More information about the struct archive object and the overall design
@@ -169,7 +169,7 @@ RETURN VALUES
non-zero error codes for errors. Specific error codes include:
ARCHIVE_RETRY for operations that might succeed if retried, ARCHIVE_WARN
for unusual conditions that do not prevent further operations, and
- ARCHIVE_FATAL for serious errors that make remaining operations impossi-
+ ARCHIVE_FATAL for serious errors that make remaining operations impossi‐
ble.
archive_write_disk_new() returns a pointer to a newly-allocated struct
@@ -187,8 +187,8 @@ SEE ALSO
HISTORY
The libarchive library first appeared in FreeBSD 5.3. The
- archive_write_disk interface was added to libarchive 2.0 and first
- appeared in FreeBSD 6.3.
+ archive_write_disk interface was added to libarchive 2.0 and first ap‐
+ peared in FreeBSD 6.3.
AUTHORS
The libarchive library was written by Tim Kientzle .
@@ -196,13 +196,13 @@ AUTHORS
BUGS
Directories are actually extracted in two distinct phases. Directories
are created during archive_write_header(), but final permissions are not
- set until archive_write_close(). This separation is necessary to cor-
- rectly handle borderline cases such as a non-writable directory contain-
+ set until archive_write_close(). This separation is necessary to cor‐
+ rectly handle borderline cases such as a non-writable directory contain‐
ing files, but can cause unexpected results. In particular, directory
permissions are not fully restored until the archive is closed. If you
use chdir(2) to change the current directory between calls to
archive_read_extract() or before calling archive_read_close(), you may
- confuse the permission-setting logic with the result that directory per-
+ confuse the permission-setting logic with the result that directory per‐
missions are restored incorrectly.
The library attempts to create objects with filenames longer than
@@ -217,8 +217,8 @@ BUGS
with a single request. Of course, this does not work if the
ARCHIVE_EXTRACT_NODOTDOT option is specified.
- Implicit directories are always created obeying the current umask.
- Explicit objects are created obeying the current umask unless
+ Implicit directories are always created obeying the current umask. Ex‐
+ plicit objects are created obeying the current umask unless
ARCHIVE_EXTRACT_PERM is specified, in which case they current umask is
ignored.
@@ -228,10 +228,10 @@ BUGS
only if the user and group of the final object happen to match those
specified in the entry.
- The ``standard'' user-id and group-id lookup functions are not the
- defaults because getgrnam(3) and getpwnam(3) are sometimes too large for
- particular applications. The current design allows the application
- author to use a more compact implementation when appropriate.
+ The “standard” user-id and group-id lookup functions are not the defaults
+ because getgrnam(3) and getpwnam(3) are sometimes too large for particu‐
+ lar applications. The current design allows the application author to
+ use a more compact implementation when appropriate.
There should be a corresponding archive_read_disk interface that walks a
directory hierarchy and returns archive entry objects.
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_filter.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_filter.3.txt
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_filter.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_filter.3.txt
index 341c8bf..99523f3 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_filter.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_filter.3.txt
@@ -8,7 +8,7 @@ NAME
archive_write_add_filter_lzip, archive_write_add_filter_lzma,
archive_write_add_filter_lzop, archive_write_add_filter_none,
archive_write_add_filter_program, archive_write_add_filter_uuencode,
- archive_write_add_filter_xz, archive_write_add_filter_zstd -- functions
+ archive_write_add_filter_xz, archive_write_add_filter_zstd — functions
enabling output filters
LIBRARY
@@ -79,7 +79,7 @@ DESCRIPTION
always properly blocked.
archive_write_add_filter_none()
- This is never necessary. It is provided only for backwards com-
+ This is never necessary. It is provided only for backwards com‐
patibility.
archive_write_add_filter_program()
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_finish_entry.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_finish_entry.3.txt
similarity index 80%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_finish_entry.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_finish_entry.3.txt
index 165a60d..399e2e4 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_finish_entry.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_finish_entry.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_WRITE_FINISH_... BSD Library Functions Manual ARCHIVE_WRITE_FINISH_...
NAME
- archive_write_finish_entry -- functions for creating archives
+ archive_write_finish_entry — functions for creating archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -13,17 +13,17 @@ SYNOPSIS
archive_write_finish_entry(struct archive *);
DESCRIPTION
- Close out the entry just written. In particular, this writes out the
- final padding required by some formats. Ordinarily, clients never need
- to call this, as it is called automatically by archive_write_header() and
+ Close out the entry just written. In particular, this writes out the fi‐
+ nal padding required by some formats. Ordinarily, clients never need to
+ call this, as it is called automatically by archive_write_header() and
archive_write_close() as needed. For archive_write_disk handles, this
flushes pending file attribute changes like modification time.
RETURN VALUES
This function returns ARCHIVE_OK on success, or one of several non-zero
error codes for errors. Specific error codes include: ARCHIVE_RETRY for
- operations that might succeed if retried, ARCHIVE_WARN for unusual condi-
- tions that do not prevent further operations, and ARCHIVE_FATAL for seri-
+ operations that might succeed if retried, ARCHIVE_WARN for unusual condi‐
+ tions that do not prevent further operations, and ARCHIVE_FATAL for seri‐
ous errors that make remaining operations impossible.
ERRORS
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_format.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_format.3.txt
similarity index 88%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_format.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_format.3.txt
index e45c1e5..1acbe7b 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_format.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_format.3.txt
@@ -4,7 +4,9 @@ NAME
archive_write_set_format, archive_write_set_format_7zip,
archive_write_set_format_ar, archive_write_set_format_ar_bsd,
archive_write_set_format_ar_svr4, archive_write_set_format_by_name,
- archive_write_set_format_cpio, archive_write_set_format_cpio_newc,
+ archive_write_set_format_cpio, archive_write_set_format_cpio_bin,
+ archive_write_set_format_cpio_newc, archive_write_set_format_cpio_odc,
+ archive_write_set_format_cpio_pwb,
archive_write_set_format_filter_by_ext,
archive_write_set_format_filter_by_ext_def,
archive_write_set_format_gnutar, archive_write_set_format_iso9660,
@@ -14,7 +16,7 @@ NAME
archive_write_set_format_shar, archive_write_set_format_shar_dump,
archive_write_set_format_ustar, archive_write_set_format_v7tar,
archive_write_set_format_warc, archive_write_set_format_xar,
- archive_write_set_format_zip -- functions for creating archives
+ archive_write_set_format_zip — functions for creating archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -43,9 +45,18 @@ SYNOPSIS
int
archive_write_set_format_cpio(struct archive *);
+ int
+ archive_write_set_format_cpio_bin(struct archive *);
+
int
archive_write_set_format_cpio_newc(struct archive *);
+ int
+ archive_write_set_format_cpio_odc(struct archive *);
+
+ int
+ archive_write_set_format_cpio_pwb(struct archive *);
+
int
archive_write_set_format_filter_by_ext(struct archive *,
const char *filename);
@@ -107,16 +118,19 @@ DESCRIPTION
archive_write_set_format_by_name()
Sets the corresponding format based on the common name.
- archive_write_set_format_filter_by_ext(),
+ archive_write_set_format_filter_by_ext()
archive_write_set_format_filter_by_ext_def()
- Sets both filters and format based on the output filename. Sup-
+ Sets both filters and format based on the output filename. Sup‐
ported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar,
.tgz, .tar.gz, .tar.bz2, .tar.xz
- archive_write_set_format_7zip() archive_write_set_format_ar_bsd(),
- archive_write_set_format_ar_svr4(),
+ archive_write_set_format_7zip() archive_write_set_format_ar_bsd()
+ archive_write_set_format_ar_svr4()
archive_write_set_format_cpio()
+ archive_write_set_format_cpio_bin()
archive_write_set_format_cpio_newc()
+ archive_write_set_format_cpio_odc()
+ archive_write_set_format_cpio_pwb()
archive_write_set_format_gnutar()
archive_write_set_format_iso9660()
archive_write_set_format_mtree()
@@ -128,7 +142,7 @@ DESCRIPTION
archive_write_set_format_ustar() archive_write_set_format_v7tar()
archive_write_set_format_warc() archive_write_set_format_xar()
archive_write_set_format_zip()
- Set the format as specified. More details on the formats sup-
+ Set the format as specified. More details on the formats sup‐
ported by libarchive can be found in the libarchive-formats(5)
manual page.
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_free.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_free.3.txt
similarity index 92%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_free.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_free.3.txt
index 3e4703d..34a047f 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_free.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_free.3.txt
@@ -2,7 +2,7 @@ ARCHIVE_WRITE_FREE(3) BSD Library Functions Manual ARCHIVE_WRITE_FREE(3)
NAME
archive_write_fail, archive_write_close, archive_write_finish,
- archive_write_free -- functions for creating archives
+ archive_write_free — functions for creating archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -28,7 +28,7 @@ DESCRIPTION
being unusable; after calling this function, the only call that
can succeed is archive_write_free() 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 mal-
+ be aborted. Note that the created archive is likely to be mal‐
formed in this case;
archive_write_close()
@@ -38,8 +38,8 @@ DESCRIPTION
This is a deprecated synonym for archive_write_free().
archive_write_free()
- Invokes archive_write_close() if necessary, then releases all
- resources. If you need detailed information about
+ Invokes archive_write_close() if necessary, then releases all re‐
+ sources. If you need detailed information about
archive_write_close() failures, you should be careful to call it
separately, as you cannot obtain error information after
archive_write_free() returns.
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_header.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_header.3.txt
similarity index 90%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_header.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_header.3.txt
index 9989271..430c018 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_header.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_header.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_WRITE_HEADER(3) BSD Library Functions Manual ARCHIVE_WRITE_HEADER(3)
NAME
- archive_write_header -- functions for creating archives
+ archive_write_header — functions for creating archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -14,14 +14,14 @@ SYNOPSIS
DESCRIPTION
Build and write a header using the data in the provided struct
- archive_entry structure. See archive_entry(3) for information on creat-
+ archive_entry structure. See archive_entry(3) for information on creat‐
ing and populating struct archive_entry objects.
RETURN VALUES
This function returns ARCHIVE_OK on success, or one of the following on
error: ARCHIVE_RETRY for operations that might succeed if retried,
- ARCHIVE_WARN for unusual conditions that do not prevent further opera-
- tions, and ARCHIVE_FATAL for serious errors that make remaining opera-
+ ARCHIVE_WARN for unusual conditions that do not prevent further opera‐
+ tions, and ARCHIVE_FATAL for serious errors that make remaining opera‐
tions impossible.
ERRORS
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_new.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_new.3.txt
similarity index 91%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_new.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_new.3.txt
index 5b8ac3c..38608c8 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_new.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_new.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_WRITE_NEW(3) BSD Library Functions Manual ARCHIVE_WRITE_NEW(3)
NAME
- archive_write_new -- functions for creating archives
+ archive_write_new — functions for creating archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_open.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_open.3.txt
similarity index 65%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_open.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_open.3.txt
index 59cfa61..c8dbec0 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_open.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_open.3.txt
@@ -1,9 +1,9 @@
ARCHIVE_WRITE_OPEN(3) BSD Library Functions Manual ARCHIVE_WRITE_OPEN(3)
NAME
- archive_write_open, archive_write_open_fd, archive_write_open_FILE,
- archive_write_open_filename, archive_write_open_memory -- functions for
- creating archives
+ archive_write_open, archive_write_open2, archive_write_open_fd,
+ archive_write_open_FILE, archive_write_open_filename,
+ archive_write_open_memory — functions for creating archives
LIBRARY
Streaming Archive Library (libarchive, -larchive)
@@ -16,6 +16,11 @@ SYNOPSIS
archive_open_callback *, archive_write_callback *,
archive_close_callback *);
+ int
+ archive_write_open2(struct archive *, void *client_data,
+ archive_open_callback *, archive_write_callback *,
+ archive_close_callback *, archive_free_callback *);
+
int
archive_write_open_fd(struct archive *, int fd);
@@ -33,9 +38,13 @@ DESCRIPTION
archive_write_open()
Freeze the settings, open the archive, and prepare for writing
entries. This is the most generic form of this function, which
- accepts pointers to three callback functions which will be
- invoked by the compression layer to write the constructed ar-
- chive. This does not alter the default archive padding.
+ accepts pointers to three callback functions which will be in‐
+ voked by the compression layer to write the constructed archive.
+ This does not alter the default archive padding.
+
+ archive_write_open2()
+ Same as archive_write_open() with an additional fourth free call‐
+ back. This function should be preferred to archive_write_open().
archive_write_open_fd()
A convenience form of archive_write_open() that accepts a file
@@ -52,27 +61,29 @@ DESCRIPTION
A deprecated synonym for archive_write_open_filename().
archive_write_open_filename()
- A convenience form of archive_write_open() that accepts a file-
- name. A NULL argument indicates that the output should be writ-
- ten to standard output; an argument of ``-'' will open a file
- with that name. If you have not invoked
+ A convenience form of archive_write_open() that accepts a file‐
+ name. A NULL argument indicates that the output should be writ‐
+ ten to standard output; an argument of “-” will open a file with
+ that name. If you have not invoked
archive_write_set_bytes_in_last_block(), then
archive_write_open_filename() will adjust the last-block padding
depending on the file: it will enable padding when writing to
standard output or to a character or block device node, it will
- disable padding otherwise. You can override this by manually
- invoking archive_write_set_bytes_in_last_block() before calling
- archive_write_open(). The archive_write_open_filename() function
- is safe for use with tape drives or other block-oriented devices.
+ disable padding otherwise. You can override this by manually in‐
+ voking archive_write_set_bytes_in_last_block() before calling
+ archive_write_open2(). The archive_write_open_filename() func‐
+ tion is safe for use with tape drives or other block-oriented de‐
+ vices.
archive_write_open_memory()
- A convenience form of archive_write_open() that accepts a pointer
- to a block of memory that will receive the archive. The final
- size_t * argument points to a variable that will be updated after
- each write to reflect how much of the buffer is currently in use.
- You should be careful to ensure that this variable remains allo-
- cated until after the archive is closed. This function will dis-
- able padding unless you have specifically set the block size.
+ A convenience form of archive_write_open2() that accepts a
+ pointer to a block of memory that will receive the archive. The
+ final size_t * argument points to a variable that will be updated
+ after each write to reflect how much of the buffer is currently
+ in use. You should be careful to ensure that this variable re‐
+ mains allocated until after the archive is closed. This function
+ will disable padding unless you have specifically set the block
+ size.
More information about the struct archive object and the overall design
of the library can be found in the libarchive(3) overview.
@@ -81,23 +92,25 @@ DESCRIPTION
for writes or the end-of-file padding behavior.
CLIENT CALLBACKS
- To use this library, you will need to define and register callback func-
+ To use this library, you will need to define and register callback func‐
tions that will be invoked to write data to the resulting archive. These
- functions are registered by calling archive_write_open():
+ functions are registered by calling archive_write_open2():
typedef int archive_open_callback(struct archive *, void
*client_data)
The open callback is invoked by archive_write_open(). It should return
ARCHIVE_OK if the underlying file or data source is successfully opened.
- If the open fails, it should call archive_set_error() to register an
- error code and message and return ARCHIVE_FATAL.
+ If the open fails, it should call archive_set_error() to register an er‐
+ ror code and message and return ARCHIVE_FATAL. Please note that if open
+ fails, close is not called and resources must be freed inside the open
+ callback or with the free callback.
typedef la_ssize_t archive_write_callback(struct archive *,
void *client_data, const void *buffer, size_t length)
The write callback is invoked whenever the library needs to write raw
- bytes to the archive. For correct blocking, each call to the write call-
+ bytes to the archive. For correct blocking, each call to the write call‐
back function should translate into a single write(2) system call. This
is especially critical when writing archives to tape drives. On success,
the write callback should return the number of bytes actually written.
@@ -107,10 +120,17 @@ CLIENT CALLBACKS
typedef int archive_close_callback(struct archive *, void
*client_data)
- The close callback is invoked by archive_close when the archive process-
- ing is complete. The callback should return ARCHIVE_OK on success. On
- failure, the callback should invoke archive_set_error() to register an
- error code and message and return ARCHIVE_FATAL.
+ The close callback is invoked by archive_close when the archive process‐
+ ing is complete. If the open callback fails, the close callback is not
+ invoked. The callback should return ARCHIVE_OK on success. On failure,
+ the callback should invoke archive_set_error() to register an error code
+ and message and return
+
+ typedef int archive_free_callback(struct archive *, void
+ *client_data)
+
+ The free callback is always invoked on archive_free. The return code of
+ this callback is not processed.
Note that if the client-provided write callback function returns a non-
zero value, that error will be propagated back to the caller through
@@ -132,4 +152,4 @@ SEE ALSO
archive_write_filter(3), archive_write_format(3), archive_write_new(3),
archive_write_set_options(3), libarchive(3), cpio(5), mtree(5), tar(5)
-BSD February 2, 2012 BSD
+BSD November 12, 2020 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_set_options.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_set_options.3.txt
similarity index 77%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_set_options.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_set_options.3.txt
index 97538b9..094fa40 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_set_options.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_set_options.3.txt
@@ -2,7 +2,7 @@ ARCHIVE_WRITE_OPTIONS(3) BSD Library Functions Manual ARCHIVE_WRITE_OPTIONS(3)
NAME
archive_write_set_filter_option, archive_write_set_format_option,
- archive_write_set_option, archive_write_set_options -- functions control-
+ archive_write_set_option, archive_write_set_options — functions control‐
ling options for writing archives
LIBRARY
@@ -25,15 +25,15 @@ SYNOPSIS
archive_write_set_options(struct archive *, const char *options);
DESCRIPTION
- These functions provide a way for libarchive clients to configure spe-
+ These functions provide a way for libarchive clients to configure spe‐
cific write modules.
archive_write_set_filter_option(), archive_write_set_format_option()
- Specifies an option that will be passed to the currently-regis-
- tered filters (including decompression filters) or format read-
+ Specifies an option that will be passed to the currently-regis‐
+ tered filters (including decompression filters) or format read‐
ers.
- If option and value are both NULL, these functions will do noth-
+ If option and value are both NULL, these functions will do noth‐
ing and ARCHIVE_OK will be returned. If option is NULL but value
is not, these functions will do nothing and ARCHIVE_FAILED will
be returned.
@@ -54,7 +54,7 @@ DESCRIPTION
archive_write_set_option()
Calls archive_write_set_format_option(), then
archive_write_set_filter_option(). If either function returns
- ARCHIVE_FATAL, ARCHIVE_FATAL will be returned immediately. Oth-
+ ARCHIVE_FATAL, ARCHIVE_FATAL will be returned immediately. Oth‐
erwise, the greater of the two values will be returned.
archive_write_set_options()
@@ -67,7 +67,7 @@ DESCRIPTION
Modules that do not accept an option with this name will
ignore it.
option The option will be provided to every module with a value
- of ``1''.
+ of “1”.
!option
The option will be provided to every module with a NULL
value.
@@ -95,8 +95,8 @@ OPTIONS
Filter lrzip
compression=type
Use type as compression method. Supported values are
- ``bzip2'', ``gzipi'', ``lzo'' (ultra fast), and ``zpaq''
- (best, extremely slow).
+ “bzip2”, “gzipi”, “lzo” (ultra fast), and “zpaq” (best,
+ extremely slow).
compression-level
The value is interpreted as a decimal integer specifying
the lrzip compression level. Supported values are from 1
@@ -133,26 +133,27 @@ OPTIONS
the compression level. Supported values are from 0 to 9.
threads
The value is interpreted as a decimal integer specifying
- the number of threads for multi-threaded lzma compres-
+ the number of threads for multi-threaded lzma compres‐
sion. If supported, the default value is read from
lzma_cputhreads().
Filter zstd
compression-level
The value is interpreted as a decimal integer specifying
- the compression level. Supported values are from 1 to 22.
+ the compression level. Supported values depend on the li‐
+ brary version, common values are from 1 to 22.
Format 7zip
compression
- The value is one of ``store'', ``deflate'', ``bzip2'',
- ``lzma1'', ``lzma2'' or ``ppmd'' to indicate how the fol-
- lowing entries should be compressed. Note that this set-
- ting is ignored for directories, symbolic links, and
- other special entries.
+ The value is one of “store”, “deflate”, “bzip2”, “lzma1”,
+ “lzma2” or “ppmd” to indicate how the following entries
+ should be compressed. Note that this setting is ignored
+ for directories, symbolic links, and other special en‐
+ tries.
compression-level
The value is interpreted as a decimal integer specifying
- the compression level. Values between 0 and 9 are sup-
- ported. The interpretation of the compression level
- depends on the chosen compression method.
- Format cpio
+ the compression level. Values between 0 and 9 are sup‐
+ ported. The interpretation of the compression level de‐
+ pends on the chosen compression method.
+ Format bin
hdrcharset
The value is used as a character set name that will be
used when translating file names.
@@ -168,7 +169,7 @@ OPTIONS
volume. Default: none.
application-id=filename
The file with the specified name will be identified in
- the ISO9660 metadata as holding the application identi-
+ the ISO9660 metadata as holding the application identi‐
fier for this volume. Default: none.
biblio-file=filename
The file with the specified name will be identified in
@@ -183,17 +184,17 @@ OPTIONS
the ISO9660 metadata as holding the publisher information
for this volume. Default: none.
volume-id=string
- The specified string will be used as the Volume Identi-
+ The specified string will be used as the Volume Identi‐
fier in the ISO9660 metadata. It is limited to 32 bytes.
Default: none.
Format iso9660 - boot support
- These options are used to make an ISO9660 image that can be
- directly booted on various systems.
+ These options are used to make an ISO9660 image that can be di‐
+ rectly booted on various systems.
boot=filename
The file matching this name will be used as the El Torito
boot image file.
boot-catalog=name
- The name that will be used for the El Torito boot cata-
+ The name that will be used for the El Torito boot cata‐
log. Default: boot.catalog
boot-info-table
The boot image file provided by the boot=filename option
@@ -214,38 +215,38 @@ OPTIONS
Specifies the boot semantics used by the El Torito boot
image: If the value is fd, then the boot image is assumed
to be a bootable floppy image. If the value is hd, then
- the boot image is assumed to be a bootable hard disk
- image. If the value is no-emulation, the boot image is
+ the boot image is assumed to be a bootable hard disk im‐
+ age. If the value is no-emulation, the boot image is
used without floppy or hard disk emulation. If the boot
- image is exactly 1.2MB, 1.44MB, or 2.88MB, then the
- default is fd, otherwise the default is no-emulation.
+ image is exactly 1.2MB, 1.44MB, or 2.88MB, then the de‐
+ fault is fd, otherwise the default is no-emulation.
Format iso9660 - filename and size extensions
Various extensions to the base ISO9660 format.
allow-ldots
- If enabled, allows filenames to begin with a leading
- period. If disabled, filenames that begin with a leading
+ If enabled, allows filenames to begin with a leading pe‐
+ riod. If disabled, filenames that begin with a leading
period will have that period replaced by an underscore
character in the standard ISO9660 namespace. This does
- not impact names stored in the Rockridge or Joliet exten-
+ not impact names stored in the Rockridge or Joliet exten‐
sion area. Default: disabled.
allow-lowercase
- If enabled, allows filenames to contain lowercase charac-
- ters. If disabled, filenames will be forced to upper-
+ If enabled, allows filenames to contain lowercase charac‐
+ ters. If disabled, filenames will be forced to upper‐
case. This does not impact names stored in the Rockridge
or Joliet extension area. Default: disabled.
allow-multidot
If enabled, allows filenames to contain multiple period
characters, in violation of the ISO9660 specification.
- If disabled, additional periods will be converted to
- underscore characters. This does not impact names stored
- in the Rockridge or Joliet extension area. Default: dis-
+ If disabled, additional periods will be converted to un‐
+ derscore characters. This does not impact names stored
+ in the Rockridge or Joliet extension area. Default: dis‐
abled.
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 under-
+ If disabled, trailing periods will be converted to under‐
score characters. This does not impact names stored in
- the Rockridge or Joliet extension area. Default: dis-
+ the Rockridge or Joliet extension area. Default: dis‐
abled.
allow-pvd-lowercase
If enabled, the Primary Volume Descriptor may contain
@@ -255,22 +256,22 @@ OPTIONS
allow-sharp-tilde
If enabled, sharp and tilde characters will be permitted
in filenames, in violation if the ISO9660 specification.
- If disabled, such characters will be converted to under-
+ If disabled, such characters will be converted to under‐
score characters. Default: disabled.
allow-vernum
If enabled, version numbers will be included with files.
- If disabled, version numbers will be suppressed, in vio-
+ If disabled, version numbers will be suppressed, in vio‐
lation of the ISO9660 standard. This does not impact
names stored in the Rockridge or Joliet extension area.
Default: enabled.
iso-level
- This enables support for file size and file name exten-
+ This enables support for file size and file name exten‐
sions in the core ISO9660 area. The name extensions
specified here do not affect the names stored in the
Rockridge or Joliet extension areas.
iso-level=1
- The most compliant form of ISO9660 image. File-
- names are limited to 8.3 uppercase format, direc-
+ The most compliant form of ISO9660 image. File‐
+ names are limited to 8.3 uppercase format, direc‐
tory names are limited to 8 uppercase characters,
files are limited to 4 GiB, the complete ISO9660
image cannot exceed 4 GiB.
@@ -287,7 +288,7 @@ OPTIONS
up to 193 characters and may include arbitrary
8-bit characters.
joliet Microsoft's Joliet extensions store a completely separate
- set of directory information about each file. In partic-
+ set of directory information about each file. In partic‐
ular, this information includes Unicode filenames of up
to 255 characters. Default: enabled.
limit-depth
@@ -306,43 +307,43 @@ OPTIONS
filenames (except lowercase characters unless
allow-lowercase is also specified). This violates
ISO9660 standards. This does not impact names stored in
- the Rockridge or Joliet extension area. Default: dis-
+ the Rockridge or Joliet extension area. Default: dis‐
abled.
rockridge
The Rockridge extensions store an additional set of
POSIX-style file information with each file, including
mtime, atime, ctime, permissions, and long filenames with
- arbitrary 8-bit characters. These extensions also sup-
+ arbitrary 8-bit characters. These extensions also sup‐
port symbolic links and other POSIX file types. Default:
enabled.
Format iso9660 - zisofs support
- The zisofs extensions permit each file to be independently com-
+ The zisofs extensions permit each file to be independently com‐
pressed using a gzip-compatible compression. This can provide
significant size savings, but requires the reading system to have
support for these extensions. These extensions are disabled by
default.
compression-level=number
The compression level used by the deflate compressor.
- Ranges from 0 (least effort) to 9 (most effort).
- Default: 6
+ Ranges from 0 (least effort) to 9 (most effort). De‐
+ fault: 6
zisofs Synonym for zisofs=direct.
zisofs=direct
Compress each file in the archive. Unlike
zisofs=indirect, this is handled entirely within
libarchive and does not require a separate utility. For
best results, libarchive tests each file and will store
- the file uncompressed if the compression does not actu-
+ the file uncompressed if the compression does not actu‐
ally save any space. In particular, files under 2k will
never be compressed. Note that boot image files are
never compressed.
zisofs=indirect
Recognizes files that have already been compressed with
- the mkzftree utility and sets up the necessary file meta-
+ the mkzftree utility and sets up the necessary file meta‐
data so that readers will correctly identify these as
zisofs-compressed files.
zisofs-exclude=filename
Specifies a filename that should not be compressed when
- using zisofs=direct. This option can be provided multi-
+ using zisofs=direct. This option can be provided multi‐
ple times to suppress compression on many files.
Format mtree
cksum, device, flags, gid, gname, indent, link, md5, mode, nlink,
@@ -350,9 +351,9 @@ OPTIONS
uname
Enable a particular keyword in the mtree output. Prefix
with an exclamation mark to disable the corresponding
- keyword. The default is equivalent to ``device, flags,
+ keyword. The default is equivalent to “device, flags,
gid, gname, link, mode, nlink, size, time, type, uid,
- uname''.
+ uname”.
all Enables all of the above keywords.
use-set
Enables generation of /set lines that specify default
@@ -362,19 +363,27 @@ OPTIONS
hdrcharset
The value is used as a character set name that will be
used when translating file names.
+ Format odc
+ hdrcharset
+ The value is used as a character set name that will be
+ used when translating file names.
+ Format pwb
+ hdrcharset
+ The value is used as a character set name that will be
+ used when translating file names.
Format pax
hdrcharset
The value is used as a character set name that will be
used when translating file, group and user names. The
- value is one of ``BINARY'' or ``UTF-8''. With ``BINARY''
- there is no character conversion, with ``UTF-8'' names
- are converted to UTF-8.
+ value is one of “BINARY” or “UTF-8”. With “BINARY” there
+ is no character conversion, with “UTF-8” names are con‐
+ verted to UTF-8.
xattrheader
When storing extended attributes, this option configures
which headers should be written. The value is one of
- ``all'', ``LIBARCHIVE'', or ``SCHILY''. By default, both
- ``LIBARCHIVE.xattr'' and ``SCHILY.xattr'' headers are
- written.
+ “all”, “LIBARCHIVE”, or “SCHILY”. By default, both
+ “LIBARCHIVE.xattr” and “SCHILY.xattr” headers are writ‐
+ ten.
Format ustar
hdrcharset
The value is used as a character set name that will be
@@ -385,43 +394,42 @@ OPTIONS
used when translating file, group and user names.
Format warc
omit-warcinfo
- Set to ``true'' to disable output of the warcinfo record.
+ Set to “true” to disable output of the warcinfo record.
Format xar
checksum=type
Use type as file checksum method. Supported values are
- ``none'', ``md5'', and ``sha1'' (default).
+ “none”, “md5”, and “sha1” (default).
compression=type
Use type as compression method. Supported values are
- ``none'', ``bzip2'', ``gzip'' (default), ``lzma'' and
- ``xz''.
+ “none”, “bzip2”, “gzip” (default), “lzma” and “xz”.
compression_level
The value is a decimal integer from 1 to 9 specifying the
compression level.
toc-checksum=type
Use type as table of contents checksum method. Supported
- values are ``none'', ``md5'' and ``sha1'' (default).
+ values are “none”, “md5” and “sha1” (default).
Format zip
compression
- The value is either ``store'' or ``deflate'' to indicate
- how the following entries should be compressed. Note
- that this setting is ignored for directories, symbolic
- links, and other special entries.
+ The value is either “store” or “deflate” to indicate how
+ the following entries should be compressed. Note that
+ this setting is ignored for directories, symbolic links,
+ and other special entries.
compression-level
The value is interpreted as a decimal integer specifying
- the compression level. Values between 0 and 9 are sup-
- ported. A compression level of 0 switches the compres-
- sion method to ``store'', other values will enable
- ``deflate'' compression with the given level.
+ the compression level. Values between 0 and 9 are sup‐
+ ported. A compression level of 0 switches the compres‐
+ sion method to “store”, other values will enable
+ “deflate” compression with the given level.
encryption
Enable encryption using traditional zip encryption.
encryption=type
Use type as encryption type. Supported values are
- ``zipcrypt'' (traditional zip encryption), ``aes128''
- (WinZip AES-128 encryption) and ``aes256'' (WinZip
- AES-256 encryption).
+ “zipcrypt” (traditional zip encryption), “aes128” (WinZip
+ AES-128 encryption) and “aes256” (WinZip AES-256
+ encryption).
experimental
This boolean option enables or disables experimental Zip
- features that may not be compatible with other Zip imple-
+ features that may not be compatible with other Zip imple‐
mentations.
fakecrc32
This boolean option disables CRC calculations. All CRC
@@ -431,23 +439,23 @@ OPTIONS
The value is used as a character set name that will be
used when translating file names.
zip64 Zip64 extensions provide additional file size information
- for entries larger than 4 GiB. They also provide
- extended file offset and archive size information when
- archives exceed 4 GiB. By default, the Zip writer selec-
- tively enables these extensions only as needed. In par-
+ for entries larger than 4 GiB. They also provide ex‐
+ tended file offset and archive size information when ar‐
+ chives exceed 4 GiB. By default, the Zip writer selec‐
+ tively enables these extensions only as needed. In par‐
ticular, if the file size is unknown, the Zip writer will
include Zip64 extensions to guard against the possibility
that the file might be larger than 4 GiB.
Setting this boolean option will force the writer to use
- Zip64 extensions even for small files that would not oth-
- erwise require them. This is primarily useful for test-
+ Zip64 extensions even for small files that would not oth‐
+ erwise require them. This is primarily useful for test‐
ing.
Disabling this option with !zip64 will force the Zip
writer to avoid Zip64 extensions: It will reject files
- with size greater than 4 GiB, it will reject any new
- entries once the total archive size reaches 4 GiB, and it
+ with size greater than 4 GiB, it will reject any new en‐
+ tries once the total archive size reaches 4 GiB, and it
will not use Zip64 extensions for files with unknown
size. In particular, this can improve compatibility when
generating archives where the entry sizes are not known
@@ -456,7 +464,7 @@ OPTIONS
EXAMPLES
The following example creates an archive write handle to create a gzip-
compressed ISO9660 format image. The two options here specify that the
- ISO9660 archive will use kernel.img as the boot image for El Torito boot-
+ ISO9660 archive will use kernel.img as the boot image for El Torito boot‐
ing, and that the gzip compressor should use the maximum compression
level.
diff --git a/dependencies/libarchive-3.4.2/doc/text/archive_write_set_passphrase.3.txt b/dependencies/libarchive-3.5.2/doc/text/archive_write_set_passphrase.3.txt
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/text/archive_write_set_passphrase.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/archive_write_set_passphrase.3.txt
index 9717d80..2acea6e 100644
--- a/dependencies/libarchive-3.4.2/doc/text/archive_write_set_passphrase.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/archive_write_set_passphrase.3.txt
@@ -1,7 +1,7 @@
ARCHIVE_WRITE_SET_PAS... BSD Library Functions Manual ARCHIVE_WRITE_SET_PAS...
NAME
- archive_write_set_passphrase, archive_write_set_passphrase_callback --
+ archive_write_set_passphrase, archive_write_set_passphrase_callback —
functions for writing encrypted archives
LIBRARY
diff --git a/dependencies/libarchive-3.4.2/doc/text/bsdcpio.1.txt b/dependencies/libarchive-3.5.2/doc/text/bsdcpio.1.txt
similarity index 90%
rename from dependencies/libarchive-3.4.2/doc/text/bsdcpio.1.txt
rename to dependencies/libarchive-3.5.2/doc/text/bsdcpio.1.txt
index 78b9757..6a0d3be 100644
--- a/dependencies/libarchive-3.4.2/doc/text/bsdcpio.1.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/bsdcpio.1.txt
@@ -1,7 +1,7 @@
CPIO(1) BSD General Commands Manual CPIO(1)
NAME
- cpio -- copy files to and from archives
+ cpio — copy files to and from archives
SYNOPSIS
cpio -i [options] [pattern ...] [< archive]
@@ -15,7 +15,7 @@ DESCRIPTION
The first option to cpio is a mode indicator from the following list:
-i Input. Read an archive from standard input (unless overridden)
- and extract the contents to disk or (if the -t option is speci-
+ and extract the contents to disk or (if the -t option is speci‐
fied) list the contents to standard output. If one or more file
patterns are specified, only files matching one of the patterns
will be extracted.
@@ -26,15 +26,24 @@ DESCRIPTION
copy the files to the specified directory.
OPTIONS
- Unless specifically stated otherwise, options are applicable in all oper-
+ Unless specifically stated otherwise, options are applicable in all oper‐
ating modes.
-0, --null
Read filenames separated by NUL characters instead of newlines.
- This is necessary if any of the filenames being read might con-
+ This is necessary if any of the filenames being read might con‐
tain newlines.
- -A (o mode only) Append to the specified archive. (Not yet imple-
+ -6, --pwb
+ When reading a binary format archive, assume it's the earlier
+ one, from the PWB variant of 6th Edition UNIX. When writing a
+ cpio archive, use the PWB format.
+
+ -7, --binary
+ (o mode only) When writing a cpio archive, use the (newer, non-
+ PWB) binary format.
+
+ -A (o mode only) Append to the specified archive. (Not yet imple‐
mented.)
-a (o and p modes) Reset access times on files after they are read.
@@ -67,7 +76,7 @@ OPTIONS
cpio Synonym for odc.
newc The SVR4 portable cpio format.
odc The old POSIX.1 portable octet-oriented cpio format.
- pax The POSIX.1 pax format, an extension of the ustar for-
+ pax The POSIX.1 pax format, an extension of the ustar for‐
mat.
ustar The POSIX.1 tar format.
@@ -87,7 +96,7 @@ OPTIONS
--insecure
(i and p mode only) Disable security checks during extraction or
copying. This allows extraction via symbolic links, absolute
- paths, and path names containing '..' in the name.
+ paths, and path names containing ‘..’ in the name.
-J, --xz
(o mode only) Compress the file with xz-compatible compression
@@ -102,18 +111,18 @@ OPTIONS
instead.
-l, --link
- (p mode only) Create links from the target directory to the orig-
+ (p mode only) Create links from the target directory to the orig‐
inal files, instead of copying.
--lrzip
(o mode only) Compress the resulting archive with lrzip(1). In
input mode, this option is ignored.
- --lz4 (o mode only) Compress the archive with lz4-compatible compres-
+ --lz4 (o mode only) Compress the archive with lz4-compatible compres‐
sion before writing it. In input mode, this option is ignored;
lz4 compression is recognized automatically on input.
- --zstd (o mode only) Compress the archive with zstd-compatible compres-
+ --zstd (o mode only) Compress the archive with zstd-compatible compres‐
sion before writing it. In input mode, this option is ignored;
zstd compression is recognized automatically on input.
@@ -183,11 +192,11 @@ OPTIONS
restore the contents to disk.
-u, --unconditional
- (i and p modes) Unconditionally overwrite existing files. Ordi-
+ (i and p modes) Unconditionally overwrite existing files. Ordi‐
narily, an older file will not overwrite a newer file on disk.
-V, --dot
- Print a dot to stderr for each file as it is processed. Super-
+ Print a dot to stderr for each file as it is processed. Super‐
seded by -v.
-v, --verbose
@@ -197,15 +206,15 @@ OPTIONS
--version
Print the program version information and exit.
- -y (o mode only) Compress the archive with bzip2-compatible compres-
+ -y (o mode only) Compress the archive with bzip2-compatible compres‐
sion before writing it. In input mode, this option is ignored;
bzip2 compression is recognized automatically on input.
- -Z (o mode only) Compress the archive with compress-compatible com-
- pression before writing it. In input mode, this option is
- ignored; compression is recognized automatically on input.
+ -Z (o mode only) Compress the archive with compress-compatible com‐
+ pression before writing it. In input mode, this option is ig‐
+ nored; compression is recognized automatically on input.
- -z (o mode only) Compress the archive with gzip-compatible compres-
+ -z (o mode only) Compress the archive with gzip-compatible compres‐
sion before writing it. In input mode, this option is ignored;
gzip compression is recognized automatically on input.
@@ -221,32 +230,32 @@ ENVIRONMENT
more information.
EXAMPLES
- The cpio command is traditionally used to copy file hierarchies in con-
+ The cpio command is traditionally used to copy file hierarchies in con‐
junction with the find(1) command. The first example here simply copies
all files from src to dest:
find src | cpio -pmud dest
By carefully selecting options to the find(1) command and combining it
- with other standard utilities, it is possible to exercise very fine con-
+ with other standard utilities, it is possible to exercise very fine con‐
trol over which files are copied. This next example copies files from
- src to dest that are more than 2 days old and whose names match a partic-
+ src to dest that are more than 2 days old and whose names match a partic‐
ular pattern:
find src -mtime +2 | grep foo[bar] | cpio -pdmu dest
This example copies files from src to dest that are more than 2 days old
- and which contain the word ``foobar'':
+ and which contain the word “foobar”:
find src -mtime +2 | xargs grep -l foobar | cpio -pdmu dest
COMPATIBILITY
The mode options i, o, and p and the options a, B, c, d, f, l, m, r, t,
u, and v comply with SUSv2.
- The old POSIX.1 standard specified that only -i, -o, and -p were inter-
+ The old POSIX.1 standard specified that only -i, -o, and -p were inter‐
preted as command-line options. Each took a single argument of a list of
modifier characters. For example, the standard syntax allows -imu but
does not support -miu or -i -m -u, since m and u are only modifiers to
-i, they are not command-line options in their own right. The syntax
- supported by this implementation is backwards-compatible with the stan-
+ supported by this implementation is backwards-compatible with the stan‐
dard. For best compatibility, scripts should limit themselves to the
standard syntax.
@@ -256,16 +265,16 @@ SEE ALSO
STANDARDS
There is no current POSIX standard for the cpio command; it appeared in
- ISO/IEC 9945-1:1996 (``POSIX.1'') but was dropped from IEEE Std
- 1003.1-2001 (``POSIX.1'').
+ ISO/IEC 9945-1:1996 (“POSIX.1”) but was dropped from IEEE Std 1003.1-2001
+ (“POSIX.1”).
The cpio, ustar, and pax interchange file formats are defined by IEEE Std
- 1003.1-2001 (``POSIX.1'') for the pax command.
+ 1003.1-2001 (“POSIX.1”) for the pax command.
HISTORY
The original cpio and find utilities were written by Dick Haight while
working in AT&T's Unix Support Group. They first appeared in 1977 in
- PWB/UNIX 1.0, the ``Programmer's Work Bench'' system developed for use
+ PWB/UNIX 1.0, the “Programmer's Work Bench” system developed for use
within AT&T. They were first released outside of AT&T as part of System
III Unix in 1981. As a result, cpio actually predates tar, even though
it was not well-known outside of AT&T until some time later.
@@ -277,8 +286,8 @@ BUGS
user and group names, only numbers. As a result, it cannot be reliably
used to transfer files between systems with dissimilar user and group
numbering. Older cpio formats limit the user and group numbers to 16 or
- 18 bits, which is insufficient for modern systems. The cpio archive for-
- mats cannot support files over 4 gigabytes, except for the ``odc'' vari-
- ant, which can support files up to 8 gigabytes.
+ 18 bits, which is insufficient for modern systems. The cpio archive for‐
+ mats cannot support files over 4 gigabytes, except for the “odc” variant,
+ which can support files up to 8 gigabytes.
BSD September 16, 2014 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/bsdtar.1.txt b/dependencies/libarchive-3.5.2/doc/text/bsdtar.1.txt
similarity index 84%
rename from dependencies/libarchive-3.4.2/doc/text/bsdtar.1.txt
rename to dependencies/libarchive-3.5.2/doc/text/bsdtar.1.txt
index e653b93..75d6f0c 100644
--- a/dependencies/libarchive-3.4.2/doc/text/bsdtar.1.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/bsdtar.1.txt
@@ -1,10 +1,10 @@
TAR(1) BSD General Commands Manual TAR(1)
NAME
- tar -- manipulate tape archives
+ tar — manipulate tape archives
SYNOPSIS
- tar [bundled-flags ] [ | ...]
+ tar [bundled-flags ⟨args⟩] [⟨file⟩ | ⟨pattern⟩ ...]
tar {-c} [options] [files | directories]
tar {-r | -u} -f archive-file [options] [files | directories]
tar {-t | -x} [options] [patterns]
@@ -15,8 +15,8 @@ DESCRIPTION
9660 cdrom images and can create tar, pax, cpio, ar, zip, 7-zip, and shar
archives.
- The first synopsis form shows a ``bundled'' option word. This usage is
- provided for compatibility with historical implementations. See COMPATI-
+ The first synopsis form shows a “bundled” option word. This usage is
+ provided for compatibility with historical implementations. See COMPATI‐
BILITY below for details.
The other synopsis forms show the preferred usage. The first option to
@@ -27,58 +27,58 @@ DESCRIPTION
this only works on uncompressed archives stored in regular files.
The -f option is required. The long option form is --append.
-t List archive contents to stdout. The long option form is --list.
- -u Like -r, but new entries are added only if they have a modifica-
+ -u Like -r, but new entries are added only if they have a modifica‐
tion date newer than the corresponding entry in the archive.
- Note that this only works on uncompressed archives stored in reg-
+ Note that this only works on uncompressed archives stored in reg‐
ular files. The -f option is required. The long form is
--update.
-x Extract to disk from the archive. If a file with the same name
- appears more than once in the archive, each copy will be
- extracted, with later copies overwriting (replacing) earlier
+ appears more than once in the archive, each copy will be ex‐
+ tracted, with later copies overwriting (replacing) earlier
copies. The long option form is --extract.
In -c, -r, or -u mode, each specified file or directory is added to the
- archive in the order specified on the command line. By default, the con-
+ archive in the order specified on the command line. By default, the con‐
tents of each directory are also archived.
- In extract or list mode, the entire command line is read and parsed
- before the archive is opened. The pathnames or patterns on the command
+ In extract or list mode, the entire command line is read and parsed be‐
+ fore the archive is opened. The pathnames or patterns on the command
line indicate which items in the archive should be processed. Patterns
are shell-style globbing patterns as documented in tcsh(1).
OPTIONS
- Unless specifically stated otherwise, options are applicable in all oper-
+ Unless specifically stated otherwise, options are applicable in all oper‐
ating modes.
@archive
- (c and r modes only) The specified archive is opened and the
- entries in it will be appended to the current archive. As a sim-
- ple example,
+ (c and r modes only) The specified archive is opened and the en‐
+ tries in it will be appended to the current archive. As a simple
+ example,
tar -c -f - newfile @original.tar
writes a new archive to standard output containing a file newfile
and all of the entries from original.tar. In contrast,
tar -c -f - newfile original.tar
creates a new archive with only two entries. Similarly,
tar -czf - --format pax @-
- reads an archive from standard input (whose format will be deter-
+ reads an archive from standard input (whose format will be deter‐
mined automatically) and converts it into a gzip-compressed pax-
- format archive on stdout. In this way, tar can be used to con-
+ format archive on stdout. In this way, tar can be used to con‐
vert archives from one format to another.
-a, --auto-compress
- (c mode only) Use the archive suffix to decide a set of the for-
+ (c mode only) Use the archive suffix to decide a set of the for‐
mat and the compressions. As a simple example,
tar -a -cf archive.tgz source.c source.h
- creates a new archive with restricted pax format and gzip com-
+ creates a new archive with restricted pax format and gzip com‐
pression,
tar -a -cf archive.tar.bz2.uu source.c source.h
- creates a new archive with restricted pax format and bzip2 com-
+ creates a new archive with restricted pax format and bzip2 com‐
pression and uuencode compression,
tar -a -cf archive.zip source.c source.h
creates a new archive with zip format,
tar -a -jcf archive.tgz source.c source.h
- ignores the ``-j'' option, and creates a new archive with
- restricted pax format and gzip compression,
+ ignores the “-j” option, and creates a new archive with re‐
+ stricted pax format and gzip compression,
tar -a -jcf archive.xxx source.c source.h
if it is unknown suffix or no suffix, creates a new archive with
restricted pax format and bzip2 compression.
@@ -114,14 +114,14 @@ OPTIONS
might prevent removal.
--exclude pattern
- Do not process files or directories that match the specified pat-
+ Do not process files or directories that match the specified pat‐
tern. Note that exclusions take precedence over patterns or
filenames specified on the command line.
--exclude-vcs
- Do not process files or directories internally used by the ver-
- sion control systems 'Arch', 'Bazaar', 'CVS', 'Darcs',
- 'Mercurial', 'RCS', 'SCCS', 'SVN' and 'git'.
+ Do not process files or directories internally used by the ver‐
+ sion control systems ‘Arch’, ‘Bazaar’, ‘CVS’, ‘Darcs’,
+ ‘Mercurial’, ‘RCS’, ‘SCCS’, ‘SVN’ and ‘git’.
--fflags
(c, r, u, x modes only) Archive or extract platform-specific file
@@ -130,12 +130,12 @@ OPTIONS
mode as root.
--format format
- (c, r, u mode only) Use the specified format for the created ar-
- chive. Supported formats include ``cpio'', ``pax'', ``shar'',
- and ``ustar''. Other formats may also be supported; see
- libarchive-formats(5) for more information about currently-sup-
- ported formats. In r and u modes, when extending an existing ar-
- chive, the format specified here must be compatible with the for-
+ (c, r, u mode only) Use the specified format for the created ar‐
+ chive. Supported formats include “cpio”, “pax”, “shar”, and
+ “ustar”. Other formats may also be supported; see
+ libarchive-formats(5) for more information about currently-sup‐
+ ported formats. In r and u modes, when extending an existing ar‐
+ chive, the format specified here must be compatible with the for‐
mat of the existing archive on disk.
-f file, --file file
@@ -170,29 +170,29 @@ OPTIONS
--help Show usage.
--hfsCompression
- (x mode only) Mac OS X specific (v10.6 or later). Compress
- extracted regular files with HFS+ compression.
+ (x mode only) Mac OS X specific (v10.6 or later). Compress ex‐
+ tracted regular files with HFS+ compression.
--ignore-zeros
- An alias of --options read_concatenated_archives for compatibil-
+ An alias of --options read_concatenated_archives for compatibil‐
ity with GNU tar.
--include pattern
- Process only files or directories that match the specified pat-
- tern. Note that exclusions specified with --exclude take prece-
- dence over inclusions. If no inclusions are explicitly speci-
+ Process only files or directories that match the specified pat‐
+ tern. Note that exclusions specified with --exclude take prece‐
+ dence over inclusions. If no inclusions are explicitly speci‐
fied, all entries are processed by default. The --include option
is especially useful when filtering archives. For example, the
command
tar -c -f new.tar --include='*foo*' @old.tgz
creates a new archive new.tar containing only the entries from
- old.tgz containing the string 'foo'.
+ old.tgz containing the string ‘foo’.
-J, --xz
- (c mode only) Compress the resulting archive with xz(1). In
- extract or list modes, this option is ignored. Note that this
- tar implementation recognizes XZ compression automatically when
- reading archives.
+ (c mode only) Compress the resulting archive with xz(1). In ex‐
+ tract or list modes, this option is ignored. Note that this tar
+ implementation recognizes XZ compression automatically when read‐
+ ing archives.
-j, --bzip, --bzip2, --bunzip2
(c mode only) Compress the resulting archive with bzip2(1). In
@@ -210,7 +210,7 @@ OPTIONS
the versions appearing in the archive being extracted.
-L, --dereference
- (c and r modes only) All symbolic links will be followed. Nor-
+ (c and r modes only) All symbolic links will be followed. Nor‐
mally, symbolic links are archived as such. With this option,
the target of the link will be archived instead.
@@ -224,22 +224,21 @@ OPTIONS
tar implementation recognizes lrzip compression automatically
when reading archives.
- --lz4 (c mode only) Compress the archive with lz4-compatible compres-
+ --lz4 (c mode only) Compress the archive with lz4-compatible compres‐
sion before writing it. In extract or list modes, this option is
- ignored. Note that this tar implementation recognizes lz4 com-
+ ignored. Note that this tar implementation recognizes lz4 com‐
pression automatically when reading archives.
- --zstd (c mode only) Compress the archive with zstd-compatible compres-
+ --zstd (c mode only) Compress the archive with zstd-compatible compres‐
sion before writing it. In extract or list modes, this option is
- ignored. Note that this tar implementation recognizes zstd com-
+ ignored. Note that this tar implementation recognizes zstd com‐
pression automatically when reading archives.
--lzma (c mode only) Compress the resulting archive with the original
- LZMA algorithm. In extract or list modes, this option is
- ignored. Use of this option is discouraged and new archives
- should be created with --xz instead. Note that this tar imple-
- mentation recognizes LZMA compression automatically when reading
- archives.
+ LZMA algorithm. In extract or list modes, this option is ig‐
+ nored. Use of this option is discouraged and new archives should
+ be created with --xz instead. Note that this tar implementation
+ recognizes LZMA compression automatically when reading archives.
--lzop (c mode only) Compress the resulting archive with lzop(1). In
extract or list modes, this option is ignored. Note that this
@@ -265,8 +264,8 @@ OPTIONS
than the specified date. This compares ctime entries.
--newer-mtime date
- (c, r, u modes only) Like --newer, except it compares mtime
- entries instead of ctime entries.
+ (c, r, u modes only) Like --newer, except it compares mtime en‐
+ tries instead of ctime entries.
--newer-than file
(c, r, u modes only) Only include files and directories newer
@@ -282,17 +281,17 @@ OPTIONS
--nopreserveHFSCompression
(x mode only) Mac OS X specific (v10.6 or later). Do not compress
- extracted regular files which were compressed with HFS+ compres-
+ extracted regular files which were compressed with HFS+ compres‐
sion before archived. By default, compress the regular files
again with HFS+ compression.
--null (use with -I or -T) Filenames or patterns are separated by null
- characters, not by newlines. This is often used to read file-
+ characters, not by newlines. This is often used to read file‐
names output by the -print0 option to find(1).
--no-acls
(c, r, u, x modes only) Do not archive or extract POSIX.1e or
- NFSv4 ACLs. This is the reverse of --acls and the default behav-
+ NFSv4 ACLs. This is the reverse of --acls and the default behav‐
ior if tar is run as non-root in x mode (on Mac OS X as any user
in c, r, u and x modes).
@@ -324,8 +323,8 @@ OPTIONS
--no-xattrs
(c, r, u, x modes only) Do not archive or extract extended file
- attributes. This is the reverse of --xattrs and the default
- behavior if tar is run as non-root in x mode.
+ attributes. This is the reverse of --xattrs and the default be‐
+ havior if tar is run as non-root in x mode.
--numeric-owner
This is equivalent to --uname "" --gname "". On extract, it
@@ -353,8 +352,8 @@ OPTIONS
than the specified date. This compares ctime entries.
--older-mtime date
- (c, r, u modes only) Like --older, except it compares mtime
- entries instead of ctime entries.
+ (c, r, u modes only) Like --older, except it compares mtime en‐
+ tries instead of ctime entries.
--older-than file
(c, r, u modes only) Only include files and directories older
@@ -374,7 +373,7 @@ OPTIONS
control how those formats will behave. Each option has one of
the following forms:
key=value
- The key will be set to the specified value in every mod-
+ The key will be set to the specified value in every mod‐
ule that supports it. Modules that do not support this
key will ignore it.
key The key will be enabled in every module that supports it.
@@ -394,10 +393,10 @@ OPTIONS
Support Joliet extensions. This is enabled by default,
use !joliet or iso9660:!joliet to disable.
iso9660:rockridge
- Support Rock Ridge extensions. This is enabled by
- default, use !rockridge or iso9660:!rockridge to disable.
+ Support Rock Ridge extensions. This is enabled by de‐
+ fault, use !rockridge or iso9660:!rockridge to disable.
gzip:compression-level
- A decimal integer from 1 to 9 specifying the gzip com-
+ A decimal integer from 1 to 9 specifying the gzip com‐
pression level.
gzip:timestamp
Store timestamp. This is enabled by default, use
@@ -407,10 +406,10 @@ OPTIONS
bzip2, gzip, lzo (ultra fast), and zpaq (best, extremely
slow).
lrzip:compression-level
- A decimal integer from 1 to 9 specifying the lrzip com-
+ A decimal integer from 1 to 9 specifying the lrzip com‐
pression level.
lz4:compression-level
- A decimal integer from 1 to 9 specifying the lzop com-
+ A decimal integer from 1 to 9 specifying the lzop com‐
pression level.
lz4:stream-checksum
Enable stream checksum. This is by default, use
@@ -418,28 +417,29 @@ OPTIONS
lz4:block-checksum
Enable block checksum (Disabled by default).
lz4:block-size
- A decimal integer from 4 to 7 specifying the lz4 compres-
+ A decimal integer from 4 to 7 specifying the lz4 compres‐
sion block size (7 is set by default).
lz4:block-dependence
Use the previous block of the block being compressed for
a compression dictionary to improve compression ratio.
zstd:compression-level
- A decimal integer from 1 to 22 specifying the zstd com-
- pression level.
+ A decimal integer specifying the zstd compression level.
+ Supported values depend on the library version, common
+ values are from 1 to 22.
lzop:compression-level
- A decimal integer from 1 to 9 specifying the lzop com-
+ A decimal integer from 1 to 9 specifying the lzop com‐
pression level.
xz:compression-level
- A decimal integer from 0 to 9 specifying the xz compres-
+ A decimal integer from 0 to 9 specifying the xz compres‐
sion level.
mtree:keyword
The mtree writer module allows you to specify which mtree
- keywords will be included in the output. Supported key-
+ keywords will be included in the output. Supported key‐
words include: cksum, device, flags, gid, gname, indent,
link, md5, mode, nlink, rmd160, sha1, sha256, sha384,
- sha512, size, time, uid, uname. The default is equiva-
- lent to: ``device, flags, gid, gname, link, mode, nlink,
- size, time, type, uid, uname''.
+ sha512, size, time, uid, uname. The default is equiva‐
+ lent to: “device, flags, gid, gname, link, mode, nlink,
+ size, time, type, uid, uname”.
mtree:all
Enables all of the above keywords. You can also use
mtree:!all to disable all keywords.
@@ -456,13 +456,13 @@ OPTIONS
zip:encryption=type
Use type as encryption type. Supported values are
zipcrypt (traditional zip encryption), aes128 (WinZip
- AES-128 encryption) and aes256 (WinZip AES-256 encryp-
+ AES-128 encryption) and aes256 (WinZip AES-256 encryp‐
tion).
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 con-
- catenated archive would be read. This option is compara-
+ Without this option, only the contents of the first con‐
+ catenated archive would be read. This option is compara‐
ble to the -i, --ignore-zeros option of GNU tar.
If a provided option is not supported by any module, that is a
fatal error.
@@ -472,8 +472,8 @@ OPTIONS
begin with a / character) have the leading slash removed both
when creating archives and extracting from them. Also, tar will
refuse to extract archive entries whose pathnames contain .. or
- whose target directory would be altered by a symlink. This
- option suppresses these behaviors.
+ whose target directory would be altered by a symlink. This op‐
+ tion suppresses these behaviors.
-p, --insecure, --preserve-permissions
(x mode only) Preserve file permissions. Attempt to restore the
@@ -486,8 +486,8 @@ OPTIONS
--passphrase passphrase
The passphrase is used to extract or create an encrypted archive.
- Currently, zip is the only supported format that supports encryp-
- tion. You shouldn't use this option unless you realize how inse-
+ Currently, zip is the only supported format that supports encryp‐
+ tion. You shouldn't use this option unless you realize how inse‐
cure use of this option is.
--posix
@@ -498,8 +498,8 @@ OPTIONS
that matches each pattern or filename operand. Exit as soon as
each specified pattern or filename has been matched. By default,
the archive is always read to the very end, since there can be
- multiple entries with the same name and, by convention, later
- entries overwrite earlier entries. This option is provided as a
+ multiple entries with the same name and, by convention, later en‐
+ tries overwrite earlier entries. This option is provided as a
performance optimization.
-S (x mode only) Extract files as sparse files. For every block on
@@ -510,10 +510,10 @@ OPTIONS
Modify file or archive member names according to pattern. The
pattern has the format /old/new/[ghHprRsS] where old is a basic
regular expression, new is the replacement string of the matched
- part, and the optional trailing letters modify how the replace-
+ part, and the optional trailing letters modify how the replace‐
ment is handled. If old is not matched, the pattern is skipped.
Within new, ~ is substituted with the match, \1 to \9 with the
- content of the corresponding captured group. The optional trail-
+ content of the corresponding captured group. The optional trail‐
ing g specifies that matching should continue after the matched
part and stop on the first unmatched pattern. The optional
trailing s specifies that the pattern applies to the value of
@@ -534,11 +534,11 @@ OPTIONS
writes to it. For a short period of time, applications trying to
access the file might not find it, or see incomplete results. If
--safe-writes is enabled, tar first creates a unique temporary
- file, then writes the new contents to the temporary file, and
- finally renames the temporary file to its final name atomically
- using rename(2). This guarantees that an application accessing
- the file, will either see the old contents or the new contents at
- all times.
+ file, then writes the new contents to the temporary file, and fi‐
+ nally renames the temporary file to its final name atomically us‐
+ ing rename(2). This guarantees that an application accessing the
+ file, will either see the old contents or the new contents at all
+ times.
--same-owner
(x mode only) Extract owner and group IDs. This is the reverse
@@ -554,11 +554,11 @@ OPTIONS
-T filename, --files-from filename
In x or t mode, tar will read the list of names to be extracted
from filename. In c mode, tar will read names to be archived
- from filename. The special name ``-C'' on a line by itself will
- cause the current directory to be changed to the directory speci-
- fied on the following line. Names are terminated by newlines
- unless --null is specified. Note that --null also disables the
- special handling of lines containing ``-C''. Note: If you are
+ from filename. The special name “-C” on a line by itself will
+ cause the current directory to be changed to the directory speci‐
+ fied on the following line. Names are terminated by newlines un‐
+ less --null is specified. Note that --null also disables the
+ special handling of lines containing “-C”. Note: If you are
generating lists of files using find(1), you probably want to use
-n as well.
@@ -570,9 +570,9 @@ OPTIONS
(x mode only) Unlink files before creating them. This can be a
minor performance optimization if most files already exist, but
can make things slower if most files do not already exist. This
- flag also causes tar to remove intervening directory symlinks
- instead of reporting an error. See the SECURITY section below
- for more details.
+ flag also causes tar to remove intervening directory symlinks in‐
+ stead of reporting an error. See the SECURITY section below for
+ more details.
--uid id
Use the provided user id number and ignore the user name from the
@@ -595,7 +595,7 @@ OPTIONS
Produce verbose output. In create and extract modes, tar will
list each file name as it is read from or written to the archive.
In list mode, tar will produce output similar to that of ls(1).
- An additional -v option will also provide ls-like details in cre-
+ An additional -v option will also provide ls-like details in cre‐
ate and extract mode.
--version
@@ -609,9 +609,9 @@ OPTIONS
--exclude for more information about the handling of exclusions.
--xattrs
- (c, r, u, x modes only) Archive or extract extended file
- attributes. This is the reverse of --no-xattrs and the default
- behavior in c, r, and u modes or if tar is run in x mode as root.
+ (c, r, u, x modes only) Archive or extract extended file at‐
+ tributes. This is the reverse of --no-xattrs and the default be‐
+ havior in c, r, and u modes or if tar is run in x mode as root.
-y (c mode only) Compress the resulting archive with bzip2(1). In
extract or list modes, this option is ignored. Note that this
@@ -634,11 +634,11 @@ ENVIRONMENT
The following environment variables affect the execution of tar:
TAR_READER_OPTIONS
- The default options for format readers and compression read-
+ The default options for format readers and compression read‐
ers. The --options option overrides this.
TAR_WRITER_OPTIONS
- The default options for format writers and compression writ-
+ The default options for format writers and compression writ‐
ers. The --options option overrides this.
LANG The locale to use. See environ(7) for more information.
@@ -677,8 +677,8 @@ EXAMPLES
tar -c -f new.tar foo1 @old.tgz -C/tmp foo2
will create a new archive new.tar. tar will read the file foo1 from the
current directory and add it to the output archive. It will then read
- each entry from old.tgz and add those entries to the output archive.
- Finally, it will switch to the /tmp directory and add foo2 to the output
+ each entry from old.tgz and add those entries to the output archive. Fi‐
+ nally, it will switch to the /tmp directory and add foo2 to the output
archive.
An input file in mtree(5) format can be used to create an output archive
@@ -692,8 +692,8 @@ EXAMPLES
$ tar -cvf output.tar @input.mtree
The --newer and --newer-mtime switches accept a variety of common date
- and time specifications, including ``12 Mar 2005 7:14:29pm'',
- ``2005-03-12 19:14'', ``5 minutes ago'', and ``19:14 PST May 1''.
+ and time specifications, including “12 Mar 2005 7:14:29pm”, “2005-03-12
+ 19:14”, “5 minutes ago”, and “19:14 PST May 1”.
The --options argument can be used to control various details of archive
generation or reading. For example, you can generate mtree output which
@@ -707,12 +707,12 @@ EXAMPLES
COMPATIBILITY
The bundled-arguments format is supported for compatibility with historic
- implementations. It consists of an initial word (with no leading - char-
+ implementations. It consists of an initial word (with no leading - char‐
acter) in which each character indicates an option. Arguments follow as
separate words. The order of the arguments must match the order of the
corresponding characters in the bundled command word. For example,
tar tbf 32 file.tar
- specifies three flags t, b, and f. The b and f flags both require argu-
+ specifies three flags t, b, and f. The b and f flags both require argu‐
ments, so there must be two additional items on the command line. The 32
is the argument to the b flag, and file.tar is the argument to the f
flag.
@@ -729,25 +729,25 @@ COMPATIBILITY
SECURITY
Certain security issues are common to many archiving programs, including
- tar. In particular, carefully-crafted archives can request that tar
- extract files to locations outside of the target directory. This can
- potentially be used to cause unwitting users to overwrite files they did
- not intend to overwrite. If the archive is being extracted by the supe-
+ tar. In particular, carefully-crafted archives can request that tar ex‐
+ tract files to locations outside of the target directory. This can po‐
+ tentially be used to cause unwitting users to overwrite files they did
+ not intend to overwrite. If the archive is being extracted by the supe‐
ruser, any file on the system can potentially be overwritten. There are
three ways this can happen. Although tar has mechanisms to protect
against each one, savvy users should be aware of the implications:
- o Archive entries can have absolute pathnames. By default, tar
- removes the leading / character from filenames before restoring
+ • Archive entries can have absolute pathnames. By default, tar re‐
+ moves the leading / character from filenames before restoring
them to guard against this problem.
- o Archive entries can have pathnames that include .. components.
+ • Archive entries can have pathnames that include .. components.
By default, tar will not extract files containing .. components
in their pathname.
- o Archive entries can exploit symbolic links to restore files to
- other directories. An archive can restore a symbolic link to
- another directory, then use that link to restore a file into that
+ • Archive entries can exploit symbolic links to restore files to
+ other directories. An archive can restore a symbolic link to an‐
+ other directory, then use that link to restore a file into that
directory. To guard against this, tar checks each extracted path
for symlinks. If the final path element is a symlink, it will be
removed and replaced with the archive entry. If -U is specified,
@@ -758,11 +758,11 @@ SECURITY
untrusted sources. You should examine the contents of an archive with
tar -tf filename
before extraction. You should use the -k option to ensure that tar will
- not overwrite any existing files or the -U option to remove any pre-
- existing files. You should generally not extract archives while running
+ not overwrite any existing files or the -U option to remove any pre-ex‐
+ isting files. You should generally not extract archives while running
with super-user privileges. Note that the -P option to tar disables the
- security checks above and allows you to extract an archive while preserv-
- ing any absolute pathnames, .. components, or symlinks to other directo-
+ security checks above and allows you to extract an archive while preserv‐
+ ing any absolute pathnames, .. components, or symlinks to other directo‐
ries.
SEE ALSO
@@ -771,40 +771,39 @@ SEE ALSO
STANDARDS
There is no current POSIX standard for the tar command; it appeared in
- ISO/IEC 9945-1:1996 (``POSIX.1'') but was dropped from IEEE Std
- 1003.1-2001 (``POSIX.1''). The options supported by this implementation
- were developed by surveying a number of existing tar implementations as
- well as the old POSIX specification for tar and the current POSIX speci-
- fication for pax.
+ ISO/IEC 9945-1:1996 (“POSIX.1”) but was dropped from IEEE Std 1003.1-2001
+ (“POSIX.1”). The options supported by this implementation were developed
+ by surveying a number of existing tar implementations as well as the old
+ POSIX specification for tar and the current POSIX specification for pax.
The ustar and pax interchange file formats are defined by IEEE Std
- 1003.1-2001 (``POSIX.1'') for the pax command.
+ 1003.1-2001 (“POSIX.1”) for the pax command.
HISTORY
A tar command appeared in Seventh Edition Unix, which was released in
January, 1979. There have been numerous other implementations, many of
- which extended the file format. John Gilmore's pdtar public-domain
- implementation (circa November, 1987) was quite influential, and formed
- the basis of GNU tar. GNU tar was included as the standard system tar in
+ which extended the file format. John Gilmore's pdtar public-domain im‐
+ plementation (circa November, 1987) was quite influential, and formed the
+ basis of GNU tar. GNU tar was included as the standard system tar in
FreeBSD beginning with FreeBSD 1.0.
This is a complete re-implementation based on the libarchive(3) library.
It was first released with FreeBSD 5.4 in May, 2005.
BUGS
- This program follows ISO/IEC 9945-1:1996 (``POSIX.1'') for the definition
+ This program follows ISO/IEC 9945-1:1996 (“POSIX.1”) for the definition
of the -l option. Note that GNU tar prior to version 1.15 treated -l as
a synonym for the --one-file-system option.
The -C dir option may differ from historic implementations.
- All archive output is written in correctly-sized blocks, even if the out-
+ All archive output is written in correctly-sized blocks, even if the out‐
put is being compressed. Whether or not the last output block is padded
- to a full block size varies depending on the format and the output
- device. For tar and cpio formats, the last block of output is padded to
- a full block size if the output is being written to standard output or to
- a character or block device such as a tape drive. If the output is being
- written to a regular file, the last block will not be padded. Many com-
+ to a full block size varies depending on the format and the output de‐
+ vice. For tar and cpio formats, the last block of output is padded to a
+ full block size if the output is being written to standard output or to a
+ character or block device such as a tape drive. If the output is being
+ written to a regular file, the last block will not be padded. Many com‐
pressors, including gzip(1) and bzip2(1), complain about the null padding
when decompressing an archive created by tar, although they still extract
it correctly.
@@ -833,9 +832,9 @@ BUGS
There is not yet any support for multi-volume archives.
- Converting between dissimilar archive formats (such as tar and cpio)
- using the @- convention can cause hard link information to be lost.
- (This is a consequence of the incompatible ways that different archive
- formats store hardlink information.)
+ Converting between dissimilar archive formats (such as tar and cpio) us‐
+ ing the @- convention can cause hard link information to be lost. (This
+ is a consequence of the incompatible ways that different archive formats
+ store hardlink information.)
BSD January 31, 2020 BSD
diff --git a/dependencies/libarchive-3.5.2/doc/text/cpio.5.txt b/dependencies/libarchive-3.5.2/doc/text/cpio.5.txt
new file mode 100644
index 0000000..d9c9cfd
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/doc/text/cpio.5.txt
@@ -0,0 +1,292 @@
+CPIO(5) BSD File Formats Manual CPIO(5)
+
+NAME
+ cpio — format of cpio archive files
+
+DESCRIPTION
+ The cpio archive format collects any number of files, directories, and
+ other file system objects (symbolic links, device nodes, etc.) into a
+ single stream of bytes.
+
+ General Format
+ Each file system object in a cpio archive comprises a header record with
+ basic numeric metadata followed by the full pathname of the entry and the
+ file data. The header record stores a series of integer values that gen‐
+ erally follow the fields in struct stat. (See stat(2) for details.) The
+ variants differ primarily in how they store those integers (binary, oc‐
+ tal, or hexadecimal). The header is followed by the pathname of the en‐
+ try (the length of the pathname is stored in the header) and any file
+ data. The end of the archive is indicated by a special record with the
+ pathname “TRAILER!!!”.
+
+ PWB format
+ The PWB binary cpio format is the original format, when cpio was intro‐
+ duced as part of the Programmer's Work Bench system, a variant of 6th
+ Edition UNIX. It stores numbers as 2-byte and 4-byte binary values.
+ Each entry begins with a header in the following format:
+
+ struct header_pwb_cpio {
+ short h_magic;
+ short h_dev;
+ short h_ino;
+ short h_mode;
+ short h_uid;
+ short h_gid;
+ short h_nlink;
+ short h_majmin;
+ long h_mtime;
+ short h_namesize;
+ long h_filesize;
+ };
+
+ The short fields here are 16-bit integer values, while the long fields
+ are 32 bit integers. Since PWB UNIX, like the 6th Edition UNIX it was
+ based on, only ran on PDP-11 computers, they are in PDP-endian format,
+ which has little-endian shorts, and big-endian longs. That is, the long
+ integer whose hexadecimal representation is 0x12345678 would be stored in
+ four successive bytes as 0x34, 0x12, 0x78, 0x56. The fields are as fol‐
+ lows:
+
+ h_magic
+ The integer value octal 070707.
+
+ h_dev, h_ino
+ The device and inode numbers from the disk. These are used by
+ programs that read cpio archives to determine when two entries
+ refer to the same file. Programs that synthesize cpio archives
+ should be careful to set these to distinct values for each entry.
+
+ h_mode The mode specifies both the regular permissions and the file
+ type, and it also holds a couple of bits that are irrelevant to
+ the cpio format, because the field is actually a raw copy of the
+ mode field in the inode representing the file. These are the
+ IALLOC flag, which shows that the inode entry is in use, and the
+ ILARG flag, which shows that the file it represents is large
+ enough to have indirect blocks pointers in the inode. The mode
+ is decoded as follows:
+
+ 0100000 IALLOC flag - irrelevant to cpio.
+ 0060000 This masks the file type bits.
+ 0040000 File type value for directories.
+ 0020000 File type value for character special devices.
+ 0060000 File type value for block special devices.
+ 0010000 ILARG flag - irrelevant to cpio.
+ 0004000 SUID bit.
+ 0002000 SGID bit.
+ 0001000 Sticky bit.
+ 0000777 The lower 9 bits specify read/write/execute permissions
+ for world, group, and user following standard POSIX con‐
+ ventions.
+
+ h_uid, h_gid
+ The numeric user id and group id of the owner.
+
+ h_nlink
+ The number of links to this file. Directories always have a
+ value of at least two here. Note that hardlinked files include
+ file data with every copy in the archive.
+
+ h_majmin
+ For block special and character special entries, this field con‐
+ tains the associated device number, with the major number in the
+ high byte, and the minor number in the low byte. For all other
+ entry types, it should be set to zero by writers and ignored by
+ readers.
+
+ h_mtime
+ Modification time of the file, indicated as the number of seconds
+ since the start of the epoch, 00:00:00 UTC January 1, 1970.
+
+ h_namesize
+ The number of bytes in the pathname that follows the header.
+ This count includes the trailing NUL byte.
+
+ h_filesize
+ The size of the file. Note that this archive format is limited
+ to 16 megabyte file sizes, because PWB UNIX, like 6th Edition,
+ only used an unsigned 24 bit integer for the file size inter‐
+ nally.
+
+ The pathname immediately follows the fixed header. If h_namesize is odd,
+ an additional NUL byte is added after the pathname. The file data is
+ then appended, again with an additional NUL appended if needed to get the
+ next header at an even offset.
+
+ Hardlinked files are not given special treatment; the full file contents
+ are included with each copy of the file.
+
+ New Binary Format
+ The new binary cpio format showed up when cpio was adopted into late 7th
+ Edition UNIX. It is exactly like the PWB binary format, described above,
+ except for three changes:
+
+ First, UNIX now ran on more than one hardware type, so the endianness of
+ 16 bit integers must be determined by observing the magic number at the
+ start of the header. The 32 bit integers are still always stored with
+ the most significant word first, though, so each of those two, in the
+ struct shown above, was stored as an array of two 16 bit integers, in the
+ traditional order. Those 16 bit integers, like all the others in the
+ struct, were accessed using a macro that byte swapped them if necessary.
+
+ Next, 7th Edition had more file types to store, and the IALLOC and ILARG
+ flag bits were re-purposed to accommodate these. The revised use of the
+ various bits is as follows:
+
+ 0170000 This masks the file type bits.
+ 0140000 File type value for sockets.
+ 0120000 File type value for symbolic links. For symbolic links, the
+ link body is stored as file data.
+ 0100000 File type value for regular files.
+ 0060000 File type value for block special devices.
+ 0040000 File type value for directories.
+ 0020000 File type value for character special devices.
+ 0010000 File type value for named pipes or FIFOs.
+ 0004000 SUID bit.
+ 0002000 SGID bit.
+ 0001000 Sticky bit.
+ 0000777 The lower 9 bits specify read/write/execute permissions for
+ world, group, and user following standard POSIX conventions.
+
+ Finally, the file size field now represents a signed 32 bit integer in
+ the underlying file system, so the maximum file size has increased to 2
+ gigabytes.
+
+ Note that there is no obvious way to tell which of the two binary formats
+ an archive uses, other than to see which one makes more sense. The typi‐
+ cal error scenario is that a PWB format archive unpacked as if it were in
+ the new format will create named sockets instead of directories, and then
+ fail to unpack files that should go in those directories. Running
+ bsdcpio -itv on an unknown archive will make it obvious which it is: if
+ it's PWB format, directories will be listed with an 's' instead of a 'd'
+ as the first character of the mode string, and the larger files will have
+ a '?' in that position.
+
+ Portable ASCII Format
+ Version 2 of the Single UNIX Specification (“SUSv2”) standardized an
+ ASCII variant that is portable across all platforms. It is commonly
+ known as the “old character” format or as the “odc” format. It stores
+ the same numeric fields as the old binary format, but represents them as
+ 6-character or 11-character octal values.
+
+ struct cpio_odc_header {
+ char c_magic[6];
+ char c_dev[6];
+ char c_ino[6];
+ char c_mode[6];
+ char c_uid[6];
+ char c_gid[6];
+ char c_nlink[6];
+ char c_rdev[6];
+ char c_mtime[11];
+ char c_namesize[6];
+ char c_filesize[11];
+ };
+
+ The fields are identical to those in the new binary format. The name and
+ file body follow the fixed header. Unlike the binary formats, there is
+ no additional padding after the pathname or file contents. If the files
+ being archived are themselves entirely ASCII, then the resulting archive
+ will be entirely ASCII, except for the NUL byte that terminates the name
+ field.
+
+ New ASCII Format
+ The "new" ASCII format uses 8-byte hexadecimal fields for all numbers and
+ separates device numbers into separate fields for major and minor num‐
+ bers.
+
+ struct cpio_newc_header {
+ char c_magic[6];
+ char c_ino[8];
+ char c_mode[8];
+ char c_uid[8];
+ char c_gid[8];
+ char c_nlink[8];
+ char c_mtime[8];
+ char c_filesize[8];
+ char c_devmajor[8];
+ char c_devminor[8];
+ char c_rdevmajor[8];
+ char c_rdevminor[8];
+ char c_namesize[8];
+ char c_check[8];
+ };
+
+ Except as specified below, the fields here match those specified for the
+ new binary format above.
+
+ magic The string “070701”.
+
+ check This field is always set to zero by writers and ignored by read‐
+ ers. See the next section for more details.
+
+ The pathname is followed by NUL bytes so that the total size of the fixed
+ header plus pathname is a multiple of four. Likewise, the file data is
+ padded to a multiple of four bytes. Note that this format supports only
+ 4 gigabyte files (unlike the older ASCII format, which supports 8 giga‐
+ byte files).
+
+ In this format, hardlinked files are handled by setting the filesize to
+ zero for each entry except the first one that appears in the archive.
+
+ New CRC Format
+ The CRC format is identical to the new ASCII format described in the pre‐
+ vious section except that the magic field is set to “070702” and the
+ check field is set to the sum of all bytes in the file data. This sum is
+ computed treating all bytes as unsigned values and using unsigned arith‐
+ metic. Only the least-significant 32 bits of the sum are stored.
+
+ HP variants
+ The cpio implementation distributed with HPUX used XXXX but stored device
+ numbers differently XXX.
+
+ Other Extensions and Variants
+ Sun Solaris uses additional file types to store extended file data, in‐
+ cluding ACLs and extended attributes, as special entries in cpio ar‐
+ chives.
+
+ XXX Others? XXX
+
+SEE ALSO
+ cpio(1), tar(5)
+
+STANDARDS
+ The cpio utility is no longer a part of POSIX or the Single Unix Stan‐
+ dard. It last appeared in Version 2 of the Single UNIX Specification
+ (“SUSv2”). It has been supplanted in subsequent standards by pax(1).
+ The portable ASCII format is currently part of the specification for the
+ pax(1) utility.
+
+HISTORY
+ The original cpio utility was written by Dick Haight while working in
+ AT&T's Unix Support Group. It appeared in 1977 as part of PWB/UNIX 1.0,
+ the “Programmer's Work Bench” derived from AT&T UNIX 6th Edition UNIX
+ that was used internally at AT&T. Both the new binary and old character
+ formats were in use by 1980, according to the System III source released
+ by SCO under their “Ancient Unix” license. The character format was
+ adopted as part of IEEE Std 1003.1-1988 (“POSIX.1”). XXX when did "newc"
+ appear? Who invented it? When did HP come out with their variant? When
+ did Sun introduce ACLs and extended attributes? XXX
+
+BUGS
+ The “CRC” format is mis-named, as it uses a simple checksum and not a
+ cyclic redundancy check.
+
+ The binary formats are limited to 16 bits for user id, group id, device,
+ and inode numbers. They are limited to 16 megabyte and 2 gigabyte file
+ sizes for the older and newer variants, respectively.
+
+ The old ASCII format is limited to 18 bits for the user id, group id, de‐
+ vice, and inode numbers. It is limited to 8 gigabyte file sizes.
+
+ The new ASCII format is limited to 4 gigabyte file sizes.
+
+ None of the cpio formats store user or group names, which are essential
+ when moving files between systems with dissimilar user or group number‐
+ ing.
+
+ Especially when writing older cpio variants, it may be necessary to map
+ actual device/inode values to synthesized values that fit the available
+ fields. With very large filesystems, this may be necessary even for the
+ newer formats.
+
+BSD December 23, 2011 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/libarchive-formats.5.txt b/dependencies/libarchive-3.5.2/doc/text/libarchive-formats.5.txt
similarity index 70%
rename from dependencies/libarchive-3.4.2/doc/text/libarchive-formats.5.txt
rename to dependencies/libarchive-3.5.2/doc/text/libarchive-formats.5.txt
index 18e0dc4..92fb8d5 100644
--- a/dependencies/libarchive-3.4.2/doc/text/libarchive-formats.5.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/libarchive-formats.5.txt
@@ -1,16 +1,16 @@
LIBARCHIVE-FORMATS(5) BSD File Formats Manual LIBARCHIVE-FORMATS(5)
NAME
- libarchive-formats -- archive formats supported by the libarchive library
+ libarchive-formats — archive formats supported by the libarchive library
DESCRIPTION
The libarchive(3) library reads and writes a variety of streaming archive
formats. Generally speaking, all of these archive formats consist of a
- series of ``entries''. Each entry stores a single file system object,
- such as a file, directory, or symbolic link.
+ series of “entries”. Each entry stores a single file system object, such
+ as a file, directory, or symbolic link.
The following provides a brief description of each format supported by
- libarchive, with some information about recognized extensions or limita-
+ libarchive, with some information about recognized extensions or limita‐
tions of the current library support. Note that just because a format is
supported by libarchive does not imply that a program that uses
libarchive will support that format. Applications that use libarchive
@@ -19,16 +19,16 @@ DESCRIPTION
Tar Formats
The libarchive(3) library can read most tar archives. It can write
- POSIX-standard ``ustar'' and ``pax interchange'' formats as well as v7
- tar format and a subset of the legacy GNU tar format.
+ POSIX-standard “ustar” and “pax interchange” formats as well as v7 tar
+ format and a subset of the legacy GNU tar format.
All tar formats store each entry in one or more 512-byte records. The
first record is used for file metadata, including filename, timestamp,
and mode information, and the file data is stored in subsequent records.
Later variants have extended this by either appropriating undefined areas
of the header record, extending the header to multiple records, or by
- storing special entries that modify the interpretation of subsequent
- entries.
+ storing special entries that modify the interpretation of subsequent en‐
+ tries.
gnutar The libarchive(3) library can read most GNU-format tar archives.
It currently supports the most popular GNU extensions, including
@@ -45,70 +45,69 @@ DESCRIPTION
interchange format archives. Pax interchange format archives are
an extension of the older ustar format that adds a separate entry
with additional attributes stored as key/value pairs immediately
- before each regular entry. The presence of these additional
- entries is the only difference between pax interchange format and
+ before each regular entry. The presence of these additional en‐
+ tries is the only difference between pax interchange format and
the older ustar format. The extended attributes are of unlimited
length and are stored as UTF-8 Unicode strings. Keywords defined
- in the standard are in all lowercase; vendors are allowed to
- define custom keys by preceding them with the vendor name in all
+ in the standard are in all lowercase; vendors are allowed to de‐
+ fine custom keys by preceding them with the vendor name in all
uppercase. When writing pax archives, libarchive uses many of
- the SCHILY keys defined by Joerg Schilling's ``star'' archiver
- and a few LIBARCHIVE keys. The libarchive library can read most
- of the SCHILY keys and most of the GNU keys introduced by GNU
- tar. It silently ignores any keywords that it does not under-
- stand.
+ the SCHILY keys defined by Joerg Schilling's “star” archiver and
+ a few LIBARCHIVE keys. The libarchive library can read most of
+ the SCHILY keys and most of the GNU keys introduced by GNU tar.
+ It silently ignores any keywords that it does not understand.
The pax interchange format converts filenames to Unicode and
stores them using the UTF-8 encoding. Prior to libarchive 3.0,
libarchive erroneously assumed that the system wide-character
- routines natively supported Unicode. This caused it to mis-han-
- dle non-ASCII filenames on systems that did not satisfy this
- assumption.
+ routines natively supported Unicode. This caused it to mis-han‐
+ dle non-ASCII filenames on systems that did not satisfy this as‐
+ sumption.
restricted pax
The libarchive library can also write pax archives in which it
- attempts to suppress the extended attributes entry whenever pos-
+ attempts to suppress the extended attributes entry whenever pos‐
sible. The result will be identical to a ustar archive unless
the extended attributes entry is required to store a long file
name, long linkname, extended ACL, file flags, or if any of the
standard ustar data (user name, group name, UID, GID, etc) cannot
- be fully represented in the ustar header. In all cases, the
- result can be dearchived by any program that can read POSIX-com-
- pliant pax interchange format archives. Programs that correctly
- read ustar format (see below) will also be able to read this for-
+ be fully represented in the ustar header. In all cases, the re‐
+ sult can be dearchived by any program that can read POSIX-compli‐
+ ant pax interchange format archives. Programs that correctly
+ read ustar format (see below) will also be able to read this for‐
mat; any extended attributes will be extracted as separate files
stored in PaxHeader directories.
ustar The libarchive library can both read and write this format. This
format has the following limitations:
- o Device major and minor numbers are limited to 21 bits. Nodes
+ • Device major and minor numbers are limited to 21 bits. Nodes
with larger numbers will not be added to the archive.
- o Path names in the archive are limited to 255 bytes. (Shorter
+ • Path names in the archive are limited to 255 bytes. (Shorter
if there is no / character in exactly the right place.)
- o Symbolic links and hard links are stored in the archive with
+ • Symbolic links and hard links are stored in the archive with
the name of the referenced file. This name is limited to 100
bytes.
- o Extended attributes, file flags, and other extended security
+ • Extended attributes, file flags, and other extended security
information cannot be stored.
- o Archive entries are limited to 8 gigabytes in size.
- Note that the pax interchange format has none of these restric-
- tions. The ustar format is old and widely supported. It is rec-
+ • Archive entries are limited to 8 gigabytes in size.
+ Note that the pax interchange format has none of these restric‐
+ tions. The ustar format is old and widely supported. It is rec‐
ommended when compatibility is the primary concern.
- v7 The libarchive library can read and write the legacy v7 tar for-
+ v7 The libarchive library can read and write the legacy v7 tar for‐
mat. This format has the following limitations:
- o Only regular files, directories, and symbolic links can be
- archived. Block and character device nodes, FIFOs, and sock-
+ • Only regular files, directories, and symbolic links can be
+ archived. Block and character device nodes, FIFOs, and sock‐
ets cannot be archived.
- o Path names in the archive are limited to 100 bytes.
- o Symbolic links and hard links are stored in the archive with
+ • Path names in the archive are limited to 100 bytes.
+ • Symbolic links and hard links are stored in the archive with
the name of the referenced file. This name is limited to 100
bytes.
- o User and group information are stored as numeric IDs; there
+ • User and group information are stored as numeric IDs; there
is no provision for storing user or group names.
- o Extended attributes, file flags, and other extended security
+ • Extended attributes, file flags, and other extended security
information cannot be stored.
- o Archive entries are limited to 8 gigabytes in size.
+ • Archive entries are limited to 8 gigabytes in size.
Generally, users should prefer the ustar format for portability
as the v7 tar format is both less useful and less portable.
@@ -120,9 +119,9 @@ DESCRIPTION
The POSIX standards require fixed-length numeric fields to be
written with some character position reserved for terminators.
Libarchive allows these fields to be written without terminator
- characters. This extends the allowable range; in particular,
- ustar archives with this extension can support entries up to 64
- gigabytes in size. Libarchive also recognizes base-256 values in
+ characters. This extends the allowable range; in particular, us‐
+ tar archives with this extension can support entries up to 64 gi‐
+ gabytes in size. Libarchive also recognizes base-256 values in
most numeric fields. This essentially removes all limitations on
file size, modification time, and device numbers.
@@ -131,33 +130,37 @@ DESCRIPTION
by Solaris tar.
The first tar program appeared in Seventh Edition Unix in 1979. The
- first official standard for the tar file format was the ``ustar'' (Unix
+ first official standard for the tar file format was the “ustar” (Unix
Standard Tar) format defined by POSIX in 1988. POSIX.1-2001 extended the
- ustar format to create the ``pax interchange'' format.
+ ustar format to create the “pax interchange” format.
Cpio Formats
- The libarchive library can read a number of common cpio variants and can
- write ``odc'' and ``newc'' format archives. A cpio archive stores each
- entry as a fixed-size header followed by a variable-length filename and
- variable-length data. Unlike the tar format, the cpio format does only
- minimal padding of the header or file data. There are several cpio vari-
- ants, which differ primarily in how they store the initial header: some
- store the values as octal or hexadecimal numbers in ASCII, others as
- binary values of varying byte order and length.
+ The libarchive library can read and write a number of common cpio vari‐
+ ants. A cpio archive stores each entry as a fixed-size header followed
+ by a variable-length filename and variable-length data. Unlike the tar
+ format, the cpio format does only minimal padding of the header or file
+ data. There are several cpio variants, which differ primarily in how
+ they store the initial header: some store the values as octal or hexadec‐
+ imal numbers in ASCII, others as binary values of varying byte order and
+ length.
binary The libarchive library transparently reads both big-endian and
- little-endian variants of the original binary cpio format. This
- format used 32-bit binary values for file size and mtime, and
- 16-bit binary values for the other fields.
+ little-endian variants of the the two binary cpio formats; the
+ original one from PWB/UNIX, and the later, more widely used,
+ variant. This format used 32-bit binary values for file size and
+ mtime, and 16-bit binary values for the other fields. The for‐
+ mats support only the file types present in UNIX at the time of
+ their creation. File sizes are limited to 24 bits in the PWB
+ format, because of the limits of the file system, and to 31 bits
+ in the newer binary format, where signed 32 bit longs were used.
- odc The libarchive library can both read and write this POSIX-stan-
- dard format, which is officially known as the ``cpio interchange
- format'' or the ``octet-oriented cpio archive format'' and some-
- times unofficially referred to as the ``old character format''.
- This format stores the header contents as octal values in ASCII.
- It is standard, portable, and immune from byte-order confusion.
- File sizes and mtime are limited to 33 bits (8GB file size),
- other fields are limited to 18 bits.
+ odc This is the POSIX standardized format, which is officially known
+ as the “cpio interchange format” or the “octet-oriented cpio
+ archive format” and sometimes unofficially referred to as the
+ “old character format”. This format stores the header contents
+ as octal values in ASCII. It is standard, portable, and immune
+ from byte-order confusion. File sizes and mtime are limited to
+ 33 bits (8GB file size), other fields are limited to 18 bits.
SVR4/newc
The libarchive library can read both CRC and non-CRC variants of
@@ -173,32 +176,32 @@ DESCRIPTION
included in Version 7 AT&T Unix. As a result, the tar command became
much better known in universities and research groups that used Version
7. The combination of the find and cpio utilities provided very precise
- control over file selection. Unfortunately, the format has many limita-
+ control over file selection. Unfortunately, the format has many limita‐
tions that make it unsuitable for widespread use. Only the POSIX format
permits files over 4GB, and its 18-bit limit for most other fields makes
it unsuitable for modern systems. In addition, cpio formats only store
numeric UID/GID values (not usernames and group names), which can make it
- very difficult to correctly transfer archives across systems with dissim-
+ very difficult to correctly transfer archives across systems with dissim‐
ilar user numbering.
Shar Formats
- A ``shell archive'' is a shell script that, when executed on a POSIX-com-
+ A “shell archive” is a shell script that, when executed on a POSIX-com‐
pliant system, will recreate a collection of file system objects. The
libarchive library can write two different kinds of shar archives:
shar The traditional shar format uses a limited set of POSIX commands,
including echo(1), mkdir(1), and sed(1). It is suitable for
- portably archiving small collections of plain text files. How-
+ portably archiving small collections of plain text files. How‐
ever, it is not generally well-suited for large archives (many
implementations of sh(1) have limits on the size of a script) nor
should it be used with non-text files.
shardump
This format is similar to shar but encodes files using
- uuencode(1) so that the result will be a plain text file regard-
+ uuencode(1) so that the result will be a plain text file regard‐
less of the file contents. It also includes additional shell
commands that attempt to reproduce as many file attributes as
- possible, including owner, mode, and flags. The additional com-
+ possible, including owner, mode, and flags. The additional com‐
mands used to restore file attributes make shardump archives less
portable than plain shar archives.
@@ -207,56 +210,55 @@ DESCRIPTION
CDROM images. In many cases, this can remove the need to burn a physical
CDROM just in order to read the files contained in an ISO9660 image. It
also avoids security and complexity issues that come with virtual mounts
- and loopback devices. Libarchive supports the most common Rockridge
- extensions and has partial support for Joliet extensions. If both exten-
+ and loopback devices. Libarchive supports the most common Rockridge ex‐
+ tensions and has partial support for Joliet extensions. If both exten‐
sions are present, the Joliet extensions will be used and the Rockridge
extensions will be ignored. In particular, this can create problems with
hardlinks and symlinks, which are supported by Rockridge but not by
Joliet.
Libarchive reads ISO9660 images using a streaming strategy. This allows
- it to read compressed images directly (decompressing on the fly) and
- allows it to read images directly from network sockets, pipes, and other
+ it to read compressed images directly (decompressing on the fly) and al‐
+ lows it to read images directly from network sockets, pipes, and other
non-seekable data sources. This strategy works well for optimized
ISO9660 images created by many popular programs. Such programs collect
all directory information at the beginning of the ISO9660 image so it can
be read from a physical disk with a minimum of seeking. However, not all
ISO9660 images can be read in this fashion.
- Libarchive can also write ISO9660 images. Such images are fully opti-
+ Libarchive can also write ISO9660 images. Such images are fully opti‐
mized with the directory information preceding all file data. This is
- done by storing all file data to a temporary file while collecting direc-
+ done by storing all file data to a temporary file while collecting direc‐
tory information in memory. When the image is finished, libarchive
- writes out the directory structure followed by the file data. The loca-
+ writes out the directory structure followed by the file data. The loca‐
tion used for the temporary file can be changed by the usual environment
variables.
Zip format
Libarchive can read and write zip format archives that have uncompressed
- entries and entries compressed with the ``deflate'' algorithm. Other zip
+ entries and entries compressed with the “deflate” algorithm. Other zip
compression algorithms are not supported. It can extract jar archives,
archives that use Zip64 extensions and self-extracting zip archives.
- Libarchive can use either of two different strategies for reading Zip ar-
+ Libarchive can use either of two different strategies for reading Zip ar‐
chives: a streaming strategy which is fast and can handle extremely large
- archives, and a seeking strategy which can correctly process self-
- extracting Zip archives and archives with deleted members or other in-
- place modifications.
+ archives, and a seeking strategy which can correctly process self-ex‐
+ tracting Zip archives and archives with deleted members or other in-place
+ modifications.
The streaming reader processes Zip archives as they are read. It can
- read archives of arbitrary size from tape or network sockets, and can
- decode Zip archives that have been separately compressed or encoded.
- However, self-extracting Zip archives and archives with certain types of
+ read archives of arbitrary size from tape or network sockets, and can de‐
+ code Zip archives that have been separately compressed or encoded. How‐
+ ever, self-extracting Zip archives and archives with certain types of
modifications cannot be correctly handled. Such archives require that
- the reader first process the Central Directory, which is ordinarily
- located at the end of a Zip archive and is thus inaccessible to the
- streaming reader. If the program using libarchive has enabled seek sup-
- port, then libarchive will use this to processes the central directory
- first.
+ the reader first process the Central Directory, which is ordinarily lo‐
+ cated at the end of a Zip archive and is thus inaccessible to the stream‐
+ ing reader. If the program using libarchive has enabled seek support,
+ then libarchive will use this to processes the central directory first.
In particular, the seeking reader must be used to correctly handle self-
extracting archives. Such archives consist of a program followed by a
- regular Zip archive. The streaming reader cannot parse the initial pro-
- gram portion, but the seeking reader starts by reading the Central Direc-
+ regular Zip archive. The streaming reader cannot parse the initial pro‐
+ gram portion, but the seeking reader starts by reading the Central Direc‐
tory from the end of the archive. Similarly, Zip archives that have been
modified in-place can have deleted entries or other garbage data that can
only be accurately detected by first reading the Central Directory.
@@ -264,7 +266,7 @@ DESCRIPTION
Archive (library) file format
The Unix archive format (commonly created by the ar(1) archiver) is a
general-purpose format which is used almost exclusively for object files
- to be read by the link editor ld(1). The ar format has never been stan-
+ to be read by the link editor ld(1). The ar format has never been stan‐
dardised. There are two common variants: the GNU format derived from
SVR4, and the BSD format, which first appeared in 4.4BSD. The two differ
primarily in their handling of filenames longer than 15 characters: the
@@ -274,18 +276,18 @@ DESCRIPTION
may include both types of long filenames. Programs using libarchive can
write GNU/SVR4 format if they provide an entry called // containing a
filename table to be written into the archive before any of the entries.
- Any entries whose names are not in the filename table will be written
- using BSD-style long filenames. This can cause problems for programs
- such as GNU ld that do not support the BSD-style long filenames.
+ Any entries whose names are not in the filename table will be written us‐
+ ing BSD-style long filenames. This can cause problems for programs such
+ as GNU ld that do not support the BSD-style long filenames.
mtree
Libarchive can read and write files in mtree(5) format. This format is
- not a true archive format, but rather a textual description of a file
- hierarchy in which each line specifies the name of a file and provides
- specific metadata about that file. Libarchive can read all of the key-
- words supported by both the NetBSD and FreeBSD versions of mtree(8),
- although many of the keywords cannot currently be stored in an
- archive_entry object. When writing, libarchive supports use of the
+ not a true archive format, but rather a textual description of a file hi‐
+ erarchy in which each line specifies the name of a file and provides spe‐
+ cific metadata about that file. Libarchive can read all of the keywords
+ supported by both the NetBSD and FreeBSD versions of mtree(8), although
+ many of the keywords cannot currently be stored in an archive_entry ob‐
+ ject. When writing, libarchive supports use of the
archive_write_set_options(3) interface to specify which keywords should
be included in the output. If libarchive was compiled with access to
suitable cryptographic libraries (such as the OpenSSL libraries), it can
@@ -293,33 +295,33 @@ DESCRIPTION
to the mtree writer.
When reading an mtree file, libarchive will locate the corresponding
- files on disk using the contents keyword if present or the regular file-
+ files on disk using the contents keyword if present or the regular file‐
name. If it can locate and open the file on disk, it will use that to
fill in any metadata that is missing from the mtree file and will read
the file contents and return those to the program using libarchive. If
- it cannot locate and open the file on disk, libarchive will return an
- error for any attempt to read the entry body.
+ it cannot locate and open the file on disk, libarchive will return an er‐
+ ror for any attempt to read the entry body.
7-Zip
- Libarchive can read and write 7-Zip format archives. TODO: Need more
- information
+ Libarchive can read and write 7-Zip format archives. TODO: Need more in‐
+ formation
CAB
- Libarchive can read Microsoft Cabinet ( ``CAB'') format archives. TODO:
+ Libarchive can read Microsoft Cabinet ( “CAB”) format archives. TODO:
Need more information.
LHA
TODO: Information about libarchive's LHA support
RAR
- Libarchive has limited support for reading RAR format archives. Cur-
+ Libarchive has limited support for reading RAR format archives. Cur‐
rently, libarchive can read RARv3 format archives which have been either
created uncompressed, or compressed using any of the compression methods
supported by the RARv3 format. Libarchive can also read self-extracting
RAR archives.
Warc
- Libarchive can read and write ``web archives''. TODO: Need more informa-
+ Libarchive can read and write “web archives”. TODO: Need more informa‐
tion
XAR
diff --git a/dependencies/libarchive-3.4.2/doc/text/libarchive.3.txt b/dependencies/libarchive-3.5.2/doc/text/libarchive.3.txt
similarity index 75%
rename from dependencies/libarchive-3.4.2/doc/text/libarchive.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/libarchive.3.txt
index 3f461d8..b570d04 100644
--- a/dependencies/libarchive-3.4.2/doc/text/libarchive.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/libarchive.3.txt
@@ -1,63 +1,63 @@
LIBARCHIVE(3) BSD Library Functions Manual LIBARCHIVE(3)
NAME
- libarchive -- functions for reading and writing streaming archives
+ libarchive — functions for reading and writing streaming archives
OVERVIEW
The libarchive library provides a flexible interface for reading and
writing archives in various formats such as tar and cpio. libarchive
- also supports reading and writing archives compressed using various com-
+ also supports reading and writing archives compressed using various com‐
pression filters such as gzip and bzip2. The library is inherently
stream-oriented; readers serially iterate through the archive, writers
serially add things to the archive. In particular, note that there is
- currently no built-in support for random access nor for in-place modifi-
+ currently no built-in support for random access nor for in-place modifi‐
cation.
When reading an archive, the library automatically detects the format and
the compression. The library currently has read support for:
- o old-style tar archives,
- o most variants of the POSIX ``ustar'' format,
- o the POSIX ``pax interchange'' format,
- o GNU-format tar archives,
- o most common cpio archive formats,
- o ISO9660 CD images (including RockRidge and Joliet extensions),
- o Zip archives,
- o ar archives (including GNU/SysV and BSD extensions),
- o Microsoft CAB archives,
- o LHA archives,
- o mtree file tree descriptions,
- o RAR archives,
- o XAR archives.
+ • old-style tar archives,
+ • most variants of the POSIX “ustar” format,
+ • the POSIX “pax interchange” format,
+ • GNU-format tar archives,
+ • most common cpio archive formats,
+ • ISO9660 CD images (including RockRidge and Joliet extensions),
+ • Zip archives,
+ • ar archives (including GNU/SysV and BSD extensions),
+ • Microsoft CAB archives,
+ • LHA archives,
+ • mtree file tree descriptions,
+ • RAR archives,
+ • XAR archives.
The library automatically detects archives compressed with gzip(1),
- bzip2(1), xz(1), lzip(1), or compress(1) and decompresses them transpar-
+ bzip2(1), xz(1), lzip(1), or compress(1) and decompresses them transpar‐
ently. It can similarly detect and decode archives processed with
uuencode(1) or which have an rpm(1) header.
When writing an archive, you can specify the compression to be used and
the format to use. The library can write
- o POSIX-standard ``ustar'' archives,
- o POSIX ``pax interchange format'' archives,
- o POSIX octet-oriented cpio archives,
- o Zip archive,
- o two different variants of shar archives,
- o ISO9660 CD images,
- o 7-Zip archives,
- o ar archives,
- o mtree file tree descriptions,
- o XAR archives.
+ • POSIX-standard “ustar” archives,
+ • POSIX “pax interchange format” archives,
+ • cpio archives,
+ • Zip archive,
+ • two different variants of shar archives,
+ • ISO9660 CD images,
+ • 7-Zip archives,
+ • ar archives,
+ • mtree file tree descriptions,
+ • XAR archives.
Pax interchange format is an extension of the tar archive format that
eliminates essentially all of the limitations of historic tar formats in
- a standard fashion that is supported by POSIX-compliant pax(1) implemen-
+ a standard fashion that is supported by POSIX-compliant pax(1) implemen‐
tations on many systems as well as several newer implementations of
- tar(1). Note that the default write format will suppress the pax
- extended attributes for most entries; explicitly requesting pax format
- will enable those attributes for all entries.
+ tar(1). Note that the default write format will suppress the pax ex‐
+ tended attributes for most entries; explicitly requesting pax format will
+ enable those attributes for all entries.
- The read and write APIs are accessed through the archive_read_XXX() func-
+ The read and write APIs are accessed through the archive_read_XXX() func‐
tions and the archive_write_XXX() functions, respectively, and either can
be used independently of the other.
- The rest of this manual page provides an overview of the library opera-
+ The rest of this manual page provides an overview of the library opera‐
tion. More detailed information can be found in the individual manual
pages for each API or utility function.
@@ -68,16 +68,16 @@ WRITING AN ARCHIVE
See archive_write(3).
WRITING ENTRIES TO DISK
- The archive_write_disk(3) API allows you to write archive_entry(3)
- objects to disk using the same API used by archive_write(3). The
+ The archive_write_disk(3) API allows you to write archive_entry(3) ob‐
+ jects to disk using the same API used by archive_write(3). The
archive_write_disk(3) API is used internally by archive_read_extract();
- using it directly can provide greater control over how entries get writ-
- ten to disk. This API also makes it possible to share code between ar-
+ using it directly can provide greater control over how entries get writ‐
+ ten to disk. This API also makes it possible to share code between ar‐
chive-to-archive copy and archive-to-disk extraction operations.
READING ENTRIES FROM DISK
The archive_read_disk(3) supports for populating archive_entry(3) objects
- from information in the filesystem. This includes the information acces-
+ from information in the filesystem. This includes the information acces‐
sible from the stat(2) system call as well as ACLs, extended attributes,
and other metadata. The archive_read_disk(3) API also supports iterating
over directory trees, which allows directories of files to be read using
@@ -87,14 +87,14 @@ DESCRIPTION
Detailed descriptions of each function are provided by the corresponding
manual pages.
- All of the functions utilize an opaque struct archive datatype that pro-
+ All of the functions utilize an opaque struct archive datatype that pro‐
vides access to the archive contents.
The struct archive_entry structure contains a complete description of a
- single archive entry. It uses an opaque interface that is fully docu-
+ single archive entry. It uses an opaque interface that is fully docu‐
mented in archive_entry(3).
- Users familiar with historic formats should be aware that the newer vari-
+ Users familiar with historic formats should be aware that the newer vari‐
ants have eliminated most restrictions on the length of textual fields.
Clients should not assume that filenames, link names, user names, or
group names are limited in length. In particular, pax interchange format
@@ -106,12 +106,12 @@ RETURN VALUES
The return value indicates the general severity of the error, ranging
from ARCHIVE_WARN, which indicates a minor problem that should probably
be reported to the user, to ARCHIVE_FATAL, which indicates a serious
- problem that will prevent any further operations on this archive. On
- error, the archive_errno() function can be used to retrieve a numeric
- error code (see errno(2)). The archive_error_string() returns a textual
- error message suitable for display.
+ problem that will prevent any further operations on this archive. On er‐
+ ror, the archive_errno() function can be used to retrieve a numeric error
+ code (see errno(2)). The archive_error_string() returns a textual error
+ message suitable for display.
- archive_read_new() and archive_write_new() return pointers to an allo-
+ archive_read_new() and archive_write_new() return pointers to an allo‐
cated and initialized struct archive object.
archive_read_data() and archive_write_data() return a count of the number
@@ -137,14 +137,14 @@ AUTHORS
BUGS
Some archive formats support information that is not supported by struct
- archive_entry. Such information cannot be fully archived or restored
- using this library. This includes, for example, comments, character
- sets, or the arbitrary key/value pairs that can appear in pax interchange
- format archives.
+ archive_entry. Such information cannot be fully archived or restored us‐
+ ing this library. This includes, for example, comments, character sets,
+ or the arbitrary key/value pairs that can appear in pax interchange for‐
+ mat archives.
Conversely, of course, not all of the information that can be stored in
an struct archive_entry is supported by all formats. For example, cpio
- formats do not support nanosecond timestamps; old tar formats do not sup-
+ formats do not support nanosecond timestamps; old tar formats do not sup‐
port large device numbers.
The ISO9660 reader cannot yet read all ISO9660 images; it should learn
diff --git a/dependencies/libarchive-3.4.2/doc/text/libarchive_changes.3.txt b/dependencies/libarchive-3.5.2/doc/text/libarchive_changes.3.txt
similarity index 87%
rename from dependencies/libarchive-3.4.2/doc/text/libarchive_changes.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/libarchive_changes.3.txt
index 54b6bb8..fff1b3e 100644
--- a/dependencies/libarchive-3.4.2/doc/text/libarchive_changes.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/libarchive_changes.3.txt
@@ -1,7 +1,7 @@
LIBARCHIVE_CHANGES(3) BSD Library Functions Manual LIBARCHIVE_CHANGES(3)
NAME
- libarchive_changes -- changes in libarchive interface
+ libarchive_changes — changes in libarchive interface
CHANGES IN LIBARCHIVE 3
This page describes user-visible changes in libarchive3, and lists public
@@ -9,7 +9,7 @@ CHANGES IN LIBARCHIVE 3
libarchive3, along with their replacements if any.
Multiple Filters
- Libarchive2 permitted a single (input or output) filter active on an ar-
+ Libarchive2 permitted a single (input or output) filter active on an ar‐
chive. Libarchive3 extends this into a variable-length stack. Where
archive_write_set_compression_XXX() would replace any existing filter,
archive_write_add_filter_XXX() extends the write pipeline with another
@@ -18,28 +18,28 @@ CHANGES IN LIBARCHIVE 3
Character Set Handling
Libarchive2 assumed that the local platform uses Unicode as the native
wchar_t encoding, which is true on Windows, modern Linux, and a few other
- systems, but is certainly not universal. As a result, pax format ar-
- chives were written incorrectly on some systems, since pax format
- requires UTF-8 and libarchive 2 incorrectly assumed that wchar_t strings
+ systems, but is certainly not universal. As a result, pax format ar‐
+ chives were written incorrectly on some systems, since pax format re‐
+ quires UTF-8 and libarchive 2 incorrectly assumed that wchar_t strings
can be easily converted to UTF-8.
Libarchive3 uses the standard iconv library to convert between character
- sets and is introducing the notion of a ``default character set for the
- archive''. To support this, archive_entry objects can now be bound to a
+ sets and is introducing the notion of a “default character set for the
+ archive”. To support this, archive_entry objects can now be bound to a
particular archive when they are created. The automatic character set
conversions performed by archive_entry objects when reading and writing
- filenames, usernames, and other strings will now use an appropriate
- default character set:
+ filenames, usernames, and other strings will now use an appropriate de‐
+ fault character set:
- If the archive_entry object is bound to an archive, it will use the
- default character set for that archive.
+ If the archive_entry object is bound to an archive, it will use the de‐
+ fault character set for that archive.
The platform default character encoding (as returned by
nl_langinfo(CHARSET)) will be used if nothing else is specified.
- Libarchive3 also introduces charset options to many of the archive read-
- ers and writers to control the character set that will be used for file-
- names written in those archives. When possible, this will be set auto-
+ Libarchive3 also introduces charset options to many of the archive read‐
+ ers and writers to control the character set that will be used for file‐
+ names written in those archives. When possible, this will be set auto‐
matically based on information in the archive itself. Combining this
with the notion of a default character set for the archive should allow
you to configure libarchive to read archives from other platforms and
@@ -54,13 +54,13 @@ CHANGES IN LIBARCHIVE 3
There are a few cases where these changes will affect your source code:
- o In some cases, libarchive's wider types will introduce the possibil-
+ • In some cases, libarchive's wider types will introduce the possibil‐
ity of truncation: for example, on a system with a 16-bit uid_t, you
risk having uid 65536 be truncated to uid 0, which can cause serious
security problems.
- o Typedef function pointer types will be incompatible. For example,
- if you define custom skip callbacks, you may have to use code simi-
+ • Typedef function pointer types will be incompatible. For example,
+ if you define custom skip callbacks, you may have to use code simi‐
lar to the following if you want to support building against
libarchive2 and libarchive3:
@@ -78,19 +78,19 @@ CHANGES IN LIBARCHIVE 3
Affected functions:
- o archive_entry_gid(), archive_entry_set_gid()
- o archive_entry_uid(), archive_entry_set_uid()
- o archive_entry_ino(), archive_entry_set_ino()
- o archive_read_data_block(), archive_write_data_block()
- o archive_read_disk_gname(), archive_read_disk_uname()
- o archive_read_disk_set_gname_lookup(),
+ • archive_entry_gid(), archive_entry_set_gid()
+ • archive_entry_uid(), archive_entry_set_uid()
+ • archive_entry_ino(), archive_entry_set_ino()
+ • archive_read_data_block(), archive_write_data_block()
+ • archive_read_disk_gname(), archive_read_disk_uname()
+ • archive_read_disk_set_gname_lookup(),
archive_read_disk_set_group_lookup(),
archive_read_disk_set_uname_lookup(),
archive_read_disk_set_user_lookup()
- o archive_skip_callback()
- o archive_read_extract_set_skip_file(),
+ • archive_skip_callback()
+ • archive_read_extract_set_skip_file(),
archive_write_disk_set_skip_file(), archive_write_set_skip_file()
- o archive_write_disk_set_group_lookup(),
+ • archive_write_disk_set_group_lookup(),
archive_write_disk_set_user_lookup()
Where these functions or their arguments took or returned gid_t, ino_t,
diff --git a/dependencies/libarchive-3.4.2/doc/text/libarchive_internals.3.txt b/dependencies/libarchive-3.5.2/doc/text/libarchive_internals.3.txt
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/text/libarchive_internals.3.txt
rename to dependencies/libarchive-3.5.2/doc/text/libarchive_internals.3.txt
index e58faae..d649ab8 100644
--- a/dependencies/libarchive-3.4.2/doc/text/libarchive_internals.3.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/libarchive_internals.3.txt
@@ -1,12 +1,12 @@
LIBARCHIVE_INTERNALS(3) BSD Library Functions Manual LIBARCHIVE_INTERNALS(3)
NAME
- libarchive_internals -- description of libarchive internal interfaces
+ libarchive_internals — description of libarchive internal interfaces
OVERVIEW
The libarchive library provides a flexible interface for reading and
writing streaming archive files such as tar and cpio. Internally, it
- follows a modular layered design that should make it easy to add new ar-
+ follows a modular layered design that should make it easy to add new ar‐
chive and compression formats.
GENERAL ARCHITECTURE
@@ -17,7 +17,7 @@ GENERAL ARCHITECTURE
files, and write them to disk. (There are plans to add a facility to
read archive_entry(3) objects from disk as well.)
- The read and write APIs each have four layers: a public API layer, a for-
+ The read and write APIs each have four layers: a public API layer, a for‐
mat layer that understands the archive file format, a compression layer,
and an I/O layer. The I/O layer is completely exposed to clients who can
replace it entirely with their own functions.
@@ -29,24 +29,24 @@ GENERAL ARCHITECTURE
READ ARCHITECTURE
From the outside, clients use the archive_read(3) API to manipulate an
- archive object to read entries and bodies from an archive stream. Inter-
+ archive object to read entries and bodies from an archive stream. Inter‐
nally, the archive object is cast to an archive_read object, which holds
all read-specific data. The API has four layers: The lowest layer is the
I/O layer. This layer can be overridden by clients, but most clients use
the packaged I/O callbacks provided, for example, by
- archive_read_open_memory(3), and archive_read_open_fd(3). The compres-
+ archive_read_open_memory(3), and archive_read_open_fd(3). The compres‐
sion layer calls the I/O layer to read bytes and decompresses them for
the format layer. The format layer unpacks a stream of uncompressed
bytes and creates archive_entry objects from the incoming data. The API
layer tracks overall state (for example, it prevents clients from reading
data before reading a header) and invokes the format and compression
layer operations through registered function pointers. In particular,
- the API layer drives the format-detection process: When opening the ar-
+ the API layer drives the format-detection process: When opening the ar‐
chive, it reads an initial block of data and offers it to each registered
compression handler. The one with the highest bid is initialized with
the first block. Similarly, the format handlers are polled to see which
- handler is the best for each archive. (Prior to 2.4.0, the format bid-
- ders were invoked for each entry, but this design hindered error recov-
+ handler is the best for each archive. (Prior to 2.4.0, the format bid‐
+ ders were invoked for each entry, but this design hindered error recov‐
ery.)
I/O Layer and Client Callbacks
@@ -61,7 +61,7 @@ READ ARCHITECTURE
The client skip callback returns the number of bytes actually skipped,
which may be much smaller than the skip requested. The only requirement
is that the skip not be larger. In particular, clients are allowed to
- return zero for any skip that they don't want to handle. The skip call-
+ return zero for any skip that they don't want to handle. The skip call‐
back must never be invoked with a negative value.
Keep in mind that not all clients are reading from disk: clients reading
@@ -73,10 +73,10 @@ READ ARCHITECTURE
Decompresssion Layer
The decompression layer not only handles decompression, it also buffers
- data so that the format handlers see a much nicer I/O model. The decom-
+ data so that the format handlers see a much nicer I/O model. The decom‐
pression API is a two stage peek/consume model. A read_ahead request
specifies a minimum read amount; the decompression layer must provide a
- pointer to at least that much data. If more data is immediately avail-
+ pointer to at least that much data. If more data is immediately avail‐
able, it should return more: the format layer handles bulk data reads by
asking for a minimum of one byte and then copying as much data as is
available.
@@ -92,28 +92,28 @@ READ ARCHITECTURE
A decompression handler has a specific lifecycle:
Registration/Configuration
- When the client invokes the public support function, the decom-
+ When the client invokes the public support function, the decom‐
pression handler invokes the internal
__archive_read_register_compression() function to provide bid and
initialization functions. This function returns NULL on error or
- else a pointer to a struct decompressor_t. This structure con-
- tains a void * config slot that can be used for storing any cus-
+ else a pointer to a struct decompressor_t. This structure con‐
+ tains a void * config slot that can be used for storing any cus‐
tomization information.
Bid The bid function is invoked with a pointer and size of a block of
data. The decompressor can access its config data through the
- decompressor element of the archive_read object. The bid func-
+ decompressor element of the archive_read object. The bid func‐
tion is otherwise stateless. In particular, it must not perform
any I/O operations.
The value returned by the bid function indicates its suitability
for handling this data stream. A bid of zero will ensure that
this decompressor is never invoked. Return zero if magic number
- checks fail. Otherwise, your initial implementation should
- return the number of bits actually checked. For example, if you
+ checks fail. Otherwise, your initial implementation should re‐
+ turn the number of bits actually checked. For example, if you
verify two full bytes and three bits of another byte, bid 19.
Note that the initial block may be very short; be careful to only
- inspect the data you are given. (The current decompressors
- require two bytes for correct bidding.)
+ inspect the data you are given. (The current decompressors re‐
+ quire two bytes for correct bidding.)
Initialize
The winning bidder will have its init function called. This
function should initialize the remaining slots of the struct
@@ -139,9 +139,9 @@ READ ARCHITECTURE
Bid Formats bid by invoking the read_ahead() decompression method but
not calling the consume() method. This allows each bidder to
look ahead in the input stream. Bidders should not look further
- ahead than necessary, as long look aheads put pressure on the
- decompression layer to buffer lots of data. Most formats only
- require a few hundred bytes of look ahead; look aheads of a few
+ ahead than necessary, as long look aheads put pressure on the de‐
+ compression layer to buffer lots of data. Most formats only re‐
+ quire a few hundred bytes of look ahead; look aheads of a few
kilobytes are reasonable. (The ISO9660 reader sometimes looks
ahead by 48k, which should be considered an upper limit.)
Read header
@@ -158,7 +158,7 @@ READ ARCHITECTURE
The read data interface supports sparse files; this requires that
each call return a block of data specifying the file offset and
size. This may require you to carefully track the location so
- that you can return accurate file offsets for each read. Remem-
+ that you can return accurate file offsets for each read. Remem‐
ber that the decompressor will return as much data as it has.
Generally, you will want to request one byte, examine the return
value to see how much data is available, and possibly trim that
@@ -166,11 +166,11 @@ READ ARCHITECTURE
block just before you return it.
Skip All Data
The skip data call should skip over all file data and trailing
- padding. This is called automatically by the API layer just
- before each header read. It is also called in response to the
+ padding. This is called automatically by the API layer just be‐
+ fore each header read. It is also called in response to the
client calling the public data_skip() function.
Cleanup
- On cleanup, the format should release all of its allocated mem-
+ On cleanup, the format should release all of its allocated mem‐
ory.
API Layer
@@ -179,7 +179,7 @@ READ ARCHITECTURE
WRITE ARCHITECTURE
The write API has a similar set of four layers: an API layer, a format
layer, a compression layer, and an I/O layer. The registration here is
- much simpler because only one format and one compression can be regis-
+ much simpler because only one format and one compression can be regis‐
tered at a time.
I/O Layer and Client Callbacks
@@ -200,13 +200,13 @@ WRITE_DISK ARCHITECTURE
not layered internally.
GENERAL SERVICES
- The archive_read, archive_write, and archive_write_disk objects all con-
+ The archive_read, archive_write, and archive_write_disk objects all con‐
tain an initial archive object which provides common support for a set of
standard services. (Recall that ANSI/ISO C90 guarantees that you can
cast freely between a pointer to a structure and a pointer to the first
element of that structure.) The archive object has a magic value that
- indicates which API this object is associated with, slots for storing
- error information, and function pointers for virtualized API functions.
+ indicates which API this object is associated with, slots for storing er‐
+ ror information, and function pointers for virtualized API functions.
MISCELLANEOUS NOTES
Connecting existing archiving libraries into libarchive is generally
@@ -217,12 +217,12 @@ MISCELLANEOUS NOTES
very different approaches.
For example, libarchive's ISO9660 support operates very differently from
- most ISO9660 readers. The libarchive support utilizes a work-queue
- design that keeps a list of known entries sorted by their location in the
+ most ISO9660 readers. The libarchive support utilizes a work-queue de‐
+ sign that keeps a list of known entries sorted by their location in the
input. Whenever libarchive's ISO9660 implementation is asked for the
- next header, checks this list to find the next item on the disk. Direc-
+ next header, checks this list to find the next item on the disk. Direc‐
tories are parsed when they are encountered and new items are added to
- the list. This design relies heavily on the ISO9660 image being opti-
+ the list. This design relies heavily on the ISO9660 image being opti‐
mized so that directories always occur earlier on the disk than the files
they describe.
diff --git a/dependencies/libarchive-3.4.2/doc/text/mtree.5.txt b/dependencies/libarchive-3.5.2/doc/text/mtree.5.txt
similarity index 77%
rename from dependencies/libarchive-3.4.2/doc/text/mtree.5.txt
rename to dependencies/libarchive-3.5.2/doc/text/mtree.5.txt
index f4558d5..f9e309f 100644
--- a/dependencies/libarchive-3.4.2/doc/text/mtree.5.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/mtree.5.txt
@@ -1,7 +1,7 @@
MTREE(5) BSD File Formats Manual MTREE(5)
NAME
- mtree -- format of mtree dir hierarchy files
+ mtree — format of mtree dir hierarchy files
DESCRIPTION
The mtree format is a textual format that describes a collection of
@@ -13,9 +13,9 @@ DESCRIPTION
about a single filesystem object. Leading whitespace is always ignored.
When encoding file or pathnames, any backslash character or character
- outside of the 95 printable ASCII characters must be encoded as a back-
- slash followed by three octal digits. When reading mtree files, any
- appearance of a backslash followed by three octal digits should be con-
+ outside of the 95 printable ASCII characters must be encoded as a back‐
+ slash followed by three octal digits. When reading mtree files, any ap‐
+ pearance of a backslash followed by three octal digits should be con‐
verted into the corresponding character.
Each line is interpreted independently as one of the following types:
@@ -28,23 +28,23 @@ DESCRIPTION
the interpretation of later lines.
Relative If the first whitespace-delimited word has no / characters,
- it is the name of a file in the current directory. Any rela-
- tive entry that describes a directory changes the current
- directory.
+ it is the name of a file in the current directory. Any rela‐
+ tive entry that describes a directory changes the current di‐
+ rectory.
dot-dot As a special case, a relative entry with the filename ..
- changes the current directory to the parent directory.
- Options on dot-dot entries are always ignored.
+ changes the current directory to the parent directory. Op‐
+ tions on dot-dot entries are always ignored.
- Full If the first whitespace-delimited word has a / character
- after the first character, it is the pathname of a file rela-
+ Full If the first whitespace-delimited word has a / character af‐
+ ter the first character, it is the pathname of a file rela‐
tive to the starting directory. There can be multiple full
entries describing the same file.
- Some tools that process mtree files may require that multiple lines
- describing the same file occur consecutively. It is not permitted for
- the same file to be mentioned using both a relative and a full file spec-
- ification.
+ Some tools that process mtree files may require that multiple lines de‐
+ scribing the same file occur consecutively. It is not permitted for the
+ same file to be mentioned using both a relative and a full file specifi‐
+ cation.
Special commands
Two special commands are currently defined:
@@ -52,23 +52,23 @@ DESCRIPTION
/set This command defines default values for one or more keywords.
It is followed on the same line by one or more whitespace-
separated keyword definitions. These definitions apply to
- all following files that do not specify a value for that key-
+ all following files that do not specify a value for that key‐
word.
/unset This command removes any default value set by a previous /set
- command. It is followed on the same line by one or more key-
+ command. It is followed on the same line by one or more key‐
words separated by whitespace.
Keywords
After the filename, a full or relative entry consists of zero or more
whitespace-separated keyword definitions. Each such definition consists
of a key from the following list immediately followed by an '=' sign and
- a value. Software programs reading mtree files should warn about unrec-
+ a value. Software programs reading mtree files should warn about unrec‐
ognized keywords.
Currently supported keywords are as follows:
- cksum The checksum of the file using the default algorithm speci-
+ cksum The checksum of the file using the default algorithm speci‐
fied by the cksum(1) utility.
device The device number for block or char file types. The value
@@ -91,9 +91,9 @@ DESCRIPTION
contents The full pathname of a file that holds the contents of this
file.
- flags The file flags as a symbolic name. See chflags(1) for infor-
+ flags The file flags as a symbolic name. See chflags(1) for infor‐
mation on these names. If no flags are to be set the string
- ``none'' may be used to override the current default.
+ “none” may be used to override the current default.
gid The file group as a numeric value.
@@ -109,7 +109,7 @@ DESCRIPTION
md5digest A synonym for md5.
- mode The current file's permissions as a numeric (octal) or sym-
+ mode The current file's permissions as a numeric (octal) or sym‐
bolic value.
nlink The number of hard links the file is expected to have.
@@ -120,9 +120,9 @@ DESCRIPTION
optional The file is optional; do not complain about the file if it is
not in the file hierarchy.
- resdevice The ``resident'' device number of the file, e.g. the ID of
- the device that contains the file. Its format is the same as
- the one for device.
+ resdevice The “resident” device number of the file, e.g. the ID of the
+ device that contains the file. Its format is the same as the
+ one for device.
ripemd160digest
The RIPEMD160 message digest of the file.
@@ -132,21 +132,21 @@ DESCRIPTION
rmd160digest
A synonym for ripemd160digest.
- sha1 The FIPS 160-1 (``SHA-1'') message digest of the file.
+ sha1 The FIPS 160-1 (“SHA-1”) message digest of the file.
sha1digest A synonym for sha1.
- sha256 The FIPS 180-2 (``SHA-256'') message digest of the file.
+ sha256 The FIPS 180-2 (“SHA-256”) message digest of the file.
sha256digest
A synonym for sha256.
- sha384 The FIPS 180-2 (``SHA-384'') message digest of the file.
+ sha384 The FIPS 180-2 (“SHA-384”) message digest of the file.
sha384digest
A synonym for sha384.
- sha512 The FIPS 180-2 (``SHA-512'') message digest of the file.
+ sha512 The FIPS 180-2 (“SHA-512”) message digest of the file.
sha512digest
A synonym for sha512.
@@ -178,7 +178,7 @@ HISTORY
can spoof cksum(1). The SHA-1 and RIPEMD160 digests were added in
FreeBSD 4.0, as new attacks have demonstrated weaknesses in MD5. The
SHA-256 digest was added in FreeBSD 6.0. Support for file flags was
- added in FreeBSD 4.0, and mostly comes from NetBSD. The ``full'' entry
+ added in FreeBSD 4.0, and mostly comes from NetBSD. The “full” entry
format was added by NetBSD.
BSD September 4, 2013 BSD
diff --git a/dependencies/libarchive-3.4.2/doc/text/tar.5.txt b/dependencies/libarchive-3.5.2/doc/text/tar.5.txt
similarity index 73%
rename from dependencies/libarchive-3.4.2/doc/text/tar.5.txt
rename to dependencies/libarchive-3.5.2/doc/text/tar.5.txt
index 6d3c762..72aaee1 100644
--- a/dependencies/libarchive-3.4.2/doc/text/tar.5.txt
+++ b/dependencies/libarchive-3.5.2/doc/text/tar.5.txt
@@ -1,7 +1,7 @@
TAR(5) BSD File Formats Manual TAR(5)
NAME
- tar -- format of tape archive files
+ tar — format of tape archive files
DESCRIPTION
The tar archive format collects any number of files, directories, and
@@ -14,19 +14,18 @@ DESCRIPTION
A tar archive consists of a series of 512-byte records. Each file system
object requires a header record which stores basic metadata (pathname,
owner, permissions, etc.) and zero or more records containing any file
- data. The end of the archive is indicated by two records consisting
- entirely of zero bytes.
+ data. The end of the archive is indicated by two records consisting en‐
+ tirely of zero bytes.
For compatibility with tape drives that use fixed block sizes, programs
that read or write tar files always read or write a fixed number of
- records with each I/O operation. These ``blocks'' are always a multiple
- of the record size. The maximum block size supported by early implemen-
- tations was 10240 bytes or 20 records. This is still the default for
- most implementations although block sizes of 1MiB (2048 records) or
- larger are commonly used with modern high-speed tape drives. (Note: the
- terms ``block'' and ``record'' here are not entirely standard; this docu-
- ment follows the convention established by John Gilmore in documenting
- pdtar.)
+ records with each I/O operation. These “blocks” are always a multiple of
+ the record size. The maximum block size supported by early implementa‐
+ tions was 10240 bytes or 20 records. This is still the default for most
+ implementations although block sizes of 1MiB (2048 records) or larger are
+ commonly used with modern high-speed tape drives. (Note: the terms
+ “block” and “record” here are not entirely standard; this document fol‐
+ lows the convention established by John Gilmore in documenting pdtar.)
Old-Style Archive Format
The original tar archive format has been extended many times to include
@@ -51,10 +50,10 @@ DESCRIPTION
};
All unused bytes in the header record are filled with nulls.
- name Pathname, stored as a null-terminated string. Early tar imple-
+ name Pathname, stored as a null-terminated string. Early tar imple‐
mentations only stored regular files (including hardlinks to
those files). One common early convention used a trailing "/"
- character to indicate a directory name, allowing directory per-
+ character to indicate a directory name, allowing directory per‐
missions and owner information to be archived and restored.
mode File mode, stored as an octal number in ASCII.
@@ -68,8 +67,8 @@ DESCRIPTION
when extracting hardlinks. Modern writers should always store a
zero length for hardlink entries.
- mtime Modification time of file, as an octal number in ASCII. This
- indicates the number of seconds since the start of the epoch,
+ mtime Modification time of file, as an octal number in ASCII. This in‐
+ dicates the number of seconds since the start of the epoch,
00:00:00 UTC January 1, 1970. Note that negative values should
be avoided here, as they are handled inconsistently.
@@ -79,7 +78,7 @@ DESCRIPTION
bytes in the header using unsigned arithmetic. This field should
be stored as six octal digits followed by a null and a space
character. Note that many early implementations of tar used
- signed arithmetic for the checksum field, which can cause inter-
+ signed arithmetic for the checksum field, which can cause inter‐
operability problems when transferring archives between systems.
Modern robust readers compute the checksum both ways and accept
the header if either computation matches.
@@ -88,7 +87,7 @@ DESCRIPTION
In order to preserve hardlinks and conserve tape, a file with
multiple links is only written to the archive the first time it
is encountered. The next time it is encountered, the linkflag is
- set to an ASCII '1' and the linkname field holds the first name
+ set to an ASCII ‘1’ and the linkname field holds the first name
under which this file appears. (Note that regular files have a
null value in the linkflag field.)
@@ -97,30 +96,30 @@ DESCRIPTION
(this is also documented in early BSD manpages): the pathname must be
null-terminated; the mode, uid, and gid fields must end in a space and a
null byte; the size and mtime fields must end in a space; the checksum is
- terminated by a null and a space. Early implementations filled the
- numeric fields with leading spaces. This seems to have been common prac-
- tice until the IEEE Std 1003.1-1988 (``POSIX.1'') standard was released.
+ terminated by a null and a space. Early implementations filled the nu‐
+ meric fields with leading spaces. This seems to have been common prac‐
+ tice until the IEEE Std 1003.1-1988 (“POSIX.1”) standard was released.
For best portability, modern implementations should fill the numeric
fields with leading zeros.
Pre-POSIX Archives
- An early draft of IEEE Std 1003.1-1988 (``POSIX.1'') served as the basis
+ An early draft of IEEE Std 1003.1-1988 (“POSIX.1”) served as the basis
for John Gilmore's pdtar program and many system implementations from the
late 1980s and early 1990s. These archives generally follow the POSIX
ustar format described below with the following variations:
- o The magic value consists of the five characters ``ustar'' fol-
- lowed by a space. The version field contains a space character
- followed by a null.
- o The numeric fields are generally filled with leading spaces (not
+ • The magic value consists of the five characters “ustar” followed
+ by a space. The version field contains a space character fol‐
+ lowed by a null.
+ • The numeric fields are generally filled with leading spaces (not
leading zeros as recommended in the final standard).
- o The prefix field is often not used, limiting pathnames to the 100
+ • The prefix field is often not used, limiting pathnames to the 100
characters of old-style archives.
POSIX ustar Archives
- IEEE Std 1003.1-1988 (``POSIX.1'') defined a standard tar file format to
- be read and written by compliant implementations of tar(1). This format
- is often called the ``ustar'' format, after the magic value used in the
- header. (The name is an acronym for ``Unix Standard TAR''.) It extends
+ IEEE Std 1003.1-1988 (“POSIX.1”) defined a standard tar file format to be
+ read and written by compliant implementations of tar(1). This format is
+ often called the “ustar” format, after the magic value used in the
+ header. (The name is an acronym for “Unix Standard TAR”.) It extends
the historic format with new fields:
struct header_posix_ustar {
@@ -146,36 +145,36 @@ DESCRIPTION
typeflag
Type of entry. POSIX extended the earlier linkflag field with
several new type values:
- ``0'' Regular file. NUL should be treated as a synonym, for
+ “0” Regular file. NUL should be treated as a synonym, for
compatibility purposes.
- ``1'' Hard link.
- ``2'' Symbolic link.
- ``3'' Character device node.
- ``4'' Block device node.
- ``5'' Directory.
- ``6'' FIFO node.
- ``7'' Reserved.
- Other A POSIX-compliant implementation must treat any unrecog-
+ “1” Hard link.
+ “2” Symbolic link.
+ “3” Character device node.
+ “4” Block device node.
+ “5” Directory.
+ “6” FIFO node.
+ “7” Reserved.
+ Other A POSIX-compliant implementation must treat any unrecog‐
nized typeflag value as a regular file. In particular,
- writers should ensure that all entries have a valid file-
+ writers should ensure that all entries have a valid file‐
name so that they can be restored by readers that do not
support the corresponding extension. Uppercase letters
"A" through "Z" are reserved for custom extensions. Note
that sockets and whiteout entries are not archivable.
- It is worth noting that the size field, in particular, has dif-
+ It is worth noting that the size field, in particular, has dif‐
ferent meanings depending on the type. For regular files, of
course, it indicates the amount of data following the header.
For directories, it may be used to indicate the total size of all
- files in the directory, for use by operating systems that pre-
- allocate directory space. For all other types, it should be set
- to zero by writers and ignored by readers.
+ files in the directory, for use by operating systems that pre-al‐
+ locate directory space. For all other types, it should be set to
+ zero by writers and ignored by readers.
- magic Contains the magic value ``ustar'' followed by a NUL byte to
- indicate that this is a POSIX standard archive. Full compliance
- requires the uname and gname fields be properly set.
+ magic Contains the magic value “ustar” followed by a NUL byte to indi‐
+ cate that this is a POSIX standard archive. Full compliance re‐
+ quires the uname and gname fields be properly set.
version
- Version. This should be ``00'' (two copies of the ASCII digit
+ Version. This should be “00” (two copies of the ASCII digit
zero) for POSIX standard archives.
uname, gname
@@ -184,8 +183,8 @@ DESCRIPTION
set and the corresponding names exist on the system.
devmajor, devminor
- Major and minor numbers for character device or block device
- entry.
+ Major and minor numbers for character device or block device en‐
+ try.
name, prefix
If the pathname is too long to fit in the 100 bytes provided by
@@ -194,12 +193,12 @@ DESCRIPTION
is not empty, the reader will prepend the prefix value and a /
character to the regular name field to obtain the full pathname.
The standard does not require a trailing / character on directory
- names, though most implementations still include this for compat-
+ names, though most implementations still include this for compat‐
ibility reasons.
Note that all unused bytes must be set to NUL.
- Field termination is specified slightly differently by POSIX than by pre-
+ Field termination is specified slightly differently by POSIX than by pre‐
vious implementations. The magic, uname, and gname fields must have a
trailing NUL. The pathname, linkname, and prefix fields must have a
trailing NUL unless they fill the entire field. (In particular, it is
@@ -208,7 +207,7 @@ DESCRIPTION
the front, and requires them to be terminated with either space or NUL
characters.
- Currently, most tar implementations comply with the ustar format, occa-
+ Currently, most tar implementations comply with the ustar format, occa‐
sionally extending it by adding new fields to the blank area at the end
of the header record.
@@ -222,37 +221,37 @@ DESCRIPTION
the twelfth byte for a trailing NUL character. Allowing 12 octal digits
allows file sizes up to 64 GB.
- Another extension, utilized by GNU tar, star, and other newer tar imple-
+ Another extension, utilized by GNU tar, star, and other newer tar imple‐
mentations, permits binary numbers in the standard numeric fields. This
is flagged by setting the high bit of the first byte. The remainder of
the field is treated as a signed twos-complement value. This permits
95-bit values for the length and time fields and 63-bit values for the
uid, gid, and device numbers. In particular, this provides a consistent
way to handle negative time values. GNU tar supports this extension for
- the length, mtime, ctime, and atime fields. Joerg Schilling's star pro-
+ the length, mtime, ctime, and atime fields. Joerg Schilling's star pro‐
gram and the libarchive library support this extension for all numeric
fields. Note that this extension is largely obsoleted by the extended
attribute record provided by the pax interchange format.
Another early GNU extension allowed base-64 values rather than octal.
- This extension was short-lived and is no longer supported by any imple-
+ This extension was short-lived and is no longer supported by any imple‐
mentation.
Pax Interchange Format
There are many attributes that cannot be portably stored in a POSIX ustar
- archive. IEEE Std 1003.1-2001 (``POSIX.1'') defined a ``pax interchange
- format'' that uses two new types of entries to hold text-formatted meta-
- data that applies to following entries. Note that a pax interchange for-
+ archive. IEEE Std 1003.1-2001 (“POSIX.1”) defined a “pax interchange
+ format” that uses two new types of entries to hold text-formatted meta‐
+ data that applies to following entries. Note that a pax interchange for‐
mat archive is a ustar archive in every respect. The new data is stored
- in ustar-compatible archive entries that use the ``x'' or ``g'' typeflag.
- In particular, older implementations that do not fully support these
- extensions will extract the metadata into regular files, where the meta-
- data can be examined as necessary.
+ in ustar-compatible archive entries that use the “x” or “g” typeflag. In
+ particular, older implementations that do not fully support these exten‐
+ sions will extract the metadata into regular files, where the metadata
+ can be examined as necessary.
- An entry in a pax interchange format archive consists of one or two stan-
- dard ustar entries, each with its own header and data. The first
- optional entry stores the extended attributes for the following entry.
- This optional first entry has an "x" typeflag and a size field that indi-
+ An entry in a pax interchange format archive consists of one or two stan‐
+ dard ustar entries, each with its own header and data. The first op‐
+ tional entry stores the extended attributes for the following entry.
+ This optional first entry has an "x" typeflag and a size field that indi‐
cates the total size of the extended attributes. The extended attributes
themselves are stored as a series of text-format lines encoded in the
portable UTF-8 encoding. Each line consists of a decimal number, a
@@ -263,7 +262,7 @@ DESCRIPTION
25 ctime=1084839148.1212\n
Keys in all lowercase are standard keys. Vendors can add their own keys
by prefixing them with an all uppercase vendor name and a period. Note
- that, unlike the historic header, numeric values are stored using deci-
+ that, unlike the historic header, numeric values are stored using deci‐
mal, not octal. A description of some common keys follows:
atime, ctime, mtime
@@ -277,13 +276,13 @@ DESCRIPTION
be in UTF-8, including pathnames, user names, and group names.
In some cases, it is not possible to translate local conventions
into UTF-8. If this key is present and the value is the six-
- character ASCII string ``BINARY'', then all textual values are
- assumed to be in a platform-dependent multi-byte encoding. Note
- that there are only two valid values for this key: ``BINARY'' or
- ``ISO-IR 10646 2000 UTF-8''. No other values are permitted by
- the standard, and the latter value should generally not be used
- as it is the default when this key is not specified. In particu-
- lar, this flag should not be used as a general mechanism to allow
+ character ASCII string “BINARY”, then all textual values are as‐
+ sumed to be in a platform-dependent multi-byte encoding. Note
+ that there are only two valid values for this key: “BINARY” or
+ “ISO-IR 10646 2000 UTF-8”. No other values are permitted by the
+ standard, and the latter value should generally not be used as it
+ is the default when this key is not specified. In particular,
+ this flag should not be used as a general mechanism to allow
filenames to be stored in arbitrary encodings.
uname, uid, gname, gid
@@ -300,7 +299,7 @@ DESCRIPTION
UTF8 and can thus include non-ASCII characters.
realtime.*, security.*
- These keys are reserved and may be used for future standardiza-
+ These keys are reserved and may be used for future standardiza‐
tion.
size The size of the file. Note that there is no length limit on this
@@ -308,7 +307,7 @@ DESCRIPTION
than the historic 8GB limit.
SCHILY.*
- Vendor-specific attributes used by Joerg Schilling's star imple-
+ Vendor-specific attributes used by Joerg Schilling's star imple‐
mentation.
SCHILY.acl.access, SCHILY.acl.default, SCHILY.acl.ace
@@ -341,35 +340,35 @@ DESCRIPTION
LIBARCHIVE.creationtime
The time when the file was created. (This should not be confused
- with the POSIX ``ctime'' attribute, which refers to the time when
+ with the POSIX “ctime” attribute, which refers to the time when
the file metadata was last changed.)
LIBARCHIVE.xattr.namespace.key
Libarchive stores POSIX.1e-style extended attributes using keys
- of this form. The key value is URL-encoded: All non-ASCII char-
- acters and the two special characters ``='' and ``%'' are encoded
- as ``%'' followed by two uppercase hexadecimal digits. The value
- of this key is the extended attribute value encoded in base 64.
- XXX Detail the base-64 format here XXX
+ of this form. The key value is URL-encoded: All non-ASCII char‐
+ acters and the two special characters “=” and “%” are encoded as
+ “%” followed by two uppercase hexadecimal digits. The value of
+ this key is the extended attribute value encoded in base 64. XXX
+ Detail the base-64 format here XXX
VENDOR.*
XXX document other vendor-specific extensions XXX
Any values stored in an extended attribute override the corresponding
- values in the regular tar header. Note that compliant readers should
- ignore the regular fields when they are overridden. This is important,
- as existing archivers are known to store non-compliant values in the
- standard header fields in this situation. There are no limits on length
- for any of these fields. In particular, numeric fields can be arbitrar-
- ily large. All text fields are encoded in UTF8. Compliant writers
- should store only portable 7-bit ASCII characters in the standard ustar
- header and use extended attributes whenever a text value contains non-
- ASCII characters.
+ values in the regular tar header. Note that compliant readers should ig‐
+ nore the regular fields when they are overridden. This is important, as
+ existing archivers are known to store non-compliant values in the stan‐
+ dard header fields in this situation. There are no limits on length for
+ any of these fields. In particular, numeric fields can be arbitrarily
+ large. All text fields are encoded in UTF8. Compliant writers should
+ store only portable 7-bit ASCII characters in the standard ustar header
+ and use extended attributes whenever a text value contains non-ASCII
+ characters.
In addition to the x entry described above, the pax interchange format
- also supports a g entry. The g entry is identical in format, but speci-
- fies attributes that serve as defaults for all subsequent archive
- entries. The g entry is not widely used.
+ also supports a g entry. The g entry is identical in format, but speci‐
+ fies attributes that serve as defaults for all subsequent archive en‐
+ tries. The g entry is not widely used.
Besides the new x and g entries, the pax interchange format has a few
other minor variations from the earlier ustar format. The most troubling
@@ -380,16 +379,16 @@ DESCRIPTION
ignore the size field for hardlink entries.
GNU Tar Archives
- The GNU tar program started with a pre-POSIX format similar to that
- described earlier and has extended it using several different mechanisms:
+ The GNU tar program started with a pre-POSIX format similar to that de‐
+ scribed earlier and has extended it using several different mechanisms:
It added new fields to the empty space in the header (some of which was
later used by POSIX for conflicting purposes); it allowed the header to
- be continued over multiple records; and it defined new entries that mod-
+ be continued over multiple records; and it defined new entries that mod‐
ify following entries (similar in principle to the x entry described
above, but each GNU special entry is single-purpose, unlike the general-
- purpose x entry). As a result, GNU tar archives are not POSIX compati-
- ble, although more lenient POSIX-compliant readers can successfully
- extract most GNU tar archives.
+ purpose x entry). As a result, GNU tar archives are not POSIX compati‐
+ ble, although more lenient POSIX-compliant readers can successfully ex‐
+ tract most GNU tar archives.
struct header_gnu_tar {
char name[100];
@@ -430,17 +429,17 @@ DESCRIPTION
to indicate the pre-allocation of a contiguous file on
disk.
- D This indicates a directory entry. Unlike the POSIX-stan-
+ D This indicates a directory entry. Unlike the POSIX-stan‐
dard "5" typeflag, the header is followed by data records
listing the names of files in this directory. Each name
is preceded by an ASCII "Y" if the file is stored in this
archive or "N" if the file is not stored in this archive.
Each name is terminated with a null, and an extra null
- marks the end of the name list. The purpose of this
- entry is to support incremental backups; a program
- restoring from such an archive may wish to delete files
- on disk that did not exist in the directory when the ar-
- chive was made.
+ marks the end of the name list. The purpose of this en‐
+ try is to support incremental backups; a program restor‐
+ ing from such an archive may wish to delete files on disk
+ that did not exist in the directory when the archive was
+ made.
Note that the "D" typeflag specifically violates POSIX,
which requires that unrecognized typeflags be restored as
@@ -448,58 +447,58 @@ DESCRIPTION
file could interfere with subsequent creation of the
like-named directory.
- K The data for this entry is a long linkname for the fol-
+ K The data for this entry is a long linkname for the fol‐
lowing regular entry.
- L The data for this entry is a long pathname for the fol-
+ L The data for this entry is a long pathname for the fol‐
lowing regular entry.
M This is a continuation of the last file on the previous
volume. GNU multi-volume archives guarantee that each
volume begins with a valid entry header. To ensure this,
a file may be split, with part stored at the end of one
- volume, and part stored at the beginning of the next vol-
- ume. The "M" typeflag indicates that this entry contin-
+ volume, and part stored at the beginning of the next vol‐
+ ume. The "M" typeflag indicates that this entry contin‐
ues an existing file. Such entries can only occur as the
first or second entry in an archive (the latter only if
- the first entry is a volume label). The size field spec-
+ the first entry is a volume label). The size field spec‐
ifies the size of this entry. The offset field at bytes
- 369-380 specifies the offset where this file fragment
- begins. The realsize field specifies the total size of
- the file (which must equal size plus offset). When
- extracting, GNU tar checks that the header file name is
- the one it is expecting, that the header offset is in the
- correct sequence, and that the sum of offset and size is
- equal to realsize.
+ 369-380 specifies the offset where this file fragment be‐
+ gins. The realsize field specifies the total size of the
+ file (which must equal size plus offset). When extract‐
+ ing, GNU tar checks that the header file name is the one
+ it is expecting, that the header offset is in the correct
+ sequence, and that the sum of offset and size is equal to
+ realsize.
N Type "N" records are no longer generated by GNU tar.
They contained a list of files to be renamed or symlinked
after extraction; this was originally used to support
- long names. The contents of this record are a text
- description of the operations to be done, in the form
- ``Rename %s to %s\n'' or ``Symlink %s to %s\n''; in
- either case, both filenames are escaped using K&R C syn-
- tax. Due to security concerns, "N" records are now gen-
- erally ignored when reading archives.
+ long names. The contents of this record are a text de‐
+ scription of the operations to be done, in the form
+ “Rename %s to %s\n” or “Symlink %s to %s\n”; in either
+ case, both filenames are escaped using K&R C syntax. Due
+ to security concerns, "N" records are now generally ig‐
+ nored when reading archives.
- S This is a ``sparse'' regular file. Sparse files are
- stored as a series of fragments. The header contains a
- list of fragment offset/length pairs. If more than four
- such entries are required, the header is extended as nec-
- essary with ``extra'' header extensions (an older format
- that is no longer used), or ``sparse'' extensions.
+ S This is a “sparse” regular file. Sparse files are stored
+ as a series of fragments. The header contains a list of
+ fragment offset/length pairs. If more than four such en‐
+ tries are required, the header is extended as necessary
+ with “extra” header extensions (an older format that is
+ no longer used), or “sparse” extensions.
V The name field should be interpreted as a tape/volume
header name. This entry should generally be ignored on
extraction.
- magic The magic field holds the five characters ``ustar'' followed by a
+ magic The magic field holds the five characters “ustar” followed by a
space. Note that POSIX ustar archives have a trailing null.
version
The version field holds a space character followed by a null.
Note that POSIX ustar archives use two copies of the ASCII digit
- ``0''.
+ “0”.
atime, ctime
The time the file was last accessed and the time of last change
@@ -511,15 +510,15 @@ DESCRIPTION
Sparse offset / numbytes
Each such structure specifies a single fragment of a sparse file.
The two fields store values as octal numbers. The fragments are
- each padded to a multiple of 512 bytes in the archive. On
- extraction, the list of fragments is collected from the header
- (including any extension headers), and the data is then read and
+ each padded to a multiple of 512 bytes in the archive. On ex‐
+ traction, the list of fragments is collected from the header (in‐
+ cluding any extension headers), and the data is then read and
written to the file at appropriate offsets.
isextended
- If this is set to non-zero, the header will be followed by addi-
- tional ``sparse header'' records. Each such record contains
- information about as many as 21 additional sparse blocks as shown
+ If this is set to non-zero, the header will be followed by addi‐
+ tional “sparse header” records. Each such record contains infor‐
+ mation about as many as 21 additional sparse blocks as shown
here:
struct gnu_sparse_header {
@@ -542,14 +541,14 @@ DESCRIPTION
GNU tar pax archives
GNU tar 1.14 (XXX check this XXX) and later will write pax interchange
format archives when you specify the --posix flag. This format follows
- the pax interchange format closely, using some SCHILY tags and introduc-
+ the pax interchange format closely, using some SCHILY tags and introduc‐
ing new keywords to store sparse file information. There have been three
- iterations of the sparse file support, referred to as ``0.0'', ``0.1'',
- and ``1.0''.
+ iterations of the sparse file support, referred to as “0.0”, “0.1”, and
+ “1.0”.
GNU.sparse.numblocks, GNU.sparse.offset, GNU.sparse.numbytes,
GNU.sparse.size
- The ``0.0'' format used an initial GNU.sparse.numblocks attribute
+ The “0.0” format used an initial GNU.sparse.numblocks attribute
to indicate the number of blocks in the file, a pair of
GNU.sparse.offset and GNU.sparse.numbytes to indicate the offset
and size of each block, and a single GNU.sparse.size to indicate
@@ -561,36 +560,36 @@ DESCRIPTION
the standards.
GNU.sparse.map
- The ``0.1'' format used a single attribute that stored a comma-
- separated list of decimal numbers. Each pair of numbers indi-
- cated the offset and size, respectively, of a block of data.
- This does not work well if the archive is extracted by an
- archiver that does not recognize this extension, since many pax
- implementations simply discard unrecognized attributes.
+ The “0.1” format used a single attribute that stored a comma-sep‐
+ arated list of decimal numbers. Each pair of numbers indicated
+ the offset and size, respectively, of a block of data. This does
+ not work well if the archive is extracted by an archiver that
+ does not recognize this extension, since many pax implementations
+ simply discard unrecognized attributes.
GNU.sparse.major, GNU.sparse.minor, GNU.sparse.name, GNU.sparse.realsize
- The ``1.0'' format stores the sparse block map in one or more
+ The “1.0” format stores the sparse block map in one or more
512-byte blocks prepended to the file data in the entry body.
The pax attributes indicate the existence of this map (via the
GNU.sparse.major and GNU.sparse.minor fields) and the full size
of the file. The GNU.sparse.name holds the true name of the
file. To avoid confusion, the name stored in the regular tar
- header is a modified name so that extraction errors will be
- apparent to users.
+ header is a modified name so that extraction errors will be ap‐
+ parent to users.
Solaris Tar
XXX More Details Needed XXX
- Solaris tar (beginning with SunOS XXX 5.7 ?? XXX) supports an
- ``extended'' format that is fundamentally similar to pax interchange for-
- mat, with the following differences:
- o Extended attributes are stored in an entry whose type is X, not
+ Solaris tar (beginning with SunOS XXX 5.7 ?? XXX) supports an “extended”
+ format that is fundamentally similar to pax interchange format, with the
+ following differences:
+ • Extended attributes are stored in an entry whose type is X, not
x, as used by pax interchange format. The detailed format of
- this entry appears to be the same as detailed above for the x
- entry.
- o An additional A header is used to store an ACL for the following
- regular entry. The body of this entry contains a seven-digit
- octal number followed by a zero byte, followed by the textual ACL
+ this entry appears to be the same as detailed above for the x en‐
+ try.
+ • An additional A header is used to store an ACL for the following
+ regular entry. The body of this entry contains a seven-digit oc‐
+ tal number followed by a zero byte, followed by the textual ACL
description. The octal value is the number of ACL entries plus a
constant that indicates the ACL type: 01000000 for POSIX.1e ACLs
and 03000000 for NFSv4 ACLs.
@@ -607,17 +606,17 @@ DESCRIPTION
Mac OS X Tar
The tar distributed with Apple's Mac OS X stores most regular files as
two separate files in the tar archive. The two files have the same name
- except that the first one has ``._'' prepended to the last path element.
- This special file stores an AppleDouble-encoded binary blob with addi-
- tional metadata about the second file, including ACL, extended
- attributes, and resources. To recreate the original file on disk, each
+ except that the first one has “._” prepended to the last path element.
+ This special file stores an AppleDouble-encoded binary blob with addi‐
+ tional metadata about the second file, including ACL, extended at‐
+ tributes, and resources. To recreate the original file on disk, each
separate file can be extracted and the Mac OS X copyfile() function can
be used to unpack the separate metadata file and apply it to th regular
- file. Conversely, the same function provides a ``pack'' option to encode
+ file. Conversely, the same function provides a “pack” option to encode
the extended metadata from a file into a separate file whose contents can
then be put into a tar archive.
- Note that the Apple extended attributes interact badly with long file-
+ Note that the Apple extended attributes interact badly with long file‐
names. Since each file is stored with the full name, a separate set of
extensions needs to be included in the archive for each one, doubling the
overhead required for files with long names.
@@ -655,11 +654,10 @@ SEE ALSO
STANDARDS
The tar utility is no longer a part of POSIX or the Single Unix Standard.
- It last appeared in Version 2 of the Single UNIX Specification
- (``SUSv2''). It has been supplanted in subsequent standards by pax(1).
- The ustar format is currently part of the specification for the pax(1)
- utility. The pax interchange file format is new with IEEE Std
- 1003.1-2001 (``POSIX.1'').
+ It last appeared in Version 2 of the Single UNIX Specification (“SUSv2”).
+ It has been supplanted in subsequent standards by pax(1). The ustar for‐
+ mat is currently part of the specification for the pax(1) utility. The
+ pax interchange file format is new with IEEE Std 1003.1-2001 (“POSIX.1”).
HISTORY
A tar command appeared in Seventh Edition Unix, which was released in
diff --git a/dependencies/libarchive-3.4.2/doc/update.sh b/dependencies/libarchive-3.5.2/doc/update.sh
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/update.sh
rename to dependencies/libarchive-3.5.2/doc/update.sh
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/.ignore_me b/dependencies/libarchive-3.5.2/doc/wiki/.ignore_me
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/wiki/.ignore_me
rename to dependencies/libarchive-3.5.2/doc/wiki/.ignore_me
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/Makefile b/dependencies/libarchive-3.5.2/doc/wiki/Makefile
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/wiki/Makefile
rename to dependencies/libarchive-3.5.2/doc/wiki/Makefile
index 0b8cb5d..206afa1 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/Makefile
+++ b/dependencies/libarchive-3.5.2/doc/wiki/Makefile
@@ -107,15 +107,15 @@ ManPageArchiveWriteSetPassphrase3.wiki: ../mdoc2wiki.awk ../../libarchive/archiv
ManPageCpio5.wiki: ../mdoc2wiki.awk ../../libarchive/cpio.5
awk -f ../mdoc2wiki.awk < ../../libarchive/cpio.5 > ManPageCpio5.wiki
-ManPageLibarchiveFormats5.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive-formats.5
- awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive-formats.5 > ManPageLibarchiveFormats5.wiki
-
ManPageLibarchive3.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive.3
awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive.3 > ManPageLibarchive3.wiki
ManPageLibarchiveChanges3.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive_changes.3
awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive_changes.3 > ManPageLibarchiveChanges3.wiki
+ManPageLibarchiveFormats5.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive-formats.5
+ awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive-formats.5 > ManPageLibarchiveFormats5.wiki
+
ManPageLibarchiveInternals3.wiki: ../mdoc2wiki.awk ../../libarchive/libarchive_internals.3
awk -f ../mdoc2wiki.awk < ../../libarchive/libarchive_internals.3 > ManPageLibarchiveInternals3.wiki
@@ -130,4 +130,4 @@ ManPageBsdtar1.wiki: ../mdoc2wiki.awk ../../tar/bsdtar.1
ManPageBsdcpio1.wiki: ../mdoc2wiki.awk ../../cpio/bsdcpio.1
awk -f ../mdoc2wiki.awk < ../../cpio/bsdcpio.1 > ManPageBsdcpio1.wiki
-all: ManPageArchiveEntry3.wiki ManPageArchiveEntryAcl3.wiki ManPageArchiveEntryLinkify3.wiki ManPageArchiveEntryMisc3.wiki ManPageArchiveEntryPaths3.wiki ManPageArchiveEntryPerms3.wiki ManPageArchiveEntryStat3.wiki ManPageArchiveEntryTime3.wiki ManPageArchiveRead3.wiki ManPageArchiveReadAddPassphrase3.wiki ManPageArchiveReadData3.wiki ManPageArchiveReadDisk3.wiki ManPageArchiveReadExtract3.wiki ManPageArchiveReadFilter3.wiki ManPageArchiveReadFormat3.wiki ManPageArchiveReadFree3.wiki ManPageArchiveReadHeader3.wiki ManPageArchiveReadNew3.wiki ManPageArchiveReadOpen3.wiki ManPageArchiveReadSetOptions3.wiki ManPageArchiveUtil3.wiki ManPageArchiveWrite3.wiki ManPageArchiveWriteBlocksize3.wiki ManPageArchiveWriteData3.wiki ManPageArchiveWriteDisk3.wiki ManPageArchiveWriteFilter3.wiki ManPageArchiveWriteFinishEntry3.wiki ManPageArchiveWriteFormat3.wiki ManPageArchiveWriteFree3.wiki ManPageArchiveWriteHeader3.wiki ManPageArchiveWriteNew3.wiki ManPageArchiveWriteOpen3.wiki ManPageArchiveWriteSetOptions3.wiki ManPageArchiveWriteSetPassphrase3.wiki ManPageCpio5.wiki ManPageLibarchiveFormats5.wiki ManPageLibarchive3.wiki ManPageLibarchiveChanges3.wiki ManPageLibarchiveInternals3.wiki ManPageMtree5.wiki ManPageTar5.wiki ManPageBsdtar1.wiki ManPageBsdcpio1.wiki
+all: ManPageArchiveEntry3.wiki ManPageArchiveEntryAcl3.wiki ManPageArchiveEntryLinkify3.wiki ManPageArchiveEntryMisc3.wiki ManPageArchiveEntryPaths3.wiki ManPageArchiveEntryPerms3.wiki ManPageArchiveEntryStat3.wiki ManPageArchiveEntryTime3.wiki ManPageArchiveRead3.wiki ManPageArchiveReadAddPassphrase3.wiki ManPageArchiveReadData3.wiki ManPageArchiveReadDisk3.wiki ManPageArchiveReadExtract3.wiki ManPageArchiveReadFilter3.wiki ManPageArchiveReadFormat3.wiki ManPageArchiveReadFree3.wiki ManPageArchiveReadHeader3.wiki ManPageArchiveReadNew3.wiki ManPageArchiveReadOpen3.wiki ManPageArchiveReadSetOptions3.wiki ManPageArchiveUtil3.wiki ManPageArchiveWrite3.wiki ManPageArchiveWriteBlocksize3.wiki ManPageArchiveWriteData3.wiki ManPageArchiveWriteDisk3.wiki ManPageArchiveWriteFilter3.wiki ManPageArchiveWriteFinishEntry3.wiki ManPageArchiveWriteFormat3.wiki ManPageArchiveWriteFree3.wiki ManPageArchiveWriteHeader3.wiki ManPageArchiveWriteNew3.wiki ManPageArchiveWriteOpen3.wiki ManPageArchiveWriteSetOptions3.wiki ManPageArchiveWriteSetPassphrase3.wiki ManPageCpio5.wiki ManPageLibarchive3.wiki ManPageLibarchiveChanges3.wiki ManPageLibarchiveFormats5.wiki ManPageLibarchiveInternals3.wiki ManPageMtree5.wiki ManPageTar5.wiki ManPageBsdtar1.wiki ManPageBsdcpio1.wiki
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntry3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntry3.wiki
similarity index 89%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntry3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntry3.wiki
index db4177c..7df9e52 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntry3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntry3.wiki
@@ -36,7 +36,7 @@ it includes everything from
'''struct stat'''
plus associated pathname, textual group and user names, etc.
These objects are used by
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
to represent the metadata associated with a particular
entry in an archive.
=== Create and Destroy===
@@ -64,16 +64,16 @@ object.
Due to high number of functions, the accessor functions can be found in
man pages grouped by the purpose.
-
[[ManPagerchiventrycl3]]
+
[[ManPageArchiveEntryAcl3]]
Access Control List manipulation
-
[[ManPagerchiventryaths3]]
+
[[ManPageArchiveEntryPaths3]]
Path name manipulation
-
[[ManPagerchiventryerms3]]
+
[[ManPageArchiveEntryPerms3]]
User, group and mode manipulation
-
[[ManPagerchiventrytat3]]
+
[[ManPageArchiveEntryStat3]]
Functions not in the other groups and copying to/from
''struct'' stat.
-
[[ManPagerchiventryime3]]
+
[[ManPageArchiveEntryTime3]]
Time field manipulation
@@ -106,11 +106,11 @@ 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.
== SEE ALSO ==
-[[ManPagerchiventrycl3]],
-[[ManPagerchiventryaths3]],
-[[ManPagerchiventryerms3]],
-[[ManPagerchiventryime3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveEntryAcl3]],
+[[ManPageArchiveEntryPaths3]],
+[[ManPageArchiveEntryPerms3]],
+[[ManPageArchiveEntryTime3]],
+[[ManPageLibarchive3]]
== HISTORY ==
The
'''libarchive'''
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryAcl3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryAcl3.wiki
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryAcl3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryAcl3.wiki
index 7e7ed25..d4de620 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryAcl3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryAcl3.wiki
@@ -343,7 +343,7 @@ prepare reading the list of ACL entries with
'''archive_entry_acl_next'''().
The function returns 0 if no non-extended ACLs are found.
In this case, the access permissions should be obtained by
-[[ManPagerchiventryode3]]
+[[ManPageArchiveEntryMode3]]
or set using
[[chmod(2)|http://www.freebsd.org/cgi/man.cgi?query=chmod&sektion=2]].
Otherwise, the function returns the same value as
@@ -454,5 +454,5 @@ and flags on success or NULL on error.
'''archive_entry_acl_types'''()
returns a bitmask of ACL entry types or 0 if archive entry has no ACL entries.
== SEE ALSO ==
-[[ManPagerchiventry3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveEntry3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki
index 1e35c59..a94b398 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryLinkify3.wiki
@@ -64,7 +64,7 @@ The
'''archive_entry_linkresolver_set_strategy'''()
function selects the optimal hardlink strategy for the given format.
The format code can be obtained from
-[[ManPagerchiveormat3]].
+[[ManPageArchiveFormat3]].
The function can be called more than once, but it is recommended to
flush all deferred entries first.
@@ -194,4 +194,4 @@ on
[[malloc(3)|http://www.freebsd.org/cgi/man.cgi?query=malloc&sektion=3]]
failures.
== SEE ALSO ==
-[[ManPagerchiventry3]]
+[[ManPageArchiveEntry3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryMisc3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryMisc3.wiki
similarity index 91%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryMisc3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryMisc3.wiki
index 02a91fd..624adc8 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryMisc3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryMisc3.wiki
@@ -35,7 +35,7 @@ Symbolic link points to a file
Symbolic link points to a directory
== SEE ALSO ==
-[[ManPagerchiventry3]],
-[[ManPagerchiventryaths3]],
-[[ManPagerchiventrytat3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveEntry3]],
+[[ManPageArchiveEntryPaths3]],
+[[ManPageArchiveEntryStat3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPaths3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPaths3.wiki
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPaths3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPaths3.wiki
index 64ccef9..32a9a04 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPaths3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPaths3.wiki
@@ -127,7 +127,7 @@ Streaming Archive Library (libarchive, -larchive)
'''archive_entry_update_symlink_utf8'''(''struct archive_entry *a'', ''const char *path'');
== DESCRIPTION ==
Path names supported by
-[[ManPagerchiventry3]]:
+[[ManPageArchiveEntry3]]:
hardlink
Destination of the hardlink.
@@ -140,7 +140,7 @@ the destination for that.
Path in the archive
sourcepath
Path on the disk for use by
-[[ManPagerchiveeadisk3]].
+[[ManPageArchiveReadDisk3]].
symlink
Destination of the symbolic link.
@@ -171,5 +171,5 @@ It doesn't have a corresponding get accessor function.
is an alias for
'''archive_entry_copy_XXX'''().
== SEE ALSO ==
-[[ManPagerchiventry3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveEntry3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPerms3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPerms3.wiki
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPerms3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPerms3.wiki
index f18ee60..27802c2 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryPerms3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryPerms3.wiki
@@ -207,11 +207,11 @@ every name that is recognized.
[[strtofflags(3)|http://www.freebsd.org/cgi/man.cgi?query=strtofflags&sektion=3]],
which stops parsing at the first unrecognized name.)
== SEE ALSO ==
-[[ManPagerchiventry3]],
-[[ManPagerchiventrycl3]],
-[[ManPagerchiveeadisk3]],
-[[ManPagerchiveriteisk3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveEntry3]],
+[[ManPageArchiveEntryAcl3]],
+[[ManPageArchiveReadDisk3]],
+[[ManPageArchiveWriteDisk3]],
+[[ManPageLibarchive3]]
== BUGS ==
The platform types
''uid_t''
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryStat3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryStat3.wiki
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryStat3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryStat3.wiki
index 1d3f96d..881b707 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryStat3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryStat3.wiki
@@ -249,16 +249,16 @@ and
set and unset the size, respectively.
The number of references (hardlinks) can be obtained by calling
-'''archive_entry_nlinks'''()
+'''archive_entry_nlink'''()
and set with
-'''archive_entry_set_nlinks'''().
+'''archive_entry_set_nlink'''().
=== Identifying unique files===
The functions
'''archive_entry_dev'''()
and
'''archive_entry_ino64'''()
are used by
-[[ManPagerchiventryinkify3]]
+[[ManPageArchiveEntryLinkify3]]
to find hardlinks.
The pair of device and inode is supposed to identify hardlinked files.
@@ -302,7 +302,7 @@ Some archive formats use the combined form, while other formats use
the split form.
== SEE ALSO ==
[[stat(2)|http://www.freebsd.org/cgi/man.cgi?query=stat&sektion=2]],
-[[ManPagerchiventrycl3]],
-[[ManPagerchiventryerms3]],
-[[ManPagerchiventryime3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveEntryAcl3]],
+[[ManPageArchiveEntryPerms3]],
+[[ManPageArchiveEntryTime3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryTime3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryTime3.wiki
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryTime3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryTime3.wiki
index f46aa84..004093a 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveEntryTime3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveEntryTime3.wiki
@@ -111,7 +111,7 @@ These functions create and manipulate the time fields in an
Supported time fields are atime (access time), birthtime (creation time),
ctime (last time an inode property was changed) and mtime (modification time).
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
provides a high-resolution interface.
The timestamps are truncated automatically depending on the archive format
(for archiving) or the filesystem capabilities (for restoring).
@@ -124,8 +124,8 @@ The current state can be queried using
'''XXX_is_set'''().
Unset time fields have a second and nanosecond field of 0.
== SEE ALSO ==
-[[ManPagerchiventry3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveEntry3]],
+[[ManPageLibarchive3]]
== HISTORY ==
The
'''libarchive'''
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveRead3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveRead3.wiki
similarity index 90%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveRead3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveRead3.wiki
index 34cdb7f..ca26570 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveRead3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveRead3.wiki
@@ -15,7 +15,7 @@ headers and associated data, then close the archive and release all
resources.
=== Create archive object===
See
-[[ManPagerchiveeadew3]].
+[[ManPageArchiveReadNew3]].
To read an archive, you must first obtain an initialized
'''struct archive'''
@@ -23,9 +23,9 @@ object from
'''archive_read_new'''().
=== Enable filters and formats===
See
-[[ManPagerchiveeadilter3]]
+[[ManPageArchiveReadFilter3]]
and
-[[ManPagerchiveeadormat3]].
+[[ManPageArchiveReadFormat3]].
You can then modify this object for the desired operations with the
various
@@ -49,10 +49,10 @@ to enable auto-detect for all formats and compression types
currently supported by the library.
=== Set options===
See
-[[ManPagerchiveeadetptions3]].
+[[ManPageArchiveReadSetOptions3]].
=== Open archive===
See
-[[ManPagerchiveeadpen3]].
+[[ManPageArchiveReadOpen3]].
Once you have prepared the
'''struct archive'''
@@ -72,10 +72,10 @@ callback functions are free to read whatever block size is
most appropriate for the medium.
=== Consume archive===
See
-[[ManPagerchiveeadeader3]],
-[[ManPagerchiveeadata3]]
+[[ManPageArchiveReadHeader3]],
+[[ManPageArchiveReadData3]]
and
-[[ManPagerchiveeadxtract3]].
+[[ManPageArchiveReadExtract3]].
Each archive entry consists of a header followed by a certain
amount of data.
@@ -112,7 +112,7 @@ In particular, many applications will want to override the
pathname, file permissions, or ownership.
=== Release resources===
See
-[[ManPagerchiveeadree3]].
+[[ManPageArchiveReadFree3]].
Once you have finished reading data from the archive, you
should call
@@ -174,16 +174,16 @@ myclose(struct archive *a, void *client_data)
```
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveeadata3]],
-[[ManPagerchiveeadxtract3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadeader3]],
-[[ManPagerchiveeadew3]],
-[[ManPagerchiveeadpen3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveReadData3]],
+[[ManPageArchiveReadExtract3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadHeader3]],
+[[ManPageArchiveReadNew3]],
+[[ManPageArchiveReadOpen3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageLibarchive3]],
[[ManPageTar5]]
== HISTORY ==
The
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki
index f05a683..3cb9cd3 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadAddPassphrase3.wiki
@@ -37,6 +37,6 @@ function failed.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveead3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveRead3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadData3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadData3.wiki
similarity index 91%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadData3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadData3.wiki
index e39bbdc..baa2f99 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadData3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadData3.wiki
@@ -89,13 +89,13 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveead3]],
-[[ManPagerchiveeadxtract3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadeader3]],
-[[ManPagerchiveeadpen3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveRead3]],
+[[ManPageArchiveReadExtract3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadHeader3]],
+[[ManPageArchiveReadOpen3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageLibarchive3]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadDisk3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadDisk3.wiki
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadDisk3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadDisk3.wiki
index 238274c..7fb056a 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadDisk3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadDisk3.wiki
@@ -174,7 +174,7 @@ object with information about a particular file.
The
'''archive_entry'''
object must have already been created with
-[[ManPagerchiventryew3]]
+[[ManPageArchiveEntryNew3]]
and at least one of the source path or path fields must already be set.
(If both are set, the source path will be used.)
@@ -204,7 +204,7 @@ object.
More information about the
''struct'' archive
object and the overall design of the library can be found in the
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
overview.
== EXAMPLES ==
The following illustrates basic usage of the library by
@@ -269,11 +269,11 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveead3]],
-[[ManPagerchivetil3]],
-[[ManPagerchiverite3]],
-[[ManPagerchiveriteisk3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveRead3]],
+[[ManPageArchiveUtil3]],
+[[ManPageArchiveWrite3]],
+[[ManPageArchiveWriteDisk3]],
+[[ManPageLibarchive3]]
== HISTORY ==
The
'''libarchive'''
@@ -314,7 +314,7 @@ to look up such information.
This API should provide a set of methods for walking a directory tree.
That would make it a direct parallel of the
-[[ManPagerchiveead3]]
+[[ManPageArchiveRead3]]
API.
When such methods are implemented, the
"hybrid"
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadExtract3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadExtract3.wiki
similarity index 81%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadExtract3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadExtract3.wiki
index 9a5b82b..9cd9dec 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadExtract3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadExtract3.wiki
@@ -24,34 +24,34 @@ Streaming Archive Library (libarchive, -larchive)
A convenience function that wraps the corresponding
-[[ManPagerchiveriteisk3]]
+[[ManPageArchiveWriteDisk3]]
interfaces.
The first call to
'''archive_read_extract'''()
creates a restore object using
-[[ManPagerchiveriteiskew3]]
+[[ManPageArchiveWriteDiskNew3]]
and
-[[ManPagerchiveriteiskettandardookup3]],
+[[ManPageArchiveWriteDiskSetStandardLookup3]],
then transparently invokes
-[[ManPagerchiveriteisketptions3]],
-[[ManPagerchiveriteeader3]],
-[[ManPagerchiveriteata3]],
+[[ManPageArchiveWriteDiskSetOptions3]],
+[[ManPageArchiveWriteHeader3]],
+[[ManPageArchiveWriteData3]],
and
-[[ManPagerchiveriteinishntry3]]
+[[ManPageArchiveWriteFinishEntry3]]
to create the entry on disk and copy data into it.
The
''flags''
argument is passed unmodified to
-[[ManPagerchiveriteisketptions3]].
+[[ManPageArchiveWriteDiskSetOptions3]].
'''archive_read_extract2'''()
This is another version of
'''archive_read_extract'''()
that allows you to provide your own restore object.
In particular, this allows you to override the standard lookup functions
using
-[[ManPagerchiveriteisketroupookup3]],
+[[ManPageArchiveWriteDiskSetGroupLookup3]],
and
-[[ManPagerchiveriteisketserookup3]].
+[[ManPageArchiveWriteDiskSetUserLookup3]].
Note that
'''archive_read_extract2'''()
does not accept a
@@ -91,12 +91,12 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveead3]],
-[[ManPagerchiveeadata3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadpen3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveRead3]],
+[[ManPageArchiveReadData3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadOpen3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageLibarchive3]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFilter3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFilter3.wiki
similarity index 87%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFilter3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFilter3.wiki
index 85b0cd3..84c85c3 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFilter3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFilter3.wiki
@@ -25,6 +25,10 @@ Streaming Archive Library (libarchive, -larchive)
''int''
+'''archive_read_support_filter_by_code'''(''struct archive *'', ''int'');
+
+''int''
+
'''archive_read_support_filter_bzip2'''(''struct archive *'');
''int''
@@ -110,6 +114,14 @@ Note that
is always enabled by default.
'''archive_read_support_filter_all'''()
Enables all available decompression filters.
+
'''archive_read_support_filter_by_code'''()
+Enables a single filter specified by the filter code.
+This function does not work with
+'''ARCHIVE_FILTER_PROGRAM'''.
+Note: In statically-linked executables, this will cause
+your program to include support for every filter.
+If executable size is a concern, you may wish to avoid
+using this function.
'''archive_read_support_filter_program'''()
Data is fed through the specified external program before being dearchived.
Note that this disables automatic detection of the compression format,
@@ -136,8 +148,8 @@ and
'''archive_error_string'''()
functions.
== SEE ALSO ==
-[[ManPagerchiveead3]],
-[[ManPagerchiveeadata3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadormat3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveRead3]],
+[[ManPageArchiveReadData3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFormat3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFormat3.wiki
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFormat3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFormat3.wiki
index 13d17ad..f6289fa 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFormat3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFormat3.wiki
@@ -150,11 +150,11 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveeadata3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveReadData3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageLibarchive3]],
[[ManPageTar5]]
== BUGS ==
Many traditional archiver programs treat
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFree3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFree3.wiki
similarity index 87%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFree3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFree3.wiki
index d85030d..852ea6f 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadFree3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadFree3.wiki
@@ -58,11 +58,11 @@ and
'''archive_error_string'''()
functions.
== SEE ALSO ==
-[[ManPagerchiveeadata3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadew3]],
-[[ManPagerchiveeadpen3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveReadData3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadNew3]],
+[[ManPageArchiveReadOpen3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadHeader3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadHeader3.wiki
similarity index 85%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadHeader3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadHeader3.wiki
index f2d39a8..212d6a7 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadHeader3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadHeader3.wiki
@@ -51,13 +51,13 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveead3]],
-[[ManPagerchiveeadata3]],
-[[ManPagerchiveeadxtract3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadpen3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveRead3]],
+[[ManPageArchiveReadData3]],
+[[ManPageArchiveReadExtract3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadOpen3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageLibarchive3]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadNew3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadNew3.wiki
similarity index 74%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadNew3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadNew3.wiki
index 67c4f1f..7b312be 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadNew3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadNew3.wiki
@@ -20,13 +20,13 @@ is returned on error.
A complete description of the
'''struct archive'''
object can be found in the overview manual page for
-[[ManPageibarchive3]].
+[[ManPageLibarchive3]].
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveeadata3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveReadData3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageLibarchive3]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadOpen3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadOpen3.wiki
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadOpen3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadOpen3.wiki
index afaca2b..3accc5d 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadOpen3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadOpen3.wiki
@@ -92,7 +92,7 @@ A complete description of the
and
'''struct archive_entry'''
objects can be found in the overview manual page for
-[[ManPageibarchive3]].
+[[ManPageLibarchive3]].
== CLIENT CALLBACKS ==
The callback functions must match the following prototypes:
@@ -180,11 +180,11 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveead3]],
-[[ManPagerchiveeadata3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveRead3]],
+[[ManPageArchiveReadData3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageLibarchive3]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki
similarity index 91%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki
index bb739bc..49be450 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveReadSetOptions3.wiki
@@ -146,9 +146,18 @@ used when translating file names.
Format cpio
-
'''hdrcharset'''
+
'''compat-2x'''
+Libarchive 2.x incorrectly encoded Unicode filenames on
+some platforms.
+This option mimics the libarchive 2.x filename handling
+so that such archives can be read correctly.
+
'''hdrcharset'''
The value is used as a character set name that will be
used when translating file names.
+
'''pwb'''
+When reading a binary CPIO archive, assume that it is
+in the original PWB cpio format, and handle file mode
+bits accordingly. The default is to assume v7 format.
Format iso9660
@@ -213,6 +222,6 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveead3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveRead3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveUtil3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveUtil3.wiki
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveUtil3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveUtil3.wiki
index 8869fbb..a2b6376 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveUtil3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveUtil3.wiki
@@ -79,7 +79,7 @@ Streaming Archive Library (libarchive, -larchive)
These functions provide access to various information about the
'''struct archive'''
object used in the
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library.
'''archive_clear_error'''()
@@ -111,9 +111,9 @@ to
'''archive_file_count'''()
Returns a count of the number of files processed by this archive object.
The count is incremented by calls to
-[[ManPagerchiveriteeader3]]
+[[ManPageArchiveWriteHeader3]]
or
-[[ManPagerchiveeadexteader3]].
+[[ManPageArchiveReadNextHeader3]].
'''archive_filter_code'''()
Returns a numeric code identifying the indicated filter.
See
@@ -202,9 +202,9 @@ Field-width specifiers and other printf features are
not uniformly supported and should not be used.
== SEE ALSO ==
-[[ManPagerchiveead3]],
-[[ManPagerchiverite3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveRead3]],
+[[ManPageArchiveWrite3]],
+[[ManPageLibarchive3]],
[[printf(3)|http://www.freebsd.org/cgi/man.cgi?query=printf&sektion=3]]
== HISTORY ==
The
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWrite3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWrite3.wiki
similarity index 94%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWrite3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWrite3.wiki
index 708ec27..efcd74a 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWrite3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWrite3.wiki
@@ -15,7 +15,7 @@ object, set any desired options, initialize the archive, append entries, then
close the archive and release all resources.
=== Create archive object===
See
-[[ManPagerchiveriteew3]].
+[[ManPageArchiveWriteNew3]].
To write an archive, you must first obtain an initialized
'''struct archive'''
@@ -23,10 +23,10 @@ object from
'''archive_write_new'''().
=== Enable filters and formats, configure block size and padding===
See
-[[ManPagerchiveriteilter3]],
-[[ManPagerchiveriteormat3]]
+[[ManPageArchiveWriteFilter3]],
+[[ManPageArchiveWriteFormat3]]
and
-[[ManPagerchiveritelocksize3]].
+[[ManPageArchiveWriteBlocksize3]].
You can then modify this object for the desired operations with the
various
@@ -40,10 +40,10 @@ functions to enable the corresponding compression and format
support.
=== Set options===
See
-[[ManPagerchiveriteetptions3]].
+[[ManPageArchiveWriteSetOptions3]].
=== Open archive===
See
-[[ManPagerchiveritepen3]].
+[[ManPageArchiveWriteOpen3]].
Once you have prepared the
'''struct archive'''
@@ -59,9 +59,9 @@ specify a filename, file descriptor,
object, or a block of memory from which to write the archive data.
=== Produce archive===
See
-[[ManPagerchiveriteeader3]]
+[[ManPageArchiveWriteHeader3]]
and
-[[ManPagerchiveriteata3]].
+[[ManPageArchiveWriteData3]].
Individual archive entries are written in a three-step
process:
@@ -78,7 +78,7 @@ field, which specifies the type of object and
field, which specifies the size of the data portion of the object.
=== Release resources===
See
-[[ManPagerchiveriteree3]].
+[[ManPageArchiveWriteFree3]].
After all entries have been written, use the
'''archive_write_free'''()
@@ -180,8 +180,8 @@ int main(int argc, const char **argv)
```
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki
index 00beced..eddc34c 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteBlocksize3.wiki
@@ -86,8 +86,8 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteData3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteData3.wiki
similarity index 94%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteData3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteData3.wiki
index 8670f8a..31d4598 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteData3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteData3.wiki
@@ -53,9 +53,9 @@ Clients should treat any value less than zero as an error
and consider any non-negative value as success.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveriteinishntry3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWriteFinishEntry3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteDisk3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteDisk3.wiki
similarity index 98%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteDisk3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteDisk3.wiki
index e3eea00..1fca52c 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteDisk3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteDisk3.wiki
@@ -208,10 +208,10 @@ and
More information about the
''struct'' archive
object and the overall design of the library can be found in the
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
overview.
Many of these functions are also documented under
-[[ManPagerchiverite3]].
+[[ManPageArchiveWrite3]].
== RETURN VALUES ==
Most functions return
'''ARCHIVE_OK'''
@@ -245,9 +245,9 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveead3]],
-[[ManPagerchiverite3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveRead3]],
+[[ManPageArchiveWrite3]],
+[[ManPageLibarchive3]]
== HISTORY ==
The
'''libarchive'''
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFilter3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFilter3.wiki
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFilter3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFilter3.wiki
index 84d7816..bf6cf3a 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFilter3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFilter3.wiki
@@ -125,10 +125,10 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiverite3]],
-[[ManPagerchiveriteormat3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWrite3]],
+[[ManPageArchiveWriteFormat3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki
index a1f2a32..bf6e6a1 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFinishEntry3.wiki
@@ -42,9 +42,9 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveriteata3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWriteData3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFormat3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFormat3.wiki
similarity index 86%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFormat3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFormat3.wiki
index 2a92d79..b5423b1 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFormat3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFormat3.wiki
@@ -7,7 +7,10 @@ ARCHIVE_WRITE_FORMAT(3) manual page
'''archive_write_set_format_ar_svr4''',
'''archive_write_set_format_by_name''',
'''archive_write_set_format_cpio''',
+'''archive_write_set_format_cpio_bin''',
'''archive_write_set_format_cpio_newc''',
+'''archive_write_set_format_cpio_odc''',
+'''archive_write_set_format_cpio_pwb''',
'''archive_write_set_format_filter_by_ext''',
'''archive_write_set_format_filter_by_ext_def''',
'''archive_write_set_format_gnutar''',
@@ -61,10 +64,22 @@ Streaming Archive Library (libarchive, -larchive)
''int''
+'''archive_write_set_format_cpio_bin'''(''struct archive *'');
+
+''int''
+
'''archive_write_set_format_cpio_newc'''(''struct archive *'');
''int''
+'''archive_write_set_format_cpio_odc'''(''struct archive *'');
+
+''int''
+
+'''archive_write_set_format_cpio_pwb'''(''struct archive *'');
+
+''int''
+
'''archive_write_set_format_filter_by_ext'''(''struct archive *'', ''const char *filename'');
''int''
@@ -137,17 +152,20 @@ to create a new archive with the same format as an existing archive.
'''archive_write_set_format_by_name'''()
Sets the corresponding format based on the common name.
Sets both filters and format based on the output filename.
Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz
Set the format as specified.
More details on the formats supported by libarchive can be found in the
-[[ManPageibarchiveormats5]]
+[[ManPageLibarchiveFormats5]]
manual page.
== RETURN VALUES ==
@@ -181,10 +199,10 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiverite3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWrite3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
-[[ManPageibarchiveormats5]],
+[[ManPageLibarchiveFormats5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFree3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFree3.wiki
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFree3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFree3.wiki
index 06341bf..0e5c4be 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteFree3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteFree3.wiki
@@ -66,8 +66,8 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteHeader3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteHeader3.wiki
similarity index 92%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteHeader3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteHeader3.wiki
index 7087ede..a2389cd 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteHeader3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteHeader3.wiki
@@ -15,7 +15,7 @@ Build and write a header using the data in the provided
'''struct archive_entry'''
structure.
See
-[[ManPagerchiventry3]]
+[[ManPageArchiveEntry3]]
for information on creating and populating
'''struct archive_entry'''
objects.
@@ -37,8 +37,8 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteNew3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteNew3.wiki
similarity index 85%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteNew3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteNew3.wiki
index b9c787c..da0d45b 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteNew3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteNew3.wiki
@@ -20,12 +20,12 @@ is returned on error.
A complete description of the
'''struct archive'''
object can be found in the overview manual page for
-[[ManPageibarchive3]].
+[[ManPageLibarchive3]].
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiverite3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWrite3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteOpen3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteOpen3.wiki
similarity index 83%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteOpen3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteOpen3.wiki
index 579aaf3..31abd29 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteOpen3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteOpen3.wiki
@@ -1,6 +1,7 @@
ARCHIVE_WRITE_OPEN(3) manual page
== NAME ==
'''archive_write_open''',
+'''archive_write_open2''',
'''archive_write_open_fd''',
'''archive_write_open_FILE''',
'''archive_write_open_filename''',
@@ -17,6 +18,10 @@ Streaming Archive Library (libarchive, -larchive)
''int''
+'''archive_write_open2'''(''struct archive *'', ''void *client_data'', ''archive_open_callback *'', ''archive_write_callback *'', ''archive_close_callback *'', ''archive_free_callback *'');
+
+''int''
+
'''archive_write_open_fd'''(''struct archive *'', ''int fd'');
''int''
@@ -38,6 +43,11 @@ This is the most generic form of this function, which accepts
pointers to three callback functions which will be invoked by
the compression layer to write the constructed archive.
This does not alter the default archive padding.
+
'''archive_write_open2'''()
+Same as
+'''archive_write_open'''()
+with an additional fourth free callback. This function should be preferred to
+'''archive_write_open'''().
'''archive_write_open_fd'''()
A convenience form of
'''archive_write_open'''()
@@ -77,14 +87,14 @@ to a character or block device node, it will disable padding otherwise.
You can override this by manually invoking
'''archive_write_set_bytes_in_last_block'''()
before calling
-'''archive_write_open'''().
+'''archive_write_open2'''().
The
'''archive_write_open_filename'''()
function is safe for use with tape drives or other
block-oriented devices.
'''archive_write_open_memory'''()
A convenience form of
-'''archive_write_open'''()
+'''archive_write_open2'''()
that accepts a pointer to a block of memory that will receive
the archive.
The final
@@ -101,13 +111,13 @@ have specifically set the block size.
More information about the
''struct'' archive
object and the overall design of the library can be found in the
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
overview.
Note that the convenience forms above vary in how
they block the output.
See
-[[ManPagerchiveritelocksize3]]
+[[ManPageArchiveWriteBlocksize3]]
if you need to control the block size used for writes
or the end-of-file padding behavior.
== CLIENT CALLBACKS ==
@@ -115,7 +125,7 @@ To use this library, you will need to define and register
callback functions that will be invoked to write data to the
resulting archive.
These functions are registered by calling
-'''archive_write_open'''():
+'''archive_write_open2'''():
''typedef int''
@@ -132,6 +142,8 @@ If the open fails, it should call
'''archive_set_error'''()
to register an error code and message and return
'''ARCHIVE_FATAL'''.
+Please note that if open fails, close is not called and resources must be
+freed inside the open callback or with the free callback.
''typedef la_ssize_t''
@@ -157,7 +169,8 @@ to register an error code and message and return -1.
The close callback is invoked by archive_close when
-the archive processing is complete.
+the archive processing is complete. If the open callback fails, the close
+callback is not invoked.
The callback should return
'''ARCHIVE_OK'''
on success.
@@ -165,7 +178,14 @@ On failure, the callback should invoke
'''archive_set_error'''()
to register an error code and message and
return
-'''ARCHIVE_FATAL'''.
+
+
+The free callback is always invoked on archive_free.
+The return code of this callback is not processed.
Note that if the client-provided write callback function
returns a non-zero value, that error will be propagated back to the caller
@@ -196,13 +216,13 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiverite3]],
-[[ManPagerchiveritelocksize3]],
-[[ManPagerchiveriteilter3]],
-[[ManPagerchiveriteormat3]],
-[[ManPagerchiveriteew3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]],
+[[ManPageArchiveWrite3]],
+[[ManPageArchiveWriteBlocksize3]],
+[[ManPageArchiveWriteFilter3]],
+[[ManPageArchiveWriteFormat3]],
+[[ManPageArchiveWriteNew3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
[[ManPageMtree5]],
[[ManPageTar5]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki
index ceae9bf..177fe3d 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetOptions3.wiki
@@ -214,7 +214,8 @@ If supported, the default value is read from
'''compression-level'''
The value is interpreted as a decimal integer specifying the
-compression level. Supported values are from 1 to 22.
+compression level. Supported values depend on the library version,
+common values are from 1 to 22.
Format 7zip
@@ -237,7 +238,7 @@ Values between 0 and 9 are supported.
The interpretation of the compression level depends on the chosen
compression method.
-
Format cpio
+
Format bin
'''hdrcharset'''
The value is used as a character set name that will be
@@ -477,6 +478,18 @@ XXX needs explanation XXX
The value is used as a character set name that will be
used when translating file names.
+
Format odc
+
+
'''hdrcharset'''
+The value is used as a character set name that will be
+used when translating file names.
+
+
Format pwb
+
+
'''hdrcharset'''
+The value is used as a character set name that will be
+used when translating file names.
+
Format pax
'''hdrcharset'''
@@ -649,9 +662,9 @@ and
functions.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchiverite3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveWrite3]],
+[[ManPageLibarchive3]]
== HISTORY ==
The
'''libarchive'''
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki
similarity index 92%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki
index f61d67c..fea416e 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageArchiveWriteSetPassphrase3.wiki
@@ -37,6 +37,6 @@ function.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiverite3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveWrite3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdcpio1.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdcpio1.wiki
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdcpio1.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdcpio1.wiki
index fce973e..fc7647e 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdcpio1.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdcpio1.wiki
@@ -57,6 +57,13 @@ all operating modes.
-0, --null
Read filenames separated by NUL characters instead of newlines.
This is necessary if any of the filenames being read might contain newlines.
+
-6, --pwb
+When reading a binary format archive, assume it's the earlier one,
+from the PWB variant of 6th Edition UNIX.
+When writing a cpio archive, use the PWB format.
+
-7, --binary
+(o mode only)
+When writing a cpio archive, use the (newer, non-PWB) binary format.
-A
(o mode only)
Append to the specified archive.
@@ -114,10 +121,10 @@ The POSIX.1 tar format.
The default format is
''odc''.
See
-[[ManPageibarchiveormats5]]
+[[ManPageLibarchiveFormats5]]
for more complete information about the
formats currently supported by the underlying
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library.
-h, --help
Print usage information.
@@ -369,9 +376,9 @@ standard syntax.
[[mt(1)|http://www.freebsd.org/cgi/man.cgi?query=mt&sektion=1]],
[[pax(1)|http://www.freebsd.org/cgi/man.cgi?query=pax&sektion=1]],
[[ManPageBsdtar1]],
-[[ManPageibarchive3]],
+[[ManPageLibarchive3]],
[[ManPageCpio5]],
-[[ManPageibarchiveormats5]],
+[[ManPageLibarchiveFormats5]],
[[ManPageTar5]]
== STANDARDS ==
There is no current POSIX standard for the cpio command; it appeared
@@ -401,7 +408,7 @@ actually predates
even though it was not well-known outside of AT&T until some time later.
This is a complete re-implementation based on the
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library.
== BUGS ==
The cpio archive format has several basic limitations:
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdtar1.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdtar1.wiki
similarity index 99%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdtar1.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdtar1.wiki
index 8b35562..4736bbb 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageBsdtar1.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageBsdtar1.wiki
@@ -228,7 +228,7 @@ Supported formats include
and
"ustar".
Other formats may also be supported; see
-[[ManPageibarchiveormats5]]
+[[ManPageLibarchiveFormats5]]
for more information about currently-supported formats.
In r and u modes, when extending an existing archive, the format specified
here must be compatible with the format of the existing archive on disk.
@@ -571,9 +571,9 @@ only to modules whose name matches
The complete list of supported modules and keys
for create and append modes is in
-[[ManPagerchiveriteetptions3]]
+[[ManPageArchiveWriteSetOptions3]]
and for extract and list modes in
-[[ManPagerchiveeadetptions3]].
+[[ManPageArchiveReadSetOptions3]].
Examples of supported options:
@@ -624,7 +624,8 @@ A decimal integer from 4 to 7 specifying the lz4 compression block size
Use the previous block of the block being compressed for
a compression dictionary to improve compression ratio.
'''zstd:compression-level'''
-A decimal integer from 1 to 22 specifying the zstd compression level.
+A decimal integer specifying the zstd compression level. Supported values depend
+on the library version, common values are from 1 to 22.
'''lzop:compression-level'''
A decimal integer from 1 to 9 specifying the lzop compression level.
'''xz:compression-level'''
@@ -1064,9 +1065,9 @@ For more details, see the explanation of the
and
'''archive_write_set_options'''()
API calls that are described in
-[[ManPagerchiveead3]]
+[[ManPageArchiveRead3]]
and
-[[ManPagerchiverite3]].
+[[ManPageArchiveWrite3]].
== COMPATIBILITY ==
The bundled-arguments format is supported for compatibility
with historic implementations.
@@ -1209,8 +1210,8 @@ components, or symlinks to other directories.
[[pax(1)|http://www.freebsd.org/cgi/man.cgi?query=pax&sektion=1]],
[[shar(1)|http://www.freebsd.org/cgi/man.cgi?query=shar&sektion=1]],
[[xz(1)|http://www.freebsd.org/cgi/man.cgi?query=xz&sektion=1]],
-[[ManPageibarchive3]],
-[[ManPageibarchiveormats5]],
+[[ManPageLibarchive3]],
+[[ManPageLibarchiveFormats5]],
[[ManPageTar5]]
== STANDARDS ==
There is no current POSIX standard for the tar command; it appeared
@@ -1242,7 +1243,7 @@ beginning with
FreeBSD 1.0.
This is a complete re-implementation based on the
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library.
It was first released with
FreeBSD 5.4
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageCpio5.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageCpio5.wiki
similarity index 61%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageCpio5.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageCpio5.wiki
index 3835302..4850863 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageCpio5.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageCpio5.wiki
@@ -28,40 +28,44 @@ The end of the archive is indicated by a special record with
the pathname
"TRAILER!!!".
=== PWB format===
-XXX Any documentation of the original PWB/UNIX 1.0 format? XXX
-=== Old Binary Format===
-The old binary
+The PWB binary
'''cpio'''
-format stores numbers as 2-byte and 4-byte binary values.
+format is the original format, when cpio was introduced as part of the
+Programmer's Work Bench system, a variant of 6th Edition UNIX. It
+stores numbers as 2-byte and 4-byte binary values.
Each entry begins with a header in the following format:
+
```text
-struct header_old_cpio {
- unsigned short c_magic;
- unsigned short c_dev;
- unsigned short c_ino;
- unsigned short c_mode;
- unsigned short c_uid;
- unsigned short c_gid;
- unsigned short c_nlink;
- unsigned short c_rdev;
- unsigned short c_mtime[2];
- unsigned short c_namesize;
- unsigned short c_filesize[2];
+struct header_pwb_cpio {
+ short h_magic;
+ short h_dev;
+ short h_ino;
+ short h_mode;
+ short h_uid;
+ short h_gid;
+ short h_nlink;
+ short h_majmin;
+ long h_mtime;
+ short h_namesize;
+ long h_filesize;
};
```
The
-''unsigned'' short
-fields here are 16-bit integer values; the
-''unsigned'' int
-fields are 32-bit integer values.
-The fields are as follows
+''short''
+fields here are 16-bit integer values, while the
+''long''
+fields are 32 bit integers. Since PWB UNIX, like the 6th Edition UNIX
+it was based on, only ran on PDP-11 computers, they
+are in PDP-endian format, which has little-endian shorts, and
+big-endian longs. That is, the long integer whose hexadecimal
+representation is 0x12345678 would be stored in four successive bytes
+as 0x34, 0x12, 0x78, 0x56.
+The fields are as follows:
-
''magic''
+
''h_magic''
The integer value octal 070707.
-This value can be used to determine whether this archive is
-written with little-endian or big-endian integers.
-
''dev'', ''ino''
+
''h_dev'', ''h_ino''
The device and inode numbers from the disk.
These are used by programs that read
'''cpio'''
@@ -69,9 +73,94 @@ archives to determine when two entries refer to the same file.
Programs that synthesize
'''cpio'''
archives should be careful to set these to distinct values for each entry.
-
''mode''
-The mode specifies both the regular permissions and the file type.
-It consists of several bit fields as follows:
+
''h_mode''
+The mode specifies both the regular permissions and the file type, and
+it also holds a couple of bits that are irrelevant to the cpio format,
+because the field is actually a raw copy of the mode field in the inode
+representing the file. These are the IALLOC flag, which shows that
+the inode entry is in use, and the ILARG flag, which shows that the
+file it represents is large enough to have indirect blocks pointers in
+the inode.
+The mode is decoded as follows:
+
+
+
0100000
+IALLOC flag - irrelevant to cpio.
+
0060000
+This masks the file type bits.
+
0040000
+File type value for directories.
+
0020000
+File type value for character special devices.
+
0060000
+File type value for block special devices.
+
0010000
+ILARG flag - irrelevant to cpio.
+
0004000
+SUID bit.
+
0002000
+SGID bit.
+
0001000
+Sticky bit.
+
0000777
+The lower 9 bits specify read/write/execute permissions
+for world, group, and user following standard POSIX conventions.
+
+
''h_uid'', ''h_gid''
+The numeric user id and group id of the owner.
+
''h_nlink''
+The number of links to this file.
+Directories always have a value of at least two here.
+Note that hardlinked files include file data with every copy in the archive.
+
''h_majmin''
+For block special and character special entries,
+this field contains the associated device number, with the major
+number in the high byte, and the minor number in the low byte.
+For all other entry types, it should be set to zero by writers
+and ignored by readers.
+
''h_mtime''
+Modification time of the file, indicated as the number
+of seconds since the start of the epoch,
+00:00:00 UTC January 1, 1970.
+
''h_namesize''
+The number of bytes in the pathname that follows the header.
+This count includes the trailing NUL byte.
+
''h_filesize''
+The size of the file. Note that this archive format is limited to 16
+megabyte file sizes, because PWB UNIX, like 6th Edition, only used
+an unsigned 24 bit integer for the file size internally.
+
+
+The pathname immediately follows the fixed header.
+If
+'''h_namesize'''
+is odd, an additional NUL byte is added after the pathname.
+The file data is then appended, again with an additional NUL
+appended if needed to get the next header at an even offset.
+
+Hardlinked files are not given special treatment;
+the full file contents are included with each copy of the
+file.
+=== New Binary Format===
+The new binary
+'''cpio'''
+format showed up when cpio was adopted into late 7th Edition UNIX.
+It is exactly like the PWB binary format, described above, except for
+three changes:
+
+First, UNIX now ran on more than one hardware type, so the endianness
+of 16 bit integers must be determined by observing the magic number at
+the start of the header. The 32 bit integers are still always stored
+with the most significant word first, though, so each of those two, in
+the struct shown above, was stored as an array of two 16 bit integers,
+in the traditional order. Those 16 bit integers, like all the others
+in the struct, were accessed using a macro that byte swapped them if
+necessary.
+
+Next, 7th Edition had more file types to store, and the IALLOC and ILARG
+flag bits were re-purposed to accommodate these. The revised use of the
+various bits is as follows:
+
0170000
This masks the file type bits.
@@ -96,51 +185,26 @@ SUID bit.
SGID bit.
0001000
Sticky bit.
-On some systems, this modifies the behavior of executables and/or directories.
0000777
The lower 9 bits specify read/write/execute permissions
for world, group, and user following standard POSIX conventions.
-
''uid'', ''gid''
-The numeric user id and group id of the owner.
-
''nlink''
-The number of links to this file.
-Directories always have a value of at least two here.
-Note that hardlinked files include file data with every copy in the archive.
-
''rdev''
-For block special and character special entries,
-this field contains the associated device number.
-For all other entry types, it should be set to zero by writers
-and ignored by readers.
-
''mtime''
-Modification time of the file, indicated as the number
-of seconds since the start of the epoch,
-00:00:00 UTC January 1, 1970.
-The four-byte integer is stored with the most-significant 16 bits first
-followed by the least-significant 16 bits.
-Each of the two 16 bit values are stored in machine-native byte order.
-
''namesize''
-The number of bytes in the pathname that follows the header.
-This count includes the trailing NUL byte.
-
''filesize''
-The size of the file.
-Note that this archive format is limited to
-four gigabyte file sizes.
-See
-''mtime''
-above for a description of the storage of four-byte integers.
-
-The pathname immediately follows the fixed header.
-If the
-'''namesize'''
-is odd, an additional NUL byte is added after the pathname.
-The file data is then appended, padded with NUL
-bytes to an even length.
+Finally, the file size field now represents a signed 32 bit integer in
+the underlying file system, so the maximum file size has increased to
+2 gigabytes.
-Hardlinked files are not given special treatment;
-the full file contents are included with each copy of the
-file.
+Note that there is no obvious way to tell which of the two binary
+formats an archive uses, other than to see which one makes more
+sense. The typical error scenario is that a PWB format archive
+unpacked as if it were in the new format will create named sockets
+instead of directories, and then fail to unpack files that should
+go in those directories. Running
+''bsdcpio'' -itv
+on an unknown archive will make it obvious which it is: if it's
+PWB format, directories will be listed with an 's' instead of
+a 'd' as the first character of the mode string, and the larger
+files will have a '?' in that position.
=== Portable ASCII Format===
Version 2 of the Single UNIX Specification (``SUSv2'')
standardized an ASCII variant that is portable across all
@@ -152,6 +216,7 @@ format or as the
format.
It stores the same numeric fields as the old binary format, but
represents them as 6-character or 11-character octal values.
+
```text
struct cpio_odc_header {
char c_magic[6];
@@ -168,9 +233,9 @@ struct cpio_odc_header {
};
```
-The fields are identical to those in the old binary format.
+The fields are identical to those in the new binary format.
The name and file body follow the fixed header.
-Unlike the old binary format, there is no additional padding
+Unlike the binary formats, there is no additional padding
after the pathname or file contents.
If the files being archived are themselves entirely ASCII, then
the resulting archive will be entirely ASCII, except for the
@@ -179,6 +244,7 @@ NUL byte that terminates the name field.
The "new" ASCII format uses 8-byte hexadecimal fields for
all numbers and separates device numbers into separate fields
for major and minor numbers.
+
```text
struct cpio_newc_header {
char c_magic[6];
@@ -199,7 +265,7 @@ struct cpio_newc_header {
```
Except as specified below, the fields here match those specified
-for the old binary format above.
+for the new binary format above.
''magic''
The string
@@ -216,7 +282,7 @@ Note that this format supports only 4 gigabyte files (unlike the
older ASCII format, which supports 8 gigabyte files).
In this format, hardlinked files are handled by setting the
-filesize to zero for each entry except the last one that
+filesize to zero for each entry except the first one that
appears in the archive.
=== New CRC Format===
The CRC format is identical to the new ASCII format described
@@ -260,9 +326,9 @@ while working in AT&T's Unix Support Group.
It appeared in 1977 as part of PWB/UNIX 1.0, the
"Programmer's Work Bench"
derived from
-At v6
+At 6th Edition UNIX
that was used internally at AT&T.
-Both the old binary and old character formats were in use
+Both the new binary and old character formats were in use
by 1980, according to the System III source released
by SCO under their
"Ancient Unix"
@@ -276,9 +342,9 @@ The
format is mis-named, as it uses a simple checksum and
not a cyclic redundancy check.
-The old binary format is limited to 16 bits for user id,
-group id, device, and inode numbers.
-It is limited to 4 gigabyte file sizes.
+The binary formats are limited to 16 bits for user id, group id,
+device, and inode numbers. They are limited to 16 megabyte and 2
+gigabyte file sizes for the older and newer variants, respectively.
The old ASCII format is limited to 18 bits for
the user id, group id, device, and inode numbers.
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchive3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchive3.wiki
similarity index 94%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchive3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchive3.wiki
index 2d7ae34..40f0340 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchive3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchive3.wiki
@@ -77,7 +77,7 @@ POSIX
"pax interchange format"
archives,
@@ -117,19 +117,19 @@ More detailed information can be found in the individual manual
pages for each API or utility function.
== READING AN ARCHIVE ==
See
-[[ManPagerchiveead3]].
+[[ManPageArchiveRead3]].
== WRITING AN ARCHIVE ==
See
-[[ManPagerchiverite3]].
+[[ManPageArchiveWrite3]].
== WRITING ENTRIES TO DISK ==
The
-[[ManPagerchiveriteisk3]]
+[[ManPageArchiveWriteDisk3]]
API allows you to write
-[[ManPagerchiventry3]]
+[[ManPageArchiveEntry3]]
objects to disk using the same API used by
-[[ManPagerchiverite3]].
+[[ManPageArchiveWrite3]].
The
-[[ManPagerchiveriteisk3]]
+[[ManPageArchiveWriteDisk3]]
API is used internally by
'''archive_read_extract'''('';'')
using it directly can provide greater control over how entries
@@ -139,21 +139,21 @@ archive-to-archive copy and archive-to-disk extraction
operations.
== READING ENTRIES FROM DISK ==
The
-[[ManPagerchiveeadisk3]]
+[[ManPageArchiveReadDisk3]]
supports for populating
-[[ManPagerchiventry3]]
+[[ManPageArchiveEntry3]]
objects from information in the filesystem.
This includes the information accessible from the
[[stat(2)|http://www.freebsd.org/cgi/man.cgi?query=stat&sektion=2]]
system call as well as ACLs, extended attributes,
and other metadata.
The
-[[ManPagerchiveeadisk3]]
+[[ManPageArchiveReadDisk3]]
API also supports iterating over directory trees,
which allows directories of files to be read using
an API compatible with
the
-[[ManPagerchiveead3]]
+[[ManPageArchiveRead3]]
API.
== DESCRIPTION ==
Detailed descriptions of each function are provided by the
@@ -168,7 +168,7 @@ The
structure contains a complete description of a single archive
entry.
It uses an opaque interface that is fully documented in
-[[ManPagerchiventry3]].
+[[ManPageArchiveEntry3]].
Users familiar with historic formats should be aware that the newer
variants have eliminated most restrictions on the length of textual fields.
@@ -216,14 +216,14 @@ and
functions can be used to obtain more information.
== ENVIRONMENT ==
There are character set conversions within the
-[[ManPagerchiventry3]]
+[[ManPageArchiveEntry3]]
functions that are impacted by the currently-selected locale.
== SEE ALSO ==
[[ManPageBsdtar1]],
-[[ManPagerchiventry3]],
-[[ManPagerchiveead3]],
-[[ManPagerchivetil3]],
-[[ManPagerchiverite3]],
+[[ManPageArchiveEntry3]],
+[[ManPageArchiveRead3]],
+[[ManPageArchiveUtil3]],
+[[ManPageArchiveWrite3]],
[[ManPageTar5]]
== HISTORY ==
The
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveChanges3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveChanges3.wiki
similarity index 96%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveChanges3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveChanges3.wiki
index 2ccb83c..2f851d5 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveChanges3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveChanges3.wiki
@@ -291,13 +291,13 @@ ARCHIVE_DEFAULT_BYTES_PER_BLOCK
```
== SEE ALSO ==
-[[ManPagerchiveead3]],
-[[ManPagerchiveeadilter3]],
-[[ManPagerchiveeadormat3]],
-[[ManPagerchiveeadetptions3]],
-[[ManPagerchivetil3]],
-[[ManPagerchiverite3]],
-[[ManPagerchiveriteilter3]],
-[[ManPagerchiveriteormat3]],
-[[ManPagerchiveriteetptions3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveRead3]],
+[[ManPageArchiveReadFilter3]],
+[[ManPageArchiveReadFormat3]],
+[[ManPageArchiveReadSetOptions3]],
+[[ManPageArchiveUtil3]],
+[[ManPageArchiveWrite3]],
+[[ManPageArchiveWriteFilter3]],
+[[ManPageArchiveWriteFormat3]],
+[[ManPageArchiveWriteSetOptions3]],
+[[ManPageLibarchive3]]
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveFormats5.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveFormats5.wiki
similarity index 93%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveFormats5.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveFormats5.wiki
index 7623d91..5414eba 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveFormats5.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveFormats5.wiki
@@ -4,7 +4,7 @@ LIBARCHIVE-FORMATS(5) manual page
- archive formats supported by the libarchive library
== DESCRIPTION ==
The
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library reads and writes a variety of streaming archive formats.
Generally speaking, all of these archive formats consist of a series of
"entries".
@@ -21,7 +21,7 @@ to support, though many programs do use libarchive convenience
functions to enable all supported formats.
=== Tar Formats===
The
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library can read most tar archives.
It can write POSIX-standard
"ustar"
@@ -40,7 +40,7 @@ subsequent entries.
'''gnutar'''
The
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library can read most GNU-format tar archives.
It currently supports the most popular GNU extensions, including
modern long filename and linkname support, as well as atime and ctime data.
@@ -50,12 +50,12 @@ It can read GNU sparse file entries, including the new POSIX-based
formats.
The
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library can write GNU tar format, including long filename
and linkname support, as well as atime and ctime data.
'''pax'''
The
-[[ManPageibarchive3]]
+[[ManPageLibarchive3]]
library can read and write POSIX-compliant pax interchange format
archives.
Pax interchange format archives are an extension of the older ustar
@@ -173,28 +173,27 @@ POSIX.1-2001 extended the ustar format to create the
"pax interchange"
format.
=== Cpio Formats===
-The libarchive library can read a number of common cpio variants and can write
-"odc"
-and
-"newc"
-format archives.
-A cpio archive stores each entry as a fixed-size header followed
-by a variable-length filename and variable-length data.
-Unlike the tar format, the cpio format does only minimal padding
-of the header or file data.
-There are several cpio variants, which differ primarily in
-how they store the initial header: some store the values as
-octal or hexadecimal numbers in ASCII, others as binary values of
-varying byte order and length.
+The libarchive library can read and write a number of common cpio
+variants. A cpio archive stores each entry as a fixed-size header
+followed by a variable-length filename and variable-length data.
+Unlike the tar format, the cpio format does only minimal padding of
+the header or file data. There are several cpio variants, which
+differ primarily in how they store the initial header: some store the
+values as octal or hexadecimal numbers in ASCII, others as binary
+values of varying byte order and length.
'''binary'''
-The libarchive library transparently reads both big-endian and little-endian
-variants of the original binary cpio format.
-This format used 32-bit binary values for file size and mtime,
-and 16-bit binary values for the other fields.
+The libarchive library transparently reads both big-endian and
+little-endian variants of the the two binary cpio formats; the
+original one from PWB/UNIX, and the later, more widely used, variant.
+This format used 32-bit binary values for file size and mtime, and
+16-bit binary values for the other fields. The formats support only
+the file types present in UNIX at the time of their creation. File
+sizes are limited to 24 bits in the PWB format, because of the limits
+of the file system, and to 31 bits in the newer binary format, where
+signed 32 bit longs were used.
'''odc'''
-The libarchive library can both read and write this
-POSIX-standard format, which is officially known as the
+This is the POSIX standardized format, which is officially known as the
"cpio interchange format"
or the
"octet-oriented cpio archive format"
@@ -379,7 +378,7 @@ although many of the keywords cannot currently be stored in an
'''archive_entry'''
object.
When writing, libarchive supports use of the
-[[ManPagerchiveriteetptions3]]
+[[ManPageArchiveWriteSetOptions3]]
interface to specify which keywords should be included in the
output.
If libarchive was compiled with access to suitable
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveInternals3.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveInternals3.wiki
similarity index 97%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveInternals3.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveInternals3.wiki
index cf913b7..086762f 100644
--- a/dependencies/libarchive-3.4.2/doc/wiki/ManPageLibarchiveInternals3.wiki
+++ b/dependencies/libarchive-3.5.2/doc/wiki/ManPageLibarchiveInternals3.wiki
@@ -13,15 +13,15 @@ make it easy to add new archive and compression formats.
Externally, libarchive exposes most operations through an
opaque, object-style interface.
The
-[[ManPagerchiventry3]]
+[[ManPageArchiveEntry3]]
objects store information about a single filesystem object.
The rest of the library provides facilities to write
-[[ManPagerchiventry3]]
+[[ManPageArchiveEntry3]]
objects to archive files,
read them from archive files,
and write them to disk.
(There are plans to add a facility to read
-[[ManPagerchiventry3]]
+[[ManPageArchiveEntry3]]
objects from disk as well.)
The read and write APIs each have four layers: a public API
@@ -37,7 +37,7 @@ an archive or disk writer, and then use a single set of
code to select and write entries, regardless of the target.
== READ ARCHITECTURE ==
From the outside, clients use the
-[[ManPagerchiveead3]]
+[[ManPageArchiveRead3]]
API to manipulate an
'''archive'''
object to read entries and bodies from an archive stream.
@@ -50,9 +50,9 @@ The API has four layers:
The lowest layer is the I/O layer.
This layer can be overridden by clients, but most clients use
the packaged I/O callbacks provided, for example, by
-[[ManPagerchiveeadpenemory3]],
+[[ManPageArchiveReadOpenMemory3]],
and
-[[ManPagerchiveeadpend3]].
+[[ManPageArchiveReadOpenFd3]].
The compression layer calls the I/O layer to
read bytes and decompresses them for the format layer.
The format layer unpacks a stream of uncompressed bytes and
@@ -319,11 +319,11 @@ Fortunately, such archives are very rare, and libarchive can read
most ZIP archives, though it cannot always extract as much information
as a dedicated ZIP program.
== SEE ALSO ==
-[[ManPagerchiventry3]],
-[[ManPagerchiveead3]],
-[[ManPagerchiverite3]],
-[[ManPagerchiveriteisk3]],
-[[ManPageibarchive3]]
+[[ManPageArchiveEntry3]],
+[[ManPageArchiveRead3]],
+[[ManPageArchiveWrite3]],
+[[ManPageArchiveWriteDisk3]],
+[[ManPageLibarchive3]]
== HISTORY ==
The
'''libarchive'''
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageMtree5.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageMtree5.wiki
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageMtree5.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageMtree5.wiki
diff --git a/dependencies/libarchive-3.4.2/doc/wiki/ManPageTar5.wiki b/dependencies/libarchive-3.5.2/doc/wiki/ManPageTar5.wiki
similarity index 100%
rename from dependencies/libarchive-3.4.2/doc/wiki/ManPageTar5.wiki
rename to dependencies/libarchive-3.5.2/doc/wiki/ManPageTar5.wiki
diff --git a/dependencies/libarchive-3.4.2/examples/minitar/README b/dependencies/libarchive-3.5.2/examples/minitar/README
similarity index 100%
rename from dependencies/libarchive-3.4.2/examples/minitar/README
rename to dependencies/libarchive-3.5.2/examples/minitar/README
diff --git a/dependencies/libarchive-3.4.2/examples/minitar/minitar.c b/dependencies/libarchive-3.5.2/examples/minitar/minitar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/examples/minitar/minitar.c
rename to dependencies/libarchive-3.5.2/examples/minitar/minitar.c
diff --git a/dependencies/libarchive-3.4.2/examples/tarfilter.c b/dependencies/libarchive-3.5.2/examples/tarfilter.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/examples/tarfilter.c
rename to dependencies/libarchive-3.5.2/examples/tarfilter.c
diff --git a/dependencies/libarchive-3.4.2/examples/untar.c b/dependencies/libarchive-3.5.2/examples/untar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/examples/untar.c
rename to dependencies/libarchive-3.5.2/examples/untar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/CMakeLists.txt b/dependencies/libarchive-3.5.2/libarchive/CMakeLists.txt
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/CMakeLists.txt
rename to dependencies/libarchive-3.5.2/libarchive/CMakeLists.txt
index fa43288..87901c5 100644
--- a/dependencies/libarchive-3.4.2/libarchive/CMakeLists.txt
+++ b/dependencies/libarchive-3.5.2/libarchive/CMakeLists.txt
@@ -144,7 +144,9 @@ SET(libarchive_SOURCES
archive_write_set_format_ar.c
archive_write_set_format_by_name.c
archive_write_set_format_cpio.c
+ archive_write_set_format_cpio_binary.c
archive_write_set_format_cpio_newc.c
+ archive_write_set_format_cpio_odc.c
archive_write_set_format_filter_by_ext.c
archive_write_set_format_gnutar.c
archive_write_set_format_iso9660.c
@@ -253,7 +255,6 @@ ENDIF(NOT WIN32 OR CYGWIN)
IF(ENABLE_INSTALL)
# How to install the libraries
- #INSTALL(TARGETS archive archive_static
INSTALL(TARGETS archive_static
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive.h b/dependencies/libarchive-3.5.2/libarchive/archive.h
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/archive.h
rename to dependencies/libarchive-3.5.2/libarchive/archive.h
index 55818ea..ca83cbd 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive.h
+++ b/dependencies/libarchive-3.5.2/libarchive/archive.h
@@ -36,7 +36,7 @@
* assert that ARCHIVE_VERSION_NUMBER >= 2012108.
*/
/* Note: Compiler will complain if this does not match archive_entry.h! */
-#define ARCHIVE_VERSION_NUMBER 3004002
+#define ARCHIVE_VERSION_NUMBER 3005002
#include
#include /* for wchar_t */
@@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void);
/*
* Textual name/version of the library, useful for version displays.
*/
-#define ARCHIVE_VERSION_ONLY_STRING "3.4.2"
+#define ARCHIVE_VERSION_ONLY_STRING "3.5.2"
#define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING
__LA_DECL const char * archive_version_string(void);
@@ -246,6 +246,8 @@ typedef int archive_open_callback(struct archive *, void *_client_data);
typedef int archive_close_callback(struct archive *, void *_client_data);
+typedef int archive_free_callback(struct archive *, void *_client_data);
+
/* Switches from one client data object to the next/prev client data object.
* This is useful for reading from different data blocks such as a set of files
* that make up one large file.
@@ -317,6 +319,7 @@ typedef const char *archive_passphrase_callback(struct archive *,
#define ARCHIVE_FORMAT_CPIO_SVR4_NOCRC (ARCHIVE_FORMAT_CPIO | 4)
#define ARCHIVE_FORMAT_CPIO_SVR4_CRC (ARCHIVE_FORMAT_CPIO | 5)
#define ARCHIVE_FORMAT_CPIO_AFIO_LARGE (ARCHIVE_FORMAT_CPIO | 6)
+#define ARCHIVE_FORMAT_CPIO_PWB (ARCHIVE_FORMAT_CPIO | 7)
#define ARCHIVE_FORMAT_SHAR 0x20000
#define ARCHIVE_FORMAT_SHAR_BASE (ARCHIVE_FORMAT_SHAR | 1)
#define ARCHIVE_FORMAT_SHAR_DUMP (ARCHIVE_FORMAT_SHAR | 2)
@@ -418,6 +421,7 @@ __LA_DECL int archive_read_support_compression_xz(struct archive *)
#endif
__LA_DECL int archive_read_support_filter_all(struct archive *);
+__LA_DECL int archive_read_support_filter_by_code(struct archive *, int);
__LA_DECL int archive_read_support_filter_bzip2(struct archive *);
__LA_DECL int archive_read_support_filter_compress(struct archive *);
__LA_DECL int archive_read_support_filter_gzip(struct archive *);
@@ -797,7 +801,10 @@ __LA_DECL int archive_write_set_format_7zip(struct archive *);
__LA_DECL int archive_write_set_format_ar_bsd(struct archive *);
__LA_DECL int archive_write_set_format_ar_svr4(struct archive *);
__LA_DECL int archive_write_set_format_cpio(struct archive *);
+__LA_DECL int archive_write_set_format_cpio_bin(struct archive *);
__LA_DECL int archive_write_set_format_cpio_newc(struct archive *);
+__LA_DECL int archive_write_set_format_cpio_odc(struct archive *);
+__LA_DECL int archive_write_set_format_cpio_pwb(struct archive *);
__LA_DECL int archive_write_set_format_gnutar(struct archive *);
__LA_DECL int archive_write_set_format_iso9660(struct archive *);
__LA_DECL int archive_write_set_format_mtree(struct archive *);
@@ -817,9 +824,13 @@ __LA_DECL int archive_write_set_format_filter_by_ext(struct archive *a, const ch
__LA_DECL int archive_write_set_format_filter_by_ext_def(struct archive *a, const char *filename, const char * def_ext);
__LA_DECL int archive_write_zip_set_compression_deflate(struct archive *);
__LA_DECL int archive_write_zip_set_compression_store(struct archive *);
+/* Deprecated; use archive_write_open2 instead */
__LA_DECL int archive_write_open(struct archive *, void *,
archive_open_callback *, archive_write_callback *,
archive_close_callback *);
+__LA_DECL int archive_write_open2(struct archive *, void *,
+ archive_open_callback *, archive_write_callback *,
+ archive_close_callback *, archive_free_callback *);
__LA_DECL int archive_write_open_fd(struct archive *, int _fd);
__LA_DECL int archive_write_open_filename(struct archive *, const char *_file);
__LA_DECL int archive_write_open_filename_w(struct archive *,
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_acl.c b/dependencies/libarchive-3.5.2/libarchive/archive_acl.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_acl.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_acl.c
index 952e20d..ead7e36 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_acl.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_acl.c
@@ -595,7 +595,7 @@ archive_acl_text_len(struct archive_acl *acl, int want_type, int flags,
else
length += sizeof(uid_t) * 3 + 1;
} else {
- r = archive_mstring_get_mbs_l(&ap->name, &name,
+ r = archive_mstring_get_mbs_l(a, &ap->name, &name,
&len, sc);
if (r != 0)
return (0);
@@ -968,7 +968,7 @@ archive_acl_to_text_l(struct archive_acl *acl, ssize_t *text_len, int flags,
else
prefix = NULL;
r = archive_mstring_get_mbs_l(
- &ap->name, &name, &len, sc);
+ NULL, &ap->name, &name, &len, sc);
if (r != 0) {
free(s);
return (NULL);
@@ -1402,14 +1402,14 @@ isint_w(const wchar_t *start, const wchar_t *end, int *result)
if (start >= end)
return (0);
while (start < end) {
- if (*start < '0' || *start > '9')
+ if (*start < L'0' || *start > L'9')
return (0);
if (n > (INT_MAX / 10) ||
- (n == INT_MAX / 10 && (*start - '0') > INT_MAX % 10)) {
+ (n == INT_MAX / 10 && (*start - L'0') > INT_MAX % 10)) {
n = INT_MAX;
} else {
n *= 10;
- n += *start - '0';
+ n += *start - L'0';
}
start++;
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_acl_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_acl_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_acl_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_acl_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_blake2.h b/dependencies/libarchive-3.5.2/libarchive/archive_blake2.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_blake2.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_blake2.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_blake2_impl.h b/dependencies/libarchive-3.5.2/libarchive/archive_blake2_impl.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_blake2_impl.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_blake2_impl.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_blake2s_ref.c b/dependencies/libarchive-3.5.2/libarchive/archive_blake2s_ref.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_blake2s_ref.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_blake2s_ref.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_blake2sp_ref.c b/dependencies/libarchive-3.5.2/libarchive/archive_blake2sp_ref.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_blake2sp_ref.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_blake2sp_ref.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_check_magic.c b/dependencies/libarchive-3.5.2/libarchive/archive_check_magic.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_check_magic.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_check_magic.c
index 288ce23..1f40072 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_check_magic.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_check_magic.c
@@ -54,7 +54,7 @@ errmsg(const char *m)
ssize_t written;
while (s > 0) {
- written = write(2, m, strlen(m));
+ written = write(2, m, s);
if (written <= 0)
return;
m += written;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_cmdline.c b/dependencies/libarchive-3.5.2/libarchive/archive_cmdline.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_cmdline.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_cmdline.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_cmdline_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_cmdline_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_cmdline_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_cmdline_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_crc32.h b/dependencies/libarchive-3.5.2/libarchive/archive_crc32.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_crc32.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_crc32.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_cryptor.c b/dependencies/libarchive-3.5.2/libarchive/archive_cryptor.c
similarity index 95%
rename from dependencies/libarchive-3.4.2/libarchive/archive_cryptor.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_cryptor.c
index 8ab2b09..d4bca90 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_cryptor.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_cryptor.c
@@ -347,8 +347,31 @@ aes_ctr_init(archive_crypto_ctx *ctx, const uint8_t *key, size_t key_len)
static int
aes_ctr_encrypt_counter(archive_crypto_ctx *ctx)
{
+#if NETTLE_VERSION_MAJOR < 3
aes_set_encrypt_key(&ctx->ctx, ctx->key_len, ctx->key);
aes_encrypt(&ctx->ctx, AES_BLOCK_SIZE, ctx->encr_buf, ctx->nonce);
+#else
+ switch(ctx->key_len) {
+ case AES128_KEY_SIZE:
+ aes128_set_encrypt_key(&ctx->ctx.c128, ctx->key);
+ aes128_encrypt(&ctx->ctx.c128, AES_BLOCK_SIZE, ctx->encr_buf,
+ ctx->nonce);
+ break;
+ case AES192_KEY_SIZE:
+ aes192_set_encrypt_key(&ctx->ctx.c192, ctx->key);
+ aes192_encrypt(&ctx->ctx.c192, AES_BLOCK_SIZE, ctx->encr_buf,
+ ctx->nonce);
+ break;
+ case AES256_KEY_SIZE:
+ aes256_set_encrypt_key(&ctx->ctx.c256, ctx->key);
+ aes256_encrypt(&ctx->ctx.c256, AES_BLOCK_SIZE, ctx->encr_buf,
+ ctx->nonce);
+ break;
+ default:
+ return -1;
+ break;
+ }
+#endif
return 0;
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_cryptor_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_cryptor_private.h
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_cryptor_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_cryptor_private.h
index 64a2055..16b6d16 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_cryptor_private.h
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_cryptor_private.h
@@ -104,9 +104,18 @@ typedef struct {
#include
#endif
#include
+#include
typedef struct {
+#if NETTLE_VERSION_MAJOR < 3
struct aes_ctx ctx;
+#else
+ union {
+ struct aes128_ctx c128;
+ struct aes192_ctx c192;
+ struct aes256_ctx c256;
+ } ctx;
+#endif
uint8_t key[AES_MAX_KEY_SIZE];
unsigned key_len;
uint8_t nonce[AES_BLOCK_SIZE];
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_digest.c b/dependencies/libarchive-3.5.2/libarchive/archive_digest.c
similarity index 54%
rename from dependencies/libarchive-3.4.2/libarchive/archive_digest.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_digest.c
index 34c58ac..410df01 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_digest.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_digest.c
@@ -109,14 +109,14 @@ win_crypto_Final(unsigned char *buf, size_t bufsize, Digest_CTX *ctx)
#if defined(ARCHIVE_CRYPTO_MD5_LIBC)
static int
-__archive_libc_md5init(archive_md5_ctx *ctx)
+__archive_md5init(archive_md5_ctx *ctx)
{
MD5Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc_md5update(archive_md5_ctx *ctx, const void *indata,
+__archive_md5update(archive_md5_ctx *ctx, const void *indata,
size_t insize)
{
MD5Update(ctx, indata, insize);
@@ -124,7 +124,7 @@ __archive_libc_md5update(archive_md5_ctx *ctx, const void *indata,
}
static int
-__archive_libc_md5final(archive_md5_ctx *ctx, void *md)
+__archive_md5final(archive_md5_ctx *ctx, void *md)
{
MD5Final(md, ctx);
return (ARCHIVE_OK);
@@ -133,14 +133,14 @@ __archive_libc_md5final(archive_md5_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_MD5_LIBMD)
static int
-__archive_libmd_md5init(archive_md5_ctx *ctx)
+__archive_md5init(archive_md5_ctx *ctx)
{
MD5Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libmd_md5update(archive_md5_ctx *ctx, const void *indata,
+__archive_md5update(archive_md5_ctx *ctx, const void *indata,
size_t insize)
{
MD5Update(ctx, indata, insize);
@@ -148,7 +148,7 @@ __archive_libmd_md5update(archive_md5_ctx *ctx, const void *indata,
}
static int
-__archive_libmd_md5final(archive_md5_ctx *ctx, void *md)
+__archive_md5final(archive_md5_ctx *ctx, void *md)
{
MD5Final(md, ctx);
return (ARCHIVE_OK);
@@ -157,14 +157,14 @@ __archive_libmd_md5final(archive_md5_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM)
static int
-__archive_libsystem_md5init(archive_md5_ctx *ctx)
+__archive_md5init(archive_md5_ctx *ctx)
{
CC_MD5_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libsystem_md5update(archive_md5_ctx *ctx, const void *indata,
+__archive_md5update(archive_md5_ctx *ctx, const void *indata,
size_t insize)
{
CC_MD5_Update(ctx, indata, insize);
@@ -172,7 +172,7 @@ __archive_libsystem_md5update(archive_md5_ctx *ctx, const void *indata,
}
static int
-__archive_libsystem_md5final(archive_md5_ctx *ctx, void *md)
+__archive_md5final(archive_md5_ctx *ctx, void *md)
{
CC_MD5_Final(md, ctx);
return (ARCHIVE_OK);
@@ -181,7 +181,7 @@ __archive_libsystem_md5final(archive_md5_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS)
static int
-__archive_mbedtls_md5init(archive_md5_ctx *ctx)
+__archive_md5init(archive_md5_ctx *ctx)
{
mbedtls_md5_init(ctx);
if (mbedtls_md5_starts_ret(ctx) == 0)
@@ -191,7 +191,7 @@ __archive_mbedtls_md5init(archive_md5_ctx *ctx)
}
static int
-__archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata,
+__archive_md5update(archive_md5_ctx *ctx, const void *indata,
size_t insize)
{
if (mbedtls_md5_update_ret(ctx, indata, insize) == 0)
@@ -201,7 +201,7 @@ __archive_mbedtls_md5update(archive_md5_ctx *ctx, const void *indata,
}
static int
-__archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md)
+__archive_md5final(archive_md5_ctx *ctx, void *md)
{
if (mbedtls_md5_finish_ret(ctx, md) == 0) {
mbedtls_md5_free(ctx);
@@ -215,14 +215,14 @@ __archive_mbedtls_md5final(archive_md5_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_MD5_NETTLE)
static int
-__archive_nettle_md5init(archive_md5_ctx *ctx)
+__archive_md5init(archive_md5_ctx *ctx)
{
md5_init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_nettle_md5update(archive_md5_ctx *ctx, const void *indata,
+__archive_md5update(archive_md5_ctx *ctx, const void *indata,
size_t insize)
{
md5_update(ctx, insize, indata);
@@ -230,7 +230,7 @@ __archive_nettle_md5update(archive_md5_ctx *ctx, const void *indata,
}
static int
-__archive_nettle_md5final(archive_md5_ctx *ctx, void *md)
+__archive_md5final(archive_md5_ctx *ctx, void *md)
{
md5_digest(ctx, MD5_DIGEST_SIZE, md);
return (ARCHIVE_OK);
@@ -239,7 +239,7 @@ __archive_nettle_md5final(archive_md5_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL)
static int
-__archive_openssl_md5init(archive_md5_ctx *ctx)
+__archive_md5init(archive_md5_ctx *ctx)
{
if ((*ctx = EVP_MD_CTX_new()) == NULL)
return (ARCHIVE_FAILED);
@@ -248,7 +248,7 @@ __archive_openssl_md5init(archive_md5_ctx *ctx)
}
static int
-__archive_openssl_md5update(archive_md5_ctx *ctx, const void *indata,
+__archive_md5update(archive_md5_ctx *ctx, const void *indata,
size_t insize)
{
EVP_DigestUpdate(*ctx, indata, insize);
@@ -256,7 +256,7 @@ __archive_openssl_md5update(archive_md5_ctx *ctx, const void *indata,
}
static int
-__archive_openssl_md5final(archive_md5_ctx *ctx, void *md)
+__archive_md5final(archive_md5_ctx *ctx, void *md)
{
/* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so
* this is meant to cope with that. Real fix is probably to fix
@@ -273,20 +273,20 @@ __archive_openssl_md5final(archive_md5_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_MD5_WIN)
static int
-__archive_windowsapi_md5init(archive_md5_ctx *ctx)
+__archive_md5init(archive_md5_ctx *ctx)
{
return (win_crypto_init(ctx, CALG_MD5));
}
static int
-__archive_windowsapi_md5update(archive_md5_ctx *ctx, const void *indata,
+__archive_md5update(archive_md5_ctx *ctx, const void *indata,
size_t insize)
{
return (win_crypto_Update(ctx, indata, insize));
}
static int
-__archive_windowsapi_md5final(archive_md5_ctx *ctx, void *md)
+__archive_md5final(archive_md5_ctx *ctx, void *md)
{
return (win_crypto_Final(md, 16, ctx));
}
@@ -294,14 +294,14 @@ __archive_windowsapi_md5final(archive_md5_ctx *ctx, void *md)
#else
static int
-__archive_stub_md5init(archive_md5_ctx *ctx)
+__archive_md5init(archive_md5_ctx *ctx)
{
(void)ctx; /* UNUSED */
return (ARCHIVE_FAILED);
}
static int
-__archive_stub_md5update(archive_md5_ctx *ctx, const void *indata,
+__archive_md5update(archive_md5_ctx *ctx, const void *indata,
size_t insize)
{
(void)ctx; /* UNUSED */
@@ -311,7 +311,7 @@ __archive_stub_md5update(archive_md5_ctx *ctx, const void *indata,
}
static int
-__archive_stub_md5final(archive_md5_ctx *ctx, void *md)
+__archive_md5final(archive_md5_ctx *ctx, void *md)
{
(void)ctx; /* UNUSED */
(void)md; /* UNUSED */
@@ -324,14 +324,14 @@ __archive_stub_md5final(archive_md5_ctx *ctx, void *md)
#if defined(ARCHIVE_CRYPTO_RMD160_LIBC)
static int
-__archive_libc_ripemd160init(archive_rmd160_ctx *ctx)
+__archive_ripemd160init(archive_rmd160_ctx *ctx)
{
RMD160Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
+__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
size_t insize)
{
RMD160Update(ctx, indata, insize);
@@ -339,7 +339,7 @@ __archive_libc_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
}
static int
-__archive_libc_ripemd160final(archive_rmd160_ctx *ctx, void *md)
+__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md)
{
RMD160Final(md, ctx);
return (ARCHIVE_OK);
@@ -348,14 +348,14 @@ __archive_libc_ripemd160final(archive_rmd160_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD)
static int
-__archive_libmd_ripemd160init(archive_rmd160_ctx *ctx)
+__archive_ripemd160init(archive_rmd160_ctx *ctx)
{
RIPEMD160_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libmd_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
+__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
size_t insize)
{
RIPEMD160_Update(ctx, indata, insize);
@@ -363,7 +363,7 @@ __archive_libmd_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
}
static int
-__archive_libmd_ripemd160final(archive_rmd160_ctx *ctx, void *md)
+__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md)
{
RIPEMD160_Final(md, ctx);
return (ARCHIVE_OK);
@@ -372,7 +372,7 @@ __archive_libmd_ripemd160final(archive_rmd160_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS)
static int
-__archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx)
+__archive_ripemd160init(archive_rmd160_ctx *ctx)
{
mbedtls_ripemd160_init(ctx);
if (mbedtls_ripemd160_starts_ret(ctx) == 0)
@@ -382,7 +382,7 @@ __archive_mbedtls_ripemd160init(archive_rmd160_ctx *ctx)
}
static int
-__archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
+__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
size_t insize)
{
if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0)
@@ -392,7 +392,7 @@ __archive_mbedtls_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
}
static int
-__archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md)
+__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md)
{
if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) {
mbedtls_ripemd160_free(ctx);
@@ -406,14 +406,14 @@ __archive_mbedtls_ripemd160final(archive_rmd160_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE)
static int
-__archive_nettle_ripemd160init(archive_rmd160_ctx *ctx)
+__archive_ripemd160init(archive_rmd160_ctx *ctx)
{
ripemd160_init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_nettle_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
+__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
size_t insize)
{
ripemd160_update(ctx, insize, indata);
@@ -421,7 +421,7 @@ __archive_nettle_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
}
static int
-__archive_nettle_ripemd160final(archive_rmd160_ctx *ctx, void *md)
+__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md)
{
ripemd160_digest(ctx, RIPEMD160_DIGEST_SIZE, md);
return (ARCHIVE_OK);
@@ -430,7 +430,7 @@ __archive_nettle_ripemd160final(archive_rmd160_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL)
static int
-__archive_openssl_ripemd160init(archive_rmd160_ctx *ctx)
+__archive_ripemd160init(archive_rmd160_ctx *ctx)
{
if ((*ctx = EVP_MD_CTX_new()) == NULL)
return (ARCHIVE_FAILED);
@@ -439,7 +439,7 @@ __archive_openssl_ripemd160init(archive_rmd160_ctx *ctx)
}
static int
-__archive_openssl_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
+__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
size_t insize)
{
EVP_DigestUpdate(*ctx, indata, insize);
@@ -447,7 +447,7 @@ __archive_openssl_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
}
static int
-__archive_openssl_ripemd160final(archive_rmd160_ctx *ctx, void *md)
+__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md)
{
if (*ctx) {
EVP_DigestFinal(*ctx, md, NULL);
@@ -460,14 +460,14 @@ __archive_openssl_ripemd160final(archive_rmd160_ctx *ctx, void *md)
#else
static int
-__archive_stub_ripemd160init(archive_rmd160_ctx *ctx)
+__archive_ripemd160init(archive_rmd160_ctx *ctx)
{
(void)ctx; /* UNUSED */
return (ARCHIVE_FAILED);
}
static int
-__archive_stub_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
+__archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
size_t insize)
{
(void)ctx; /* UNUSED */
@@ -477,7 +477,7 @@ __archive_stub_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
}
static int
-__archive_stub_ripemd160final(archive_rmd160_ctx *ctx, void *md)
+__archive_ripemd160final(archive_rmd160_ctx *ctx, void *md)
{
(void)ctx; /* UNUSED */
(void)md; /* UNUSED */
@@ -490,14 +490,14 @@ __archive_stub_ripemd160final(archive_rmd160_ctx *ctx, void *md)
#if defined(ARCHIVE_CRYPTO_SHA1_LIBC)
static int
-__archive_libc_sha1init(archive_sha1_ctx *ctx)
+__archive_sha1init(archive_sha1_ctx *ctx)
{
SHA1Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc_sha1update(archive_sha1_ctx *ctx, const void *indata,
+__archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
size_t insize)
{
SHA1Update(ctx, indata, insize);
@@ -505,7 +505,7 @@ __archive_libc_sha1update(archive_sha1_ctx *ctx, const void *indata,
}
static int
-__archive_libc_sha1final(archive_sha1_ctx *ctx, void *md)
+__archive_sha1final(archive_sha1_ctx *ctx, void *md)
{
SHA1Final(md, ctx);
return (ARCHIVE_OK);
@@ -514,14 +514,14 @@ __archive_libc_sha1final(archive_sha1_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD)
static int
-__archive_libmd_sha1init(archive_sha1_ctx *ctx)
+__archive_sha1init(archive_sha1_ctx *ctx)
{
SHA1_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libmd_sha1update(archive_sha1_ctx *ctx, const void *indata,
+__archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
size_t insize)
{
SHA1_Update(ctx, indata, insize);
@@ -529,7 +529,7 @@ __archive_libmd_sha1update(archive_sha1_ctx *ctx, const void *indata,
}
static int
-__archive_libmd_sha1final(archive_sha1_ctx *ctx, void *md)
+__archive_sha1final(archive_sha1_ctx *ctx, void *md)
{
SHA1_Final(md, ctx);
return (ARCHIVE_OK);
@@ -538,14 +538,14 @@ __archive_libmd_sha1final(archive_sha1_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM)
static int
-__archive_libsystem_sha1init(archive_sha1_ctx *ctx)
+__archive_sha1init(archive_sha1_ctx *ctx)
{
CC_SHA1_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libsystem_sha1update(archive_sha1_ctx *ctx, const void *indata,
+__archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
size_t insize)
{
CC_SHA1_Update(ctx, indata, insize);
@@ -553,7 +553,7 @@ __archive_libsystem_sha1update(archive_sha1_ctx *ctx, const void *indata,
}
static int
-__archive_libsystem_sha1final(archive_sha1_ctx *ctx, void *md)
+__archive_sha1final(archive_sha1_ctx *ctx, void *md)
{
CC_SHA1_Final(md, ctx);
return (ARCHIVE_OK);
@@ -562,7 +562,7 @@ __archive_libsystem_sha1final(archive_sha1_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS)
static int
-__archive_mbedtls_sha1init(archive_sha1_ctx *ctx)
+__archive_sha1init(archive_sha1_ctx *ctx)
{
mbedtls_sha1_init(ctx);
if (mbedtls_sha1_starts_ret(ctx) == 0)
@@ -572,7 +572,7 @@ __archive_mbedtls_sha1init(archive_sha1_ctx *ctx)
}
static int
-__archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata,
+__archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
size_t insize)
{
if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0)
@@ -582,7 +582,7 @@ __archive_mbedtls_sha1update(archive_sha1_ctx *ctx, const void *indata,
}
static int
-__archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md)
+__archive_sha1final(archive_sha1_ctx *ctx, void *md)
{
if (mbedtls_sha1_finish_ret(ctx, md) == 0) {
mbedtls_sha1_free(ctx);
@@ -596,14 +596,14 @@ __archive_mbedtls_sha1final(archive_sha1_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE)
static int
-__archive_nettle_sha1init(archive_sha1_ctx *ctx)
+__archive_sha1init(archive_sha1_ctx *ctx)
{
sha1_init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_nettle_sha1update(archive_sha1_ctx *ctx, const void *indata,
+__archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
size_t insize)
{
sha1_update(ctx, insize, indata);
@@ -611,7 +611,7 @@ __archive_nettle_sha1update(archive_sha1_ctx *ctx, const void *indata,
}
static int
-__archive_nettle_sha1final(archive_sha1_ctx *ctx, void *md)
+__archive_sha1final(archive_sha1_ctx *ctx, void *md)
{
sha1_digest(ctx, SHA1_DIGEST_SIZE, md);
return (ARCHIVE_OK);
@@ -620,7 +620,7 @@ __archive_nettle_sha1final(archive_sha1_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL)
static int
-__archive_openssl_sha1init(archive_sha1_ctx *ctx)
+__archive_sha1init(archive_sha1_ctx *ctx)
{
if ((*ctx = EVP_MD_CTX_new()) == NULL)
return (ARCHIVE_FAILED);
@@ -629,7 +629,7 @@ __archive_openssl_sha1init(archive_sha1_ctx *ctx)
}
static int
-__archive_openssl_sha1update(archive_sha1_ctx *ctx, const void *indata,
+__archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
size_t insize)
{
EVP_DigestUpdate(*ctx, indata, insize);
@@ -637,7 +637,7 @@ __archive_openssl_sha1update(archive_sha1_ctx *ctx, const void *indata,
}
static int
-__archive_openssl_sha1final(archive_sha1_ctx *ctx, void *md)
+__archive_sha1final(archive_sha1_ctx *ctx, void *md)
{
/* HACK: archive_write_set_format_xar.c is finalizing empty contexts, so
* this is meant to cope with that. Real fix is probably to fix
@@ -654,20 +654,20 @@ __archive_openssl_sha1final(archive_sha1_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA1_WIN)
static int
-__archive_windowsapi_sha1init(archive_sha1_ctx *ctx)
+__archive_sha1init(archive_sha1_ctx *ctx)
{
return (win_crypto_init(ctx, CALG_SHA1));
}
static int
-__archive_windowsapi_sha1update(archive_sha1_ctx *ctx, const void *indata,
+__archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
size_t insize)
{
return (win_crypto_Update(ctx, indata, insize));
}
static int
-__archive_windowsapi_sha1final(archive_sha1_ctx *ctx, void *md)
+__archive_sha1final(archive_sha1_ctx *ctx, void *md)
{
return (win_crypto_Final(md, 20, ctx));
}
@@ -675,14 +675,14 @@ __archive_windowsapi_sha1final(archive_sha1_ctx *ctx, void *md)
#else
static int
-__archive_stub_sha1init(archive_sha1_ctx *ctx)
+__archive_sha1init(archive_sha1_ctx *ctx)
{
(void)ctx; /* UNUSED */
return (ARCHIVE_FAILED);
}
static int
-__archive_stub_sha1update(archive_sha1_ctx *ctx, const void *indata,
+__archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
size_t insize)
{
(void)ctx; /* UNUSED */
@@ -692,7 +692,7 @@ __archive_stub_sha1update(archive_sha1_ctx *ctx, const void *indata,
}
static int
-__archive_stub_sha1final(archive_sha1_ctx *ctx, void *md)
+__archive_sha1final(archive_sha1_ctx *ctx, void *md)
{
(void)ctx; /* UNUSED */
(void)md; /* UNUSED */
@@ -705,14 +705,14 @@ __archive_stub_sha1final(archive_sha1_ctx *ctx, void *md)
#if defined(ARCHIVE_CRYPTO_SHA256_LIBC)
static int
-__archive_libc_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
SHA256_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
SHA256_Update(ctx, indata, insize);
@@ -720,7 +720,7 @@ __archive_libc_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_libc_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
SHA256_Final(md, ctx);
return (ARCHIVE_OK);
@@ -729,14 +729,14 @@ __archive_libc_sha256final(archive_sha256_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2)
static int
-__archive_libc2_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
SHA256Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc2_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
SHA256Update(ctx, indata, insize);
@@ -744,7 +744,7 @@ __archive_libc2_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_libc2_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
SHA256Final(md, ctx);
return (ARCHIVE_OK);
@@ -753,14 +753,14 @@ __archive_libc2_sha256final(archive_sha256_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3)
static int
-__archive_libc3_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
SHA256Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc3_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
SHA256Update(ctx, indata, insize);
@@ -768,7 +768,7 @@ __archive_libc3_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_libc3_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
SHA256Final(md, ctx);
return (ARCHIVE_OK);
@@ -777,14 +777,14 @@ __archive_libc3_sha256final(archive_sha256_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD)
static int
-__archive_libmd_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
SHA256_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libmd_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
SHA256_Update(ctx, indata, insize);
@@ -792,7 +792,7 @@ __archive_libmd_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_libmd_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
SHA256_Final(md, ctx);
return (ARCHIVE_OK);
@@ -801,14 +801,14 @@ __archive_libmd_sha256final(archive_sha256_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM)
static int
-__archive_libsystem_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
CC_SHA256_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libsystem_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
CC_SHA256_Update(ctx, indata, insize);
@@ -816,7 +816,7 @@ __archive_libsystem_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_libsystem_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
CC_SHA256_Final(md, ctx);
return (ARCHIVE_OK);
@@ -825,7 +825,7 @@ __archive_libsystem_sha256final(archive_sha256_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS)
static int
-__archive_mbedtls_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
mbedtls_sha256_init(ctx);
if (mbedtls_sha256_starts_ret(ctx, 0) == 0)
@@ -835,7 +835,7 @@ __archive_mbedtls_sha256init(archive_sha256_ctx *ctx)
}
static int
-__archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0)
@@ -845,7 +845,7 @@ __archive_mbedtls_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
if (mbedtls_sha256_finish_ret(ctx, md) == 0) {
mbedtls_sha256_free(ctx);
@@ -859,14 +859,14 @@ __archive_mbedtls_sha256final(archive_sha256_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE)
static int
-__archive_nettle_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
sha256_init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_nettle_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
sha256_update(ctx, insize, indata);
@@ -874,7 +874,7 @@ __archive_nettle_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_nettle_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
sha256_digest(ctx, SHA256_DIGEST_SIZE, md);
return (ARCHIVE_OK);
@@ -883,7 +883,7 @@ __archive_nettle_sha256final(archive_sha256_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL)
static int
-__archive_openssl_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
if ((*ctx = EVP_MD_CTX_new()) == NULL)
return (ARCHIVE_FAILED);
@@ -892,7 +892,7 @@ __archive_openssl_sha256init(archive_sha256_ctx *ctx)
}
static int
-__archive_openssl_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
EVP_DigestUpdate(*ctx, indata, insize);
@@ -900,7 +900,7 @@ __archive_openssl_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_openssl_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
if (*ctx) {
EVP_DigestFinal(*ctx, md, NULL);
@@ -913,20 +913,20 @@ __archive_openssl_sha256final(archive_sha256_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA256_WIN)
static int
-__archive_windowsapi_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
return (win_crypto_init(ctx, CALG_SHA_256));
}
static int
-__archive_windowsapi_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
return (win_crypto_Update(ctx, indata, insize));
}
static int
-__archive_windowsapi_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
return (win_crypto_Final(md, 32, ctx));
}
@@ -934,14 +934,14 @@ __archive_windowsapi_sha256final(archive_sha256_ctx *ctx, void *md)
#else
static int
-__archive_stub_sha256init(archive_sha256_ctx *ctx)
+__archive_sha256init(archive_sha256_ctx *ctx)
{
(void)ctx; /* UNUSED */
return (ARCHIVE_FAILED);
}
static int
-__archive_stub_sha256update(archive_sha256_ctx *ctx, const void *indata,
+__archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
size_t insize)
{
(void)ctx; /* UNUSED */
@@ -951,7 +951,7 @@ __archive_stub_sha256update(archive_sha256_ctx *ctx, const void *indata,
}
static int
-__archive_stub_sha256final(archive_sha256_ctx *ctx, void *md)
+__archive_sha256final(archive_sha256_ctx *ctx, void *md)
{
(void)ctx; /* UNUSED */
(void)md; /* UNUSED */
@@ -964,14 +964,14 @@ __archive_stub_sha256final(archive_sha256_ctx *ctx, void *md)
#if defined(ARCHIVE_CRYPTO_SHA384_LIBC)
static int
-__archive_libc_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
SHA384_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
SHA384_Update(ctx, indata, insize);
@@ -979,7 +979,7 @@ __archive_libc_sha384update(archive_sha384_ctx *ctx, const void *indata,
}
static int
-__archive_libc_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
SHA384_Final(md, ctx);
return (ARCHIVE_OK);
@@ -988,14 +988,14 @@ __archive_libc_sha384final(archive_sha384_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2)
static int
-__archive_libc2_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
SHA384Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc2_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
SHA384Update(ctx, indata, insize);
@@ -1003,7 +1003,7 @@ __archive_libc2_sha384update(archive_sha384_ctx *ctx, const void *indata,
}
static int
-__archive_libc2_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
SHA384Final(md, ctx);
return (ARCHIVE_OK);
@@ -1012,14 +1012,14 @@ __archive_libc2_sha384final(archive_sha384_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3)
static int
-__archive_libc3_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
SHA384Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc3_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
SHA384Update(ctx, indata, insize);
@@ -1027,7 +1027,7 @@ __archive_libc3_sha384update(archive_sha384_ctx *ctx, const void *indata,
}
static int
-__archive_libc3_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
SHA384Final(md, ctx);
return (ARCHIVE_OK);
@@ -1036,14 +1036,14 @@ __archive_libc3_sha384final(archive_sha384_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM)
static int
-__archive_libsystem_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
CC_SHA384_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libsystem_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
CC_SHA384_Update(ctx, indata, insize);
@@ -1051,7 +1051,7 @@ __archive_libsystem_sha384update(archive_sha384_ctx *ctx, const void *indata,
}
static int
-__archive_libsystem_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
CC_SHA384_Final(md, ctx);
return (ARCHIVE_OK);
@@ -1060,7 +1060,7 @@ __archive_libsystem_sha384final(archive_sha384_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS)
static int
-__archive_mbedtls_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
mbedtls_sha512_init(ctx);
if (mbedtls_sha512_starts_ret(ctx, 1) == 0)
@@ -1070,7 +1070,7 @@ __archive_mbedtls_sha384init(archive_sha384_ctx *ctx)
}
static int
-__archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0)
@@ -1080,7 +1080,7 @@ __archive_mbedtls_sha384update(archive_sha384_ctx *ctx, const void *indata,
}
static int
-__archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
if (mbedtls_sha512_finish_ret(ctx, md) == 0) {
mbedtls_sha512_free(ctx);
@@ -1094,14 +1094,14 @@ __archive_mbedtls_sha384final(archive_sha384_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE)
static int
-__archive_nettle_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
sha384_init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_nettle_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
sha384_update(ctx, insize, indata);
@@ -1109,7 +1109,7 @@ __archive_nettle_sha384update(archive_sha384_ctx *ctx, const void *indata,
}
static int
-__archive_nettle_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
sha384_digest(ctx, SHA384_DIGEST_SIZE, md);
return (ARCHIVE_OK);
@@ -1118,7 +1118,7 @@ __archive_nettle_sha384final(archive_sha384_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL)
static int
-__archive_openssl_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
if ((*ctx = EVP_MD_CTX_new()) == NULL)
return (ARCHIVE_FAILED);
@@ -1127,7 +1127,7 @@ __archive_openssl_sha384init(archive_sha384_ctx *ctx)
}
static int
-__archive_openssl_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
EVP_DigestUpdate(*ctx, indata, insize);
@@ -1135,7 +1135,7 @@ __archive_openssl_sha384update(archive_sha384_ctx *ctx, const void *indata,
}
static int
-__archive_openssl_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
if (*ctx) {
EVP_DigestFinal(*ctx, md, NULL);
@@ -1148,20 +1148,20 @@ __archive_openssl_sha384final(archive_sha384_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA384_WIN)
static int
-__archive_windowsapi_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
return (win_crypto_init(ctx, CALG_SHA_384));
}
static int
-__archive_windowsapi_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
return (win_crypto_Update(ctx, indata, insize));
}
static int
-__archive_windowsapi_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
return (win_crypto_Final(md, 48, ctx));
}
@@ -1169,14 +1169,14 @@ __archive_windowsapi_sha384final(archive_sha384_ctx *ctx, void *md)
#else
static int
-__archive_stub_sha384init(archive_sha384_ctx *ctx)
+__archive_sha384init(archive_sha384_ctx *ctx)
{
(void)ctx; /* UNUSED */
return (ARCHIVE_FAILED);
}
static int
-__archive_stub_sha384update(archive_sha384_ctx *ctx, const void *indata,
+__archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
size_t insize)
{
(void)ctx; /* UNUSED */
@@ -1186,7 +1186,7 @@ __archive_stub_sha384update(archive_sha384_ctx *ctx, const void *indata,
}
static int
-__archive_stub_sha384final(archive_sha384_ctx *ctx, void *md)
+__archive_sha384final(archive_sha384_ctx *ctx, void *md)
{
(void)ctx; /* UNUSED */
(void)md; /* UNUSED */
@@ -1199,14 +1199,14 @@ __archive_stub_sha384final(archive_sha384_ctx *ctx, void *md)
#if defined(ARCHIVE_CRYPTO_SHA512_LIBC)
static int
-__archive_libc_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
SHA512_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
SHA512_Update(ctx, indata, insize);
@@ -1214,7 +1214,7 @@ __archive_libc_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_libc_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
SHA512_Final(md, ctx);
return (ARCHIVE_OK);
@@ -1223,14 +1223,14 @@ __archive_libc_sha512final(archive_sha512_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2)
static int
-__archive_libc2_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
SHA512Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc2_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
SHA512Update(ctx, indata, insize);
@@ -1238,7 +1238,7 @@ __archive_libc2_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_libc2_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
SHA512Final(md, ctx);
return (ARCHIVE_OK);
@@ -1247,14 +1247,14 @@ __archive_libc2_sha512final(archive_sha512_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3)
static int
-__archive_libc3_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
SHA512Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libc3_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
SHA512Update(ctx, indata, insize);
@@ -1262,7 +1262,7 @@ __archive_libc3_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_libc3_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
SHA512Final(md, ctx);
return (ARCHIVE_OK);
@@ -1271,14 +1271,14 @@ __archive_libc3_sha512final(archive_sha512_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD)
static int
-__archive_libmd_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
SHA512_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libmd_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
SHA512_Update(ctx, indata, insize);
@@ -1286,7 +1286,7 @@ __archive_libmd_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_libmd_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
SHA512_Final(md, ctx);
return (ARCHIVE_OK);
@@ -1295,14 +1295,14 @@ __archive_libmd_sha512final(archive_sha512_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM)
static int
-__archive_libsystem_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
CC_SHA512_Init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_libsystem_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
CC_SHA512_Update(ctx, indata, insize);
@@ -1310,7 +1310,7 @@ __archive_libsystem_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_libsystem_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
CC_SHA512_Final(md, ctx);
return (ARCHIVE_OK);
@@ -1319,7 +1319,7 @@ __archive_libsystem_sha512final(archive_sha512_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS)
static int
-__archive_mbedtls_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
mbedtls_sha512_init(ctx);
if (mbedtls_sha512_starts_ret(ctx, 0) == 0)
@@ -1329,7 +1329,7 @@ __archive_mbedtls_sha512init(archive_sha512_ctx *ctx)
}
static int
-__archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0)
@@ -1339,7 +1339,7 @@ __archive_mbedtls_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
if (mbedtls_sha512_finish_ret(ctx, md) == 0) {
mbedtls_sha512_free(ctx);
@@ -1353,14 +1353,14 @@ __archive_mbedtls_sha512final(archive_sha512_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE)
static int
-__archive_nettle_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
sha512_init(ctx);
return (ARCHIVE_OK);
}
static int
-__archive_nettle_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
sha512_update(ctx, insize, indata);
@@ -1368,7 +1368,7 @@ __archive_nettle_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_nettle_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
sha512_digest(ctx, SHA512_DIGEST_SIZE, md);
return (ARCHIVE_OK);
@@ -1377,7 +1377,7 @@ __archive_nettle_sha512final(archive_sha512_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL)
static int
-__archive_openssl_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
if ((*ctx = EVP_MD_CTX_new()) == NULL)
return (ARCHIVE_FAILED);
@@ -1386,7 +1386,7 @@ __archive_openssl_sha512init(archive_sha512_ctx *ctx)
}
static int
-__archive_openssl_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
EVP_DigestUpdate(*ctx, indata, insize);
@@ -1394,7 +1394,7 @@ __archive_openssl_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_openssl_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
if (*ctx) {
EVP_DigestFinal(*ctx, md, NULL);
@@ -1407,20 +1407,20 @@ __archive_openssl_sha512final(archive_sha512_ctx *ctx, void *md)
#elif defined(ARCHIVE_CRYPTO_SHA512_WIN)
static int
-__archive_windowsapi_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
return (win_crypto_init(ctx, CALG_SHA_512));
}
static int
-__archive_windowsapi_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
return (win_crypto_Update(ctx, indata, insize));
}
static int
-__archive_windowsapi_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
return (win_crypto_Final(md, 64, ctx));
}
@@ -1428,14 +1428,14 @@ __archive_windowsapi_sha512final(archive_sha512_ctx *ctx, void *md)
#else
static int
-__archive_stub_sha512init(archive_sha512_ctx *ctx)
+__archive_sha512init(archive_sha512_ctx *ctx)
{
(void)ctx; /* UNUSED */
return (ARCHIVE_FAILED);
}
static int
-__archive_stub_sha512update(archive_sha512_ctx *ctx, const void *indata,
+__archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
size_t insize)
{
(void)ctx; /* UNUSED */
@@ -1445,7 +1445,7 @@ __archive_stub_sha512update(archive_sha512_ctx *ctx, const void *indata,
}
static int
-__archive_stub_sha512final(archive_sha512_ctx *ctx, void *md)
+__archive_sha512final(archive_sha512_ctx *ctx, void *md)
{
(void)ctx; /* UNUSED */
(void)md; /* UNUSED */
@@ -1468,224 +1468,32 @@ __archive_stub_sha512final(archive_sha512_ctx *ctx, void *md)
const struct archive_digest __archive_digest =
{
/* MD5 */
-#if defined(ARCHIVE_CRYPTO_MD5_LIBC)
- &__archive_libc_md5init,
- &__archive_libc_md5update,
- &__archive_libc_md5final,
-#elif defined(ARCHIVE_CRYPTO_MD5_LIBMD)
- &__archive_libmd_md5init,
- &__archive_libmd_md5update,
- &__archive_libmd_md5final,
-#elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM)
- &__archive_libsystem_md5init,
- &__archive_libsystem_md5update,
- &__archive_libsystem_md5final,
-#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS)
- &__archive_mbedtls_md5init,
- &__archive_mbedtls_md5update,
- &__archive_mbedtls_md5final,
-#elif defined(ARCHIVE_CRYPTO_MD5_NETTLE)
- &__archive_nettle_md5init,
- &__archive_nettle_md5update,
- &__archive_nettle_md5final,
-#elif defined(ARCHIVE_CRYPTO_MD5_OPENSSL)
- &__archive_openssl_md5init,
- &__archive_openssl_md5update,
- &__archive_openssl_md5final,
-#elif defined(ARCHIVE_CRYPTO_MD5_WIN)
- &__archive_windowsapi_md5init,
- &__archive_windowsapi_md5update,
- &__archive_windowsapi_md5final,
-#elif !defined(ARCHIVE_MD5_COMPILE_TEST)
- &__archive_stub_md5init,
- &__archive_stub_md5update,
- &__archive_stub_md5final,
-#endif
+ &__archive_md5init,
+ &__archive_md5update,
+ &__archive_md5final,
/* RIPEMD160 */
-#if defined(ARCHIVE_CRYPTO_RMD160_LIBC)
- &__archive_libc_ripemd160init,
- &__archive_libc_ripemd160update,
- &__archive_libc_ripemd160final,
-#elif defined(ARCHIVE_CRYPTO_RMD160_LIBMD)
- &__archive_libmd_ripemd160init,
- &__archive_libmd_ripemd160update,
- &__archive_libmd_ripemd160final,
-#elif defined(ARCHIVE_CRYPTO_RMD160_MBEDTLS)
- &__archive_mbedtls_ripemd160init,
- &__archive_mbedtls_ripemd160update,
- &__archive_mbedtls_ripemd160final,
-#elif defined(ARCHIVE_CRYPTO_RMD160_NETTLE)
- &__archive_nettle_ripemd160init,
- &__archive_nettle_ripemd160update,
- &__archive_nettle_ripemd160final,
-#elif defined(ARCHIVE_CRYPTO_RMD160_OPENSSL)
- &__archive_openssl_ripemd160init,
- &__archive_openssl_ripemd160update,
- &__archive_openssl_ripemd160final,
-#elif !defined(ARCHIVE_RMD160_COMPILE_TEST)
- &__archive_stub_ripemd160init,
- &__archive_stub_ripemd160update,
- &__archive_stub_ripemd160final,
-#endif
+ &__archive_ripemd160init,
+ &__archive_ripemd160update,
+ &__archive_ripemd160final,
/* SHA1 */
-#if defined(ARCHIVE_CRYPTO_SHA1_LIBC)
- &__archive_libc_sha1init,
- &__archive_libc_sha1update,
- &__archive_libc_sha1final,
-#elif defined(ARCHIVE_CRYPTO_SHA1_LIBMD)
- &__archive_libmd_sha1init,
- &__archive_libmd_sha1update,
- &__archive_libmd_sha1final,
-#elif defined(ARCHIVE_CRYPTO_SHA1_LIBSYSTEM)
- &__archive_libsystem_sha1init,
- &__archive_libsystem_sha1update,
- &__archive_libsystem_sha1final,
-#elif defined(ARCHIVE_CRYPTO_SHA1_MBEDTLS)
- &__archive_mbedtls_sha1init,
- &__archive_mbedtls_sha1update,
- &__archive_mbedtls_sha1final,
-#elif defined(ARCHIVE_CRYPTO_SHA1_NETTLE)
- &__archive_nettle_sha1init,
- &__archive_nettle_sha1update,
- &__archive_nettle_sha1final,
-#elif defined(ARCHIVE_CRYPTO_SHA1_OPENSSL)
- &__archive_openssl_sha1init,
- &__archive_openssl_sha1update,
- &__archive_openssl_sha1final,
-#elif defined(ARCHIVE_CRYPTO_SHA1_WIN)
- &__archive_windowsapi_sha1init,
- &__archive_windowsapi_sha1update,
- &__archive_windowsapi_sha1final,
-#elif !defined(ARCHIVE_SHA1_COMPILE_TEST)
- &__archive_stub_sha1init,
- &__archive_stub_sha1update,
- &__archive_stub_sha1final,
-#endif
+ &__archive_sha1init,
+ &__archive_sha1update,
+ &__archive_sha1final,
/* SHA256 */
-#if defined(ARCHIVE_CRYPTO_SHA256_LIBC)
- &__archive_libc_sha256init,
- &__archive_libc_sha256update,
- &__archive_libc_sha256final,
-#elif defined(ARCHIVE_CRYPTO_SHA256_LIBC2)
- &__archive_libc2_sha256init,
- &__archive_libc2_sha256update,
- &__archive_libc2_sha256final,
-#elif defined(ARCHIVE_CRYPTO_SHA256_LIBC3)
- &__archive_libc3_sha256init,
- &__archive_libc3_sha256update,
- &__archive_libc3_sha256final,
-#elif defined(ARCHIVE_CRYPTO_SHA256_LIBMD)
- &__archive_libmd_sha256init,
- &__archive_libmd_sha256update,
- &__archive_libmd_sha256final,
-#elif defined(ARCHIVE_CRYPTO_SHA256_LIBSYSTEM)
- &__archive_libsystem_sha256init,
- &__archive_libsystem_sha256update,
- &__archive_libsystem_sha256final,
-#elif defined(ARCHIVE_CRYPTO_SHA256_MBEDTLS)
- &__archive_mbedtls_sha256init,
- &__archive_mbedtls_sha256update,
- &__archive_mbedtls_sha256final,
-#elif defined(ARCHIVE_CRYPTO_SHA256_NETTLE)
- &__archive_nettle_sha256init,
- &__archive_nettle_sha256update,
- &__archive_nettle_sha256final,
-#elif defined(ARCHIVE_CRYPTO_SHA256_OPENSSL)
- &__archive_openssl_sha256init,
- &__archive_openssl_sha256update,
- &__archive_openssl_sha256final,
-#elif defined(ARCHIVE_CRYPTO_SHA256_WIN)
- &__archive_windowsapi_sha256init,
- &__archive_windowsapi_sha256update,
- &__archive_windowsapi_sha256final,
-#elif !defined(ARCHIVE_SHA256_COMPILE_TEST)
- &__archive_stub_sha256init,
- &__archive_stub_sha256update,
- &__archive_stub_sha256final,
-#endif
+ &__archive_sha256init,
+ &__archive_sha256update,
+ &__archive_sha256final,
/* SHA384 */
-#if defined(ARCHIVE_CRYPTO_SHA384_LIBC)
- &__archive_libc_sha384init,
- &__archive_libc_sha384update,
- &__archive_libc_sha384final,
-#elif defined(ARCHIVE_CRYPTO_SHA384_LIBC2)
- &__archive_libc2_sha384init,
- &__archive_libc2_sha384update,
- &__archive_libc2_sha384final,
-#elif defined(ARCHIVE_CRYPTO_SHA384_LIBC3)
- &__archive_libc3_sha384init,
- &__archive_libc3_sha384update,
- &__archive_libc3_sha384final,
-#elif defined(ARCHIVE_CRYPTO_SHA384_LIBSYSTEM)
- &__archive_libsystem_sha384init,
- &__archive_libsystem_sha384update,
- &__archive_libsystem_sha384final,
-#elif defined(ARCHIVE_CRYPTO_SHA384_MBEDTLS)
- &__archive_mbedtls_sha384init,
- &__archive_mbedtls_sha384update,
- &__archive_mbedtls_sha384final,
-#elif defined(ARCHIVE_CRYPTO_SHA384_NETTLE)
- &__archive_nettle_sha384init,
- &__archive_nettle_sha384update,
- &__archive_nettle_sha384final,
-#elif defined(ARCHIVE_CRYPTO_SHA384_OPENSSL)
- &__archive_openssl_sha384init,
- &__archive_openssl_sha384update,
- &__archive_openssl_sha384final,
-#elif defined(ARCHIVE_CRYPTO_SHA384_WIN)
- &__archive_windowsapi_sha384init,
- &__archive_windowsapi_sha384update,
- &__archive_windowsapi_sha384final,
-#elif !defined(ARCHIVE_SHA384_COMPILE_TEST)
- &__archive_stub_sha384init,
- &__archive_stub_sha384update,
- &__archive_stub_sha384final,
-#endif
+ &__archive_sha384init,
+ &__archive_sha384update,
+ &__archive_sha384final,
/* SHA512 */
-#if defined(ARCHIVE_CRYPTO_SHA512_LIBC)
- &__archive_libc_sha512init,
- &__archive_libc_sha512update,
- &__archive_libc_sha512final
-#elif defined(ARCHIVE_CRYPTO_SHA512_LIBC2)
- &__archive_libc2_sha512init,
- &__archive_libc2_sha512update,
- &__archive_libc2_sha512final
-#elif defined(ARCHIVE_CRYPTO_SHA512_LIBC3)
- &__archive_libc3_sha512init,
- &__archive_libc3_sha512update,
- &__archive_libc3_sha512final
-#elif defined(ARCHIVE_CRYPTO_SHA512_LIBMD)
- &__archive_libmd_sha512init,
- &__archive_libmd_sha512update,
- &__archive_libmd_sha512final
-#elif defined(ARCHIVE_CRYPTO_SHA512_LIBSYSTEM)
- &__archive_libsystem_sha512init,
- &__archive_libsystem_sha512update,
- &__archive_libsystem_sha512final
-#elif defined(ARCHIVE_CRYPTO_SHA512_MBEDTLS)
- &__archive_mbedtls_sha512init,
- &__archive_mbedtls_sha512update,
- &__archive_mbedtls_sha512final
-#elif defined(ARCHIVE_CRYPTO_SHA512_NETTLE)
- &__archive_nettle_sha512init,
- &__archive_nettle_sha512update,
- &__archive_nettle_sha512final
-#elif defined(ARCHIVE_CRYPTO_SHA512_OPENSSL)
- &__archive_openssl_sha512init,
- &__archive_openssl_sha512update,
- &__archive_openssl_sha512final
-#elif defined(ARCHIVE_CRYPTO_SHA512_WIN)
- &__archive_windowsapi_sha512init,
- &__archive_windowsapi_sha512update,
- &__archive_windowsapi_sha512final
-#elif !defined(ARCHIVE_SHA512_COMPILE_TEST)
- &__archive_stub_sha512init,
- &__archive_stub_sha512update,
- &__archive_stub_sha512final
-#endif
+ &__archive_sha512init,
+ &__archive_sha512update,
+ &__archive_sha512final
};
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_digest_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_digest_private.h
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_digest_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_digest_private.h
index 15312ee..9b3bd66 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_digest_private.h
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_digest_private.h
@@ -30,6 +30,10 @@
#ifndef __LIBARCHIVE_BUILD
#error This header is only to be used internally to libarchive.
#endif
+#ifndef __LIBARCHIVE_CONFIG_H_INCLUDED
+#error "Should have include config.h first!"
+#endif
+
/*
* Crypto support in various Operating Systems:
*
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_darwin.c b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_darwin.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_darwin.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_darwin.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_freebsd.c b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_freebsd.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_freebsd.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_freebsd.c
index aba41e5..ed4e7a7 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_freebsd.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_freebsd.c
@@ -319,7 +319,7 @@ translate_acl(struct archive_read_disk *a,
static int
set_acl(struct archive *a, int fd, const char *name,
- struct archive_acl *abstract_acl,
+ struct archive_acl *abstract_acl, __LA_MODE_T mode,
int ae_requested_type, const char *tname)
{
int acl_type = 0;
@@ -364,6 +364,13 @@ set_acl(struct archive *a, int fd, const char *name,
return (ARCHIVE_FAILED);
}
+ if (acl_type == ACL_TYPE_DEFAULT && !S_ISDIR(mode)) {
+ errno = EINVAL;
+ archive_set_error(a, errno,
+ "Cannot set default ACL on non-directory");
+ return (ARCHIVE_WARN);
+ }
+
acl = acl_init(entries);
if (acl == (acl_t)NULL) {
archive_set_error(a, errno,
@@ -542,7 +549,10 @@ set_acl(struct archive *a, int fd, const char *name,
else if (acl_set_link_np(name, acl_type, acl) != 0)
#else
/* FreeBSD older than 8.0 */
- else if (acl_set_file(name, acl_type, acl) != 0)
+ else if (S_ISLNK(mode)) {
+ /* acl_set_file() follows symbolic links, skip */
+ ret = ARCHIVE_OK;
+ } else if (acl_set_file(name, acl_type, acl) != 0)
#endif
{
if (errno == EOPNOTSUPP) {
@@ -677,14 +687,14 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name,
& ARCHIVE_ENTRY_ACL_TYPE_POSIX1E) != 0) {
if ((archive_acl_types(abstract_acl)
& ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) {
- ret = set_acl(a, fd, name, abstract_acl,
+ ret = set_acl(a, fd, name, abstract_acl, mode,
ARCHIVE_ENTRY_ACL_TYPE_ACCESS, "access");
if (ret != ARCHIVE_OK)
return (ret);
}
if ((archive_acl_types(abstract_acl)
& ARCHIVE_ENTRY_ACL_TYPE_DEFAULT) != 0)
- ret = set_acl(a, fd, name, abstract_acl,
+ ret = set_acl(a, fd, name, abstract_acl, mode,
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, "default");
/* Simultaneous POSIX.1e and NFSv4 is not supported */
@@ -693,7 +703,7 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name,
#if ARCHIVE_ACL_FREEBSD_NFS4
else if ((archive_acl_types(abstract_acl) &
ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) {
- ret = set_acl(a, fd, name, abstract_acl,
+ ret = set_acl(a, fd, name, abstract_acl, mode,
ARCHIVE_ENTRY_ACL_TYPE_NFS4, "nfs4");
}
#endif
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_linux.c b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_linux.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_linux.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_linux.c
index 3928f3d..31d2705 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_linux.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_linux.c
@@ -343,6 +343,11 @@ set_richacl(struct archive *a, int fd, const char *name,
return (ARCHIVE_FAILED);
}
+ if (S_ISLNK(mode)) {
+ /* Linux does not support RichACLs on symbolic links */
+ return (ARCHIVE_OK);
+ }
+
richacl = richacl_alloc(entries);
if (richacl == NULL) {
archive_set_error(a, errno,
@@ -455,7 +460,7 @@ exit_free:
#if ARCHIVE_ACL_LIBACL
static int
set_acl(struct archive *a, int fd, const char *name,
- struct archive_acl *abstract_acl,
+ struct archive_acl *abstract_acl, __LA_MODE_T mode,
int ae_requested_type, const char *tname)
{
int acl_type = 0;
@@ -488,6 +493,18 @@ set_acl(struct archive *a, int fd, const char *name,
return (ARCHIVE_FAILED);
}
+ if (S_ISLNK(mode)) {
+ /* Linux does not support ACLs on symbolic links */
+ return (ARCHIVE_OK);
+ }
+
+ if (acl_type == ACL_TYPE_DEFAULT && !S_ISDIR(mode)) {
+ errno = EINVAL;
+ archive_set_error(a, errno,
+ "Cannot set default ACL on non-directory");
+ return (ARCHIVE_WARN);
+ }
+
acl = acl_init(entries);
if (acl == (acl_t)NULL) {
archive_set_error(a, errno,
@@ -727,14 +744,14 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name,
& ARCHIVE_ENTRY_ACL_TYPE_POSIX1E) != 0) {
if ((archive_acl_types(abstract_acl)
& ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0) {
- ret = set_acl(a, fd, name, abstract_acl,
+ ret = set_acl(a, fd, name, abstract_acl, mode,
ARCHIVE_ENTRY_ACL_TYPE_ACCESS, "access");
if (ret != ARCHIVE_OK)
return (ret);
}
if ((archive_acl_types(abstract_acl)
& ARCHIVE_ENTRY_ACL_TYPE_DEFAULT) != 0)
- ret = set_acl(a, fd, name, abstract_acl,
+ ret = set_acl(a, fd, name, abstract_acl, mode,
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, "default");
}
#endif /* ARCHIVE_ACL_LIBACL */
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_sunos.c b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_sunos.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_sunos.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_sunos.c
index b0f5dfa..0ef3ad5 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_disk_acl_sunos.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_disk_acl_sunos.c
@@ -443,7 +443,7 @@ translate_acl(struct archive_read_disk *a,
static int
set_acl(struct archive *a, int fd, const char *name,
- struct archive_acl *abstract_acl,
+ struct archive_acl *abstract_acl, __LA_MODE_T mode,
int ae_requested_type, const char *tname)
{
aclent_t *aclent;
@@ -467,7 +467,6 @@ set_acl(struct archive *a, int fd, const char *name,
if (entries == 0)
return (ARCHIVE_OK);
-
switch (ae_requested_type) {
case ARCHIVE_ENTRY_ACL_TYPE_POSIX1E:
cmd = SETACL;
@@ -492,6 +491,12 @@ set_acl(struct archive *a, int fd, const char *name,
return (ARCHIVE_FAILED);
}
+ if (S_ISLNK(mode)) {
+ /* Skip ACLs on symbolic links */
+ ret = ARCHIVE_OK;
+ goto exit_free;
+ }
+
e = 0;
while (archive_acl_next(a, abstract_acl, ae_requested_type, &ae_type,
@@ -801,7 +806,7 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name,
if ((archive_acl_types(abstract_acl)
& ARCHIVE_ENTRY_ACL_TYPE_POSIX1E) != 0) {
/* Solaris writes POSIX.1e access and default ACLs together */
- ret = set_acl(a, fd, name, abstract_acl,
+ ret = set_acl(a, fd, name, abstract_acl, mode,
ARCHIVE_ENTRY_ACL_TYPE_POSIX1E, "posix1e");
/* Simultaneous POSIX.1e and NFSv4 is not supported */
@@ -810,7 +815,7 @@ archive_write_disk_set_acls(struct archive *a, int fd, const char *name,
#if ARCHIVE_ACL_SUNOS_NFS4
else if ((archive_acl_types(abstract_acl) &
ARCHIVE_ENTRY_ACL_TYPE_NFS4) != 0) {
- ret = set_acl(a, fd, name, abstract_acl,
+ ret = set_acl(a, fd, name, abstract_acl, mode,
ARCHIVE_ENTRY_ACL_TYPE_NFS4, "nfs4");
}
#endif
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_endian.h b/dependencies/libarchive-3.5.2/libarchive/archive_endian.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_endian.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_endian.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry.c
similarity index 96%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry.c
index a15e98c..ca7a4bd 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_entry.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_entry.c
@@ -208,6 +208,19 @@ archive_entry_clone(struct archive_entry *entry)
/* Copy encryption status */
entry2->encryption = entry->encryption;
+
+ /* Copy digests */
+#define copy_digest(_e2, _e, _t) \
+ memcpy(_e2->digest._t, _e->digest._t, sizeof(_e2->digest._t))
+
+ copy_digest(entry2, entry, md5);
+ copy_digest(entry2, entry, rmd160);
+ copy_digest(entry2, entry, sha1);
+ copy_digest(entry2, entry, sha256);
+ copy_digest(entry2, entry, sha384);
+ copy_digest(entry2, entry, sha512);
+
+#undef copy_digest
/* Copy ACL data over. */
archive_acl_copy(&entry2->acl, &entry->acl);
@@ -353,7 +366,7 @@ archive_entry_devminor(struct archive_entry *entry)
return minor(entry->ae_stat.aest_dev);
}
-mode_t
+__LA_MODE_T
archive_entry_filetype(struct archive_entry *entry)
{
return (AE_IFMT & entry->acl.mode);
@@ -450,7 +463,7 @@ int
_archive_entry_gname_l(struct archive_entry *entry,
const char **p, size_t *len, struct archive_string_conv *sc)
{
- return (archive_mstring_get_mbs_l(&entry->ae_gname, p, len, sc));
+ return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_gname, p, len, sc));
}
const char *
@@ -504,7 +517,7 @@ _archive_entry_hardlink_l(struct archive_entry *entry,
*len = 0;
return (0);
}
- return (archive_mstring_get_mbs_l(&entry->ae_hardlink, p, len, sc));
+ return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_hardlink, p, len, sc));
}
la_int64_t
@@ -525,7 +538,7 @@ archive_entry_ino64(struct archive_entry *entry)
return (entry->ae_stat.aest_ino);
}
-mode_t
+__LA_MODE_T
archive_entry_mode(struct archive_entry *entry)
{
return (entry->acl.mode);
@@ -595,10 +608,10 @@ int
_archive_entry_pathname_l(struct archive_entry *entry,
const char **p, size_t *len, struct archive_string_conv *sc)
{
- return (archive_mstring_get_mbs_l(&entry->ae_pathname, p, len, sc));
+ return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_pathname, p, len, sc));
}
-mode_t
+__LA_MODE_T
archive_entry_perm(struct archive_entry *entry)
{
return (~AE_IFMT & entry->acl.mode);
@@ -723,7 +736,7 @@ _archive_entry_symlink_l(struct archive_entry *entry,
*len = 0;
return (0);
}
- return (archive_mstring_get_mbs_l( &entry->ae_symlink, p, len, sc));
+ return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_symlink, p, len, sc));
}
la_int64_t
@@ -769,7 +782,7 @@ int
_archive_entry_uname_l(struct archive_entry *entry,
const char **p, size_t *len, struct archive_string_conv *sc)
{
- return (archive_mstring_get_mbs_l(&entry->ae_uname, p, len, sc));
+ return (archive_mstring_get_mbs_l(entry->archive, &entry->ae_uname, p, len, sc));
}
int
@@ -1416,6 +1429,62 @@ archive_entry_copy_mac_metadata(struct archive_entry *entry,
}
}
+/* Digest handling */
+const unsigned char *
+archive_entry_digest(struct archive_entry *entry, int type)
+{
+ switch (type) {
+ case ARCHIVE_ENTRY_DIGEST_MD5:
+ return entry->digest.md5;
+ case ARCHIVE_ENTRY_DIGEST_RMD160:
+ return entry->digest.rmd160;
+ case ARCHIVE_ENTRY_DIGEST_SHA1:
+ return entry->digest.sha1;
+ case ARCHIVE_ENTRY_DIGEST_SHA256:
+ return entry->digest.sha256;
+ case ARCHIVE_ENTRY_DIGEST_SHA384:
+ return entry->digest.sha384;
+ case ARCHIVE_ENTRY_DIGEST_SHA512:
+ return entry->digest.sha512;
+ default:
+ return NULL;
+ }
+}
+
+int
+archive_entry_set_digest(struct archive_entry *entry, int type,
+ const unsigned char *digest)
+{
+#define copy_digest(_e, _t, _d)\
+ memcpy(_e->digest._t, _d, sizeof(_e->digest._t))
+
+ switch (type) {
+ case ARCHIVE_ENTRY_DIGEST_MD5:
+ copy_digest(entry, md5, digest);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_RMD160:
+ copy_digest(entry, rmd160, digest);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_SHA1:
+ copy_digest(entry, sha1, digest);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_SHA256:
+ copy_digest(entry, sha256, digest);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_SHA384:
+ copy_digest(entry, sha384, digest);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_SHA512:
+ copy_digest(entry, sha512, digest);
+ break;
+ default:
+ return ARCHIVE_WARN;
+ }
+
+ return ARCHIVE_OK;
+#undef copy_digest
+}
+
/*
* ACL management. The following would, of course, be a lot simpler
* if: 1) the last draft of POSIX.1e were a really thorough and
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry.h b/dependencies/libarchive-3.5.2/libarchive/archive_entry.h
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry.h
index 42af208..bfba54f 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_entry.h
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_entry.h
@@ -30,7 +30,7 @@
#define ARCHIVE_ENTRY_H_INCLUDED
/* Note: Compiler will complain if this does not match archive.h! */
-#define ARCHIVE_VERSION_NUMBER 3004002
+#define ARCHIVE_VERSION_NUMBER 3005002
/*
* Note: archive_entry.h is for use outside of libarchive; the
@@ -396,6 +396,19 @@ __LA_DECL void archive_entry_copy_stat(struct archive_entry *, const struct stat
__LA_DECL const void * archive_entry_mac_metadata(struct archive_entry *, size_t *);
__LA_DECL void archive_entry_copy_mac_metadata(struct archive_entry *, const void *, size_t);
+/*
+ * Digest routine. This is used to query the raw hex digest for the
+ * given entry. The type of digest is provided as an argument.
+ */
+#define ARCHIVE_ENTRY_DIGEST_MD5 0x00000001
+#define ARCHIVE_ENTRY_DIGEST_RMD160 0x00000002
+#define ARCHIVE_ENTRY_DIGEST_SHA1 0x00000003
+#define ARCHIVE_ENTRY_DIGEST_SHA256 0x00000004
+#define ARCHIVE_ENTRY_DIGEST_SHA384 0x00000005
+#define ARCHIVE_ENTRY_DIGEST_SHA512 0x00000006
+
+__LA_DECL const unsigned char * archive_entry_digest(struct archive_entry *, int /* type */);
+
/*
* ACL routines. This used to simply store and return text-format ACL
* strings, but that proved insufficient for a number of reasons:
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_acl.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_acl.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_acl.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_acl.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_copy_bhfi.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_copy_bhfi.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_copy_bhfi.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_copy_bhfi.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_copy_stat.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_copy_stat.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_copy_stat.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_copy_stat.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_link_resolver.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_link_resolver.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_link_resolver.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_link_resolver.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_linkify.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_linkify.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_linkify.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_linkify.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_locale.h b/dependencies/libarchive-3.5.2/libarchive/archive_entry_locale.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_locale.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_locale.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_misc.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_misc.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_misc.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_misc.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_paths.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_paths.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_paths.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_paths.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_perms.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_perms.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_perms.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_perms.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_entry_private.h
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_private.h
index 2b9a084..cf4deb2 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_entry_private.h
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_entry_private.h
@@ -50,6 +50,15 @@ struct ae_sparse {
int64_t length;
};
+struct ae_digest {
+ unsigned char md5[16];
+ unsigned char rmd160[20];
+ unsigned char sha1[20];
+ unsigned char sha256[32];
+ unsigned char sha384[48];
+ unsigned char sha512[64];
+};
+
/*
* Description of an archive entry.
*
@@ -162,6 +171,9 @@ struct archive_entry {
void *mac_metadata;
size_t mac_metadata_size;
+ /* Digest support. */
+ struct ae_digest digest;
+
/* ACL support. */
struct archive_acl acl;
@@ -181,4 +193,8 @@ struct archive_entry {
int ae_symlink_type;
};
+int
+archive_entry_set_digest(struct archive_entry *entry, int type,
+ const unsigned char *digest);
+
#endif /* ARCHIVE_ENTRY_PRIVATE_H_INCLUDED */
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_sparse.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_sparse.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_sparse.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_sparse.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.3
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.3
index aa5c8e0..29a53f7 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.3
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.3
@@ -215,9 +215,9 @@ and
set and unset the size, respectively.
.Pp
The number of references (hardlinks) can be obtained by calling
-.Fn archive_entry_nlinks
+.Fn archive_entry_nlink
and set with
-.Fn archive_entry_set_nlinks .
+.Fn archive_entry_set_nlink .
.Ss Identifying unique files
The functions
.Fn archive_entry_dev
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_stat.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_stat.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_strmode.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_strmode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_strmode.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_strmode.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_time.3 b/dependencies/libarchive-3.5.2/libarchive/archive_entry_time.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_time.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_time.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_entry_xattr.c b/dependencies/libarchive-3.5.2/libarchive/archive_entry_xattr.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_entry_xattr.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_entry_xattr.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_getdate.c b/dependencies/libarchive-3.5.2/libarchive/archive_getdate.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_getdate.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_getdate.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_getdate.h b/dependencies/libarchive-3.5.2/libarchive/archive_getdate.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_getdate.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_getdate.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_hmac.c b/dependencies/libarchive-3.5.2/libarchive/archive_hmac.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_hmac.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_hmac.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_hmac_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_hmac_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_hmac_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_hmac_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_match.c b/dependencies/libarchive-3.5.2/libarchive/archive_match.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_match.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_match.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_openssl_evp_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_openssl_evp_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_openssl_evp_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_openssl_evp_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_openssl_hmac_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_openssl_hmac_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_openssl_hmac_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_openssl_hmac_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_options.c b/dependencies/libarchive-3.5.2/libarchive/archive_options.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_options.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_options.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_options_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_options_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_options_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_options_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_pack_dev.c b/dependencies/libarchive-3.5.2/libarchive/archive_pack_dev.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_pack_dev.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_pack_dev.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_pack_dev.h b/dependencies/libarchive-3.5.2/libarchive/archive_pack_dev.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_pack_dev.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_pack_dev.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.c b/dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.c
index 619e2b6..0867a26 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.c
@@ -384,6 +384,8 @@ __archive_pathmatch(const char *p, const char *s, int flags)
/* Empty pattern only matches the empty string. */
if (p == NULL || *p == '\0')
return (s == NULL || *s == '\0');
+ else if (s == NULL)
+ return (0);
/* Leading '^' anchors the start of the pattern. */
if (*p == '^') {
@@ -424,6 +426,8 @@ __archive_pathmatch_w(const wchar_t *p, const wchar_t *s, int flags)
/* Empty pattern only matches the empty string. */
if (p == NULL || *p == L'\0')
return (s == NULL || *s == L'\0');
+ else if (s == NULL)
+ return (0);
/* Leading '^' anchors the start of the pattern. */
if (*p == L'^') {
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.h b/dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_pathmatch.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_pathmatch.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_platform.h b/dependencies/libarchive-3.5.2/libarchive/archive_platform.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_platform.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_platform.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_platform_acl.h b/dependencies/libarchive-3.5.2/libarchive/archive_platform_acl.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_platform_acl.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_platform_acl.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_platform_xattr.h b/dependencies/libarchive-3.5.2/libarchive/archive_platform_xattr.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_platform_xattr.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_platform_xattr.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd7.c b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd7.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd7.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd7.c
index 4029395..cc3f778 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd7.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd7.c
@@ -4,7 +4,7 @@ This code is based on PPMd var.H (2001): Dmitry Shkarin : Public domain */
#include "archive_platform.h"
-#include
+#include
#include "archive_ppmd7_private.h"
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd7_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd7_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd7_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd7_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd8.c b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd8.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd8.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd8.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd8_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd8_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd8_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd8_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_ppmd_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_ppmd_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_ppmd_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_ppmd_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_private.h
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_private.h
index 937a87b..55a8da1 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_private.h
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_private.h
@@ -46,6 +46,13 @@
#define __LA_DEAD
#endif
+#if defined(__GNUC__) && (__GNUC__ > 2 || \
+ (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
+#define __LA_UNUSED __attribute__((__unused__))
+#else
+#define __LA_UNUSED
+#endif
+
#define ARCHIVE_WRITE_MAGIC (0xb0c5c0deU)
#define ARCHIVE_READ_MAGIC (0xdeb0c5U)
#define ARCHIVE_WRITE_DISK_MAGIC (0xc001b0c5U)
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_random.c b/dependencies/libarchive-3.5.2/libarchive/archive_random.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_random.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_random.c
index 65ea691..9d1aa49 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_random.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_random.c
@@ -173,7 +173,7 @@ arc4_init(void)
}
static inline void
-arc4_addrandom(u_char *dat, int datlen)
+arc4_addrandom(uint8_t *dat, int datlen)
{
int n;
uint8_t si;
@@ -196,7 +196,7 @@ arc4_stir(void)
struct {
struct timeval tv;
pid_t pid;
- u_char rnd[KEYSIZE];
+ uint8_t rnd[KEYSIZE];
} rdat;
if (!rs_initialized) {
@@ -216,7 +216,7 @@ arc4_stir(void)
/* We'll just take whatever was on the stack too... */
}
- arc4_addrandom((u_char *)&rdat, KEYSIZE);
+ arc4_addrandom((uint8_t *)&rdat, KEYSIZE);
/*
* Discard early keystream, as per recommendations in:
@@ -258,7 +258,7 @@ arc4_getbyte(void)
static void
arc4random_buf(void *_buf, size_t n)
{
- u_char *buf = (u_char *)_buf;
+ uint8_t *buf = (uint8_t *)_buf;
_ARC4_LOCK();
arc4_stir_if_needed();
while (n--) {
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_random_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_random_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_random_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_random_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_rb.c b/dependencies/libarchive-3.5.2/libarchive/archive_rb.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_rb.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_rb.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_rb.h b/dependencies/libarchive-3.5.2/libarchive/archive_rb.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_rb.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_rb.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read.c b/dependencies/libarchive-3.5.2/libarchive/archive_read.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read.c
index 4a933b2..c59f051 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read.c
@@ -892,15 +892,16 @@ archive_read_data(struct archive *_a, void *buff, size_t s)
len = a->read_data_remaining;
if (len > s)
len = s;
- if (len)
+ if (len) {
memcpy(dest, a->read_data_block, len);
- s -= len;
- a->read_data_block += len;
- a->read_data_remaining -= len;
- a->read_data_output_offset += len;
- a->read_data_offset += len;
- dest += len;
- bytes_read += len;
+ s -= len;
+ a->read_data_block += len;
+ a->read_data_remaining -= len;
+ a->read_data_output_offset += len;
+ a->read_data_offset += len;
+ dest += len;
+ bytes_read += len;
+ }
}
}
a->read_data_is_posix_read = 0;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.c
index cf821b5..f0b1ab9 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_add_passphrase.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_add_passphrase.c
@@ -57,6 +57,10 @@ insert_passphrase_to_head(struct archive_read *a,
{
p->next = a->passphrases.first;
a->passphrases.first = p;
+ if (&a->passphrases.first == a->passphrases.last) {
+ a->passphrases.last = &p->next;
+ p->next = NULL;
+ }
}
static struct archive_read_passphrase *
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_append_filter.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_append_filter.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_append_filter.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_append_filter.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_data.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_data.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_data.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_data.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_data_into_fd.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_data_into_fd.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_data_into_fd.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_data_into_fd.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_entry_from_file.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_entry_from_file.c
similarity index 96%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_entry_from_file.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_entry_from_file.c
index 2a8cec8..9c9cf38 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_entry_from_file.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_entry_from_file.c
@@ -103,6 +103,10 @@ __FBSDID("$FreeBSD");
static int setup_mac_metadata(struct archive_read_disk *,
struct archive_entry *, int *fd);
+#ifdef ARCHIVE_XATTR_FREEBSD
+static int setup_xattrs_namespace(struct archive_read_disk *,
+ struct archive_entry *, int *, int);
+#endif
static int setup_xattrs(struct archive_read_disk *,
struct archive_entry *, int *fd);
static int setup_sparse(struct archive_read_disk *,
@@ -701,14 +705,13 @@ setup_xattr(struct archive_read_disk *a, struct archive_entry *entry,
}
static int
-setup_xattrs(struct archive_read_disk *a,
- struct archive_entry *entry, int *fd)
+setup_xattrs_namespace(struct archive_read_disk *a,
+ struct archive_entry *entry, int *fd, int namespace)
{
char buff[512];
char *list, *p;
ssize_t list_size;
const char *path;
- int namespace = EXTATTR_NAMESPACE_USER;
path = NULL;
@@ -727,6 +730,8 @@ setup_xattrs(struct archive_read_disk *a,
if (list_size == -1 && errno == EOPNOTSUPP)
return (ARCHIVE_OK);
+ if (list_size == -1 && errno == EPERM)
+ return (ARCHIVE_OK);
if (list_size == -1) {
archive_set_error(&a->archive, errno,
"Couldn't list extended attributes");
@@ -760,7 +765,17 @@ setup_xattrs(struct archive_read_disk *a,
size_t len = 255 & (int)*p;
char *name;
- strcpy(buff, "user.");
+ if (namespace == EXTATTR_NAMESPACE_SYSTEM) {
+ if (!strcmp(p + 1, "nfs4.acl") ||
+ !strcmp(p + 1, "posix1e.acl_access") ||
+ !strcmp(p + 1, "posix1e.acl_default")) {
+ p += 1 + len;
+ continue;
+ }
+ strcpy(buff, "system.");
+ } else {
+ strcpy(buff, "user.");
+ }
name = buff + strlen(buff);
memcpy(name, p + 1, len);
name[len] = '\0';
@@ -772,6 +787,31 @@ setup_xattrs(struct archive_read_disk *a,
return (ARCHIVE_OK);
}
+static int
+setup_xattrs(struct archive_read_disk *a,
+ struct archive_entry *entry, int *fd)
+{
+ int namespaces[2];
+ int i, res;
+
+ namespaces[0] = EXTATTR_NAMESPACE_USER;
+ namespaces[1] = EXTATTR_NAMESPACE_SYSTEM;
+
+ for (i = 0; i < 2; i++) {
+ res = setup_xattrs_namespace(a, entry, fd,
+ namespaces[i]);
+ switch (res) {
+ case (ARCHIVE_OK):
+ case (ARCHIVE_WARN):
+ break;
+ default:
+ return (res);
+ }
+ }
+
+ return (ARCHIVE_OK);
+}
+
#else
/*
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_posix.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_posix.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_posix.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_posix.c
index 52fec7b..3ee6269 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_posix.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_posix.c
@@ -1522,8 +1522,40 @@ get_xfer_size(struct tree *t, int fd, const char *path)
}
#endif
-#if defined(HAVE_STATFS) && defined(HAVE_FSTATFS) && defined(MNT_LOCAL) \
- && !defined(ST_LOCAL)
+#if defined(HAVE_STATVFS)
+static inline __LA_UNUSED void
+set_statvfs_transfer_size(struct filesystem *fs, const struct statvfs *sfs)
+{
+ fs->xfer_align = sfs->f_frsize > 0 ? (long)sfs->f_frsize : -1;
+ fs->max_xfer_size = -1;
+#if defined(HAVE_STRUCT_STATVFS_F_IOSIZE)
+ fs->min_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1;
+ fs->incr_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1;
+#else
+ fs->min_xfer_size = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1;
+ fs->incr_xfer_size = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1;
+#endif
+}
+#endif
+
+#if defined(HAVE_STRUCT_STATFS)
+static inline __LA_UNUSED void
+set_statfs_transfer_size(struct filesystem *fs, const struct statfs *sfs)
+{
+ fs->xfer_align = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1;
+ fs->max_xfer_size = -1;
+#if defined(HAVE_STRUCT_STATFS_F_IOSIZE)
+ fs->min_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1;
+ fs->incr_xfer_size = sfs->f_iosize > 0 ? (long)sfs->f_iosize : -1;
+#else
+ fs->min_xfer_size = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1;
+ fs->incr_xfer_size = sfs->f_bsize > 0 ? (long)sfs->f_bsize : -1;
+#endif
+}
+#endif
+
+#if defined(HAVE_STRUCT_STATFS) && defined(HAVE_STATFS) && \
+ defined(HAVE_FSTATFS) && defined(MNT_LOCAL) && !defined(ST_LOCAL)
/*
* Gather current filesystem properties on FreeBSD, OpenBSD and Mac OS X.
@@ -1593,10 +1625,7 @@ setup_current_filesystem(struct archive_read_disk *a)
return (ARCHIVE_FAILED);
} else if (xr == 1) {
/* pathconf(_PC_REX_*) operations are not supported. */
- t->current_filesystem->xfer_align = sfs.f_bsize;
- t->current_filesystem->max_xfer_size = -1;
- t->current_filesystem->min_xfer_size = sfs.f_iosize;
- t->current_filesystem->incr_xfer_size = sfs.f_iosize;
+ set_statfs_transfer_size(t->current_filesystem, &sfs);
}
if (sfs.f_flags & MNT_LOCAL)
t->current_filesystem->remote = 0;
@@ -1658,7 +1687,7 @@ static int
setup_current_filesystem(struct archive_read_disk *a)
{
struct tree *t = a->tree;
- struct statvfs sfs;
+ struct statvfs svfs;
int r, xr = 0;
t->current_filesystem->synthetic = -1;
@@ -1667,16 +1696,16 @@ setup_current_filesystem(struct archive_read_disk *a)
return (ARCHIVE_FAILED);
}
if (tree_current_is_symblic_link_target(t)) {
- r = statvfs(tree_current_access_path(t), &sfs);
+ r = statvfs(tree_current_access_path(t), &svfs);
if (r == 0)
xr = get_xfer_size(t, -1, tree_current_access_path(t));
} else {
#ifdef HAVE_FSTATVFS
- r = fstatvfs(tree_current_dir_fd(t), &sfs);
+ r = fstatvfs(tree_current_dir_fd(t), &svfs);
if (r == 0)
xr = get_xfer_size(t, tree_current_dir_fd(t), NULL);
#else
- r = statvfs(".", &sfs);
+ r = statvfs(".", &svfs);
if (r == 0)
xr = get_xfer_size(t, -1, ".");
#endif
@@ -1688,30 +1717,22 @@ setup_current_filesystem(struct archive_read_disk *a)
} else if (xr == 1) {
/* Usually come here unless NetBSD supports _PC_REC_XFER_ALIGN
* for pathconf() function. */
- t->current_filesystem->xfer_align = sfs.f_frsize;
- t->current_filesystem->max_xfer_size = -1;
-#if defined(HAVE_STRUCT_STATVFS_F_IOSIZE)
- t->current_filesystem->min_xfer_size = sfs.f_iosize;
- t->current_filesystem->incr_xfer_size = sfs.f_iosize;
-#else
- t->current_filesystem->min_xfer_size = sfs.f_bsize;
- t->current_filesystem->incr_xfer_size = sfs.f_bsize;
-#endif
+ set_statvfs_transfer_size(t->current_filesystem, &svfs);
}
- if (sfs.f_flag & ST_LOCAL)
+ if (svfs.f_flag & ST_LOCAL)
t->current_filesystem->remote = 0;
else
t->current_filesystem->remote = 1;
#if defined(ST_NOATIME)
- if (sfs.f_flag & ST_NOATIME)
+ if (svfs.f_flag & ST_NOATIME)
t->current_filesystem->noatime = 1;
else
#endif
t->current_filesystem->noatime = 0;
/* Set maximum filename length. */
- t->current_filesystem->name_max = sfs.f_namemax;
+ t->current_filesystem->name_max = svfs.f_namemax;
return (ARCHIVE_OK);
}
@@ -1803,15 +1824,9 @@ setup_current_filesystem(struct archive_read_disk *a)
} else if (xr == 1) {
/* pathconf(_PC_REX_*) operations are not supported. */
#if defined(HAVE_STATVFS)
- t->current_filesystem->xfer_align = svfs.f_frsize;
- t->current_filesystem->max_xfer_size = -1;
- t->current_filesystem->min_xfer_size = svfs.f_bsize;
- t->current_filesystem->incr_xfer_size = svfs.f_bsize;
+ set_statvfs_transfer_size(t->current_filesystem, &svfs);
#else
- t->current_filesystem->xfer_align = sfs.f_frsize;
- t->current_filesystem->max_xfer_size = -1;
- t->current_filesystem->min_xfer_size = sfs.f_bsize;
- t->current_filesystem->incr_xfer_size = sfs.f_bsize;
+ set_statfs_transfer_size(t->current_filesystem, &sfs);
#endif
}
switch (sfs.f_type) {
@@ -1840,7 +1855,7 @@ setup_current_filesystem(struct archive_read_disk *a)
#if defined(HAVE_STATVFS)
if (svfs.f_flag & ST_NOATIME)
#else
- if (sfs.f_flag & ST_NOATIME)
+ if (sfs.f_flags & ST_NOATIME)
#endif
t->current_filesystem->noatime = 1;
else
@@ -1864,7 +1879,7 @@ static int
setup_current_filesystem(struct archive_read_disk *a)
{
struct tree *t = a->tree;
- struct statvfs sfs;
+ struct statvfs svfs;
int r, xr = 0;
t->current_filesystem->synthetic = -1;/* Not supported */
@@ -1883,7 +1898,7 @@ setup_current_filesystem(struct archive_read_disk *a)
"openat failed");
return (ARCHIVE_FAILED);
}
- r = fstatvfs(fd, &sfs);
+ r = fstatvfs(fd, &svfs);
if (r == 0)
xr = get_xfer_size(t, fd, NULL);
close(fd);
@@ -1892,13 +1907,13 @@ setup_current_filesystem(struct archive_read_disk *a)
archive_set_error(&a->archive, errno, "fchdir failed");
return (ARCHIVE_FAILED);
}
- r = statvfs(tree_current_access_path(t), &sfs);
+ r = statvfs(tree_current_access_path(t), &svfs);
if (r == 0)
xr = get_xfer_size(t, -1, tree_current_access_path(t));
#endif
} else {
#ifdef HAVE_FSTATVFS
- r = fstatvfs(tree_current_dir_fd(t), &sfs);
+ r = fstatvfs(tree_current_dir_fd(t), &svfs);
if (r == 0)
xr = get_xfer_size(t, tree_current_dir_fd(t), NULL);
#else
@@ -1906,7 +1921,7 @@ setup_current_filesystem(struct archive_read_disk *a)
archive_set_error(&a->archive, errno, "fchdir failed");
return (ARCHIVE_FAILED);
}
- r = statvfs(".", &sfs);
+ r = statvfs(".", &svfs);
if (r == 0)
xr = get_xfer_size(t, -1, ".");
#endif
@@ -1918,14 +1933,11 @@ setup_current_filesystem(struct archive_read_disk *a)
return (ARCHIVE_FAILED);
} else if (xr == 1) {
/* pathconf(_PC_REX_*) operations are not supported. */
- t->current_filesystem->xfer_align = sfs.f_frsize;
- t->current_filesystem->max_xfer_size = -1;
- t->current_filesystem->min_xfer_size = sfs.f_bsize;
- t->current_filesystem->incr_xfer_size = sfs.f_bsize;
+ set_statvfs_transfer_size(t->current_filesystem, &svfs);
}
#if defined(ST_NOATIME)
- if (sfs.f_flag & ST_NOATIME)
+ if (svfs.f_flag & ST_NOATIME)
t->current_filesystem->noatime = 1;
else
#endif
@@ -1933,7 +1945,7 @@ setup_current_filesystem(struct archive_read_disk *a)
#if defined(USE_READDIR_R)
/* Set maximum filename length. */
- t->current_filesystem->name_max = sfs.f_namemax;
+ t->current_filesystem->name_max = svfs.f_namemax;
#endif
return (ARCHIVE_OK);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_set_standard_lookup.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_set_standard_lookup.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_set_standard_lookup.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_set_standard_lookup.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_windows.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_windows.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_disk_windows.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_disk_windows.c
index fdd376f..877bc44 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_disk_windows.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_disk_windows.c
@@ -1844,7 +1844,7 @@ tree_next(struct tree *t)
continue;
return (r);
} else {
- HANDLE h = FindFirstFileW(d, &t->_findData);
+ HANDLE h = FindFirstFileW(t->stack->full_path.s, &t->_findData);
if (h == INVALID_HANDLE_VALUE) {
la_dosmaperr(GetLastError());
t->tree_errno = errno;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_extract.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_extract.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_extract.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_extract.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_extract.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_extract.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_extract.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_extract.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_extract2.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_extract2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_extract2.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_extract2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_filter.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_filter.3
similarity index 92%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_filter.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_filter.3
index 1ba5fcb..4f5c351 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_filter.3
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_filter.3
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 14, 2014
+.Dd June 9, 2020
.Dt ARCHIVE_READ_FILTER 3
.Os
.Sh NAME
@@ -50,6 +50,8 @@ Streaming Archive Library (libarchive, -larchive)
.Ft int
.Fn archive_read_support_filter_all "struct archive *"
.Ft int
+.Fn archive_read_support_filter_by_code "struct archive *" "int"
+.Ft int
.Fn archive_read_support_filter_bzip2 "struct archive *"
.Ft int
.Fn archive_read_support_filter_compress "struct archive *"
@@ -116,6 +118,14 @@ Note that
is always enabled by default.
.It Fn archive_read_support_filter_all
Enables all available decompression filters.
+.It Fn archive_read_support_filter_by_code
+Enables a single filter specified by the filter code.
+This function does not work with
+.Cm ARCHIVE_FILTER_PROGRAM .
+Note: In statically-linked executables, this will cause
+your program to include support for every filter.
+If executable size is a concern, you may wish to avoid
+using this function.
.It Fn archive_read_support_filter_program
Data is fed through the specified external program before being dearchived.
Note that this disables automatic detection of the compression format,
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_format.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_format.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_format.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_format.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_free.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_free.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_free.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_free.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_header.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_header.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_header.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_header.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_new.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_new.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_new.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_new.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_open.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_fd.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_fd.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open_fd.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open_fd.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_file.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_file.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open_file.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open_file.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_filename.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_filename.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open_filename.c
index 86635e2..561289b 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_filename.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_filename.c
@@ -221,7 +221,9 @@ file_open(struct archive *a, void *client_data)
struct read_file_data *mine = (struct read_file_data *)client_data;
void *buffer;
const char *filename = NULL;
+#if defined(_WIN32) && !defined(__CYGWIN__)
const wchar_t *wfilename = NULL;
+#endif
int fd = -1;
int is_disk_like = 0;
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
@@ -281,10 +283,12 @@ file_open(struct archive *a, void *client_data)
#endif
}
if (fstat(fd, &st) != 0) {
+#if defined(_WIN32) && !defined(__CYGWIN__)
if (mine->filename_type == FNT_WCS)
archive_set_error(a, errno, "Can't stat '%S'",
wfilename);
else
+#endif
archive_set_error(a, errno, "Can't stat '%s'",
filename);
goto fail;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_open_memory.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_open_memory.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_open_memory.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_open_memory.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_read_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_format.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_format.c
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_set_format.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_set_format.c
index 1d3e49d..796dcdc 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_format.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_format.c
@@ -61,6 +61,9 @@ archive_read_set_format(struct archive *_a, int code)
case ARCHIVE_FORMAT_CPIO:
strcpy(str, "cpio");
break;
+ case ARCHIVE_FORMAT_EMPTY:
+ strcpy(str, "empty");
+ break;
case ARCHIVE_FORMAT_ISO9660:
strcpy(str, "iso9660");
break;
@@ -76,9 +79,15 @@ archive_read_set_format(struct archive *_a, int code)
case ARCHIVE_FORMAT_RAR_V5:
strcpy(str, "rar5");
break;
+ case ARCHIVE_FORMAT_RAW:
+ strcpy(str, "raw");
+ break;
case ARCHIVE_FORMAT_TAR:
strcpy(str, "tar");
break;
+ case ARCHIVE_FORMAT_WARC:
+ strcpy(str, "warc");
+ break;
case ARCHIVE_FORMAT_XAR:
strcpy(str, "xar");
break;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.3 b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.3
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.3
index 78d9999..b2db4cb 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.3
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.3
@@ -188,9 +188,18 @@ used when translating file names.
.El
.It Format cpio
.Bl -tag -compact -width indent
+.It Cm compat-2x
+Libarchive 2.x incorrectly encoded Unicode filenames on
+some platforms.
+This option mimics the libarchive 2.x filename handling
+so that such archives can be read correctly.
.It Cm hdrcharset
The value is used as a character set name that will be
used when translating file names.
+.It Cm pwb
+When reading a binary CPIO archive, assume that it is
+in the original PWB cpio format, and handle file mode
+bits accordingly. The default is to assume v7 format.
.El
.It Format iso9660
.Bl -tag -compact -width indent
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_set_options.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_set_options.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_all.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_all.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_all.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_all.c
diff --git a/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_by_code.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_by_code.c
new file mode 100644
index 0000000..94c4af6
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_by_code.c
@@ -0,0 +1,83 @@
+/*-
+ * Copyright (c) 2020 Martin Matuska
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "archive_platform.h"
+__FBSDID("$FreeBSD$");
+
+#include "archive.h"
+#include "archive_private.h"
+
+int
+archive_read_support_filter_by_code(struct archive *a, int filter_code)
+{
+ archive_check_magic(a, ARCHIVE_READ_MAGIC,
+ ARCHIVE_STATE_NEW, "archive_read_support_filter_by_code");
+
+ switch (filter_code) {
+ case ARCHIVE_FILTER_NONE:
+ return archive_read_support_filter_none(a);
+ break;
+ case ARCHIVE_FILTER_GZIP:
+ return archive_read_support_filter_gzip(a);
+ break;
+ case ARCHIVE_FILTER_BZIP2:
+ return archive_read_support_filter_bzip2(a);
+ break;
+ case ARCHIVE_FILTER_COMPRESS:
+ return archive_read_support_filter_compress(a);
+ break;
+ case ARCHIVE_FILTER_LZMA:
+ return archive_read_support_filter_lzma(a);
+ break;
+ case ARCHIVE_FILTER_XZ:
+ return archive_read_support_filter_xz(a);
+ break;
+ case ARCHIVE_FILTER_UU:
+ return archive_read_support_filter_uu(a);
+ break;
+ case ARCHIVE_FILTER_RPM:
+ return archive_read_support_filter_rpm(a);
+ break;
+ case ARCHIVE_FILTER_LZIP:
+ return archive_read_support_filter_lzip(a);
+ break;
+ case ARCHIVE_FILTER_LRZIP:
+ return archive_read_support_filter_lrzip(a);
+ break;
+ case ARCHIVE_FILTER_LZOP:
+ return archive_read_support_filter_lzop(a);
+ break;
+ case ARCHIVE_FILTER_GRZIP:
+ return archive_read_support_filter_grzip(a);
+ break;
+ case ARCHIVE_FILTER_LZ4:
+ return archive_read_support_filter_lz4(a);
+ break;
+ case ARCHIVE_FILTER_ZSTD:
+ return archive_read_support_filter_zstd(a);
+ break;
+ }
+ return (ARCHIVE_FATAL);
+}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_bzip2.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_bzip2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_bzip2.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_bzip2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_compress.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_compress.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_compress.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_compress.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_grzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_grzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_grzip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_grzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_gzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_gzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_gzip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_gzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lrzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lrzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lrzip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lrzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lz4.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lz4.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lz4.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lz4.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lzop.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lzop.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_lzop.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_lzop.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_none.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_none.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_none.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_none.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_program.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_program.c
similarity index 95%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_program.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_program.c
index b8bf128..bf5b6f2 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_program.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_program.c
@@ -400,7 +400,7 @@ __archive_read_program(struct archive_read_filter *self, const char *cmd)
static const size_t out_buf_len = 65536;
char *out_buf;
const char *prefix = "Program: ";
- pid_t child;
+ int ret;
size_t l;
l = strlen(prefix) + strlen(cmd) + 1;
@@ -426,9 +426,9 @@ __archive_read_program(struct archive_read_filter *self, const char *cmd)
state->out_buf = out_buf;
state->out_buf_len = out_buf_len;
- child = __archive_create_child(cmd, &state->child_stdin,
- &state->child_stdout);
- if (child == -1) {
+ ret = __archive_create_child(cmd, &state->child_stdin,
+ &state->child_stdout, &state->child);
+ if (ret != ARCHIVE_OK) {
free(state->out_buf);
archive_string_free(&state->description);
free(state);
@@ -437,21 +437,6 @@ __archive_read_program(struct archive_read_filter *self, const char *cmd)
cmd);
return (ARCHIVE_FATAL);
}
-#if defined(_WIN32) && !defined(__CYGWIN__)
- state->child = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, child);
- if (state->child == NULL) {
- child_stop(self, state);
- free(state->out_buf);
- archive_string_free(&state->description);
- free(state);
- archive_set_error(&self->archive->archive, EINVAL,
- "Can't initialize filter; unable to run program \"%s\"",
- cmd);
- return (ARCHIVE_FATAL);
- }
-#else
- state->child = child;
-#endif
self->data = state;
self->read = program_filter_read;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_rpm.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_rpm.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_rpm.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_rpm.c
index e7e58e5..ddd6839 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_rpm.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_rpm.c
@@ -216,7 +216,7 @@ rpm_filter_read(struct archive_read_filter *self, const void **buff)
archive_set_error(
&self->archive->archive,
ARCHIVE_ERRNO_FILE_FORMAT,
- "Unrecoginized rpm header");
+ "Unrecognized rpm header");
return (ARCHIVE_FATAL);
}
rpm->state = ST_ARCHIVE;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_uu.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_uu.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_uu.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_uu.c
index 67ddffb..689c18c 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_uu.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_uu.c
@@ -248,7 +248,7 @@ bid_get_line(struct archive_read_filter *filter,
*ravail = *avail;
*b += diff;
*avail -= diff;
- tested = len;/* Skip some bytes we already determinated. */
+ tested = len;/* Skip some bytes we already determined. */
len = get_line(*b + tested, *avail - tested, nl);
if (len >= 0)
len += tested;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_xz.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_xz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_xz.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_xz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_zstd.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_zstd.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_zstd.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_zstd.c
index c8bb36b..af7eeb7 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_filter_zstd.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_filter_zstd.c
@@ -119,6 +119,8 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self,
/* Zstd frame magic values */
const unsigned zstd_magic = 0xFD2FB528U;
+ const unsigned zstd_magic_skippable_start = 0x184D2A50U;
+ const unsigned zstd_magic_skippable_mask = 0xFFFFFFF0;
(void) self; /* UNUSED */
@@ -129,6 +131,8 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self,
prefix = archive_le32dec(buffer);
if (prefix == zstd_magic)
return (32);
+ if ((prefix & zstd_magic_skippable_mask) == zstd_magic_skippable_start)
+ return (32);
return (0);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_7zip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_7zip.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_7zip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_7zip.c
index 6ce9d1a..63cbb7d 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_7zip.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_7zip.c
@@ -808,8 +808,12 @@ archive_read_format_7zip_read_data(struct archive_read *a,
if (zip->end_of_entry)
return (ARCHIVE_EOF);
- bytes = read_stream(a, buff,
- (size_t)zip->entry_bytes_remaining, 0);
+ const uint64_t max_read_size = 16 * 1024 * 1024; // Don't try to read more than 16 MB at a time
+ size_t bytes_to_read = max_read_size;
+ if ((uint64_t)bytes_to_read > zip->entry_bytes_remaining) {
+ bytes_to_read = zip->entry_bytes_remaining;
+ }
+ bytes = read_stream(a, buff, bytes_to_read, 0);
if (bytes < 0)
return ((int)bytes);
if (bytes == 0) {
@@ -1493,7 +1497,7 @@ decompress(struct archive_read *a, struct _7zip *zip,
zip->ppmd7_stat = -1;
archive_set_error(&a->archive,
ARCHIVE_ERRNO_MISC,
- "Failed to initialize PPMd range decorder");
+ "Failed to initialize PPMd range decoder");
return (ARCHIVE_FAILED);
}
if (zip->ppstream.overconsumed) {
@@ -3031,10 +3035,10 @@ extract_pack_stream(struct archive_read *a, size_t minimum)
"Truncated 7-Zip file body");
return (ARCHIVE_FATAL);
}
- if (bytes_avail > (ssize_t)zip->pack_stream_inbytes_remaining)
+ if ((uint64_t)bytes_avail > zip->pack_stream_inbytes_remaining)
bytes_avail = (ssize_t)zip->pack_stream_inbytes_remaining;
zip->pack_stream_inbytes_remaining -= bytes_avail;
- if (bytes_avail > (ssize_t)zip->folder_outbytes_remaining)
+ if ((uint64_t)bytes_avail > zip->folder_outbytes_remaining)
bytes_avail = (ssize_t)zip->folder_outbytes_remaining;
zip->folder_outbytes_remaining -= bytes_avail;
zip->uncompressed_buffer_bytes_remaining = bytes_avail;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_all.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_all.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_all.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_all.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_ar.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_ar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_ar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_ar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_by_code.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_by_code.c
similarity index 87%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_by_code.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_by_code.c
index 034353d..89e96f1 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_by_code.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_by_code.c
@@ -26,6 +26,10 @@
#include "archive_platform.h"
__FBSDID("$FreeBSD$");
+#ifdef HAVE_ERRNO_H
+#include
+#endif
+
#include "archive.h"
#include "archive_private.h"
@@ -48,6 +52,9 @@ archive_read_support_format_by_code(struct archive *a, int format_code)
case ARCHIVE_FORMAT_CPIO:
return archive_read_support_format_cpio(a);
break;
+ case ARCHIVE_FORMAT_EMPTY:
+ return archive_read_support_format_empty(a);
+ break;
case ARCHIVE_FORMAT_ISO9660:
return archive_read_support_format_iso9660(a);
break;
@@ -63,9 +70,15 @@ archive_read_support_format_by_code(struct archive *a, int format_code)
case ARCHIVE_FORMAT_RAR_V5:
return archive_read_support_format_rar5(a);
break;
+ case ARCHIVE_FORMAT_RAW:
+ return archive_read_support_format_raw(a);
+ break;
case ARCHIVE_FORMAT_TAR:
return archive_read_support_format_tar(a);
break;
+ case ARCHIVE_FORMAT_WARC:
+ return archive_read_support_format_warc(a);
+ break;
case ARCHIVE_FORMAT_XAR:
return archive_read_support_format_xar(a);
break;
@@ -73,5 +86,7 @@ archive_read_support_format_by_code(struct archive *a, int format_code)
return archive_read_support_format_zip(a);
break;
}
+ archive_set_error(a, ARCHIVE_ERRNO_PROGRAMMER,
+ "Invalid format code specified");
return (ARCHIVE_FATAL);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cab.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cab.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cab.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cab.c
index a647530..950f3d2 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cab.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cab.c
@@ -1172,7 +1172,7 @@ cab_checksum_finish(struct archive_read *a)
cfdata->memimage + CFDATA_cbData, l, cfdata->sum_calculated);
if (cfdata->sum_calculated != cfdata->sum) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Checksum error CFDATA[%d] %x:%x in %d bytes",
+ "Checksum error CFDATA[%d] %" PRIx32 ":%" PRIx32 " in %d bytes",
cab->entry_cffolder->cfdata_index -1,
cfdata->sum, cfdata->sum_calculated,
cfdata->compressed_size);
@@ -2110,7 +2110,6 @@ lzx_decode_init(struct lzx_stream *strm, int w_bits)
ds->pos_tbl = malloc(sizeof(ds->pos_tbl[0]) * w_slot);
if (ds->pos_tbl == NULL)
return (ARCHIVE_FATAL);
- lzx_huffman_free(&(ds->mt));
}
for (footer = 0; footer < 18; footer++)
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cpio.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cpio.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cpio.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cpio.c
index 1c96e6a..6b8ae33 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_cpio.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_cpio.c
@@ -185,6 +185,8 @@ struct cpio {
struct archive_string_conv *opt_sconv;
struct archive_string_conv *sconv_default;
int init_default_conversion;
+
+ int option_pwb;
};
static int64_t atol16(const char *, unsigned);
@@ -343,6 +345,10 @@ archive_read_format_cpio_options(struct archive_read *a,
ret = ARCHIVE_FATAL;
}
return (ret);
+ } else if (strcmp(key, "pwb") == 0) {
+ if (val != NULL && val[0] != 0)
+ cpio->option_pwb = 1;
+ return (ARCHIVE_OK);
}
/* Note: The "warn" return is just to inform the options
@@ -891,6 +897,12 @@ header_bin_le(struct archive_read *a, struct cpio *cpio,
archive_entry_set_dev(entry, header[bin_dev_offset] + header[bin_dev_offset + 1] * 256);
archive_entry_set_ino(entry, header[bin_ino_offset] + header[bin_ino_offset + 1] * 256);
archive_entry_set_mode(entry, header[bin_mode_offset] + header[bin_mode_offset + 1] * 256);
+ if (cpio->option_pwb) {
+ /* turn off random bits left over from V6 inode */
+ archive_entry_set_mode(entry, archive_entry_mode(entry) & 067777);
+ if ((archive_entry_mode(entry) & AE_IFMT) == 0)
+ archive_entry_set_mode(entry, archive_entry_mode(entry) | AE_IFREG);
+ }
archive_entry_set_uid(entry, header[bin_uid_offset] + header[bin_uid_offset + 1] * 256);
archive_entry_set_gid(entry, header[bin_gid_offset] + header[bin_gid_offset + 1] * 256);
archive_entry_set_nlink(entry, header[bin_nlink_offset] + header[bin_nlink_offset + 1] * 256);
@@ -930,6 +942,12 @@ header_bin_be(struct archive_read *a, struct cpio *cpio,
archive_entry_set_dev(entry, header[bin_dev_offset] * 256 + header[bin_dev_offset + 1]);
archive_entry_set_ino(entry, header[bin_ino_offset] * 256 + header[bin_ino_offset + 1]);
archive_entry_set_mode(entry, header[bin_mode_offset] * 256 + header[bin_mode_offset + 1]);
+ if (cpio->option_pwb) {
+ /* turn off random bits left over from V6 inode */
+ archive_entry_set_mode(entry, archive_entry_mode(entry) & 067777);
+ if ((archive_entry_mode(entry) & AE_IFMT) == 0)
+ archive_entry_set_mode(entry, archive_entry_mode(entry) | AE_IFREG);
+ }
archive_entry_set_uid(entry, header[bin_uid_offset] * 256 + header[bin_uid_offset + 1]);
archive_entry_set_gid(entry, header[bin_gid_offset] * 256 + header[bin_gid_offset + 1]);
archive_entry_set_nlink(entry, header[bin_nlink_offset] * 256 + header[bin_nlink_offset + 1]);
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_empty.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_empty.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_empty.c
index c641eb9..53fb6cc 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_empty.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_empty.c
@@ -47,7 +47,7 @@ archive_read_support_format_empty(struct archive *_a)
r = __archive_read_register_format(a,
NULL,
- NULL,
+ "empty",
archive_read_format_empty_bid,
NULL,
archive_read_format_empty_read_header,
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_iso9660.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_iso9660.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_iso9660.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_iso9660.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_lha.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_lha.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_lha.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_lha.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_mtree.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_mtree.c
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_mtree.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_mtree.c
index 332944a..c87a154 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_mtree.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_mtree.c
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_format_mtree.c 2011
#include "archive.h"
#include "archive_entry.h"
+#include "archive_entry_private.h"
#include "archive_private.h"
#include "archive_rb.h"
#include "archive_read_private.h"
@@ -135,6 +136,9 @@ static int skip(struct archive_read *a);
static int read_header(struct archive_read *,
struct archive_entry *);
static int64_t mtree_atol(char **, int base);
+#ifndef HAVE_STRNLEN
+static size_t mtree_strnlen(const char *, size_t);
+#endif
/*
* There's no standard for TIME_T_MAX/TIME_T_MIN. So we compute them
@@ -186,6 +190,24 @@ get_time_t_min(void)
#endif
}
+#ifdef HAVE_STRNLEN
+#define mtree_strnlen(a,b) strnlen(a,b)
+#else
+static size_t
+mtree_strnlen(const char *p, size_t maxlen)
+{
+ size_t i;
+
+ for (i = 0; i <= maxlen; i++) {
+ if (p[i] == 0)
+ break;
+ }
+ if (i > maxlen)
+ return (-1);/* invalid */
+ return (i);
+}
+#endif
+
static int
archive_read_format_mtree_options(struct archive_read *a,
const char *key, const char *val)
@@ -386,7 +408,7 @@ next_line(struct archive_read *a,
*ravail = *avail;
*b += diff;
*avail -= diff;
- tested = len;/* Skip some bytes we already determinated. */
+ tested = len;/* Skip some bytes we already determined. */
len = get_line_size(*b + len, *avail - len, nl);
if (len >= 0)
len += tested;
@@ -1052,7 +1074,7 @@ read_mtree(struct archive_read *a, struct mtree *mtree)
continue;
/* Non-printable characters are not allowed */
for (s = p;s < p + len - 1; s++) {
- if (!isprint(*s)) {
+ if (!isprint((unsigned char)*s)) {
r = ARCHIVE_FATAL;
break;
}
@@ -1482,6 +1504,84 @@ parse_device(dev_t *pdev, struct archive *a, char *val)
#undef MAX_PACK_ARGS
}
+static int
+parse_hex_nibble(char c)
+{
+ if (c >= '0' && c <= '9')
+ return c - '0';
+ if (c >= 'a' && c <= 'f')
+ return 10 + c - 'a';
+#if 0
+ /* XXX: Is uppercase something we should support? */
+ if (c >= 'A' && c <= 'F')
+ return 10 + c - 'A';
+#endif
+
+ return -1;
+}
+
+static int
+parse_digest(struct archive_read *a, struct archive_entry *entry,
+ const char *digest, int type)
+{
+ unsigned char digest_buf[64];
+ int high, low;
+ size_t i, j, len;
+
+ switch (type) {
+ case ARCHIVE_ENTRY_DIGEST_MD5:
+ len = sizeof(entry->digest.md5);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_RMD160:
+ len = sizeof(entry->digest.rmd160);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_SHA1:
+ len = sizeof(entry->digest.sha1);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_SHA256:
+ len = sizeof(entry->digest.sha256);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_SHA384:
+ len = sizeof(entry->digest.sha384);
+ break;
+ case ARCHIVE_ENTRY_DIGEST_SHA512:
+ len = sizeof(entry->digest.sha512);
+ break;
+ default:
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
+ "Internal error: Unknown digest type");
+ return ARCHIVE_FATAL;
+ }
+
+ if (len > sizeof(digest_buf)) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
+ "Internal error: Digest storage too large");
+ return ARCHIVE_FATAL;
+ }
+
+ len *= 2;
+
+ if (mtree_strnlen(digest, len+1) != len) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "incorrect digest length, ignoring");
+ return ARCHIVE_WARN;
+ }
+
+ for (i = 0, j = 0; i < len; i += 2, j++) {
+ high = parse_hex_nibble(digest[i]);
+ low = parse_hex_nibble(digest[i+1]);
+ if (high == -1 || low == -1) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "invalid digest data, ignoring");
+ return ARCHIVE_WARN;
+ }
+
+ digest_buf[j] = high << 4 | low;
+ }
+
+ return archive_entry_set_digest(entry, type, digest_buf);
+}
+
/*
* Parse a single keyword and its value.
*/
@@ -1580,8 +1680,10 @@ parse_keyword(struct archive_read *a, struct mtree *mtree,
}
__LA_FALLTHROUGH;
case 'm':
- if (strcmp(key, "md5") == 0 || strcmp(key, "md5digest") == 0)
- break;
+ if (strcmp(key, "md5") == 0 || strcmp(key, "md5digest") == 0) {
+ return parse_digest(a, entry, val,
+ ARCHIVE_ENTRY_DIGEST_MD5);
+ }
if (strcmp(key, "mode") == 0) {
if (val[0] >= '0' && val[0] <= '7') {
*parsed_kws |= MTREE_HAS_PERM;
@@ -1617,21 +1719,32 @@ parse_keyword(struct archive_read *a, struct mtree *mtree,
return r;
}
if (strcmp(key, "rmd160") == 0 ||
- strcmp(key, "rmd160digest") == 0)
- break;
+ strcmp(key, "rmd160digest") == 0) {
+ return parse_digest(a, entry, val,
+ ARCHIVE_ENTRY_DIGEST_RMD160);
+ }
__LA_FALLTHROUGH;
case 's':
- if (strcmp(key, "sha1") == 0 || strcmp(key, "sha1digest") == 0)
- break;
+ if (strcmp(key, "sha1") == 0 ||
+ strcmp(key, "sha1digest") == 0) {
+ return parse_digest(a, entry, val,
+ ARCHIVE_ENTRY_DIGEST_SHA1);
+ }
if (strcmp(key, "sha256") == 0 ||
- strcmp(key, "sha256digest") == 0)
- break;
+ strcmp(key, "sha256digest") == 0) {
+ return parse_digest(a, entry, val,
+ ARCHIVE_ENTRY_DIGEST_SHA256);
+ }
if (strcmp(key, "sha384") == 0 ||
- strcmp(key, "sha384digest") == 0)
- break;
+ strcmp(key, "sha384digest") == 0) {
+ return parse_digest(a, entry, val,
+ ARCHIVE_ENTRY_DIGEST_SHA384);
+ }
if (strcmp(key, "sha512") == 0 ||
- strcmp(key, "sha512digest") == 0)
- break;
+ strcmp(key, "sha512digest") == 0) {
+ return parse_digest(a, entry, val,
+ ARCHIVE_ENTRY_DIGEST_SHA512);
+ }
if (strcmp(key, "size") == 0) {
archive_entry_set_size(entry, mtree_atol(&val, 10));
break;
@@ -1922,13 +2035,13 @@ mtree_atol(char **p, int base)
if (**p == '-') {
limit = INT64_MIN / base;
- last_digit_limit = INT64_MIN % base;
+ last_digit_limit = -(INT64_MIN % base);
++(*p);
l = 0;
digit = parsedigit(**p);
while (digit >= 0 && digit < base) {
- if (l < limit || (l == limit && digit > last_digit_limit))
+ if (l < limit || (l == limit && digit >= last_digit_limit))
return INT64_MIN;
l = (l * base) - digit;
digit = parsedigit(*++(*p));
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar.c
index 98efbb1..c2666b2 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar.c
@@ -151,6 +151,9 @@
#undef minimum
#define minimum(a, b) ((a)<(b)?(a):(b))
+/* Stack overflow check */
+#define MAX_COMPRESS_DEPTH 1024
+
/* Fields common to all headers */
struct rar_header
{
@@ -340,7 +343,7 @@ static int read_symlink_stored(struct archive_read *, struct archive_entry *,
static int read_data_stored(struct archive_read *, const void **, size_t *,
int64_t *);
static int read_data_compressed(struct archive_read *, const void **, size_t *,
- int64_t *);
+ int64_t *, size_t);
static int rar_br_preparation(struct archive_read *, struct rar_br *);
static int parse_codes(struct archive_read *);
static void free_codes(struct archive_read *);
@@ -955,17 +958,17 @@ archive_read_format_rar_read_header(struct archive_read *a,
crc32_val = 0;
while (skip > 0) {
size_t to_read = skip;
- ssize_t did_read;
- if (to_read > 32 * 1024) {
+ if (to_read > 32 * 1024)
to_read = 32 * 1024;
- }
- if ((h = __archive_read_ahead(a, to_read, &did_read)) == NULL) {
+ if ((h = __archive_read_ahead(a, to_read, NULL)) == NULL) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Bad RAR file");
return (ARCHIVE_FATAL);
}
p = h;
- crc32_val = crc32(crc32_val, (const unsigned char *)p, (unsigned)did_read);
- __archive_read_consume(a, did_read);
- skip -= did_read;
+ crc32_val = crc32(crc32_val, (const unsigned char *)p, to_read);
+ __archive_read_consume(a, to_read);
+ skip -= to_read;
}
if ((crc32_val & 0xffff) != crc32_expected) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
@@ -1026,7 +1029,7 @@ archive_read_format_rar_read_data(struct archive_read *a, const void **buff,
case COMPRESS_METHOD_NORMAL:
case COMPRESS_METHOD_GOOD:
case COMPRESS_METHOD_BEST:
- ret = read_data_compressed(a, buff, size, offset);
+ ret = read_data_compressed(a, buff, size, offset, 0);
if (ret != ARCHIVE_OK && ret != ARCHIVE_WARN) {
__archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context);
rar->start_new_table = 1;
@@ -1883,8 +1886,11 @@ read_data_stored(struct archive_read *a, const void **buff, size_t *size,
static int
read_data_compressed(struct archive_read *a, const void **buff, size_t *size,
- int64_t *offset)
+ int64_t *offset, size_t looper)
{
+ if (looper++ > MAX_COMPRESS_DEPTH)
+ return (ARCHIVE_FATAL);
+
struct rar *rar;
int64_t start, end, actualend;
size_t bs;
@@ -1982,7 +1988,7 @@ read_data_compressed(struct archive_read *a, const void **buff, size_t *size,
{
case 0:
rar->start_new_table = 1;
- return read_data_compressed(a, buff, size, offset);
+ return read_data_compressed(a, buff, size, offset, looper);
case 2:
rar->ppmd_eod = 1;/* End Of ppmd Data. */
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar5.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar5.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar5.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar5.c
index 82729bd..5d62d16 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_rar5.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_rar5.c
@@ -3084,12 +3084,6 @@ static int do_uncompress_block(struct archive_read* a, const uint8_t* p) {
continue;
}
-
- /* The program counter shouldn't reach here. */
- archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Unsupported block code: 0x%x", num);
-
- return ARCHIVE_FATAL;
}
return ARCHIVE_OK;
@@ -3837,7 +3831,7 @@ static int verify_checksums(struct archive_read* a) {
DEBUG_CODE {
printf("Checksum error: CRC32 "
- "(was: %08x, expected: %08x)\n",
+ "(was: %08" PRIx32 ", expected: %08" PRIx32 ")\n",
rar->file.calculated_crc32,
rar->file.stored_crc32);
}
@@ -3851,7 +3845,7 @@ static int verify_checksums(struct archive_read* a) {
} else {
DEBUG_CODE {
printf("Checksum OK: CRC32 "
- "(%08x/%08x)\n",
+ "(%08" PRIx32 "/%08" PRIx32 ")\n",
rar->file.stored_crc32,
rar->file.calculated_crc32);
}
@@ -3912,6 +3906,9 @@ static int rar5_read_data(struct archive_read *a, const void **buff,
int ret;
struct rar5* rar = get_context(a);
+ if (size)
+ *size = 0;
+
if(rar->file.dir > 0) {
/* Don't process any data if this file entry was declared
* as a directory. This is needed, because entries marked as
@@ -4079,6 +4076,7 @@ int archive_read_support_format_rar5(struct archive *_a) {
if(ARCHIVE_OK != rar5_init(rar)) {
archive_set_error(&ar->archive, ENOMEM,
"Can't allocate rar5 filter buffer");
+ free(rar);
return ARCHIVE_FATAL;
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_raw.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_raw.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_raw.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_raw.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_tar.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_tar.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_tar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_tar.c
index c63d46f..7e8feba 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_tar.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_tar.c
@@ -1796,6 +1796,16 @@ pax_attribute_schily_xattr(struct archive_entry *entry,
return 0;
}
+static int
+pax_attribute_rht_security_selinux(struct archive_entry *entry,
+ const char *value, size_t value_length)
+{
+ archive_entry_xattr_add_entry(entry, "security.selinux",
+ value, value_length);
+
+ return 0;
+}
+
static int
pax_attribute_acl(struct archive_read *a, struct tar *tar,
struct archive_entry *entry, const char *value, int type)
@@ -1896,7 +1906,7 @@ pax_attribute(struct archive_read *a, struct tar *tar,
}
if (strcmp(key, "GNU.sparse.numbytes") == 0) {
tar->sparse_numbytes = tar_atol10(value, strlen(value));
- if (tar->sparse_numbytes != -1) {
+ if (tar->sparse_offset != -1) {
if (gnu_add_sparse_entry(a, tar,
tar->sparse_offset, tar->sparse_numbytes)
!= ARCHIVE_OK)
@@ -1966,6 +1976,14 @@ pax_attribute(struct archive_read *a, struct tar *tar,
if (memcmp(key, "LIBARCHIVE.xattr.", 17) == 0)
pax_attribute_xattr(entry, key, value);
break;
+ case 'R':
+ /* GNU tar uses RHT.security header to store SELinux xattrs
+ * SCHILY.xattr.security.selinux == RHT.security.selinux */
+ if (strcmp(key, "RHT.security.selinux") == 0) {
+ pax_attribute_rht_security_selinux(entry, value,
+ value_length);
+ }
+ break;
case 'S':
/* We support some keys used by the "star" archiver */
if (strcmp(key, "SCHILY.acl.access") == 0) {
@@ -2625,14 +2643,14 @@ tar_atol_base_n(const char *p, size_t char_cnt, int base)
maxval = INT64_MIN;
limit = -(INT64_MIN / base);
- last_digit_limit = INT64_MIN % base;
+ last_digit_limit = -(INT64_MIN % base);
}
l = 0;
if (char_cnt != 0) {
digit = *p - '0';
while (digit >= 0 && digit < base && char_cnt != 0) {
- if (l>limit || (l == limit && digit > last_digit_limit)) {
+ if (l>limit || (l == limit && digit >= last_digit_limit)) {
return maxval; /* Truncate on overflow. */
}
l = (l * base) + digit;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_warc.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_warc.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_warc.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_warc.c
index 72977b8..2732996 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_warc.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_warc.c
@@ -127,7 +127,7 @@ static int _warc_skip(struct archive_read *a);
static int _warc_rdhdr(struct archive_read *a, struct archive_entry *e);
/* private routines */
-static unsigned int _warc_rdver(const char buf[10], size_t bsz);
+static unsigned int _warc_rdver(const char *buf, size_t bsz);
static unsigned int _warc_rdtyp(const char *buf, size_t bsz);
static warc_string_t _warc_rduri(const char *buf, size_t bsz);
static ssize_t _warc_rdlen(const char *buf, size_t bsz);
@@ -337,6 +337,14 @@ start_over:
mtime = rtime;
}
break;
+ case WT_NONE:
+ case WT_INFO:
+ case WT_META:
+ case WT_REQ:
+ case WT_RVIS:
+ case WT_CONV:
+ case WT_CONT:
+ case LAST_WT:
default:
fnam.len = 0U;
fnam.str = NULL;
@@ -361,6 +369,14 @@ start_over:
break;
}
/* FALLTHROUGH */
+ case WT_NONE:
+ case WT_INFO:
+ case WT_META:
+ case WT_REQ:
+ case WT_RVIS:
+ case WT_CONV:
+ case WT_CONT:
+ case LAST_WT:
default:
/* consume the content and start over */
_warc_skip(a);
@@ -427,7 +443,7 @@ _warc_skip(struct archive_read *a)
static void*
deconst(const void *c)
{
- return (char *)0x1 + (((const char *)c) - (const char *)0x1);
+ return (void *)(uintptr_t)c;
}
static char*
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_xar.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_xar.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_xar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_xar.c
index 7f8be39..503ff58 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_xar.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_xar.c
@@ -458,6 +458,11 @@ archive_read_support_format_xar(struct archive *_a)
return (ARCHIVE_FATAL);
}
+ /* initialize xar->file_queue */
+ xar->file_queue.allocated = 0;
+ xar->file_queue.used = 0;
+ xar->file_queue.files = NULL;
+
r = __archive_read_register_format(a,
xar,
"xar",
@@ -1221,10 +1226,12 @@ heap_add_entry(struct archive_read *a,
/* Expand our pending files list as necessary. */
if (heap->used >= heap->allocated) {
struct xar_file **new_pending_files;
- int new_size = heap->allocated * 2;
+ int new_size;
if (heap->allocated < 1024)
new_size = 1024;
+ else
+ new_size = heap->allocated * 2;
/* Overflow might keep us from growing the list. */
if (new_size <= heap->allocated) {
archive_set_error(&a->archive,
@@ -1238,9 +1245,11 @@ heap_add_entry(struct archive_read *a,
ENOMEM, "Out of memory");
return (ARCHIVE_FATAL);
}
- memcpy(new_pending_files, heap->files,
- heap->allocated * sizeof(new_pending_files[0]));
- free(heap->files);
+ if (heap->allocated) {
+ memcpy(new_pending_files, heap->files,
+ heap->allocated * sizeof(new_pending_files[0]));
+ free(heap->files);
+ }
heap->files = new_pending_files;
heap->allocated = new_size;
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_zip.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_zip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_zip.c
index 6581ca0..21d41cc 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_read_support_format_zip.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_read_support_format_zip.c
@@ -142,6 +142,7 @@ struct zip {
/* Structural information about the archive. */
struct archive_string format_name;
int64_t central_directory_offset;
+ int64_t central_directory_offset_adjusted;
size_t central_directory_entries_total;
size_t central_directory_entries_on_this_disk;
int has_encrypted_entries;
@@ -246,6 +247,17 @@ struct zip {
/* Many systems define min or MIN, but not all. */
#define zipmin(a,b) ((a) < (b) ? (a) : (b))
+#ifdef HAVE_ZLIB_H
+static int
+zip_read_data_deflate(struct archive_read *a, const void **buff,
+ size_t *size, int64_t *offset);
+#endif
+#if HAVE_LZMA_H && HAVE_LIBLZMA
+static int
+zip_read_data_zipx_lzma_alone(struct archive_read *a, const void **buff,
+ size_t *size, int64_t *offset);
+#endif
+
/* This function is used by Ppmd8_DecodeSymbol during decompression of Ppmd8
* streams inside ZIP files. It has 2 purposes: one is to fetch the next
* compressed byte from the stream, second one is to increase the counter how
@@ -1167,7 +1179,55 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry,
linkname_length = (size_t)zip_entry->compressed_size;
archive_entry_set_size(entry, 0);
- p = __archive_read_ahead(a, linkname_length, NULL);
+
+ // take into account link compression if any
+ size_t linkname_full_length = linkname_length;
+ if (zip->entry->compression != 0)
+ {
+ // symlink target string appeared to be compressed
+ int status = ARCHIVE_FATAL;
+ const void *uncompressed_buffer;
+
+ switch (zip->entry->compression)
+ {
+#if HAVE_ZLIB_H
+ case 8: /* Deflate compression. */
+ zip->entry_bytes_remaining = zip_entry->compressed_size;
+ status = zip_read_data_deflate(a, &uncompressed_buffer,
+ &linkname_full_length, NULL);
+ break;
+#endif
+#if HAVE_LZMA_H && HAVE_LIBLZMA
+ case 14: /* ZIPx LZMA compression. */
+ /*(see zip file format specification, section 4.4.5)*/
+ zip->entry_bytes_remaining = zip_entry->compressed_size;
+ status = zip_read_data_zipx_lzma_alone(a, &uncompressed_buffer,
+ &linkname_full_length, NULL);
+ break;
+#endif
+ default: /* Unsupported compression. */
+ break;
+ }
+ if (status == ARCHIVE_OK)
+ {
+ p = uncompressed_buffer;
+ }
+ else
+ {
+ archive_set_error(&a->archive,
+ ARCHIVE_ERRNO_FILE_FORMAT,
+ "Unsupported ZIP compression method "
+ "during decompression of link entry (%d: %s)",
+ zip->entry->compression,
+ compression_name(zip->entry->compression));
+ return ARCHIVE_FAILED;
+ }
+ }
+ else
+ {
+ p = __archive_read_ahead(a, linkname_length, NULL);
+ }
+
if (p == NULL) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
"Truncated Zip file");
@@ -1179,12 +1239,12 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry,
sconv = zip->sconv_utf8;
if (sconv == NULL)
sconv = zip->sconv_default;
- if (archive_entry_copy_symlink_l(entry, p, linkname_length,
+ if (archive_entry_copy_symlink_l(entry, p, linkname_full_length,
sconv) != 0) {
if (errno != ENOMEM && sconv == zip->sconv_utf8 &&
(zip->entry->zip_flags & ZIP_UTF8_NAME))
archive_entry_copy_symlink_l(entry, p,
- linkname_length, NULL);
+ linkname_full_length, NULL);
if (errno == ENOMEM) {
archive_set_error(&a->archive, ENOMEM,
"Can't allocate memory for Symlink");
@@ -1542,7 +1602,8 @@ zipx_lzma_alone_init(struct archive_read *a, struct zip *zip)
/* To unpack ZIPX's "LZMA" (id 14) stream we can use standard liblzma
* that is a part of XZ Utils. The stream format stored inside ZIPX
* file is a modified "lzma alone" file format, that was used by the
- * `lzma` utility which was later deprecated in favour of `xz` utility. * Since those formats are nearly the same, we can use a standard
+ * `lzma` utility which was later deprecated in favour of `xz` utility.
+ * Since those formats are nearly the same, we can use a standard
* "lzma alone" decoder from XZ Utils. */
memset(&zip->zipx_lzma_stream, 0, sizeof(zip->zipx_lzma_stream));
@@ -1901,15 +1962,15 @@ zipx_ppmd8_init(struct archive_read *a, struct zip *zip)
if(order < 2 || restore_method > 2) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Invalid parameter set in PPMd8 stream (order=%d, "
- "restore=%d)", order, restore_method);
+ "Invalid parameter set in PPMd8 stream (order=%" PRId32 ", "
+ "restore=%" PRId32 ")", order, restore_method);
return (ARCHIVE_FAILED);
}
/* Allocate the memory needed to properly decompress the file. */
if(!__archive_ppmd8_functions.Ppmd8_Alloc(&zip->ppmd8, mem << 20)) {
archive_set_error(&a->archive, ENOMEM,
- "Unable to allocate memory for PPMd8 stream: %d bytes",
+ "Unable to allocate memory for PPMd8 stream: %" PRId32 " bytes",
mem << 20);
return (ARCHIVE_FATAL);
}
@@ -3294,24 +3355,31 @@ archive_read_support_format_zip_capabilities_seekable(struct archive_read * a)
static int
read_eocd(struct zip *zip, const char *p, int64_t current_offset)
{
+ uint16_t disk_num;
+ uint32_t cd_size, cd_offset;
+
+ disk_num = archive_le16dec(p + 4);
+ cd_size = archive_le32dec(p + 12);
+ cd_offset = archive_le32dec(p + 16);
+
/* Sanity-check the EOCD we've found. */
/* This must be the first volume. */
- if (archive_le16dec(p + 4) != 0)
+ if (disk_num != 0)
return 0;
/* Central directory must be on this volume. */
- if (archive_le16dec(p + 4) != archive_le16dec(p + 6))
+ if (disk_num != archive_le16dec(p + 6))
return 0;
/* All central directory entries must be on this volume. */
if (archive_le16dec(p + 10) != archive_le16dec(p + 8))
return 0;
/* Central directory can't extend beyond start of EOCD record. */
- if (archive_le32dec(p + 16) + archive_le32dec(p + 12)
- > current_offset)
+ if (cd_offset + cd_size > current_offset)
return 0;
/* Save the central directory location for later use. */
- zip->central_directory_offset = archive_le32dec(p + 16);
+ zip->central_directory_offset = cd_offset;
+ zip->central_directory_offset_adjusted = current_offset - cd_size;
/* This is just a tiny bit higher than the maximum
returned by the streaming Zip bidder. This ensures
@@ -3363,6 +3431,8 @@ read_zip64_eocd(struct archive_read *a, struct zip *zip, const char *p)
/* Save the central directory offset for later use. */
zip->central_directory_offset = archive_le64dec(p + 48);
+ /* TODO: Needs scanning backwards to find the eocd64 instead of assuming */
+ zip->central_directory_offset_adjusted = zip->central_directory_offset;
return 32;
}
@@ -3534,7 +3604,8 @@ slurp_central_directory(struct archive_read *a, struct archive_entry* entry,
* know the correction we need to apply to account for leading
* padding.
*/
- if (__archive_read_seek(a, zip->central_directory_offset, SEEK_SET) < 0)
+ if (__archive_read_seek(a, zip->central_directory_offset_adjusted, SEEK_SET)
+ < 0)
return ARCHIVE_FATAL;
found = 0;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_string.c b/dependencies/libarchive-3.5.2/libarchive/archive_string.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/archive_string.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_string.c
index c77dcf5..7460ded 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_string.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_string.c
@@ -3881,6 +3881,11 @@ archive_mstring_get_utf8(struct archive *a, struct archive_mstring *aes,
}
*p = NULL;
+ /* Try converting WCS to MBS first if MBS does not exist yet. */
+ if ((aes->aes_set & AES_SET_MBS) == 0) {
+ const char *pm; /* unused */
+ archive_mstring_get_mbs(a, aes, &pm); /* ignore errors, we'll handle it later */
+ }
if (aes->aes_set & AES_SET_MBS) {
sc = archive_string_conversion_to_charset(a, "UTF-8", 1);
if (sc == NULL)
@@ -3903,9 +3908,9 @@ int
archive_mstring_get_mbs(struct archive *a, struct archive_mstring *aes,
const char **p)
{
+ struct archive_string_conv *sc;
int r, ret = 0;
- (void)a; /* UNUSED */
/* If we already have an MBS form, return that immediately. */
if (aes->aes_set & AES_SET_MBS) {
*p = aes->aes_mbs.s;
@@ -3926,10 +3931,23 @@ archive_mstring_get_mbs(struct archive *a, struct archive_mstring *aes,
ret = -1;
}
- /*
- * Only a UTF-8 form cannot avail because its conversion already
- * failed at archive_mstring_update_utf8().
- */
+ /* If there's a UTF-8 form, try converting with the native locale. */
+ if (aes->aes_set & AES_SET_UTF8) {
+ archive_string_empty(&(aes->aes_mbs));
+ sc = archive_string_conversion_from_charset(a, "UTF-8", 1);
+ if (sc == NULL)
+ return (-1);/* Couldn't allocate memory for sc. */
+ r = archive_strncpy_l(&(aes->aes_mbs),
+ aes->aes_utf8.s, aes->aes_utf8.length, sc);
+ if (a == NULL)
+ free_sconv_object(sc);
+ *p = aes->aes_mbs.s;
+ if (r == 0) {
+ aes->aes_set |= AES_SET_MBS;
+ ret = 0;/* success; overwrite previous error. */
+ } else
+ ret = -1;/* failure. */
+ }
return (ret);
}
@@ -3947,6 +3965,11 @@ archive_mstring_get_wcs(struct archive *a, struct archive_mstring *aes,
}
*wp = NULL;
+ /* Try converting UTF8 to MBS first if MBS does not exist yet. */
+ if ((aes->aes_set & AES_SET_MBS) == 0) {
+ const char *p; /* unused */
+ archive_mstring_get_mbs(a, aes, &p); /* ignore errors, we'll handle it later */
+ }
/* Try converting MBS to WCS using native locale. */
if (aes->aes_set & AES_SET_MBS) {
archive_wstring_empty(&(aes->aes_wcs));
@@ -3962,11 +3985,12 @@ archive_mstring_get_wcs(struct archive *a, struct archive_mstring *aes,
}
int
-archive_mstring_get_mbs_l(struct archive_mstring *aes,
+archive_mstring_get_mbs_l(struct archive *a, struct archive_mstring *aes,
const char **p, size_t *length, struct archive_string_conv *sc)
{
int r, ret = 0;
+ (void)r; /* UNUSED */
#if defined(_WIN32) && !defined(__CYGWIN__)
/*
* Internationalization programming on Windows must use Wide
@@ -3989,20 +4013,12 @@ archive_mstring_get_mbs_l(struct archive_mstring *aes,
}
#endif
- /* If there is not an MBS form but is a WCS form, try converting
+ /* If there is not an MBS form but there is a WCS or UTF8 form, try converting
* with the native locale to be used for translating it to specified
* character-set. */
- if ((aes->aes_set & AES_SET_MBS) == 0 &&
- (aes->aes_set & AES_SET_WCS) != 0) {
- archive_string_empty(&(aes->aes_mbs));
- r = archive_string_append_from_wcs(&(aes->aes_mbs),
- aes->aes_wcs.s, aes->aes_wcs.length);
- if (r == 0)
- aes->aes_set |= AES_SET_MBS;
- else if (errno == ENOMEM)
- return (-1);
- else
- ret = -1;
+ if ((aes->aes_set & AES_SET_MBS) == 0) {
+ const char *pm; /* unused */
+ archive_mstring_get_mbs(a, aes, &pm); /* ignore errors, we'll handle it later */
}
/* If we already have an MBS form, use it to be translated to
* specified character-set. */
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_string.h b/dependencies/libarchive-3.5.2/libarchive/archive_string.h
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_string.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_string.h
index 27e1ad6..49d7d30 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_string.h
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_string.h
@@ -226,7 +226,7 @@ void archive_mstring_copy(struct archive_mstring *dest, struct archive_mstring *
int archive_mstring_get_mbs(struct archive *, struct archive_mstring *, const char **);
int archive_mstring_get_utf8(struct archive *, struct archive_mstring *, const char **);
int archive_mstring_get_wcs(struct archive *, struct archive_mstring *, const wchar_t **);
-int archive_mstring_get_mbs_l(struct archive_mstring *, const char **,
+int archive_mstring_get_mbs_l(struct archive *, struct archive_mstring *, const char **,
size_t *, struct archive_string_conv *);
int archive_mstring_copy_mbs(struct archive_mstring *, const char *mbs);
int archive_mstring_copy_mbs_len(struct archive_mstring *, const char *mbs,
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_string_composition.h b/dependencies/libarchive-3.5.2/libarchive/archive_string_composition.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_string_composition.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_string_composition.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_string_sprintf.c b/dependencies/libarchive-3.5.2/libarchive/archive_string_sprintf.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_string_sprintf.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_string_sprintf.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_util.3 b/dependencies/libarchive-3.5.2/libarchive/archive_util.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_util.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_util.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_util.c b/dependencies/libarchive-3.5.2/libarchive/archive_util.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/archive_util.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_util.c
index 288a442..b1582ed 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_util.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_util.c
@@ -365,6 +365,7 @@ __archive_mktempx(const char *tmpdir, wchar_t *template)
}
fd = _open_osfhandle((intptr_t)h, _O_BINARY | _O_RDWR);
if (fd == -1) {
+ la_dosmaperr(GetLastError());
CloseHandle(h);
goto exit_tmpfile;
} else
@@ -432,6 +433,11 @@ __archive_mktemp(const char *tmpdir)
if (temp_name.s[temp_name.length-1] != '/')
archive_strappend_char(&temp_name, '/');
}
+#ifdef O_TMPFILE
+ fd = open(temp_name.s, O_RDWR|O_CLOEXEC|O_TMPFILE|O_EXCL, 0600);
+ if(fd >= 0)
+ goto exit_tmpfile;
+#endif
archive_strcat(&temp_name, "libarchive_XXXXXX");
fd = mkstemp(temp_name.s);
if (fd < 0)
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_version_details.c b/dependencies/libarchive-3.5.2/libarchive/archive_version_details.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_version_details.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_version_details.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_virtual.c b/dependencies/libarchive-3.5.2/libarchive/archive_virtual.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_virtual.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_virtual.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_windows.c b/dependencies/libarchive-3.5.2/libarchive/archive_windows.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_windows.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_windows.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_windows.h b/dependencies/libarchive-3.5.2/libarchive/archive_windows.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_windows.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_windows.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write.c b/dependencies/libarchive-3.5.2/libarchive/archive_write.c
similarity index 95%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write.c
index 98a55fb..38c14cb 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write.c
@@ -455,6 +455,25 @@ archive_write_client_write(struct archive_write_filter *f,
return (ARCHIVE_OK);
}
+static int
+archive_write_client_free(struct archive_write_filter *f)
+{
+ struct archive_write *a = (struct archive_write *)f->archive;
+
+ if (a->client_freer)
+ (*a->client_freer)(&a->archive, a->client_data);
+ a->client_data = NULL;
+
+ /* Clear passphrase. */
+ if (a->passphrase != NULL) {
+ memset(a->passphrase, 0, strlen(a->passphrase));
+ free(a->passphrase);
+ a->passphrase = NULL;
+ }
+
+ return (ARCHIVE_OK);
+}
+
static int
archive_write_client_close(struct archive_write_filter *f)
{
@@ -463,6 +482,8 @@ archive_write_client_close(struct archive_write_filter *f)
ssize_t block_length;
ssize_t target_block_length;
ssize_t bytes_written;
+ size_t to_write;
+ char *p;
int ret = ARCHIVE_OK;
/* If there's pending data, pad and write the last block */
@@ -485,21 +506,30 @@ archive_write_client_close(struct archive_write_filter *f)
target_block_length - block_length);
block_length = target_block_length;
}
- bytes_written = (a->client_writer)(&a->archive,
- a->client_data, state->buffer, block_length);
- ret = bytes_written <= 0 ? ARCHIVE_FATAL : ARCHIVE_OK;
+ p = state->buffer;
+ to_write = block_length;
+ while (to_write > 0) {
+ bytes_written = (a->client_writer)(&a->archive,
+ a->client_data, p, to_write);
+ if (bytes_written <= 0) {
+ ret = ARCHIVE_FATAL;
+ break;
+ }
+ if ((size_t)bytes_written > to_write) {
+ archive_set_error(&(a->archive),
+ -1, "write overrun");
+ ret = ARCHIVE_FATAL;
+ break;
+ }
+ p += bytes_written;
+ to_write -= bytes_written;
+ }
}
if (a->client_closer)
(*a->client_closer)(&a->archive, a->client_data);
free(state->buffer);
free(state);
- a->client_data = NULL;
- /* Clear passphrase. */
- if (a->passphrase != NULL) {
- memset(a->passphrase, 0, strlen(a->passphrase));
- free(a->passphrase);
- a->passphrase = NULL;
- }
+
/* Clear the close handler myself not to be called again. */
f->state = ARCHIVE_WRITE_FILTER_STATE_CLOSED;
return (ret);
@@ -509,9 +539,9 @@ archive_write_client_close(struct archive_write_filter *f)
* Open the archive using the current settings.
*/
int
-archive_write_open(struct archive *_a, void *client_data,
+archive_write_open2(struct archive *_a, void *client_data,
archive_open_callback *opener, archive_write_callback *writer,
- archive_close_callback *closer)
+ archive_close_callback *closer, archive_free_callback *freer)
{
struct archive_write *a = (struct archive_write *)_a;
struct archive_write_filter *client_filter;
@@ -524,12 +554,14 @@ archive_write_open(struct archive *_a, void *client_data,
a->client_writer = writer;
a->client_opener = opener;
a->client_closer = closer;
+ a->client_freer = freer;
a->client_data = client_data;
client_filter = __archive_write_allocate_filter(_a);
client_filter->open = archive_write_client_open;
client_filter->write = archive_write_client_write;
client_filter->close = archive_write_client_close;
+ client_filter->free = archive_write_client_free;
ret = __archive_write_filters_open(a);
if (ret < ARCHIVE_WARN) {
@@ -544,6 +576,15 @@ archive_write_open(struct archive *_a, void *client_data,
return (ret);
}
+int
+archive_write_open(struct archive *_a, void *client_data,
+ archive_open_callback *opener, archive_write_callback *writer,
+ archive_close_callback *closer)
+{
+ return archive_write_open2(_a, client_data, opener, writer,
+ closer, NULL);
+}
+
/*
* Close out the archive.
*/
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_b64encode.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_b64encode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_b64encode.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_b64encode.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_by_name.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_by_name.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_by_name.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_by_name.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_bzip2.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_bzip2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_bzip2.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_bzip2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_compress.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_compress.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_compress.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_compress.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_grzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_grzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_grzip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_grzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_gzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_gzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_gzip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_gzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lrzip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lrzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lrzip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lrzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lz4.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lz4.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lz4.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lz4.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lzop.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lzop.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_lzop.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_lzop.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_none.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_none.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_none.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_none.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_program.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_program.c
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_program.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_program.c
index a4bc1d9..c096e72 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_program.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_program.c
@@ -196,10 +196,6 @@ __archive_write_program_free(struct archive_write_program_data *data)
{
if (data) {
-#if defined(_WIN32) && !defined(__CYGWIN__)
- if (data->child)
- CloseHandle(data->child);
-#endif
free(data->program_name);
free(data->child_buf);
free(data);
@@ -211,7 +207,7 @@ int
__archive_write_program_open(struct archive_write_filter *f,
struct archive_write_program_data *data, const char *cmd)
{
- pid_t child;
+ int ret;
if (data->child_buf == NULL) {
data->child_buf_len = 65536;
@@ -225,27 +221,13 @@ __archive_write_program_open(struct archive_write_filter *f,
}
}
- child = __archive_create_child(cmd, &data->child_stdin,
- &data->child_stdout);
- if (child == -1) {
+ ret = __archive_create_child(cmd, &data->child_stdin,
+ &data->child_stdout, &data->child);
+ if (ret != ARCHIVE_OK) {
archive_set_error(f->archive, EINVAL,
"Can't launch external program: %s", cmd);
return (ARCHIVE_FATAL);
}
-#if defined(_WIN32) && !defined(__CYGWIN__)
- data->child = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, child);
- if (data->child == NULL) {
- close(data->child_stdin);
- data->child_stdin = -1;
- close(data->child_stdout);
- data->child_stdout = -1;
- archive_set_error(f->archive, EINVAL,
- "Can't launch external program: %s", cmd);
- return (ARCHIVE_FATAL);
- }
-#else
- data->child = child;
-#endif
return (ARCHIVE_OK);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_uuencode.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_uuencode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_uuencode.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_uuencode.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_xz.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_xz.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_xz.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_xz.c
index 8c1ebb8..9dd2c30 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_xz.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_xz.c
@@ -382,8 +382,8 @@ archive_compressor_xz_options(struct archive_write_filter *f,
value[1] != '\0')
return (ARCHIVE_WARN);
data->compression_level = value[0] - '0';
- if (data->compression_level > 6)
- data->compression_level = 6;
+ if (data->compression_level > 9)
+ data->compression_level = 9;
return (ARCHIVE_OK);
} else if (strcmp(key, "threads") == 0) {
char *endptr;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_zstd.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_zstd.c
similarity index 80%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_zstd.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_zstd.c
index 4c91551..c74a35c 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_add_filter_zstd.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_add_filter_zstd.c
@@ -59,6 +59,16 @@ struct private_data {
#endif
};
+/* If we don't have the library use default range values (zstdcli.c v1.4.0) */
+#define CLEVEL_MIN -99
+#define CLEVEL_STD_MIN 0 /* prior to 1.3.4 and more recent without using --fast */
+#define CLEVEL_DEFAULT 3
+#define CLEVEL_STD_MAX 19 /* without using --ultra */
+#define CLEVEL_MAX 22
+
+#define MINVER_NEGCLEVEL 10304
+#define MINVER_MINCLEVEL 10306
+
static int archive_compressor_zstd_options(struct archive_write_filter *,
const char *, const char *);
static int archive_compressor_zstd_open(struct archive_write_filter *);
@@ -96,7 +106,7 @@ archive_write_add_filter_zstd(struct archive *_a)
f->free = &archive_compressor_zstd_free;
f->code = ARCHIVE_FILTER_ZSTD;
f->name = "zstd";
- data->compression_level = 3; /* Default level used by the zstd CLI */
+ data->compression_level = CLEVEL_DEFAULT;
#if HAVE_ZSTD_H && HAVE_LIBZSTD
data->cstream = ZSTD_createCStream();
if (data->cstream == NULL) {
@@ -135,6 +145,31 @@ archive_compressor_zstd_free(struct archive_write_filter *f)
return (ARCHIVE_OK);
}
+static int string_is_numeric (const char* value)
+{
+ size_t len = strlen(value);
+ size_t i;
+
+ if (len == 0) {
+ return (ARCHIVE_WARN);
+ }
+ else if (len == 1 && !(value[0] >= '0' && value[0] <= '9')) {
+ return (ARCHIVE_WARN);
+ }
+ else if (!(value[0] >= '0' && value[0] <= '9') &&
+ value[0] != '-' && value[0] != '+') {
+ return (ARCHIVE_WARN);
+ }
+
+ for (i = 1; i < len; i++) {
+ if (!(value[i] >= '0' && value[i] <= '9')) {
+ return (ARCHIVE_WARN);
+ }
+ }
+
+ return (ARCHIVE_OK);
+}
+
/*
* Set write options.
*/
@@ -146,12 +181,25 @@ archive_compressor_zstd_options(struct archive_write_filter *f, const char *key,
if (strcmp(key, "compression-level") == 0) {
int level = atoi(value);
-#if HAVE_ZSTD_H && HAVE_LIBZSTD
- if (level < 1 || level > ZSTD_maxCLevel()) {
-#else
/* If we don't have the library, hard-code the max level */
- if (level < 1 || level > 22) {
+ int minimum = CLEVEL_MIN;
+ int maximum = CLEVEL_MAX;
+ if (string_is_numeric(value) != ARCHIVE_OK) {
+ return (ARCHIVE_WARN);
+ }
+#if HAVE_ZSTD_H && HAVE_LIBZSTD
+ maximum = ZSTD_maxCLevel();
+#if ZSTD_VERSION_NUMBER >= MINVER_MINCLEVEL
+ if (ZSTD_versionNumber() >= MINVER_MINCLEVEL) {
+ minimum = ZSTD_minCLevel();
+ }
+ else
#endif
+ if (ZSTD_versionNumber() < MINVER_NEGCLEVEL) {
+ minimum = CLEVEL_STD_MIN;
+ }
+#endif
+ if (level < minimum || level > maximum) {
return (ARCHIVE_WARN);
}
data->compression_level = level;
@@ -297,7 +345,26 @@ archive_compressor_zstd_open(struct archive_write_filter *f)
int r;
archive_string_init(&as);
- archive_string_sprintf(&as, "zstd -%d", data->compression_level);
+ /* --no-check matches library default */
+ archive_strcpy(&as, "zstd --no-check");
+
+ if (data->compression_level < CLEVEL_STD_MIN) {
+ struct archive_string as2;
+ archive_string_init(&as2);
+ archive_string_sprintf(&as2, " --fast=%d", -data->compression_level);
+ archive_string_concat(&as, &as2);
+ archive_string_free(&as2);
+ } else {
+ struct archive_string as2;
+ archive_string_init(&as2);
+ archive_string_sprintf(&as2, " -%d", data->compression_level);
+ archive_string_concat(&as, &as2);
+ archive_string_free(&as2);
+ }
+
+ if (data->compression_level > CLEVEL_STD_MAX) {
+ archive_strcat(&as, " --ultra");
+ }
f->write = archive_compressor_zstd_write;
r = __archive_write_program_open(f, data->pdata, as.s);
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_blocksize.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_blocksize.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_blocksize.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_blocksize.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_data.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_data.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_data.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_data.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_posix.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_posix.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk_posix.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk_posix.c
index cc53a3d..fcd733a 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_posix.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_posix.c
@@ -360,7 +360,7 @@ static int la_mktemp(struct archive_write_disk *);
static void fsobj_error(int *, struct archive_string *, int, const char *,
const char *);
static int check_symlinks_fsobj(char *, int *, struct archive_string *,
- int);
+ int, int);
static int check_symlinks(struct archive_write_disk *);
static int create_filesystem_object(struct archive_write_disk *);
static struct fixup_entry *current_fixup(struct archive_write_disk *,
@@ -546,6 +546,7 @@ _archive_write_disk_header(struct archive *_a, struct archive_entry *entry)
{
struct archive_write_disk *a = (struct archive_write_disk *)_a;
struct fixup_entry *fe;
+ const char *linkname;
int ret, r;
archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
@@ -590,6 +591,17 @@ _archive_write_disk_header(struct archive *_a, struct archive_entry *entry)
if (ret != ARCHIVE_OK)
return (ret);
+ /*
+ * Check if we have a hardlink that points to itself.
+ */
+ linkname = archive_entry_hardlink(a->entry);
+ if (linkname != NULL && strcmp(a->name, linkname) == 0) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
+ "Skipping hardlink pointing to itself: %s",
+ a->name);
+ return (ARCHIVE_WARN);
+ }
+
/*
* Query the umask so we get predictable mode settings.
* This gets done on every call to _write_header in case the
@@ -1856,8 +1868,9 @@ finish_metadata:
if (a->tmpname) {
if (rename(a->tmpname, a->name) == -1) {
archive_set_error(&a->archive, errno,
- "rename failed");
- ret = ARCHIVE_FATAL;
+ "Failed to rename temporary file");
+ ret = ARCHIVE_FAILED;
+ unlink(a->tmpname);
}
a->tmpname = NULL;
}
@@ -2144,8 +2157,11 @@ restore_entry(struct archive_write_disk *a)
if ((a->flags & ARCHIVE_EXTRACT_SAFE_WRITES) &&
S_ISREG(a->st.st_mode)) {
/* Use a temporary file to extract */
- if ((a->fd = la_mktemp(a)) == -1)
+ if ((a->fd = la_mktemp(a)) == -1) {
+ archive_set_error(&a->archive, errno,
+ "Can't create temporary file");
return ARCHIVE_FAILED;
+ }
a->pst = NULL;
en = 0;
} else {
@@ -2247,7 +2263,7 @@ create_filesystem_object(struct archive_write_disk *a)
return (EPERM);
}
r = check_symlinks_fsobj(linkname_copy, &error_number,
- &error_string, a->flags);
+ &error_string, a->flags, 1);
if (r != ARCHIVE_OK) {
archive_set_error(&a->archive, error_number, "%s",
error_string.s);
@@ -2268,7 +2284,12 @@ create_filesystem_object(struct archive_write_disk *a)
*/
if (a->flags & ARCHIVE_EXTRACT_SAFE_WRITES)
unlink(a->name);
+#ifdef HAVE_LINKAT
+ r = linkat(AT_FDCWD, linkname, AT_FDCWD, a->name,
+ 0) ? errno : 0;
+#else
r = link(linkname, a->name) ? errno : 0;
+#endif
/*
* New cpio and pax formats allow hardlink entries
* to carry data, so we may have to open the file
@@ -2440,6 +2461,7 @@ _archive_write_disk_close(struct archive *_a)
{
struct archive_write_disk *a = (struct archive_write_disk *)_a;
struct fixup_entry *next, *p;
+ struct stat st;
int fd, ret;
archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
@@ -2457,6 +2479,20 @@ _archive_write_disk_close(struct archive *_a)
(TODO_TIMES | TODO_MODE_BASE | TODO_ACLS | TODO_FFLAGS)) {
fd = open(p->name,
O_WRONLY | O_BINARY | O_NOFOLLOW | O_CLOEXEC);
+ if (fd == -1) {
+ /* If we cannot lstat, skip entry */
+ if (lstat(p->name, &st) != 0)
+ goto skip_fixup_entry;
+ /*
+ * If we deal with a symbolic link, mark
+ * it in the fixup mode to ensure no
+ * modifications are made to its target.
+ */
+ if (S_ISLNK(st.st_mode)) {
+ p->mode &= ~S_IFMT;
+ p->mode |= S_IFLNK;
+ }
+ }
}
if (p->fixup & TODO_TIMES) {
set_times(a, fd, p->mode, p->name,
@@ -2471,7 +2507,12 @@ _archive_write_disk_close(struct archive *_a)
fchmod(fd, p->mode);
else
#endif
- chmod(p->name, p->mode);
+#ifdef HAVE_LCHMOD
+ lchmod(p->name, p->mode);
+#else
+ if (!S_ISLNK(p->mode))
+ chmod(p->name, p->mode);
+#endif
}
if (p->fixup & TODO_ACLS)
archive_write_disk_set_acls(&a->archive, fd,
@@ -2482,6 +2523,7 @@ _archive_write_disk_close(struct archive *_a)
if (p->fixup & TODO_MAC_METADATA)
set_mac_metadata(a, p->name, p->mac_metadata,
p->mac_metadata_size);
+skip_fixup_entry:
next = p->next;
archive_acl_clear(&p->acl);
free(p->mac_metadata);
@@ -2622,6 +2664,7 @@ new_fixup(struct archive_write_disk *a, const char *pathname)
fe->next = a->fixup_list;
a->fixup_list = fe;
fe->fixup = 0;
+ fe->mode = 0;
fe->name = strdup(pathname);
return (fe);
}
@@ -2659,7 +2702,7 @@ fsobj_error(int *a_eno, struct archive_string *a_estr,
*/
static int
check_symlinks_fsobj(char *path, int *a_eno, struct archive_string *a_estr,
- int flags)
+ int flags, int checking_linkname)
{
#if !defined(HAVE_LSTAT) && \
!(defined(HAVE_OPENAT) && defined(HAVE_FSTATAT) && defined(HAVE_UNLINKAT))
@@ -2668,6 +2711,7 @@ check_symlinks_fsobj(char *path, int *a_eno, struct archive_string *a_estr,
(void)error_number; /* UNUSED */
(void)error_string; /* UNUSED */
(void)flags; /* UNUSED */
+ (void)checking_linkname; /* UNUSED */
return (ARCHIVE_OK);
#else
int res = ARCHIVE_OK;
@@ -2789,6 +2833,28 @@ check_symlinks_fsobj(char *path, int *a_eno, struct archive_string *a_estr,
head = tail + 1;
}
} else if (S_ISLNK(st.st_mode)) {
+ if (last && checking_linkname) {
+#ifdef HAVE_LINKAT
+ /*
+ * Hardlinks to symlinks are safe to write
+ * if linkat() is supported as it does not
+ * follow symlinks.
+ */
+ res = ARCHIVE_OK;
+#else
+ /*
+ * We return ARCHIVE_FAILED here as we are
+ * not able to safely write hardlinks
+ * to symlinks.
+ */
+ tail[0] = c;
+ fsobj_error(a_eno, a_estr, errno,
+ "Cannot write hardlink to symlink ",
+ path);
+ res = ARCHIVE_FAILED;
+#endif
+ break;
+ } else
if (last) {
/*
* Last element is symlink; remove it
@@ -2955,7 +3021,7 @@ check_symlinks(struct archive_write_disk *a)
int rc;
archive_string_init(&error_string);
rc = check_symlinks_fsobj(a->name, &error_number, &error_string,
- a->flags);
+ a->flags, 0);
if (rc != ARCHIVE_OK) {
archive_set_error(&a->archive, error_number, "%s",
error_string.s);
@@ -3883,7 +3949,8 @@ set_fflags_platform(struct archive_write_disk *a, int fd, const char *name,
/* If we weren't given an fd, open it ourselves. */
if (myfd < 0) {
- myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY | O_CLOEXEC);
+ myfd = open(name, O_RDONLY | O_NONBLOCK | O_BINARY |
+ O_CLOEXEC | O_NOFOLLOW);
__archive_ensure_cloexec_flag(myfd);
}
if (myfd < 0)
@@ -4407,10 +4474,19 @@ set_xattrs(struct archive_write_disk *a)
int e;
int namespace;
+ namespace = EXTATTR_NAMESPACE_USER;
+
if (strncmp(name, "user.", 5) == 0) {
/* "user." attributes go to user namespace */
name += 5;
namespace = EXTATTR_NAMESPACE_USER;
+ } else if (strncmp(name, "system.", 7) == 0) {
+ name += 7;
+ namespace = EXTATTR_NAMESPACE_SYSTEM;
+ if (!strcmp(name, "nfs4.acl") ||
+ !strcmp(name, "posix1e.acl_access") ||
+ !strcmp(name, "posix1e.acl_default"))
+ continue;
} else {
/* Other namespaces are unsupported */
archive_strcat(&errlist, name);
@@ -4421,8 +4497,29 @@ set_xattrs(struct archive_write_disk *a)
}
if (a->fd >= 0) {
+ /*
+ * On FreeBSD, extattr_set_fd does not
+ * return the same as
+ * extattr_set_file. It returns zero
+ * on success, non-zero on failure.
+ *
+ * We can detect the failure by
+ * manually setting errno prior to the
+ * call and checking after.
+ *
+ * If errno remains zero, fake the
+ * return value by setting e to size.
+ *
+ * This is a hack for now until I
+ * (Shawn Webb) get FreeBSD to fix the
+ * issue, if that's even possible.
+ */
+ errno = 0;
e = extattr_set_fd(a->fd, namespace, name,
value, size);
+ if (e == 0 && errno == 0) {
+ e = size;
+ }
} else {
e = extattr_set_link(
archive_entry_pathname(entry), namespace,
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_set_standard_lookup.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_set_standard_lookup.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk_set_standard_lookup.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk_set_standard_lookup.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_windows.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_windows.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_disk_windows.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_disk_windows.c
index 77e36c4..0c60017 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_disk_windows.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_disk_windows.c
@@ -549,6 +549,8 @@ la_mktemp(struct archive_write_disk *a)
a->tmpname = a->_tmpname_data.s;
fd = __archive_mkstemp(a->tmpname);
+ if (fd == -1)
+ return -1;
mode = a->mode & 0777 & ~a->user_umask;
if (la_chmod(a->tmpname, mode) == -1) {
@@ -1281,9 +1283,11 @@ _archive_write_disk_finish_entry(struct archive *_a)
/* Windows does not support atomic rename */
disk_unlink(a->name);
if (_wrename(a->tmpname, a->name) != 0) {
+ la_dosmaperr(GetLastError());
archive_set_error(&a->archive, errno,
- "rename failed");
- ret = ARCHIVE_FATAL;
+ "Failed to rename temporary file");
+ ret = ARCHIVE_FAILED;
+ disk_unlink(a->tmpname);
}
a->tmpname = NULL;
}
@@ -1573,12 +1577,17 @@ restore_entry(struct archive_write_disk *a)
S_ISREG(st_mode)) {
int fd = la_mktemp(a);
- if (fd == -1)
+ if (fd == -1) {
+ la_dosmaperr(GetLastError());
+ archive_set_error(&a->archive, errno,
+ "Can't create temporary file");
return (ARCHIVE_FAILED);
+ }
a->fh = (HANDLE)_get_osfhandle(fd);
- if (a->fh == INVALID_HANDLE_VALUE)
+ if (a->fh == INVALID_HANDLE_VALUE) {
+ la_dosmaperr(GetLastError());
return (ARCHIVE_FAILED);
-
+ }
a->pst = NULL;
en = 0;
} else {
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_filter.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_filter.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_filter.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_filter.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_finish_entry.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_finish_entry.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_finish_entry.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_finish_entry.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_format.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_format.3
similarity index 91%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_format.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_format.3
index 47a7403..653089f 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_format.3
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_format.3
@@ -35,7 +35,10 @@
.Nm archive_write_set_format_ar_svr4 ,
.Nm archive_write_set_format_by_name ,
.Nm archive_write_set_format_cpio ,
+.Nm archive_write_set_format_cpio_bin ,
.Nm archive_write_set_format_cpio_newc ,
+.Nm archive_write_set_format_cpio_odc ,
+.Nm archive_write_set_format_cpio_pwb ,
.Nm archive_write_set_format_filter_by_ext ,
.Nm archive_write_set_format_filter_by_ext_def ,
.Nm archive_write_set_format_gnutar ,
@@ -73,8 +76,14 @@ Streaming Archive Library (libarchive, -larchive)
.Ft int
.Fn archive_write_set_format_cpio "struct archive *"
.Ft int
+.Fn archive_write_set_format_cpio_bin "struct archive *"
+.Ft int
.Fn archive_write_set_format_cpio_newc "struct archive *"
.Ft int
+.Fn archive_write_set_format_cpio_odc "struct archive *"
+.Ft int
+.Fn archive_write_set_format_cpio_pwb "struct archive *"
+.Ft int
.Fn archive_write_set_format_filter_by_ext "struct archive *" "const char *filename"
.Ft int
.Fn archive_write_set_format_filter_by_ext_def "struct archive *" "const char *filename" "const char *def_ext"
@@ -119,17 +128,20 @@ to create a new archive with the same format as an existing archive.
.It Fn archive_write_set_format_by_name
Sets the corresponding format based on the common name.
.It Xo
-.Fn archive_write_set_format_filter_by_ext ,
+.Fn archive_write_set_format_filter_by_ext
.Fn archive_write_set_format_filter_by_ext_def
.Xc
Sets both filters and format based on the output filename.
Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz
.It Xo
.Fn archive_write_set_format_7zip
-.Fn archive_write_set_format_ar_bsd ,
-.Fn archive_write_set_format_ar_svr4 ,
+.Fn archive_write_set_format_ar_bsd
+.Fn archive_write_set_format_ar_svr4
.Fn archive_write_set_format_cpio
+.Fn archive_write_set_format_cpio_bin
.Fn archive_write_set_format_cpio_newc
+.Fn archive_write_set_format_cpio_odc
+.Fn archive_write_set_format_cpio_pwb
.Fn archive_write_set_format_gnutar
.Fn archive_write_set_format_iso9660
.Fn archive_write_set_format_mtree
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_free.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_free.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_free.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_free.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_header.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_header.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_header.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_header.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_new.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_new.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_new.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_new.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_open.3
similarity index 89%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open.3
index 0129d10..29bffe4 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open.3
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open.3
@@ -24,11 +24,12 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 2, 2012
+.Dd November 12, 2020
.Dt ARCHIVE_WRITE_OPEN 3
.Os
.Sh NAME
.Nm archive_write_open ,
+.Nm archive_write_open2 ,
.Nm archive_write_open_fd ,
.Nm archive_write_open_FILE ,
.Nm archive_write_open_filename ,
@@ -47,6 +48,15 @@ Streaming Archive Library (libarchive, -larchive)
.Fa "archive_close_callback *"
.Fc
.Ft int
+.Fo archive_write_open2
+.Fa "struct archive *"
+.Fa "void *client_data"
+.Fa "archive_open_callback *"
+.Fa "archive_write_callback *"
+.Fa "archive_close_callback *"
+.Fa "archive_free_callback *"
+.Fc
+.Ft int
.Fn archive_write_open_fd "struct archive *" "int fd"
.Ft int
.Fn archive_write_open_FILE "struct archive *" "FILE *file"
@@ -67,6 +77,11 @@ This is the most generic form of this function, which accepts
pointers to three callback functions which will be invoked by
the compression layer to write the constructed archive.
This does not alter the default archive padding.
+.It Fn archive_write_open2
+Same as
+.Fn archive_write_open
+with an additional fourth free callback. This function should be preferred to
+.Fn archive_write_open .
.It Fn archive_write_open_fd
A convenience form of
.Fn archive_write_open
@@ -106,14 +121,14 @@ to a character or block device node, it will disable padding otherwise.
You can override this by manually invoking
.Fn archive_write_set_bytes_in_last_block
before calling
-.Fn archive_write_open .
+.Fn archive_write_open2 .
The
.Fn archive_write_open_filename
function is safe for use with tape drives or other
block-oriented devices.
.It Fn archive_write_open_memory
A convenience form of
-.Fn archive_write_open
+.Fn archive_write_open2
that accepts a pointer to a block of memory that will receive
the archive.
The final
@@ -145,7 +160,7 @@ To use this library, you will need to define and register
callback functions that will be invoked to write data to the
resulting archive.
These functions are registered by calling
-.Fn archive_write_open :
+.Fn archive_write_open2 :
.Bl -item -offset indent
.It
.Ft typedef int
@@ -162,6 +177,8 @@ If the open fails, it should call
.Fn archive_set_error
to register an error code and message and return
.Cm ARCHIVE_FATAL .
+Please note that if open fails, close is not called and resources must be
+freed inside the open callback or with the free callback.
.Bl -item -offset indent
.It
.Ft typedef la_ssize_t
@@ -192,7 +209,8 @@ to register an error code and message and return -1.
.El
.Pp
The close callback is invoked by archive_close when
-the archive processing is complete.
+the archive processing is complete. If the open callback fails, the close
+callback is not invoked.
The callback should return
.Cm ARCHIVE_OK
on success.
@@ -200,7 +218,14 @@ On failure, the callback should invoke
.Fn archive_set_error
to register an error code and message and
return
-.Cm ARCHIVE_FATAL .
+.Bl -item -offset indent
+.It
+.Ft typedef int
+.Fn archive_free_callback "struct archive *" "void *client_data"
+.El
+.Pp
+The free callback is always invoked on archive_free.
+The return code of this callback is not processed.
.Pp
Note that if the client-provided write callback function
returns a non-zero value, that error will be propagated back to the caller
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_fd.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_fd.c
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open_fd.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open_fd.c
index d5c426c..b8d491f 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_fd.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_fd.c
@@ -54,7 +54,7 @@ struct write_fd_data {
int fd;
};
-static int file_close(struct archive *, void *);
+static int file_free(struct archive *, void *);
static int file_open(struct archive *, void *);
static ssize_t file_write(struct archive *, void *, const void *buff, size_t);
@@ -72,8 +72,8 @@ archive_write_open_fd(struct archive *a, int fd)
#if defined(__CYGWIN__) || defined(_WIN32)
setmode(mine->fd, O_BINARY);
#endif
- return (archive_write_open(a, mine,
- file_open, file_write, file_close));
+ return (archive_write_open2(a, mine,
+ file_open, file_write, NULL, file_free));
}
static int
@@ -134,11 +134,13 @@ file_write(struct archive *a, void *client_data, const void *buff, size_t length
}
static int
-file_close(struct archive *a, void *client_data)
+file_free(struct archive *a, void *client_data)
{
struct write_fd_data *mine = (struct write_fd_data *)client_data;
(void)a; /* UNUSED */
+ if (mine == NULL)
+ return (ARCHIVE_OK);
free(mine);
return (ARCHIVE_OK);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_file.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_file.c
similarity index 92%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open_file.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open_file.c
index f6b1412..bf5b55a 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_file.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_file.c
@@ -51,7 +51,7 @@ struct write_FILE_data {
FILE *f;
};
-static int file_close(struct archive *, void *);
+static int file_free(struct archive *, void *);
static int file_open(struct archive *, void *);
static ssize_t file_write(struct archive *, void *, const void *buff, size_t);
@@ -66,8 +66,8 @@ archive_write_open_FILE(struct archive *a, FILE *f)
return (ARCHIVE_FATAL);
}
mine->f = f;
- return (archive_write_open(a, mine,
- file_open, file_write, file_close));
+ return (archive_write_open2(a, mine, file_open, file_write,
+ NULL, file_free));
}
static int
@@ -99,11 +99,13 @@ file_write(struct archive *a, void *client_data, const void *buff, size_t length
}
static int
-file_close(struct archive *a, void *client_data)
+file_free(struct archive *a, void *client_data)
{
struct write_FILE_data *mine = client_data;
(void)a; /* UNUSED */
+ if (mine == NULL)
+ return (ARCHIVE_OK);
free(mine);
return (ARCHIVE_OK);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_filename.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_filename.c
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open_filename.c
index 66e0dfe..9ceefb1 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_filename.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_filename.c
@@ -62,6 +62,7 @@ struct write_file_data {
};
static int file_close(struct archive *, void *);
+static int file_free(struct archive *, void *);
static int file_open(struct archive *, void *);
static ssize_t file_write(struct archive *, void *, const void *buff, size_t);
static int open_filename(struct archive *, int, const void *);
@@ -123,8 +124,8 @@ open_filename(struct archive *a, int mbs_fn, const void *filename)
return (ARCHIVE_FAILED);
}
mine->fd = -1;
- return (archive_write_open(a, mine,
- file_open, file_write, file_close));
+ return (archive_write_open2(a, mine,
+ file_open, file_write, file_close, file_free));
}
static int
@@ -244,9 +245,25 @@ file_close(struct archive *a, void *client_data)
(void)a; /* UNUSED */
+ if (mine == NULL)
+ return (ARCHIVE_FATAL);
+
if (mine->fd >= 0)
close(mine->fd);
+ return (ARCHIVE_OK);
+}
+
+static int
+file_free(struct archive *a, void *client_data)
+{
+ struct write_file_data *mine = (struct write_file_data *)client_data;
+
+ (void)a; /* UNUSED */
+
+ if (mine == NULL)
+ return (ARCHIVE_OK);
+
archive_mstring_clean(&mine->filename);
free(mine);
return (ARCHIVE_OK);
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_memory.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_memory.c
similarity index 93%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_open_memory.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_open_memory.c
index ea6ae0a..a8a0b81 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_open_memory.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_open_memory.c
@@ -39,7 +39,7 @@ struct write_memory_data {
unsigned char * buff;
};
-static int memory_write_close(struct archive *, void *);
+static int memory_write_free(struct archive *, void *);
static int memory_write_open(struct archive *, void *);
static ssize_t memory_write(struct archive *, void *, const void *buff, size_t);
@@ -61,8 +61,8 @@ archive_write_open_memory(struct archive *a, void *buff, size_t buffSize, size_t
mine->buff = buff;
mine->size = buffSize;
mine->client_size = used;
- return (archive_write_open(a, mine,
- memory_write_open, memory_write, memory_write_close));
+ return (archive_write_open2(a, mine,
+ memory_write_open, memory_write, NULL, memory_write_free));
}
static int
@@ -103,11 +103,13 @@ memory_write(struct archive *a, void *client_data, const void *buff, size_t leng
}
static int
-memory_write_close(struct archive *a, void *client_data)
+memory_write_free(struct archive *a, void *client_data)
{
struct write_memory_data *mine;
(void)a; /* UNUSED */
mine = client_data;
+ if (mine == NULL)
+ return (ARCHIVE_OK);
free(mine);
return (ARCHIVE_OK);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_write_private.h
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_private.h
index 27cba03..155fdd7 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_private.h
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_private.h
@@ -89,6 +89,7 @@ struct archive_write {
archive_open_callback *client_opener;
archive_write_callback *client_writer;
archive_close_callback *client_closer;
+ archive_free_callback *client_freer;
void *client_data;
/*
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format.c
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format.c
index 12de080..1f65fa4 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format.c
@@ -44,7 +44,9 @@ struct { int code; int (*setter)(struct archive *); } codes[] =
{
{ ARCHIVE_FORMAT_7ZIP, archive_write_set_format_7zip },
{ ARCHIVE_FORMAT_CPIO, archive_write_set_format_cpio },
- { ARCHIVE_FORMAT_CPIO_POSIX, archive_write_set_format_cpio },
+ { ARCHIVE_FORMAT_CPIO_BIN_LE, archive_write_set_format_cpio_bin },
+ { ARCHIVE_FORMAT_CPIO_PWB, archive_write_set_format_cpio_pwb },
+ { ARCHIVE_FORMAT_CPIO_POSIX, archive_write_set_format_cpio_odc },
{ ARCHIVE_FORMAT_CPIO_SVR4_NOCRC, archive_write_set_format_cpio_newc },
{ ARCHIVE_FORMAT_ISO9660, archive_write_set_format_iso9660 },
{ ARCHIVE_FORMAT_MTREE, archive_write_set_format_mtree },
@@ -82,7 +84,7 @@ void
__archive_write_entry_filetype_unsupported(struct archive *a,
struct archive_entry *entry, const char *format)
{
- char *name = NULL;
+ const char *name = NULL;
switch (archive_entry_filetype(entry)) {
/*
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_7zip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_7zip.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_7zip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_7zip.c
index fb7697f..d5ca9a6 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_7zip.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_7zip.c
@@ -755,6 +755,10 @@ _7z_close(struct archive_write *a)
*/
#if HAVE_LZMA_H
header_compression = _7Z_LZMA1;
+ if(zip->opt_compression == _7Z_LZMA2 ||
+ zip->opt_compression == _7Z_COPY)
+ header_compression = zip->opt_compression;
+
/* If the stored file is only one, do not encode the header.
* This is the same way 7z command does. */
if (zip->total_number_entry == 1)
@@ -762,7 +766,8 @@ _7z_close(struct archive_write *a)
#else
header_compression = _7Z_COPY;
#endif
- r = _7z_compression_init_encoder(a, header_compression, 6);
+ r = _7z_compression_init_encoder(a, header_compression,
+ zip->opt_compression_level);
if (r < 0)
return (r);
zip->crc32flg = PRECODE_CRC32;
@@ -1927,8 +1932,8 @@ compression_init_encoder_lzma(struct archive *a,
return (ARCHIVE_FATAL);
}
lzmafilters = (lzma_filter *)(strm+1);
- if (level > 6)
- level = 6;
+ if (level > 9)
+ level = 9;
if (lzma_lzma_preset(&lzma_opt, level)) {
free(strm);
lastrm->real_stream = NULL;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_ar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_ar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_ar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_ar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_by_name.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_by_name.c
similarity index 96%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_by_name.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_by_name.c
index 86e8621..bfb4b35 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_by_name.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_by_name.c
@@ -49,6 +49,7 @@ struct { const char *name; int (*setter)(struct archive *); } names[] =
{ "arbsd", archive_write_set_format_ar_bsd },
{ "argnu", archive_write_set_format_ar_svr4 },
{ "arsvr4", archive_write_set_format_ar_svr4 },
+ { "bin", archive_write_set_format_cpio_bin },
{ "bsdtar", archive_write_set_format_pax_restricted },
{ "cd9660", archive_write_set_format_iso9660 },
{ "cpio", archive_write_set_format_cpio },
@@ -58,11 +59,12 @@ struct { const char *name; int (*setter)(struct archive *); } names[] =
{ "mtree", archive_write_set_format_mtree },
{ "mtree-classic", archive_write_set_format_mtree_classic },
{ "newc", archive_write_set_format_cpio_newc },
- { "odc", archive_write_set_format_cpio },
+ { "odc", archive_write_set_format_cpio_odc },
{ "oldtar", archive_write_set_format_v7tar },
{ "pax", archive_write_set_format_pax },
{ "paxr", archive_write_set_format_pax_restricted },
{ "posix", archive_write_set_format_pax },
+ { "pwb", archive_write_set_format_cpio_pwb },
{ "raw", archive_write_set_format_raw },
{ "rpax", archive_write_set_format_pax_restricted },
{ "shar", archive_write_set_format_shar },
diff --git a/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio.c
new file mode 100644
index 0000000..29a7cad
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio.c
@@ -0,0 +1,10 @@
+#include "archive.h"
+
+/*
+ * Set output format to the default 'cpio' format.
+ */
+int
+archive_write_set_format_cpio(struct archive *_a)
+{
+ return archive_write_set_format_cpio_odc(_a);
+}
diff --git a/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_binary.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_binary.c
new file mode 100644
index 0000000..c1e2f65
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_binary.c
@@ -0,0 +1,610 @@
+/*-
+ * Copyright (c) 2003-2007 Tim Kientzle
+ * Copyright (c) 2011-2012 Michihiro NAKAJIMA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "archive_platform.h"
+__FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_format_cpio.c 201170 2009-12-29 06:34:23Z kientzle $");
+
+#ifdef HAVE_ERRNO_H
+#include
+#endif
+#include
+#ifdef HAVE_STDLIB_H
+#include
+#endif
+#ifdef HAVE_STRING_H
+#include
+#endif
+
+#include "archive.h"
+#include "archive_entry.h"
+#include "archive_entry_locale.h"
+#include "archive_private.h"
+#include "archive_write_private.h"
+#include "archive_write_set_format_private.h"
+
+static ssize_t archive_write_binary_data(struct archive_write *,
+ const void *buff, size_t s);
+static int archive_write_binary_close(struct archive_write *);
+static int archive_write_binary_free(struct archive_write *);
+static int archive_write_binary_finish_entry(struct archive_write *);
+static int archive_write_binary_header(struct archive_write *,
+ struct archive_entry *);
+static int archive_write_binary_options(struct archive_write *,
+ const char *, const char *);
+static int write_header(struct archive_write *, struct archive_entry *);
+
+struct cpio {
+ uint64_t entry_bytes_remaining;
+
+ int64_t ino_next;
+
+ struct { int64_t old; int new;} *ino_list;
+ size_t ino_list_size;
+ size_t ino_list_next;
+
+ struct archive_string_conv *opt_sconv;
+ struct archive_string_conv *sconv_default;
+ int init_default_conversion;
+};
+
+/* This struct needs to be packed to get the header right */
+
+#if defined(__GNUC__)
+#define PACKED(x) x __attribute__((packed))
+#elif defined(_MSC_VER)
+#define PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop))
+#else
+#define PACKED(x) x
+#endif
+
+#define HSIZE 26
+
+PACKED(struct cpio_binary_header {
+ uint16_t h_magic;
+ uint16_t h_dev;
+ uint16_t h_ino;
+ uint16_t h_mode;
+ uint16_t h_uid;
+ uint16_t h_gid;
+ uint16_t h_nlink;
+ uint16_t h_majmin;
+ uint32_t h_mtime;
+ uint16_t h_namesize;
+ uint32_t h_filesize;
+});
+
+/* Back in the day, the 7th Edition cpio.c had this, to
+ * adapt to, as the comment said, "VAX, Interdata, ...":
+ *
+ * union { long l; short s[2]; char c[4]; } U;
+ * #define MKSHORT(v,lv) {U.l=1L;if(U.c[0]) U.l=lv,v[0]=U.s[1],v[1]=U.s[0]; else U.l=lv,v[0]=U.s[0],v[1]=U.s[1];}
+ * long mklong(v)
+ * short v[];
+ * {
+ * U.l = 1;
+ * if(U.c[0])
+ * U.s[0] = v[1], U.s[1] = v[0];
+ * else
+ * U.s[0] = v[0], U.s[1] = v[1];
+ * return U.l;
+ * }
+ *
+ * Of course, that assumes that all machines have little-endian shorts,
+ * and just adapts the others to the special endianness of the PDP-11.
+ *
+ * Now, we could do this:
+ *
+ * union { uint32_t l; uint16_t s[2]; uint8_t c[4]; } U;
+ * #define PUTI16(v,sv) {U.s[0]=1;if(U.c[0]) v=sv; else U.s[0]=sv,U.c[2]=U.c[1],U.c[3]=U.c[0],v=U.s[1];}
+ * #define PUTI32(v,lv) {char_t Ut;U.l=1;if(U.c[0]) U.l=lv,v[0]=U.s[1],v[1]=U.s[0]; else U.l=lv,Ut=U.c[0],U.c[0]=U.c[1],U.c[1]=Ut,Ut=U.c[2],U.c[2]=U.c[3],U.c[3]=Ut,v[0]=U.s[0],v[1]=U.s[1];}
+ *
+ * ...but it feels a little better to do it like this:
+ */
+
+static uint16_t swap16(uint16_t in) {
+ union {
+ uint16_t s[2];
+ uint8_t c[4];
+ } U;
+ U.s[0] = 1;
+ if (U.c[0])
+ return in;
+ else {
+ U.s[0] = in;
+ U.c[2] = U.c[1];
+ U.c[3] = U.c[0];
+ return U.s[1];
+ }
+ /* NOTREACHED */
+}
+
+static uint32_t swap32(uint32_t in) {
+ union {
+ uint32_t l;
+ uint16_t s[2];
+ uint8_t c[4];
+ } U;
+ U.l = 1;
+ if (U.c[0]) { /* Little-endian */
+ uint16_t t;
+ U.l = in;
+ t = U.s[0];
+ U.s[0] = U.s[1];
+ U.s[1] = t;
+ } else if (U.c[3]) { /* Big-endian */
+ U.l = in;
+ U.s[0] = swap16(U.s[0]);
+ U.s[1] = swap16(U.s[1]);
+ } else { /* PDP-endian */
+ U.l = in;
+ }
+ return U.l;
+}
+
+/*
+ * Set output format to the selected binary variant
+ */
+static int
+archive_write_set_format_cpio_binary(struct archive *_a, int format)
+{
+ struct archive_write *a = (struct archive_write *)_a;
+ struct cpio *cpio;
+
+ if (sizeof(struct cpio_binary_header) != HSIZE) {
+ archive_set_error(&a->archive, EINVAL,
+ "Binary cpio format not supported on this platform");
+ return (ARCHIVE_FATAL);
+ }
+
+ archive_check_magic(_a, ARCHIVE_WRITE_MAGIC,
+ ARCHIVE_STATE_NEW, "archive_write_set_format_cpio_binary");
+
+ /* If someone else was already registered, unregister them. */
+ if (a->format_free != NULL)
+ (a->format_free)(a);
+
+ cpio = (struct cpio *)calloc(1, sizeof(*cpio));
+ if (cpio == NULL) {
+ archive_set_error(&a->archive, ENOMEM, "Can't allocate cpio data");
+ return (ARCHIVE_FATAL);
+ }
+ a->format_data = cpio;
+ a->format_name = "cpio";
+ a->format_options = archive_write_binary_options;
+ a->format_write_header = archive_write_binary_header;
+ a->format_write_data = archive_write_binary_data;
+ a->format_finish_entry = archive_write_binary_finish_entry;
+ a->format_close = archive_write_binary_close;
+ a->format_free = archive_write_binary_free;
+ a->archive.archive_format = format;
+ switch (format) {
+ case ARCHIVE_FORMAT_CPIO_PWB:
+ a->archive.archive_format_name = "PWB cpio";
+ break;
+ case ARCHIVE_FORMAT_CPIO_BIN_LE:
+ a->archive.archive_format_name = "7th Edition cpio";
+ break;
+ default:
+ archive_set_error(&a->archive, EINVAL, "binary format must be 'pwb' or 'bin'");
+ return (ARCHIVE_FATAL);
+ }
+ return (ARCHIVE_OK);
+}
+
+/*
+ * Set output format to PWB (6th Edition) binary format
+ */
+int
+archive_write_set_format_cpio_pwb(struct archive *_a)
+{
+ return archive_write_set_format_cpio_binary(_a, ARCHIVE_FORMAT_CPIO_PWB);
+}
+
+/*
+ * Set output format to 7th Edition binary format
+ */
+int
+archive_write_set_format_cpio_bin(struct archive *_a)
+{
+ return archive_write_set_format_cpio_binary(_a, ARCHIVE_FORMAT_CPIO_BIN_LE);
+}
+
+static int
+archive_write_binary_options(struct archive_write *a, const char *key,
+ const char *val)
+{
+ struct cpio *cpio = (struct cpio *)a->format_data;
+ int ret = ARCHIVE_FAILED;
+
+ if (strcmp(key, "hdrcharset") == 0) {
+ if (val == NULL || val[0] == 0)
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
+ "%s: hdrcharset option needs a character-set name",
+ a->format_name);
+ else {
+ cpio->opt_sconv = archive_string_conversion_to_charset(
+ &a->archive, val, 0);
+ if (cpio->opt_sconv != NULL)
+ ret = ARCHIVE_OK;
+ else
+ ret = ARCHIVE_FATAL;
+ }
+ return (ret);
+ }
+
+ /* Note: The "warn" return is just to inform the options
+ * supervisor that we didn't handle it. It will generate
+ * a suitable error if no one used this option. */
+ return (ARCHIVE_WARN);
+}
+
+/*
+ * Ino values are as long as 64 bits on some systems; cpio format
+ * only allows 16 bits and relies on the ino values to identify hardlinked
+ * files. So, we can't merely "hash" the ino numbers since collisions
+ * would corrupt the archive. Instead, we generate synthetic ino values
+ * to store in the archive and maintain a map of original ino values to
+ * synthetic ones so we can preserve hardlink information.
+ *
+ * TODO: Make this more efficient. It's not as bad as it looks (most
+ * files don't have any hardlinks and we don't do any work here for those),
+ * but it wouldn't be hard to do better.
+ *
+ * TODO: Work with dev/ino pairs here instead of just ino values.
+ */
+static int
+synthesize_ino_value(struct cpio *cpio, struct archive_entry *entry)
+{
+ int64_t ino = archive_entry_ino64(entry);
+ int ino_new;
+ size_t i;
+
+ /*
+ * If no index number was given, don't assign one. In
+ * particular, this handles the end-of-archive marker
+ * correctly by giving it a zero index value. (This is also
+ * why we start our synthetic index numbers with one below.)
+ */
+ if (ino == 0)
+ return (0);
+
+ /* Don't store a mapping if we don't need to. */
+ if (archive_entry_nlink(entry) < 2) {
+ return (int)(++cpio->ino_next);
+ }
+
+ /* Look up old ino; if we have it, this is a hardlink
+ * and we reuse the same value. */
+ for (i = 0; i < cpio->ino_list_next; ++i) {
+ if (cpio->ino_list[i].old == ino)
+ return (cpio->ino_list[i].new);
+ }
+
+ /* Assign a new index number. */
+ ino_new = (int)(++cpio->ino_next);
+
+ /* Ensure space for the new mapping. */
+ if (cpio->ino_list_size <= cpio->ino_list_next) {
+ size_t newsize = cpio->ino_list_size < 512
+ ? 512 : cpio->ino_list_size * 2;
+ void *newlist = realloc(cpio->ino_list,
+ sizeof(cpio->ino_list[0]) * newsize);
+ if (newlist == NULL)
+ return (-1);
+
+ cpio->ino_list_size = newsize;
+ cpio->ino_list = newlist;
+ }
+
+ /* Record and return the new value. */
+ cpio->ino_list[cpio->ino_list_next].old = ino;
+ cpio->ino_list[cpio->ino_list_next].new = ino_new;
+ ++cpio->ino_list_next;
+ return (ino_new);
+}
+
+
+static struct archive_string_conv *
+get_sconv(struct archive_write *a)
+{
+ struct cpio *cpio;
+ struct archive_string_conv *sconv;
+
+ cpio = (struct cpio *)a->format_data;
+ sconv = cpio->opt_sconv;
+ if (sconv == NULL) {
+ if (!cpio->init_default_conversion) {
+ cpio->sconv_default =
+ archive_string_default_conversion_for_write(
+ &(a->archive));
+ cpio->init_default_conversion = 1;
+ }
+ sconv = cpio->sconv_default;
+ }
+ return (sconv);
+}
+
+static int
+archive_write_binary_header(struct archive_write *a, struct archive_entry *entry)
+{
+ const char *path;
+ size_t len;
+
+ if (archive_entry_filetype(entry) == 0 && archive_entry_hardlink(entry) == NULL) {
+ archive_set_error(&a->archive, -1, "Filetype required");
+ return (ARCHIVE_FAILED);
+ }
+
+ if (archive_entry_pathname_l(entry, &path, &len, get_sconv(a)) != 0
+ && errno == ENOMEM) {
+ archive_set_error(&a->archive, ENOMEM,
+ "Can't allocate memory for Pathname");
+ return (ARCHIVE_FATAL);
+ }
+ if (len == 0 || path == NULL || path[0] == '\0') {
+ archive_set_error(&a->archive, -1, "Pathname required");
+ return (ARCHIVE_FAILED);
+ }
+
+ if (!archive_entry_size_is_set(entry) || archive_entry_size(entry) < 0) {
+ archive_set_error(&a->archive, -1, "Size required");
+ return (ARCHIVE_FAILED);
+ }
+ return write_header(a, entry);
+}
+
+static int
+write_header(struct archive_write *a, struct archive_entry *entry)
+{
+ struct cpio *cpio;
+ const char *p, *path;
+ int pathlength, ret, ret_final;
+ int64_t ino;
+ struct cpio_binary_header h;
+ struct archive_string_conv *sconv;
+ struct archive_entry *entry_main;
+ size_t len;
+
+ cpio = (struct cpio *)a->format_data;
+ ret_final = ARCHIVE_OK;
+ sconv = get_sconv(a);
+
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ /* Make sure the path separators in pathname, hardlink and symlink
+ * are all slash '/', not the Windows path separator '\'. */
+ entry_main = __la_win_entry_in_posix_pathseparator(entry);
+ if (entry_main == NULL) {
+ archive_set_error(&a->archive, ENOMEM,
+ "Can't allocate ustar data");
+ return(ARCHIVE_FATAL);
+ }
+ if (entry != entry_main)
+ entry = entry_main;
+ else
+ entry_main = NULL;
+#else
+ entry_main = NULL;
+#endif
+
+ ret = archive_entry_pathname_l(entry, &path, &len, sconv);
+ if (ret != 0) {
+ if (errno == ENOMEM) {
+ archive_set_error(&a->archive, ENOMEM,
+ "Can't allocate memory for Pathname");
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate pathname '%s' to %s",
+ archive_entry_pathname(entry),
+ archive_string_conversion_charset_name(sconv));
+ ret_final = ARCHIVE_WARN;
+ }
+ /* Include trailing null */
+ pathlength = (int)len + 1;
+
+ h.h_magic = swap16(070707);
+ h.h_dev = swap16(archive_entry_dev(entry));
+
+ ino = synthesize_ino_value(cpio, entry);
+ if (ino < 0) {
+ archive_set_error(&a->archive, ENOMEM,
+ "No memory for ino translation table");
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ } else if (ino > 077777) {
+ archive_set_error(&a->archive, ERANGE,
+ "Too many files for this cpio format");
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+ h.h_ino = swap16(ino);
+
+ h.h_mode = archive_entry_mode(entry);
+ if (((h.h_mode & AE_IFMT) == AE_IFSOCK) || ((h.h_mode & AE_IFMT) == AE_IFIFO)) {
+ archive_set_error(&a->archive, EINVAL,
+ "sockets and fifos cannot be represented in the binary cpio formats");
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+ if (a->archive.archive_format == ARCHIVE_FORMAT_CPIO_PWB) {
+ if ((h.h_mode & AE_IFMT) == AE_IFLNK) {
+ archive_set_error(&a->archive, EINVAL,
+ "symbolic links cannot be represented in the PWB cpio format");
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+ /* we could turn off AE_IFREG here, but it does no harm, */
+ /* and allows v7 cpio to read the entry without confusion */
+ }
+ h.h_mode = swap16(h.h_mode);
+
+ h.h_uid = swap16(archive_entry_uid(entry));
+ h.h_gid = swap16(archive_entry_gid(entry));
+ h.h_nlink = swap16(archive_entry_nlink(entry));
+
+ if (archive_entry_filetype(entry) == AE_IFBLK
+ || archive_entry_filetype(entry) == AE_IFCHR)
+ h.h_majmin = swap16(archive_entry_rdev(entry));
+ else
+ h.h_majmin = 0;
+
+ h.h_mtime = swap32(archive_entry_mtime(entry));
+ h.h_namesize = swap16(pathlength);
+
+ /* Non-regular files don't store bodies. */
+ if (archive_entry_filetype(entry) != AE_IFREG)
+ archive_entry_set_size(entry, 0);
+
+ /* Symlinks get the link written as the body of the entry. */
+ ret = archive_entry_symlink_l(entry, &p, &len, sconv);
+ if (ret != 0) {
+ if (errno == ENOMEM) {
+ archive_set_error(&a->archive, ENOMEM,
+ "Can't allocate memory for Linkname");
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+ "Can't translate linkname '%s' to %s",
+ archive_entry_symlink(entry),
+ archive_string_conversion_charset_name(sconv));
+ ret_final = ARCHIVE_WARN;
+ }
+
+ if (len > 0 && p != NULL && *p != '\0') {
+ if (a->archive.archive_format == ARCHIVE_FORMAT_CPIO_PWB) {
+ archive_set_error(&a->archive, EINVAL,
+ "symlinks are not supported by UNIX V6 or by PWB cpio");
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+ h.h_filesize = swap32(strlen(p)); /* symlink */
+ } else {
+ if ((a->archive.archive_format == ARCHIVE_FORMAT_CPIO_PWB) &&
+ (archive_entry_size(entry) > 256*256*256-1)) {
+ archive_set_error(&a->archive, ERANGE,
+ "File is too large for PWB binary cpio format.");
+ ret_final = ARCHIVE_FAILED;
+ goto exit_write_header;
+ } else if (archive_entry_size(entry) > INT32_MAX) {
+ archive_set_error(&a->archive, ERANGE,
+ "File is too large for binary cpio format.");
+ ret_final = ARCHIVE_FAILED;
+ goto exit_write_header;
+ }
+ h.h_filesize = swap32(archive_entry_size(entry)); /* file */
+ }
+
+ ret = __archive_write_output(a, &h, HSIZE);
+ if (ret != ARCHIVE_OK) {
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+
+ ret = __archive_write_output(a, path, pathlength);
+ if ((ret == ARCHIVE_OK) && ((pathlength % 2) != 0))
+ ret = __archive_write_nulls(a, 1);
+ if (ret != ARCHIVE_OK) {
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+
+ cpio->entry_bytes_remaining = archive_entry_size(entry);
+ if ((cpio->entry_bytes_remaining % 2) != 0)
+ cpio->entry_bytes_remaining++;
+
+ /* Write the symlink now. */
+ if (p != NULL && *p != '\0') {
+ ret = __archive_write_output(a, p, strlen(p));
+ if ((ret == ARCHIVE_OK) && ((strlen(p) % 2) != 0))
+ ret = __archive_write_nulls(a, 1);
+ if (ret != ARCHIVE_OK) {
+ ret_final = ARCHIVE_FATAL;
+ goto exit_write_header;
+ }
+ }
+
+exit_write_header:
+ archive_entry_free(entry_main);
+ return (ret_final);
+}
+
+static ssize_t
+archive_write_binary_data(struct archive_write *a, const void *buff, size_t s)
+{
+ struct cpio *cpio;
+ int ret;
+
+ cpio = (struct cpio *)a->format_data;
+ if (s > cpio->entry_bytes_remaining)
+ s = (size_t)cpio->entry_bytes_remaining;
+
+ ret = __archive_write_output(a, buff, s);
+ cpio->entry_bytes_remaining -= s;
+ if (ret >= 0)
+ return (s);
+ else
+ return (ret);
+}
+
+static int
+archive_write_binary_close(struct archive_write *a)
+{
+ int er;
+ struct archive_entry *trailer;
+
+ trailer = archive_entry_new2(NULL);
+ /* nlink = 1 here for GNU cpio compat. */
+ archive_entry_set_nlink(trailer, 1);
+ archive_entry_set_size(trailer, 0);
+ archive_entry_set_pathname(trailer, "TRAILER!!!");
+ er = write_header(a, trailer);
+ archive_entry_free(trailer);
+ return (er);
+}
+
+static int
+archive_write_binary_free(struct archive_write *a)
+{
+ struct cpio *cpio;
+
+ cpio = (struct cpio *)a->format_data;
+ free(cpio->ino_list);
+ free(cpio);
+ a->format_data = NULL;
+ return (ARCHIVE_OK);
+}
+
+static int
+archive_write_binary_finish_entry(struct archive_write *a)
+{
+ struct cpio *cpio;
+
+ cpio = (struct cpio *)a->format_data;
+ return (__archive_write_nulls(a,
+ (size_t)cpio->entry_bytes_remaining));
+}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio_newc.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_newc.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio_newc.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_newc.c
index 172fda6..f0f3980 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio_newc.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_newc.c
@@ -190,7 +190,7 @@ archive_write_newc_header(struct archive_write *a, struct archive_entry *entry)
const char *path;
size_t len;
- if (archive_entry_filetype(entry) == 0) {
+ if (archive_entry_filetype(entry) == 0 && archive_entry_hardlink(entry) == NULL) {
archive_set_error(&a->archive, -1, "Filetype required");
return (ARCHIVE_FAILED);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_odc.c
similarity index 91%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_odc.c
index 729f9c7..091925a 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_cpio.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_cpio_odc.c
@@ -45,14 +45,14 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_format_cpio.c 201170 2
#include "archive_write_private.h"
#include "archive_write_set_format_private.h"
-static ssize_t archive_write_cpio_data(struct archive_write *,
+static ssize_t archive_write_odc_data(struct archive_write *,
const void *buff, size_t s);
-static int archive_write_cpio_close(struct archive_write *);
-static int archive_write_cpio_free(struct archive_write *);
-static int archive_write_cpio_finish_entry(struct archive_write *);
-static int archive_write_cpio_header(struct archive_write *,
+static int archive_write_odc_close(struct archive_write *);
+static int archive_write_odc_free(struct archive_write *);
+static int archive_write_odc_finish_entry(struct archive_write *);
+static int archive_write_odc_header(struct archive_write *,
struct archive_entry *);
-static int archive_write_cpio_options(struct archive_write *,
+static int archive_write_odc_options(struct archive_write *,
const char *, const char *);
static int format_octal(int64_t, void *, int);
static int64_t format_octal_recursive(int64_t, char *, int);
@@ -99,13 +99,13 @@ struct cpio {
* Set output format to 'cpio' format.
*/
int
-archive_write_set_format_cpio(struct archive *_a)
+archive_write_set_format_cpio_odc(struct archive *_a)
{
struct archive_write *a = (struct archive_write *)_a;
struct cpio *cpio;
archive_check_magic(_a, ARCHIVE_WRITE_MAGIC,
- ARCHIVE_STATE_NEW, "archive_write_set_format_cpio");
+ ARCHIVE_STATE_NEW, "archive_write_set_format_cpio_odc");
/* If someone else was already registered, unregister them. */
if (a->format_free != NULL)
@@ -118,19 +118,19 @@ archive_write_set_format_cpio(struct archive *_a)
}
a->format_data = cpio;
a->format_name = "cpio";
- a->format_options = archive_write_cpio_options;
- a->format_write_header = archive_write_cpio_header;
- a->format_write_data = archive_write_cpio_data;
- a->format_finish_entry = archive_write_cpio_finish_entry;
- a->format_close = archive_write_cpio_close;
- a->format_free = archive_write_cpio_free;
+ a->format_options = archive_write_odc_options;
+ a->format_write_header = archive_write_odc_header;
+ a->format_write_data = archive_write_odc_data;
+ a->format_finish_entry = archive_write_odc_finish_entry;
+ a->format_close = archive_write_odc_close;
+ a->format_free = archive_write_odc_free;
a->archive.archive_format = ARCHIVE_FORMAT_CPIO_POSIX;
a->archive.archive_format_name = "POSIX cpio";
return (ARCHIVE_OK);
}
static int
-archive_write_cpio_options(struct archive_write *a, const char *key,
+archive_write_odc_options(struct archive_write *a, const char *key,
const char *val)
{
struct cpio *cpio = (struct cpio *)a->format_data;
@@ -245,12 +245,12 @@ get_sconv(struct archive_write *a)
}
static int
-archive_write_cpio_header(struct archive_write *a, struct archive_entry *entry)
+archive_write_odc_header(struct archive_write *a, struct archive_entry *entry)
{
const char *path;
size_t len;
- if (archive_entry_filetype(entry) == 0) {
+ if (archive_entry_filetype(entry) == 0 && archive_entry_hardlink(entry) == NULL) {
archive_set_error(&a->archive, -1, "Filetype required");
return (ARCHIVE_FAILED);
}
@@ -348,7 +348,7 @@ write_header(struct archive_write *a, struct archive_entry *entry)
format_octal(archive_entry_nlink(entry), h + c_nlink_offset, c_nlink_size);
if (archive_entry_filetype(entry) == AE_IFBLK
|| archive_entry_filetype(entry) == AE_IFCHR)
- format_octal(archive_entry_dev(entry), h + c_rdev_offset, c_rdev_size);
+ format_octal(archive_entry_rdev(entry), h + c_rdev_offset, c_rdev_size);
else
format_octal(0, h + c_rdev_offset, c_rdev_size);
format_octal(archive_entry_mtime(entry), h + c_mtime_offset, c_mtime_size);
@@ -414,7 +414,7 @@ exit_write_header:
}
static ssize_t
-archive_write_cpio_data(struct archive_write *a, const void *buff, size_t s)
+archive_write_odc_data(struct archive_write *a, const void *buff, size_t s)
{
struct cpio *cpio;
int ret;
@@ -462,7 +462,7 @@ format_octal_recursive(int64_t v, char *p, int s)
}
static int
-archive_write_cpio_close(struct archive_write *a)
+archive_write_odc_close(struct archive_write *a)
{
int er;
struct archive_entry *trailer;
@@ -478,7 +478,7 @@ archive_write_cpio_close(struct archive_write *a)
}
static int
-archive_write_cpio_free(struct archive_write *a)
+archive_write_odc_free(struct archive_write *a)
{
struct cpio *cpio;
@@ -490,7 +490,7 @@ archive_write_cpio_free(struct archive_write *a)
}
static int
-archive_write_cpio_finish_entry(struct archive_write *a)
+archive_write_odc_finish_entry(struct archive_write *a)
{
struct cpio *cpio;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_filter_by_ext.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_filter_by_ext.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_filter_by_ext.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_filter_by_ext.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_gnutar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_gnutar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_gnutar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_gnutar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_iso9660.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_iso9660.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_iso9660.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_iso9660.c
index 7cde44c..faabd28 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_iso9660.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_iso9660.c
@@ -2178,7 +2178,8 @@ get_system_identitier(char *system_id, size_t size)
strncpy(system_id, "Windows", size-1);
system_id[size-1] = '\0';
#else
-#error no way to get the system identifier on your platform.
+ strncpy(system_id, "Unknown", size-1);
+ system_id[size-1] = '\0';
#endif
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_mtree.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_mtree.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_mtree.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_mtree.c
index aa41e9a..619b771 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_mtree.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_mtree.c
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_format_mtree.c 201171
#include "archive.h"
#include "archive_digest_private.h"
#include "archive_entry.h"
+#include "archive_entry_private.h"
#include "archive_private.h"
#include "archive_rb.h"
#include "archive_string.h"
@@ -82,24 +83,7 @@ struct dir_info {
struct reg_info {
int compute_sum;
uint32_t crc;
-#ifdef ARCHIVE_HAS_MD5
- unsigned char buf_md5[16];
-#endif
-#ifdef ARCHIVE_HAS_RMD160
- unsigned char buf_rmd160[20];
-#endif
-#ifdef ARCHIVE_HAS_SHA1
- unsigned char buf_sha1[20];
-#endif
-#ifdef ARCHIVE_HAS_SHA256
- unsigned char buf_sha256[32];
-#endif
-#ifdef ARCHIVE_HAS_SHA384
- unsigned char buf_sha384[48];
-#endif
-#ifdef ARCHIVE_HAS_SHA512
- unsigned char buf_sha512[64];
-#endif
+ struct ae_digest digest;
};
struct mtree_entry {
@@ -1571,27 +1555,27 @@ sum_final(struct mtree_writer *mtree, struct reg_info *reg)
}
#ifdef ARCHIVE_HAS_MD5
if (mtree->compute_sum & F_MD5)
- archive_md5_final(&mtree->md5ctx, reg->buf_md5);
+ archive_md5_final(&mtree->md5ctx, reg->digest.md5);
#endif
#ifdef ARCHIVE_HAS_RMD160
if (mtree->compute_sum & F_RMD160)
- archive_rmd160_final(&mtree->rmd160ctx, reg->buf_rmd160);
+ archive_rmd160_final(&mtree->rmd160ctx, reg->digest.rmd160);
#endif
#ifdef ARCHIVE_HAS_SHA1
if (mtree->compute_sum & F_SHA1)
- archive_sha1_final(&mtree->sha1ctx, reg->buf_sha1);
+ archive_sha1_final(&mtree->sha1ctx, reg->digest.sha1);
#endif
#ifdef ARCHIVE_HAS_SHA256
if (mtree->compute_sum & F_SHA256)
- archive_sha256_final(&mtree->sha256ctx, reg->buf_sha256);
+ archive_sha256_final(&mtree->sha256ctx, reg->digest.sha256);
#endif
#ifdef ARCHIVE_HAS_SHA384
if (mtree->compute_sum & F_SHA384)
- archive_sha384_final(&mtree->sha384ctx, reg->buf_sha384);
+ archive_sha384_final(&mtree->sha384ctx, reg->digest.sha384);
#endif
#ifdef ARCHIVE_HAS_SHA512
if (mtree->compute_sum & F_SHA512)
- archive_sha512_final(&mtree->sha512ctx, reg->buf_sha512);
+ archive_sha512_final(&mtree->sha512ctx, reg->digest.sha512);
#endif
/* Save what types of sum are computed. */
reg->compute_sum = mtree->compute_sum;
@@ -1621,42 +1605,47 @@ sum_write(struct archive_string *str, struct reg_info *reg)
archive_string_sprintf(str, " cksum=%ju",
(uintmax_t)reg->crc);
}
+
+#define append_digest(_s, _r, _t) \
+ strappend_bin(_s, _r->digest._t, sizeof(_r->digest._t))
+
#ifdef ARCHIVE_HAS_MD5
if (reg->compute_sum & F_MD5) {
archive_strcat(str, " md5digest=");
- strappend_bin(str, reg->buf_md5, sizeof(reg->buf_md5));
+ append_digest(str, reg, md5);
}
#endif
#ifdef ARCHIVE_HAS_RMD160
if (reg->compute_sum & F_RMD160) {
archive_strcat(str, " rmd160digest=");
- strappend_bin(str, reg->buf_rmd160, sizeof(reg->buf_rmd160));
+ append_digest(str, reg, rmd160);
}
#endif
#ifdef ARCHIVE_HAS_SHA1
if (reg->compute_sum & F_SHA1) {
archive_strcat(str, " sha1digest=");
- strappend_bin(str, reg->buf_sha1, sizeof(reg->buf_sha1));
+ append_digest(str, reg, sha1);
}
#endif
#ifdef ARCHIVE_HAS_SHA256
if (reg->compute_sum & F_SHA256) {
archive_strcat(str, " sha256digest=");
- strappend_bin(str, reg->buf_sha256, sizeof(reg->buf_sha256));
+ append_digest(str, reg, sha256);
}
#endif
#ifdef ARCHIVE_HAS_SHA384
if (reg->compute_sum & F_SHA384) {
archive_strcat(str, " sha384digest=");
- strappend_bin(str, reg->buf_sha384, sizeof(reg->buf_sha384));
+ append_digest(str, reg, sha384);
}
#endif
#ifdef ARCHIVE_HAS_SHA512
if (reg->compute_sum & F_SHA512) {
archive_strcat(str, " sha512digest=");
- strappend_bin(str, reg->buf_sha512, sizeof(reg->buf_sha512));
+ append_digest(str, reg, sha512);
}
#endif
+#undef append_digest
}
static int
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_pax.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_pax.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_pax.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_pax.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_private.h b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_private.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_private.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_private.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_raw.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_raw.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_raw.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_raw.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_shar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_shar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_shar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_shar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_ustar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_ustar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_ustar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_ustar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_v7tar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_v7tar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_v7tar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_v7tar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_warc.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_warc.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_warc.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_warc.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_xar.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_xar.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_xar.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_xar.c
index d456cf8..d885f5c 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_xar.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_xar.c
@@ -681,7 +681,8 @@ xar_write_data(struct archive_write *a, const void *buff, size_t s)
{
struct xar *xar;
enum la_zaction run;
- size_t size, rsize;
+ size_t size = 0;
+ size_t rsize;
int r;
xar = (struct xar *)a->format_data;
@@ -2930,8 +2931,8 @@ compression_init_encoder_xz(struct archive *a,
return (ARCHIVE_FATAL);
}
lzmafilters = (lzma_filter *)(strm+1);
- if (level > 6)
- level = 6;
+ if (level > 9)
+ level = 9;
if (lzma_lzma_preset(&lzma_opt, level)) {
free(strm);
lastrm->real_stream = NULL;
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_zip.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_zip.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_zip.c
index 6d48529..f4352d5 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_format_zip.c
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_format_zip.c
@@ -584,6 +584,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry)
zip->entry_flags |= ZIP_ENTRY_FLAG_ENCRYPTED;
zip->entry_encryption = zip->encryption_type;
break;
+ case ENCRYPTION_NONE:
default:
break;
}
@@ -710,6 +711,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry)
+ AUTH_CODE_SIZE;
version_needed = 20;
break;
+ case ENCRYPTION_NONE:
default:
break;
}
@@ -762,6 +764,7 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry)
if (version_needed < 20)
version_needed = 20;
break;
+ case ENCRYPTION_NONE:
default:
break;
}
@@ -1029,6 +1032,7 @@ archive_write_zip_data(struct archive_write *a, const void *buff, size_t s)
zip->cctx_valid = zip->hctx_valid = 1;
}
break;
+ case ENCRYPTION_NONE:
default:
break;
}
@@ -1117,6 +1121,7 @@ archive_write_zip_data(struct archive_write *a, const void *buff, size_t s)
break;
#endif
+ case COMPRESSION_UNSPECIFIED:
default:
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
"Invalid ZIP compression type");
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.3
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.3
index cffe571..dd57358 100644
--- a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.3
+++ b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.3
@@ -255,7 +255,8 @@ If supported, the default value is read from
.Bl -tag -compact -width indent
.It Cm compression-level
The value is interpreted as a decimal integer specifying the
-compression level. Supported values are from 1 to 22.
+compression level. Supported values depend on the library version,
+common values are from 1 to 22.
.El
.It Format 7zip
.Bl -tag -compact -width indent
@@ -278,7 +279,7 @@ Values between 0 and 9 are supported.
The interpretation of the compression level depends on the chosen
compression method.
.El
-.It Format cpio
+.It Format bin
.Bl -tag -compact -width indent
.It Cm hdrcharset
The value is used as a character set name that will be
@@ -518,6 +519,18 @@ XXX needs explanation XXX
The value is used as a character set name that will be
used when translating file names.
.El
+.It Format odc
+.Bl -tag -compact -width indent
+.It Cm hdrcharset
+The value is used as a character set name that will be
+used when translating file names.
+.El
+.It Format pwb
+.Bl -tag -compact -width indent
+.It Cm hdrcharset
+The value is used as a character set name that will be
+used when translating file names.
+.El
.It Format pax
.Bl -tag -compact -width indent
.It Cm hdrcharset
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_options.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_options.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_passphrase.3 b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_passphrase.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_passphrase.3
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_passphrase.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_write_set_passphrase.c b/dependencies/libarchive-3.5.2/libarchive/archive_write_set_passphrase.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_write_set_passphrase.c
rename to dependencies/libarchive-3.5.2/libarchive/archive_write_set_passphrase.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/archive_xxhash.h b/dependencies/libarchive-3.5.2/libarchive/archive_xxhash.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/archive_xxhash.h
rename to dependencies/libarchive-3.5.2/libarchive/archive_xxhash.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/config_freebsd.h b/dependencies/libarchive-3.5.2/libarchive/config_freebsd.h
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/config_freebsd.h
rename to dependencies/libarchive-3.5.2/libarchive/config_freebsd.h
index f16fd34..ac651f0 100644
--- a/dependencies/libarchive-3.4.2/libarchive/config_freebsd.h
+++ b/dependencies/libarchive-3.5.2/libarchive/config_freebsd.h
@@ -24,6 +24,7 @@
*
* $FreeBSD$
*/
+#define __LIBARCHIVE_CONFIG_H_INCLUDED 1
#include
@@ -137,6 +138,7 @@
#define HAVE_LIBZ 1
#define HAVE_LIMITS_H 1
#define HAVE_LINK 1
+#define HAVE_LINKAT 1
#define HAVE_LOCALE_H 1
#define HAVE_LOCALTIME_R 1
#define HAVE_LONG_LONG_INT 1
@@ -183,6 +185,7 @@
#define HAVE_STRFTIME 1
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
+#define HAVE_STRNLEN 1
#define HAVE_STRRCHR 1
#define HAVE_STRUCT_STATFS_F_NAMEMAX 1
#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1
diff --git a/dependencies/libarchive-3.4.2/libarchive/cpio.5 b/dependencies/libarchive-3.5.2/libarchive/cpio.5
similarity index 65%
rename from dependencies/libarchive-3.4.2/libarchive/cpio.5
rename to dependencies/libarchive-3.5.2/libarchive/cpio.5
index 1a2886f..837a456 100644
--- a/dependencies/libarchive-3.4.2/libarchive/cpio.5
+++ b/dependencies/libarchive-3.5.2/libarchive/cpio.5
@@ -56,40 +56,44 @@ The end of the archive is indicated by a special record with
the pathname
.Dq TRAILER!!! .
.Ss PWB format
-XXX Any documentation of the original PWB/UNIX 1.0 format? XXX
-.Ss Old Binary Format
-The old binary
+The PWB binary
.Nm
-format stores numbers as 2-byte and 4-byte binary values.
+format is the original format, when cpio was introduced as part of the
+Programmer's Work Bench system, a variant of 6th Edition UNIX. It
+stores numbers as 2-byte and 4-byte binary values.
Each entry begins with a header in the following format:
+.Pp
.Bd -literal -offset indent
-struct header_old_cpio {
- unsigned short c_magic;
- unsigned short c_dev;
- unsigned short c_ino;
- unsigned short c_mode;
- unsigned short c_uid;
- unsigned short c_gid;
- unsigned short c_nlink;
- unsigned short c_rdev;
- unsigned short c_mtime[2];
- unsigned short c_namesize;
- unsigned short c_filesize[2];
+struct header_pwb_cpio {
+ short h_magic;
+ short h_dev;
+ short h_ino;
+ short h_mode;
+ short h_uid;
+ short h_gid;
+ short h_nlink;
+ short h_majmin;
+ long h_mtime;
+ short h_namesize;
+ long h_filesize;
};
.Ed
.Pp
The
-.Va unsigned short
-fields here are 16-bit integer values; the
-.Va unsigned int
-fields are 32-bit integer values.
-The fields are as follows
+.Va short
+fields here are 16-bit integer values, while the
+.Va long
+fields are 32 bit integers. Since PWB UNIX, like the 6th Edition UNIX
+it was based on, only ran on PDP-11 computers, they
+are in PDP-endian format, which has little-endian shorts, and
+big-endian longs. That is, the long integer whose hexadecimal
+representation is 0x12345678 would be stored in four successive bytes
+as 0x34, 0x12, 0x78, 0x56.
+The fields are as follows:
.Bl -tag -width indent
-.It Va magic
+.It Va h_magic
The integer value octal 070707.
-This value can be used to determine whether this archive is
-written with little-endian or big-endian integers.
-.It Va dev , Va ino
+.It Va h_dev , Va h_ino
The device and inode numbers from the disk.
These are used by programs that read
.Nm
@@ -97,9 +101,94 @@ archives to determine when two entries refer to the same file.
Programs that synthesize
.Nm
archives should be careful to set these to distinct values for each entry.
-.It Va mode
-The mode specifies both the regular permissions and the file type.
-It consists of several bit fields as follows:
+.It Va h_mode
+The mode specifies both the regular permissions and the file type, and
+it also holds a couple of bits that are irrelevant to the cpio format,
+because the field is actually a raw copy of the mode field in the inode
+representing the file. These are the IALLOC flag, which shows that
+the inode entry is in use, and the ILARG flag, which shows that the
+file it represents is large enough to have indirect blocks pointers in
+the inode.
+The mode is decoded as follows:
+.Pp
+.Bl -tag -width "MMMMMMM" -compact
+.It 0100000
+IALLOC flag - irrelevant to cpio.
+.It 0060000
+This masks the file type bits.
+.It 0040000
+File type value for directories.
+.It 0020000
+File type value for character special devices.
+.It 0060000
+File type value for block special devices.
+.It 0010000
+ILARG flag - irrelevant to cpio.
+.It 0004000
+SUID bit.
+.It 0002000
+SGID bit.
+.It 0001000
+Sticky bit.
+.It 0000777
+The lower 9 bits specify read/write/execute permissions
+for world, group, and user following standard POSIX conventions.
+.El
+.It Va h_uid , Va h_gid
+The numeric user id and group id of the owner.
+.It Va h_nlink
+The number of links to this file.
+Directories always have a value of at least two here.
+Note that hardlinked files include file data with every copy in the archive.
+.It Va h_majmin
+For block special and character special entries,
+this field contains the associated device number, with the major
+number in the high byte, and the minor number in the low byte.
+For all other entry types, it should be set to zero by writers
+and ignored by readers.
+.It Va h_mtime
+Modification time of the file, indicated as the number
+of seconds since the start of the epoch,
+00:00:00 UTC January 1, 1970.
+.It Va h_namesize
+The number of bytes in the pathname that follows the header.
+This count includes the trailing NUL byte.
+.It Va h_filesize
+The size of the file. Note that this archive format is limited to 16
+megabyte file sizes, because PWB UNIX, like 6th Edition, only used
+an unsigned 24 bit integer for the file size internally.
+.El
+.Pp
+The pathname immediately follows the fixed header.
+If
+.Cm h_namesize
+is odd, an additional NUL byte is added after the pathname.
+The file data is then appended, again with an additional NUL
+appended if needed to get the next header at an even offset.
+.Pp
+Hardlinked files are not given special treatment;
+the full file contents are included with each copy of the
+file.
+.Ss New Binary Format
+The new binary
+.Nm
+format showed up when cpio was adopted into late 7th Edition UNIX.
+It is exactly like the PWB binary format, described above, except for
+three changes:
+.Pp
+First, UNIX now ran on more than one hardware type, so the endianness
+of 16 bit integers must be determined by observing the magic number at
+the start of the header. The 32 bit integers are still always stored
+with the most significant word first, though, so each of those two, in
+the struct shown above, was stored as an array of two 16 bit integers,
+in the traditional order. Those 16 bit integers, like all the others
+in the struct, were accessed using a macro that byte swapped them if
+necessary.
+.Pp
+Next, 7th Edition had more file types to store, and the IALLOC and ILARG
+flag bits were re-purposed to accommodate these. The revised use of the
+various bits is as follows:
+.Pp
.Bl -tag -width "MMMMMMM" -compact
.It 0170000
This masks the file type bits.
@@ -124,51 +213,26 @@ SUID bit.
SGID bit.
.It 0001000
Sticky bit.
-On some systems, this modifies the behavior of executables and/or directories.
.It 0000777
The lower 9 bits specify read/write/execute permissions
for world, group, and user following standard POSIX conventions.
.El
-.It Va uid , Va gid
-The numeric user id and group id of the owner.
-.It Va nlink
-The number of links to this file.
-Directories always have a value of at least two here.
-Note that hardlinked files include file data with every copy in the archive.
-.It Va rdev
-For block special and character special entries,
-this field contains the associated device number.
-For all other entry types, it should be set to zero by writers
-and ignored by readers.
-.It Va mtime
-Modification time of the file, indicated as the number
-of seconds since the start of the epoch,
-00:00:00 UTC January 1, 1970.
-The four-byte integer is stored with the most-significant 16 bits first
-followed by the least-significant 16 bits.
-Each of the two 16 bit values are stored in machine-native byte order.
-.It Va namesize
-The number of bytes in the pathname that follows the header.
-This count includes the trailing NUL byte.
-.It Va filesize
-The size of the file.
-Note that this archive format is limited to
-four gigabyte file sizes.
-See
-.Va mtime
-above for a description of the storage of four-byte integers.
-.El
.Pp
-The pathname immediately follows the fixed header.
-If the
-.Cm namesize
-is odd, an additional NUL byte is added after the pathname.
-The file data is then appended, padded with NUL
-bytes to an even length.
+Finally, the file size field now represents a signed 32 bit integer in
+the underlying file system, so the maximum file size has increased to
+2 gigabytes.
.Pp
-Hardlinked files are not given special treatment;
-the full file contents are included with each copy of the
-file.
+Note that there is no obvious way to tell which of the two binary
+formats an archive uses, other than to see which one makes more
+sense. The typical error scenario is that a PWB format archive
+unpacked as if it were in the new format will create named sockets
+instead of directories, and then fail to unpack files that should
+go in those directories. Running
+.Va bsdcpio -itv
+on an unknown archive will make it obvious which it is: if it's
+PWB format, directories will be listed with an 's' instead of
+a 'd' as the first character of the mode string, and the larger
+files will have a '?' in that position.
.Ss Portable ASCII Format
.St -susv2
standardized an ASCII variant that is portable across all
@@ -180,6 +244,7 @@ format or as the
format.
It stores the same numeric fields as the old binary format, but
represents them as 6-character or 11-character octal values.
+.Pp
.Bd -literal -offset indent
struct cpio_odc_header {
char c_magic[6];
@@ -196,9 +261,9 @@ struct cpio_odc_header {
};
.Ed
.Pp
-The fields are identical to those in the old binary format.
+The fields are identical to those in the new binary format.
The name and file body follow the fixed header.
-Unlike the old binary format, there is no additional padding
+Unlike the binary formats, there is no additional padding
after the pathname or file contents.
If the files being archived are themselves entirely ASCII, then
the resulting archive will be entirely ASCII, except for the
@@ -207,6 +272,7 @@ NUL byte that terminates the name field.
The "new" ASCII format uses 8-byte hexadecimal fields for
all numbers and separates device numbers into separate fields
for major and minor numbers.
+.Pp
.Bd -literal -offset indent
struct cpio_newc_header {
char c_magic[6];
@@ -227,7 +293,7 @@ struct cpio_newc_header {
.Ed
.Pp
Except as specified below, the fields here match those specified
-for the old binary format above.
+for the new binary format above.
.Bl -tag -width indent
.It Va magic
The string
@@ -244,7 +310,7 @@ Note that this format supports only 4 gigabyte files (unlike the
older ASCII format, which supports 8 gigabyte files).
.Pp
In this format, hardlinked files are handled by setting the
-filesize to zero for each entry except the last one that
+filesize to zero for each entry except the first one that
appears in the archive.
.Ss New CRC Format
The CRC format is identical to the new ASCII format described
@@ -288,9 +354,9 @@ while working in AT&T's Unix Support Group.
It appeared in 1977 as part of PWB/UNIX 1.0, the
.Dq Programmer's Work Bench
derived from
-.At v6
+.At 6th Edition UNIX
that was used internally at AT&T.
-Both the old binary and old character formats were in use
+Both the new binary and old character formats were in use
by 1980, according to the System III source released
by SCO under their
.Dq Ancient Unix
@@ -304,9 +370,9 @@ The
format is mis-named, as it uses a simple checksum and
not a cyclic redundancy check.
.Pp
-The old binary format is limited to 16 bits for user id,
-group id, device, and inode numbers.
-It is limited to 4 gigabyte file sizes.
+The binary formats are limited to 16 bits for user id, group id,
+device, and inode numbers. They are limited to 16 megabyte and 2
+gigabyte file sizes for the older and newer variants, respectively.
.Pp
The old ASCII format is limited to 18 bits for
the user id, group id, device, and inode numbers.
diff --git a/dependencies/libarchive-3.4.2/libarchive/filter_fork.h b/dependencies/libarchive-3.5.2/libarchive/filter_fork.h
similarity index 93%
rename from dependencies/libarchive-3.4.2/libarchive/filter_fork.h
rename to dependencies/libarchive-3.5.2/libarchive/filter_fork.h
index 908e7cd..2bf290c 100644
--- a/dependencies/libarchive-3.4.2/libarchive/filter_fork.h
+++ b/dependencies/libarchive-3.5.2/libarchive/filter_fork.h
@@ -32,8 +32,13 @@
#error This header is only to be used internally to libarchive.
#endif
-pid_t
-__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout);
+int
+__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout,
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ HANDLE *out_child);
+#else
+ pid_t *out_child);
+#endif
void
__archive_check_child(int in, int out);
diff --git a/dependencies/libarchive-3.4.2/libarchive/filter_fork_posix.c b/dependencies/libarchive-3.5.2/libarchive/filter_fork_posix.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/filter_fork_posix.c
rename to dependencies/libarchive-3.5.2/libarchive/filter_fork_posix.c
index 02dbd4b..ac255c4 100644
--- a/dependencies/libarchive-3.4.2/libarchive/filter_fork_posix.c
+++ b/dependencies/libarchive-3.5.2/libarchive/filter_fork_posix.c
@@ -72,8 +72,9 @@ __FBSDID("$FreeBSD: head/lib/libarchive/filter_fork.c 182958 2008-09-12 05:33:00
#include "filter_fork.h"
-pid_t
-__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout)
+int
+__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout,
+ pid_t *out_child)
{
pid_t child;
int stdin_pipe[2], stdout_pipe[2], tmp;
@@ -177,7 +178,8 @@ __archive_create_child(const char *cmd, int *child_stdin, int *child_stdout)
fcntl(*child_stdout, F_SETFL, O_NONBLOCK);
__archive_cmdline_free(cmdline);
- return child;
+ *out_child = child;
+ return ARCHIVE_OK;
#if HAVE_POSIX_SPAWNP
actions_inited:
@@ -192,7 +194,7 @@ stdin_opened:
close(stdin_pipe[1]);
state_allocated:
__archive_cmdline_free(cmdline);
- return -1;
+ return ARCHIVE_FAILED;
}
void
diff --git a/dependencies/libarchive-3.4.2/libarchive/filter_fork_windows.c b/dependencies/libarchive-3.5.2/libarchive/filter_fork_windows.c
similarity index 95%
rename from dependencies/libarchive-3.4.2/libarchive/filter_fork_windows.c
rename to dependencies/libarchive-3.5.2/libarchive/filter_fork_windows.c
index ad271fe..8d11179 100644
--- a/dependencies/libarchive-3.4.2/libarchive/filter_fork_windows.c
+++ b/dependencies/libarchive-3.5.2/libarchive/filter_fork_windows.c
@@ -31,8 +31,9 @@
#include "filter_fork.h"
-pid_t
-__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout)
+int
+__archive_create_child(const char *cmd, int *child_stdin, int *child_stdout,
+ HANDLE *out_child)
{
HANDLE childStdout[2], childStdin[2],childStderr;
SECURITY_ATTRIBUTES secAtts;
@@ -44,6 +45,7 @@ __archive_create_child(const char *cmd, int *child_stdin, int *child_stdout)
char *arg0, *ext;
int i, l;
DWORD fl, fl_old;
+ HANDLE child;
childStdout[0] = childStdout[1] = INVALID_HANDLE_VALUE;
childStdin[0] = childStdin[1] = INVALID_HANDLE_VALUE;
@@ -154,13 +156,20 @@ __archive_create_child(const char *cmd, int *child_stdin, int *child_stdout)
*child_stdout = _open_osfhandle((intptr_t)childStdout[0], _O_RDONLY);
*child_stdin = _open_osfhandle((intptr_t)childStdin[1], _O_WRONLY);
+ child = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE,
+ childInfo.dwProcessId);
+ if (child == NULL) // INVALID_HANDLE_VALUE ?
+ goto fail;
+
+ *out_child = child;
+
CloseHandle(childStdout[1]);
CloseHandle(childStdin[0]);
archive_string_free(&cmdline);
archive_string_free(&fullpath);
__archive_cmdline_free(acmd);
- return (childInfo.dwProcessId);
+ return ARCHIVE_OK;
fail:
if (childStdout[0] != INVALID_HANDLE_VALUE)
@@ -176,7 +185,7 @@ fail:
archive_string_free(&cmdline);
archive_string_free(&fullpath);
__archive_cmdline_free(acmd);
- return (-1);
+ return ARCHIVE_FAILED;
}
void
diff --git a/dependencies/libarchive-3.4.2/libarchive/libarchive-formats.5 b/dependencies/libarchive-3.5.2/libarchive/libarchive-formats.5
similarity index 94%
rename from dependencies/libarchive-3.4.2/libarchive/libarchive-formats.5
rename to dependencies/libarchive-3.5.2/libarchive/libarchive-formats.5
index 62359dd..5a118ff 100644
--- a/dependencies/libarchive-3.4.2/libarchive/libarchive-formats.5
+++ b/dependencies/libarchive-3.5.2/libarchive/libarchive-formats.5
@@ -201,28 +201,27 @@ POSIX.1-2001 extended the ustar format to create the
.Dq pax interchange
format.
.Ss Cpio Formats
-The libarchive library can read a number of common cpio variants and can write
-.Dq odc
-and
-.Dq newc
-format archives.
-A cpio archive stores each entry as a fixed-size header followed
-by a variable-length filename and variable-length data.
-Unlike the tar format, the cpio format does only minimal padding
-of the header or file data.
-There are several cpio variants, which differ primarily in
-how they store the initial header: some store the values as
-octal or hexadecimal numbers in ASCII, others as binary values of
-varying byte order and length.
+The libarchive library can read and write a number of common cpio
+variants. A cpio archive stores each entry as a fixed-size header
+followed by a variable-length filename and variable-length data.
+Unlike the tar format, the cpio format does only minimal padding of
+the header or file data. There are several cpio variants, which
+differ primarily in how they store the initial header: some store the
+values as octal or hexadecimal numbers in ASCII, others as binary
+values of varying byte order and length.
.Bl -tag -width indent
.It Cm binary
-The libarchive library transparently reads both big-endian and little-endian
-variants of the original binary cpio format.
-This format used 32-bit binary values for file size and mtime,
-and 16-bit binary values for the other fields.
+The libarchive library transparently reads both big-endian and
+little-endian variants of the the two binary cpio formats; the
+original one from PWB/UNIX, and the later, more widely used, variant.
+This format used 32-bit binary values for file size and mtime, and
+16-bit binary values for the other fields. The formats support only
+the file types present in UNIX at the time of their creation. File
+sizes are limited to 24 bits in the PWB format, because of the limits
+of the file system, and to 31 bits in the newer binary format, where
+signed 32 bit longs were used.
.It Cm odc
-The libarchive library can both read and write this
-POSIX-standard format, which is officially known as the
+This is the POSIX standardized format, which is officially known as the
.Dq cpio interchange format
or the
.Dq octet-oriented cpio archive format
diff --git a/dependencies/libarchive-3.4.2/libarchive/libarchive.3 b/dependencies/libarchive-3.5.2/libarchive/libarchive.3
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/libarchive.3
rename to dependencies/libarchive-3.5.2/libarchive/libarchive.3
index c6894d2..1ef4b7c 100644
--- a/dependencies/libarchive-3.4.2/libarchive/libarchive.3
+++ b/dependencies/libarchive-3.5.2/libarchive/libarchive.3
@@ -105,7 +105,7 @@ POSIX
.Dq pax interchange format
archives,
.It
-POSIX octet-oriented cpio archives,
+cpio archives,
.It
Zip archive,
.It
diff --git a/dependencies/libarchive-3.4.2/libarchive/libarchive_changes.3 b/dependencies/libarchive-3.5.2/libarchive/libarchive_changes.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/libarchive_changes.3
rename to dependencies/libarchive-3.5.2/libarchive/libarchive_changes.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/libarchive_internals.3 b/dependencies/libarchive-3.5.2/libarchive/libarchive_internals.3
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/libarchive_internals.3
rename to dependencies/libarchive-3.5.2/libarchive/libarchive_internals.3
diff --git a/dependencies/libarchive-3.4.2/libarchive/mtree.5 b/dependencies/libarchive-3.5.2/libarchive/mtree.5
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/mtree.5
rename to dependencies/libarchive-3.5.2/libarchive/mtree.5
diff --git a/dependencies/libarchive-3.4.2/libarchive/tar.5 b/dependencies/libarchive-3.5.2/libarchive/tar.5
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/tar.5
rename to dependencies/libarchive-3.5.2/libarchive/tar.5
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/CMakeLists.txt b/dependencies/libarchive-3.5.2/libarchive/test/CMakeLists.txt
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/test/CMakeLists.txt
rename to dependencies/libarchive-3.5.2/libarchive/test/CMakeLists.txt
index df34d3e..53cc3e2 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/CMakeLists.txt
+++ b/dependencies/libarchive-3.5.2/libarchive/test/CMakeLists.txt
@@ -191,13 +191,15 @@ IF(ENABLE_TEST)
test_read_format_zip_zip64.c
test_read_format_zip_with_invalid_traditional_eocd.c
test_read_large.c
- test_read_pax_schily_xattr.c
+ test_read_pax_xattr_rht_security_selinux.c
+ test_read_pax_xattr_schily.c
test_read_pax_truncated.c
test_read_position.c
test_read_set_format.c
test_read_too_many_filters.c
test_read_truncated.c
test_read_truncated_filter.c
+ test_short_writes.c
test_sparse_basic.c
test_tar_filenames.c
test_tar_large.c
@@ -207,6 +209,7 @@ IF(ENABLE_TEST)
test_write_disk.c
test_write_disk_appledouble.c
test_write_disk_failures.c
+ test_write_disk_fixup.c
test_write_disk_hardlink.c
test_write_disk_hfs_compression.c
test_write_disk_lookup.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/README b/dependencies/libarchive-3.5.2/libarchive/test/README
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/README
rename to dependencies/libarchive-3.5.2/libarchive/test/README
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/list.h b/dependencies/libarchive-3.5.2/libarchive/test/list.h
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/test/list.h
rename to dependencies/libarchive-3.5.2/libarchive/test/list.h
index 59a22fe..0146e92 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/list.h
+++ b/dependencies/libarchive-3.5.2/libarchive/test/list.h
@@ -206,15 +206,15 @@ DEFINE_TEST(test_read_format_ar)
DEFINE_TEST(test_read_format_cab)
DEFINE_TEST(test_read_format_cab_filename)
DEFINE_TEST(test_read_format_cpio_afio)
-DEFINE_TEST(test_read_format_cpio_bin)
-DEFINE_TEST(test_read_format_cpio_bin_Z)
DEFINE_TEST(test_read_format_cpio_bin_be)
DEFINE_TEST(test_read_format_cpio_bin_bz2)
+DEFINE_TEST(test_read_format_cpio_bin)
DEFINE_TEST(test_read_format_cpio_bin_gz)
DEFINE_TEST(test_read_format_cpio_bin_le)
DEFINE_TEST(test_read_format_cpio_bin_lzip)
DEFINE_TEST(test_read_format_cpio_bin_lzma)
DEFINE_TEST(test_read_format_cpio_bin_xz)
+DEFINE_TEST(test_read_format_cpio_bin_Z)
DEFINE_TEST(test_read_format_cpio_filename_eucJP_UTF8)
DEFINE_TEST(test_read_format_cpio_filename_UTF8_eucJP)
DEFINE_TEST(test_read_format_cpio_filename_UTF8_UTF8_jp)
@@ -233,9 +233,9 @@ DEFINE_TEST(test_read_format_cpio_filename_KOI8R_CP1251)
DEFINE_TEST(test_read_format_cpio_filename_UTF8_CP1251)
DEFINE_TEST(test_read_format_cpio_odc)
DEFINE_TEST(test_read_format_cpio_svr4_bzip2_rpm)
+DEFINE_TEST(test_read_format_cpio_svr4c_Z)
DEFINE_TEST(test_read_format_cpio_svr4_gzip)
DEFINE_TEST(test_read_format_cpio_svr4_gzip_rpm)
-DEFINE_TEST(test_read_format_cpio_svr4c_Z)
DEFINE_TEST(test_read_format_empty)
DEFINE_TEST(test_read_format_gtar_filename_eucJP_UTF8)
DEFINE_TEST(test_read_format_gtar_filename_CP866_KOI8R)
@@ -250,20 +250,20 @@ DEFINE_TEST(test_read_format_gtar_gz)
DEFINE_TEST(test_read_format_gtar_lzma)
DEFINE_TEST(test_read_format_gtar_sparse)
DEFINE_TEST(test_read_format_gtar_sparse_skip_entry)
-DEFINE_TEST(test_read_format_iso_Z)
-DEFINE_TEST(test_read_format_iso_multi_extent)
-DEFINE_TEST(test_read_format_iso_xorriso)
DEFINE_TEST(test_read_format_isojoliet_bz2)
DEFINE_TEST(test_read_format_isojoliet_long)
DEFINE_TEST(test_read_format_isojoliet_rr)
DEFINE_TEST(test_read_format_isojoliet_versioned)
+DEFINE_TEST(test_read_format_iso_multi_extent)
DEFINE_TEST(test_read_format_isorr_bz2)
DEFINE_TEST(test_read_format_isorr_ce)
DEFINE_TEST(test_read_format_isorr_new_bz2)
DEFINE_TEST(test_read_format_isorr_rr_moved)
+DEFINE_TEST(test_read_format_iso_xorriso)
+DEFINE_TEST(test_read_format_iso_Z)
DEFINE_TEST(test_read_format_isozisofs_bz2)
-DEFINE_TEST(test_read_format_lha)
DEFINE_TEST(test_read_format_lha_bugfix_0)
+DEFINE_TEST(test_read_format_lha)
DEFINE_TEST(test_read_format_lha_filename)
DEFINE_TEST(test_read_format_lha_filename_UTF16)
DEFINE_TEST(test_read_format_mtree)
@@ -276,28 +276,6 @@ DEFINE_TEST(test_read_format_mtree_nonexistent_contents_file)
DEFINE_TEST(test_read_format_mtree_noprint)
DEFINE_TEST(test_read_format_mtree_crash747)
DEFINE_TEST(test_read_format_pax_bz2)
-DEFINE_TEST(test_read_format_rar_set_format)
-DEFINE_TEST(test_read_format_rar_basic)
-DEFINE_TEST(test_read_format_rar_subblock)
-DEFINE_TEST(test_read_format_rar_noeof)
-DEFINE_TEST(test_read_format_rar_unicode_UTF8)
-DEFINE_TEST(test_read_format_rar_unicode_CP932)
-DEFINE_TEST(test_read_format_rar_compress_normal)
-DEFINE_TEST(test_read_format_rar_multi_lzss_blocks)
-DEFINE_TEST(test_read_format_rar_compress_best)
-DEFINE_TEST(test_read_format_rar_ppmd_lzss_conversion)
-DEFINE_TEST(test_read_format_rar_binary)
-DEFINE_TEST(test_read_format_rar_windows)
-DEFINE_TEST(test_read_format_rar_multivolume)
-DEFINE_TEST(test_read_format_rar_multivolume_skip)
-DEFINE_TEST(test_read_format_rar_sfx)
-DEFINE_TEST(test_read_format_rar_multivolume_stored_file)
-DEFINE_TEST(test_read_format_rar_multivolume_stored_file_skip)
-DEFINE_TEST(test_read_format_rar_multivolume_seek_data)
-DEFINE_TEST(test_read_format_rar_multivolume_seek_multiple_files)
-DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files)
-DEFINE_TEST(test_read_format_rar_ppmd_use_after_free)
-DEFINE_TEST(test_read_format_rar_ppmd_use_after_free2)
DEFINE_TEST(test_read_format_rar5_set_format)
DEFINE_TEST(test_read_format_rar5_stored)
DEFINE_TEST(test_read_format_rar5_compressed)
@@ -341,6 +319,28 @@ DEFINE_TEST(test_read_format_rar5_arm_filter_on_window_boundary)
DEFINE_TEST(test_read_format_rar5_different_solid_window_size)
DEFINE_TEST(test_read_format_rar5_different_winsize_on_merge)
DEFINE_TEST(test_read_format_rar5_block_size_is_too_small)
+DEFINE_TEST(test_read_format_rar_set_format)
+DEFINE_TEST(test_read_format_rar_basic)
+DEFINE_TEST(test_read_format_rar_subblock)
+DEFINE_TEST(test_read_format_rar_noeof)
+DEFINE_TEST(test_read_format_rar_unicode_UTF8)
+DEFINE_TEST(test_read_format_rar_unicode_CP932)
+DEFINE_TEST(test_read_format_rar_compress_normal)
+DEFINE_TEST(test_read_format_rar_multi_lzss_blocks)
+DEFINE_TEST(test_read_format_rar_compress_best)
+DEFINE_TEST(test_read_format_rar_ppmd_lzss_conversion)
+DEFINE_TEST(test_read_format_rar_binary)
+DEFINE_TEST(test_read_format_rar_windows)
+DEFINE_TEST(test_read_format_rar_multivolume)
+DEFINE_TEST(test_read_format_rar_multivolume_skip)
+DEFINE_TEST(test_read_format_rar_sfx)
+DEFINE_TEST(test_read_format_rar_multivolume_stored_file)
+DEFINE_TEST(test_read_format_rar_multivolume_stored_file_skip)
+DEFINE_TEST(test_read_format_rar_multivolume_seek_data)
+DEFINE_TEST(test_read_format_rar_multivolume_seek_multiple_files)
+DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files)
+DEFINE_TEST(test_read_format_rar_ppmd_use_after_free)
+DEFINE_TEST(test_read_format_rar_ppmd_use_after_free2)
DEFINE_TEST(test_read_format_rar_encryption_data)
DEFINE_TEST(test_read_format_rar_encryption_header)
DEFINE_TEST(test_read_format_rar_encryption_partially)
@@ -360,6 +360,7 @@ DEFINE_TEST(test_read_format_tz)
DEFINE_TEST(test_read_format_ustar_filename)
DEFINE_TEST(test_read_format_warc)
DEFINE_TEST(test_read_format_xar)
+DEFINE_TEST(test_read_format_zip_utf8_paths)
DEFINE_TEST(test_read_format_zip)
DEFINE_TEST(test_read_format_zip_ppmd_one_file)
DEFINE_TEST(test_read_format_zip_ppmd_one_file_blockread)
@@ -379,7 +380,10 @@ DEFINE_TEST(test_read_format_zip_ppmd8_crash_1)
DEFINE_TEST(test_read_format_zip_bz2_hang_on_invalid)
DEFINE_TEST(test_read_format_zip_ppmd8_crash_2)
DEFINE_TEST(test_read_format_zip_lzma_alone_leak)
-DEFINE_TEST(test_read_format_zip_utf8_paths)
+DEFINE_TEST(test_read_format_zip_lzma_stream_end)
+DEFINE_TEST(test_read_format_zip_lzma_stream_end_blockread)
+DEFINE_TEST(test_read_format_zip_7z_lzma)
+DEFINE_TEST(test_read_format_zip_7z_deflate)
DEFINE_TEST(test_read_format_zip_comment_stored)
DEFINE_TEST(test_read_format_zip_encryption_data)
DEFINE_TEST(test_read_format_zip_encryption_header)
@@ -424,8 +428,9 @@ DEFINE_TEST(test_read_format_zip_with_invalid_traditional_eocd)
DEFINE_TEST(test_read_format_zip_zip64a)
DEFINE_TEST(test_read_format_zip_zip64b)
DEFINE_TEST(test_read_large)
-DEFINE_TEST(test_schily_xattr_pax)
DEFINE_TEST(test_read_pax_truncated)
+DEFINE_TEST(test_read_pax_xattr_rht_security_selinux)
+DEFINE_TEST(test_read_pax_xattr_schily)
DEFINE_TEST(test_read_position)
DEFINE_TEST(test_read_set_format)
DEFINE_TEST(test_read_set_wrong_format)
@@ -442,6 +447,7 @@ DEFINE_TEST(test_read_truncated_filter_lzip)
DEFINE_TEST(test_read_truncated_filter_lzma)
DEFINE_TEST(test_read_truncated_filter_lzop)
DEFINE_TEST(test_read_truncated_filter_xz)
+DEFINE_TEST(test_short_writes)
DEFINE_TEST(test_sparse_basic)
DEFINE_TEST(test_fully_sparse_files)
DEFINE_TEST(test_tar_filenames)
@@ -457,20 +463,21 @@ DEFINE_TEST(test_ustar_filename_encoding_EUCJP_CP932)
DEFINE_TEST(test_ustar_filename_encoding_CP932_UTF8)
DEFINE_TEST(test_ustar_filenames)
DEFINE_TEST(test_warn_missing_hardlink_target)
-DEFINE_TEST(test_write_disk)
DEFINE_TEST(test_write_disk_appledouble)
+DEFINE_TEST(test_write_disk)
DEFINE_TEST(test_write_disk_failures)
+DEFINE_TEST(test_write_disk_fixup)
DEFINE_TEST(test_write_disk_hardlink)
DEFINE_TEST(test_write_disk_hfs_compression)
DEFINE_TEST(test_write_disk_lookup)
DEFINE_TEST(test_write_disk_mac_metadata)
DEFINE_TEST(test_write_disk_no_hfs_compression)
DEFINE_TEST(test_write_disk_perms)
-DEFINE_TEST(test_write_disk_secure)
DEFINE_TEST(test_write_disk_secure744)
DEFINE_TEST(test_write_disk_secure745)
DEFINE_TEST(test_write_disk_secure746a)
DEFINE_TEST(test_write_disk_secure746b)
+DEFINE_TEST(test_write_disk_secure)
DEFINE_TEST(test_write_disk_sparse)
DEFINE_TEST(test_write_disk_symlink)
DEFINE_TEST(test_write_disk_times)
@@ -517,22 +524,22 @@ DEFINE_TEST(test_write_format_cpio_odc)
DEFINE_TEST(test_write_format_gnutar)
DEFINE_TEST(test_write_format_gnutar_filenames)
DEFINE_TEST(test_write_format_gnutar_linknames)
-DEFINE_TEST(test_write_format_iso9660)
DEFINE_TEST(test_write_format_iso9660_boot)
+DEFINE_TEST(test_write_format_iso9660)
DEFINE_TEST(test_write_format_iso9660_empty)
DEFINE_TEST(test_write_format_iso9660_filename)
DEFINE_TEST(test_write_format_iso9660_zisofs)
+DEFINE_TEST(test_write_format_mtree_absolute_path)
DEFINE_TEST(test_write_format_mtree)
DEFINE_TEST(test_write_format_mtree_no_leading_dotslash)
-DEFINE_TEST(test_write_format_mtree_absolute_path)
DEFINE_TEST(test_write_format_mtree_classic)
DEFINE_TEST(test_write_format_mtree_classic_indent)
DEFINE_TEST(test_write_format_mtree_fflags)
DEFINE_TEST(test_write_format_mtree_no_separator)
DEFINE_TEST(test_write_format_mtree_quoted_filename)
DEFINE_TEST(test_write_format_pax)
-DEFINE_TEST(test_write_format_raw)
DEFINE_TEST(test_write_format_raw_b64)
+DEFINE_TEST(test_write_format_raw)
DEFINE_TEST(test_write_format_shar_empty)
DEFINE_TEST(test_write_format_tar)
DEFINE_TEST(test_write_format_tar_empty)
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/read_open_memory.c b/dependencies/libarchive-3.5.2/libarchive/test/read_open_memory.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/read_open_memory.c
rename to dependencies/libarchive-3.5.2/libarchive/test/read_open_memory.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test.h b/dependencies/libarchive-3.5.2/libarchive/test/test.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test.h
rename to dependencies/libarchive-3.5.2/libarchive/test/test.h
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_nfs4.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_nfs4.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_nfs4.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_nfs4.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax_nfs4.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax_nfs4.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax_nfs4.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax_nfs4.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax_posix1e.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax_posix1e.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_pax_posix1e.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_pax_posix1e.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_nfs4.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_nfs4.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_nfs4.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_nfs4.c
index 410582b..ae4bb5a 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_nfs4.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_nfs4.c
@@ -634,9 +634,11 @@ acl_match(acl_entry_t aclent, struct myacl_t *myacl)
case ACL_ENTRY_TYPE_AUDIT:
if (myacl->type != ARCHIVE_ENTRY_ACL_TYPE_AUDIT)
return (0);
+ break;
case ACL_ENTRY_TYPE_ALARM:
if (myacl->type != ARCHIVE_ENTRY_ACL_TYPE_ALARM)
return (0);
+ break;
default:
return (0);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_posix1e.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_posix1e.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_posix1e.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_posix1e.c
index 801a7ac..c34f7c2 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_platform_posix1e.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_platform_posix1e.c
@@ -364,8 +364,8 @@ DEFINE_TEST(test_acl_platform_posix1e_read)
struct archive *a;
struct archive_entry *ae;
int n, fd, flags, dflags;
- char *func, *acl_text;
- const char *acl1_text, *acl2_text, *acl3_text;
+ char *acl_text;
+ const char *func, *acl1_text, *acl2_text, *acl3_text;
#if ARCHIVE_ACL_SUNOS
void *aclp;
int aclcnt;
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_posix1e.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_posix1e.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_posix1e.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_posix1e.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_acl_text.c b/dependencies/libarchive-3.5.2/libarchive/test/test_acl_text.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_acl_text.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_acl_text.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_api_feature.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_api_feature.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_api_feature.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_api_feature.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_clear_error.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_clear_error.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_clear_error.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_clear_error.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_cmdline.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_cmdline.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_cmdline.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_cmdline.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_digest.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_digest.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_digest.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_digest.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_getdate.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_getdate.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_getdate.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_getdate.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_owner.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_owner.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_owner.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_owner.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_path.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_path.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_path.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_path.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_time.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_time.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_match_time.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_match_time.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_pathmatch.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_pathmatch.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_pathmatch.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_pathmatch.c
index 21cbdd7..0116df0 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_pathmatch.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_pathmatch.c
@@ -52,6 +52,10 @@ DEFINE_TEST(test_archive_pathmatch)
assertEqualInt(0, archive_pathmatch("a/b/c", "a/b/", 0));
assertEqualInt(0, archive_pathmatch("a/b/c", "a/b", 0));
+ /* Null string and non-empty pattern returns false. */
+ assertEqualInt(0, archive_pathmatch("a/b/c", NULL, 0));
+ assertEqualInt(0, archive_pathmatch_w(L"a/b/c", NULL, 0));
+
/* Empty pattern only matches empty string. */
assertEqualInt(1, archive_pathmatch("","", 0));
assertEqualInt(0, archive_pathmatch("","a", 0));
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_add_passphrase.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_add_passphrase.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_add_passphrase.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_add_passphrase.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice_open_fd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice_open_fd.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice_open_fd.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice_open_fd.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice_open_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice_open_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_close_twice_open_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_close_twice_open_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_multiple_data_objects.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_multiple_data_objects.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_multiple_data_objects.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_multiple_data_objects.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_empty.c
similarity index 90%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_empty.c
index f650bcc..f43cbd9 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_empty.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_empty.c
@@ -44,14 +44,9 @@ test_empty_file1(void)
}
static void
-test_empty_file2(void)
+test_empty_file2_check(struct archive* a)
{
- struct archive* a = archive_read_new();
struct archive_entry* e;
-
- /* Try opening an empty file with raw and empty handlers. */
- assertEqualInt(ARCHIVE_OK, archive_read_support_format_raw(a));
- assertEqualInt(ARCHIVE_OK, archive_read_support_format_empty(a));
assertEqualInt(0, archive_errno(a));
assertEqualString(NULL, archive_error_string(a));
@@ -66,6 +61,25 @@ test_empty_file2(void)
archive_read_free(a);
}
+static void
+test_empty_file2(void)
+{
+ struct archive* a = archive_read_new();
+
+ /* Try opening an empty file with raw and empty handlers. */
+ assertEqualInt(ARCHIVE_OK, archive_read_support_format_raw(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_support_format_empty(a));
+ test_empty_file2_check(a);
+
+ a = archive_read_new();
+ assertEqualInt(ARCHIVE_OK, archive_read_support_format_by_code(a, ARCHIVE_FORMAT_EMPTY));
+ test_empty_file2_check(a);
+
+ a = archive_read_new();
+ assertEqualInt(ARCHIVE_OK, archive_read_set_format(a, ARCHIVE_FORMAT_EMPTY));
+ test_empty_file2_check(a);
+}
+
static void
test_empty_tarfile(void)
{
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_raw.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_raw.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_next_header_raw.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_next_header_raw.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_open2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_open2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_open2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_open2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_filter_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_filter_option.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_filter_option.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_filter_option.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_format_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_format_option.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_format_option.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_format_option.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_option.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_option.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_option.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_options.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_options.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_set_options.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_set_options.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_support.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_support.c
similarity index 74%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_support.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_support.c
index 1619b07..c6eb934 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_read_support.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_read_support.c
@@ -35,6 +35,17 @@ typedef struct archive *constructor(void);
typedef int enabler(struct archive *);
typedef int destructor(struct archive *);
+static int format_code = 0;
+static int format_code_enabler(struct archive *a)
+{
+ return archive_read_support_format_by_code(a, format_code);
+}
+
+static int format_code_setter(struct archive *a)
+{
+ return archive_read_set_format(a, format_code);
+}
+
static void
test_success(constructor new_, enabler enable_, destructor free_)
{
@@ -85,6 +96,44 @@ DEFINE_TEST(test_archive_read_support)
test_filter_or_format(archive_read_support_format_xar);
test_filter_or_format(archive_read_support_format_zip);
+ int format_codes[] = {
+ ARCHIVE_FORMAT_CPIO,
+ ARCHIVE_FORMAT_CPIO_POSIX,
+ ARCHIVE_FORMAT_CPIO_BIN_LE,
+ ARCHIVE_FORMAT_CPIO_BIN_BE,
+ ARCHIVE_FORMAT_CPIO_SVR4_NOCRC,
+ ARCHIVE_FORMAT_CPIO_SVR4_CRC,
+ ARCHIVE_FORMAT_CPIO_AFIO_LARGE,
+ ARCHIVE_FORMAT_TAR,
+ ARCHIVE_FORMAT_TAR_USTAR,
+ ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE,
+ ARCHIVE_FORMAT_TAR_PAX_RESTRICTED,
+ ARCHIVE_FORMAT_TAR_GNUTAR,
+ ARCHIVE_FORMAT_ISO9660,
+ ARCHIVE_FORMAT_ISO9660_ROCKRIDGE,
+ ARCHIVE_FORMAT_ZIP,
+ ARCHIVE_FORMAT_EMPTY,
+ ARCHIVE_FORMAT_AR,
+ ARCHIVE_FORMAT_AR_GNU,
+ ARCHIVE_FORMAT_AR_BSD,
+ ARCHIVE_FORMAT_MTREE,
+ ARCHIVE_FORMAT_RAW,
+ ARCHIVE_FORMAT_XAR,
+ ARCHIVE_FORMAT_LHA,
+ ARCHIVE_FORMAT_CAB,
+ ARCHIVE_FORMAT_RAR,
+ ARCHIVE_FORMAT_7ZIP,
+ ARCHIVE_FORMAT_WARC,
+ ARCHIVE_FORMAT_RAR_V5,
+ };
+ unsigned int i;
+
+ for (i = 0; i < sizeof(format_codes) / sizeof(int); i++) {
+ format_code = format_codes[i];
+ test_filter_or_format(format_code_enabler);
+ test_filter_or_format(format_code_setter);
+ }
+
test_filter_or_format(archive_read_support_filter_all);
test_filter_or_format(archive_read_support_filter_bzip2);
test_filter_or_format(archive_read_support_filter_compress);
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_set_error.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_set_error.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_set_error.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_set_error.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_string.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_string.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_string.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_string.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.c
similarity index 90%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.c
index e86f97c..fb5359b 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.c
@@ -445,7 +445,7 @@ test_archive_string_normalization_nfc(const char *testdata)
assertEqualInt(0,
archive_mstring_copy_wcs(&mstr, wc_nfc));
assertEqualInt(0, archive_mstring_get_mbs_l(
- &mstr, &mp, &mplen, t_sconv8));
+ a, &mstr, &mp, &mplen, t_sconv8));
failure("WCS NFC(%s) should be UTF-8 NFC:%d"
,nfc, line);
assertEqualUTF8String(utf8_nfc, mp);
@@ -695,7 +695,7 @@ test_archive_string_normalization_mac_nfd(const char *testdata)
assertEqualInt(0, archive_mstring_copy_wcs(
&mstr, wc_nfd));
assertEqualInt(0, archive_mstring_get_mbs_l(
- &mstr, &mp, &mplen, t_sconv8));
+ a, &mstr, &mp, &mplen, t_sconv8));
failure("WCS NFD(%s) should be UTF-8 NFD:%d"
,nfd, line);
assertEqualUTF8String(utf8_nfd, mp);
@@ -777,6 +777,80 @@ test_archive_string_canonicalization(void)
}
+static void
+check_string(struct archive *a, struct archive_mstring *mstr, struct archive_string_conv *sc,
+ const char *exp, const wchar_t *wexp)
+{
+ /* Do all the tests on a copy so that we can have a clear initial state every time */
+ struct archive_mstring mstr2;
+ const char *p = NULL;
+ const wchar_t *wp = NULL;
+ size_t len = 0;
+
+ memset(&mstr2, 0, sizeof(mstr2));
+
+ archive_mstring_copy(&mstr2, mstr);
+ assertEqualInt(0, archive_mstring_get_mbs(a, &mstr2, &p));
+ assertEqualString(exp, p);
+ p = NULL;
+
+ archive_mstring_copy(&mstr2, mstr);
+ assertEqualInt(0, archive_mstring_get_utf8(a, &mstr2, &p));
+ assertEqualString(exp, p);
+ p = NULL;
+
+ archive_mstring_copy(&mstr2, mstr);
+ assertEqualInt(0, archive_mstring_get_wcs(a, &mstr2, &wp));
+ assertEqualWString(wexp, wp);
+ wp = NULL;
+
+ archive_mstring_copy(&mstr2, mstr);
+ assertEqualInt(0, archive_mstring_get_mbs_l(a, &mstr2, &p, &len, sc));
+ assertEqualString(exp, p);
+ assertEqualInt(len, strlen(exp));
+ p = NULL;
+ len = 0;
+
+ archive_mstring_clean(&mstr2);
+}
+
+/*
+ * Make sure no matter what the input encoding is, the string can be
+ * converted too all the output encodings.
+ */
+static void
+test_archive_string_set_get(void)
+{
+ struct archive *a;
+ struct archive_mstring mstr;
+ struct archive_string_conv *sc;
+
+ setlocale(LC_ALL, "en_US.UTF-8");
+
+ assert((a = archive_read_new()) != NULL);
+ memset(&mstr, 0, sizeof(mstr));
+
+ assertA(NULL != (sc =
+ archive_string_conversion_to_charset(a, "UTF-8", 1)));
+ failure("Charset name should be UTF-8");
+ assertEqualString("UTF-8",
+ archive_string_conversion_charset_name(sc));
+
+ assertEqualInt(0, archive_mstring_copy_mbs(&mstr, "AAA"));
+ check_string(a, &mstr, sc, "AAA", L"AAA");
+ assertEqualInt(4, archive_mstring_copy_utf8(&mstr, "BBBB"));
+ check_string(a, &mstr, sc, "BBBB", L"BBBB");
+ assertEqualInt(0, archive_mstring_copy_wcs(&mstr, L"CCC12"));
+ check_string(a, &mstr, sc, "CCC12", L"CCC12");
+ assertEqualInt(0, archive_mstring_copy_mbs_len_l(&mstr, "DDDD-l", 6, sc));
+ check_string(a, &mstr, sc, "DDDD-l", L"DDDD-l");
+ assertEqualInt(0, archive_mstring_update_utf8(a, &mstr, "EEEEE---H"));
+ check_string(a, &mstr, sc, "EEEEE---H", L"EEEEE---H");
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+
+}
+
DEFINE_TEST(test_archive_string_conversion)
{
static const char reffile[] = "test_archive_string_conversion.txt.Z";
@@ -807,4 +881,5 @@ DEFINE_TEST(test_archive_string_conversion)
test_archive_string_normalization_nfc(testdata);
test_archive_string_normalization_mac_nfd(testdata);
test_archive_string_canonicalization();
+ test_archive_string_set_get();
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.txt.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.txt.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_string_conversion.txt.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_string_conversion.txt.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_add_filter_by_name.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_add_filter_by_name.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_add_filter_by_name.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_add_filter_by_name.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_filter_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_filter_option.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_filter_option.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_filter_option.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_by_name.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_by_name.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_by_name.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_by_name.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_filter_by_ext.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_filter_by_ext.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_filter_by_ext.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_filter_by_ext.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_option.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_format_option.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_format_option.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_option.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_option.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_option.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_option.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_options.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_options.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_options.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_options.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_passphrase.c b/dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_passphrase.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_archive_write_set_passphrase.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_archive_write_set_passphrase.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_bad_fd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_bad_fd.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_bad_fd.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_bad_fd.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2_1.tbz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2_1.tbz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2_1.tbz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2_1.tbz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2_2.tbz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2_2.tbz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_bzip2_2.tbz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_bzip2_2.tbz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_cpio.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_cpio.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_cpio.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_cpio.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_cpio_1.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_cpio_1.cpio.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_cpio_1.cpio.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_cpio_1.cpio.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar_1.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar_1.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar_1.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar_1.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar_2.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar_2.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gtar_2.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gtar_2.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip_1.tgz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip_1.tgz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip_1.tgz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip_1.tgz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip_2.tgz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip_2.tgz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_gzip_2.tgz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_gzip_2.tgz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_1.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_1.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_1.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_1.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_2.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_2.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_2.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_2.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_3.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_3.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_3.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_3.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4BD.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B4BDBX.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B5.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B5.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B5.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B5.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B5BD.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B6.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B6.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B6.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B6.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B6BD.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B7.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B7.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B7.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B7.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lz4_B7BD.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip_1.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip_1.tlz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip_1.tlz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip_1.tlz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip_2.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip_2.tlz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzip_2.tlz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzip_2.tlz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma.c
index 86a2665..7e6e3a8 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma.c
@@ -141,7 +141,7 @@ compat_lzma(const char *name)
DEFINE_TEST(test_compat_lzma)
{
- /* This sample has been added junk datas to its tail. */
+ /* This sample has been added junk data to its tail. */
compat_lzma("test_compat_lzma_1.tlz");
/* This sample has been made by lzma with option -e,
* the first byte of which is 0x5e.
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_1.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_1.tlz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_1.tlz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_1.tlz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_2.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_2.tlz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_2.tlz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_2.tlz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_3.tlz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_3.tlz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzma_3.tlz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzma_3.tlz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_1.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_1.tar.lzo.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_1.tar.lzo.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_1.tar.lzo.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_2.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_2.tar.lzo.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_2.tar.lzo.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_2.tar.lzo.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_3.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_3.tar.lzo.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_lzop_3.tar.lzo.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_lzop_3.tar.lzo.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac-1.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac-1.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac-1.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac-1.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac-2.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac-2.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac-2.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac-2.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_mac.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_mac.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_perl_archive_tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_perl_archive_tar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_perl_archive_tar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_perl_archive_tar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_perl_archive_tar.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_perl_archive_tar.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_perl_archive_tar.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_perl_archive_tar.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_plexus_archiver_tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_plexus_archiver_tar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_plexus_archiver_tar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_plexus_archiver_tar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_plexus_archiver_tar.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_plexus_archiver_tar.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_plexus_archiver_tar.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_plexus_archiver_tar.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse_1.pax.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_pax_sparse_2.pax.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_tar_acl.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_tar_acl.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_tar_acl.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_tar_acl.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_tar_acl.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_tar_acl.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_solaris_tar_acl.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_solaris_tar_acl.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl_nfs4.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl_nfs4.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl_nfs4.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl_nfs4.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl_posix1e.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl_posix1e.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_star_acl_posix1e.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_star_acl_posix1e.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_tar_hardlink.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_tar_hardlink.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_tar_hardlink.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_tar_hardlink.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_tar_hardlink_1.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_tar_hardlink_1.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_tar_hardlink_1.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_tar_hardlink_1.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode_large.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode_large.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode_large.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode_large.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode_large.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_uudecode_large.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_uudecode_large.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_xz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_xz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_xz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_xz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_xz_1.txz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_xz_1.txz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_xz_1.txz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_xz_1.txz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_1.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_1.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_1.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_1.zip.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_2.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_2.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_2.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_2.zip.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_3.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_3.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_3.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_3.zip.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_4.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_4.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_4.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_4.zip.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_5.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_5.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_5.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_5.zip.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_6.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_6.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_6.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_6.zip.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_7.xps.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_7.xps.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_7.xps.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_7.xps.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_8.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_8.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zip_8.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zip_8.zip.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd.c
similarity index 97%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd.c
index 1d63a28..1347758 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd.c
@@ -79,4 +79,7 @@ DEFINE_TEST(test_compat_zstd)
/* This sample was compressed as 3 separate streams with a zstd skippable
* frame placed in the middle */
compat_zstd("test_compat_zstd_1.tar.zst");
+
+ /* The same sample compressed with pzstd */
+ compat_zstd("test_compat_zstd_2.tar.zst");
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd_1.tar.zst.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_1.tar.zst.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_compat_zstd_1.tar.zst.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_1.tar.zst.uu
diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_2.tar.zst.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_2.tar.zst.uu
new file mode 100644
index 0000000..6c3636c
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_compat_zstd_2.tar.zst.uu
@@ -0,0 +1,8 @@
+begin 664 test_compat_zstd_2.tar.zst
+M4"I-&`0```"J````*+4O_018[00`\L41%I`I!%(KMV]N7BR&@9(I29\:P8D9
+ML"GMK=GZS(ZZ!!ZT[%K7J3*`"W$0PR(Y((0".0A!DE`,:6K4D_ZNQG_J=DP.
+M&<:1G$L?`/U!!?M`/3*@&,!$`:C[!RHC`TH`#!.`8O]`%61`!UAQ`E"Z#U1&
+M!E0#@C0`=?Q`961`"<#N`;(9'$PC'ZA$`A16ZL#%$IP``!*"=UWAE$]@"$B5
+"Q>,`
+`
+end
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_empty_write.c b/dependencies/libarchive-3.5.2/libarchive/test/test_empty_write.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_empty_write.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_empty_write.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_entry.c b/dependencies/libarchive-3.5.2/libarchive/test/test_entry.c
similarity index 86%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_entry.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_entry.c
index 0cf13e8..f205764 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_entry.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_entry.c
@@ -177,31 +177,60 @@ DEFINE_TEST(test_entry)
/* gname */
archive_entry_set_gname(e, "group");
assertEqualString(archive_entry_gname(e), "group");
+ assertEqualString(archive_entry_gname_utf8(e), "group");
+ assertEqualWString(archive_entry_gname_w(e), L"group");
wcscpy(wbuff, L"wgroup");
archive_entry_copy_gname_w(e, wbuff);
assertEqualWString(archive_entry_gname_w(e), L"wgroup");
memset(wbuff, 0, sizeof(wbuff));
assertEqualWString(archive_entry_gname_w(e), L"wgroup");
+ assertEqualString(archive_entry_gname_utf8(e), "wgroup");
+ assertEqualString(archive_entry_gname(e), "wgroup");
+ archive_entry_set_gname_utf8(e, "group");
+ assertEqualString(archive_entry_gname_utf8(e), "group");
+ assertEqualWString(archive_entry_gname_w(e), L"group");
+ assertEqualString(archive_entry_gname(e), "group");
+ archive_entry_update_gname_utf8(e, "group2");
+ assertEqualString(archive_entry_gname_utf8(e), "group2");
+ assertEqualWString(archive_entry_gname_w(e), L"group2");
+ assertEqualString(archive_entry_gname(e), "group2");
/* hardlink */
archive_entry_set_hardlink(e, "hardlinkname");
assertEqualString(archive_entry_hardlink(e), "hardlinkname");
+ assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname");
+ assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname");
strcpy(buff, "hardlinkname2");
archive_entry_copy_hardlink(e, buff);
assertEqualString(archive_entry_hardlink(e), "hardlinkname2");
+ assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname2");
+ assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname2");
memset(buff, 0, sizeof(buff));
assertEqualString(archive_entry_hardlink(e), "hardlinkname2");
+ assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname2");
+ assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname2");
archive_entry_copy_hardlink(e, NULL);
assertEqualString(archive_entry_hardlink(e), NULL);
assertEqualWString(archive_entry_hardlink_w(e), NULL);
+ assertEqualString(archive_entry_hardlink_utf8(e), NULL);
wcscpy(wbuff, L"whardlink");
archive_entry_copy_hardlink_w(e, wbuff);
assertEqualWString(archive_entry_hardlink_w(e), L"whardlink");
+ assertEqualString(archive_entry_hardlink_utf8(e), "whardlink");
+ assertEqualString(archive_entry_hardlink(e), "whardlink");
memset(wbuff, 0, sizeof(wbuff));
assertEqualWString(archive_entry_hardlink_w(e), L"whardlink");
archive_entry_copy_hardlink_w(e, NULL);
assertEqualString(archive_entry_hardlink(e), NULL);
assertEqualWString(archive_entry_hardlink_w(e), NULL);
+ archive_entry_set_hardlink_utf8(e, "hardlinkname");
+ assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname");
+ assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname");
+ assertEqualString(archive_entry_hardlink(e), "hardlinkname");
+ archive_entry_update_hardlink_utf8(e, "hardlinkname2");
+ assertEqualString(archive_entry_hardlink_utf8(e), "hardlinkname2");
+ assertEqualWString(archive_entry_hardlink_w(e), L"hardlinkname2");
+ assertEqualString(archive_entry_hardlink(e), "hardlinkname2");
/* ino */
assert(!archive_entry_ino_is_set(e));
@@ -270,18 +299,38 @@ DEFINE_TEST(test_entry)
/* pathname */
archive_entry_set_pathname(e, "path");
assertEqualString(archive_entry_pathname(e), "path");
+ assertEqualString(archive_entry_pathname_utf8(e), "path");
+ assertEqualWString(archive_entry_pathname_w(e), L"path");
archive_entry_set_pathname(e, "path");
assertEqualString(archive_entry_pathname(e), "path");
+ assertEqualWString(archive_entry_pathname_w(e), L"path");
+ assertEqualString(archive_entry_pathname_utf8(e), "path");
strcpy(buff, "path2");
archive_entry_copy_pathname(e, buff);
assertEqualString(archive_entry_pathname(e), "path2");
+ assertEqualWString(archive_entry_pathname_w(e), L"path2");
+ assertEqualString(archive_entry_pathname_utf8(e), "path2");
memset(buff, 0, sizeof(buff));
assertEqualString(archive_entry_pathname(e), "path2");
+ assertEqualString(archive_entry_pathname_utf8(e), "path2");
+ assertEqualWString(archive_entry_pathname_w(e), L"path2");
wcscpy(wbuff, L"wpath");
archive_entry_copy_pathname_w(e, wbuff);
assertEqualWString(archive_entry_pathname_w(e), L"wpath");
+ assertEqualString(archive_entry_pathname_utf8(e), "wpath");
+ assertEqualString(archive_entry_pathname(e), "wpath");
memset(wbuff, 0, sizeof(wbuff));
assertEqualWString(archive_entry_pathname_w(e), L"wpath");
+ assertEqualString(archive_entry_pathname(e), "wpath");
+ assertEqualString(archive_entry_pathname_utf8(e), "wpath");
+ archive_entry_set_pathname_utf8(e, "path");
+ assertEqualWString(archive_entry_pathname_w(e), L"path");
+ assertEqualString(archive_entry_pathname(e), "path");
+ assertEqualString(archive_entry_pathname_utf8(e), "path");
+ archive_entry_update_pathname_utf8(e, "path2");
+ assertEqualWString(archive_entry_pathname_w(e), L"path2");
+ assertEqualString(archive_entry_pathname(e), "path2");
+ assertEqualString(archive_entry_pathname_utf8(e), "path2");
/* rdev */
archive_entry_set_rdev(e, 532);
@@ -302,19 +351,37 @@ DEFINE_TEST(test_entry)
/* symlink */
archive_entry_set_symlink(e, "symlinkname");
assertEqualString(archive_entry_symlink(e), "symlinkname");
+ assertEqualString(archive_entry_symlink_utf8(e), "symlinkname");
+ assertEqualWString(archive_entry_symlink_w(e), L"symlinkname");
strcpy(buff, "symlinkname2");
archive_entry_copy_symlink(e, buff);
assertEqualString(archive_entry_symlink(e), "symlinkname2");
+ assertEqualWString(archive_entry_symlink_w(e), L"symlinkname2");
+ assertEqualString(archive_entry_symlink_utf8(e), "symlinkname2");
memset(buff, 0, sizeof(buff));
assertEqualString(archive_entry_symlink(e), "symlinkname2");
+ assertEqualString(archive_entry_symlink_utf8(e), "symlinkname2");
+ assertEqualWString(archive_entry_symlink_w(e), L"symlinkname2");
archive_entry_copy_symlink_w(e, NULL);
assertEqualWString(archive_entry_symlink_w(e), NULL);
assertEqualString(archive_entry_symlink(e), NULL);
+ assertEqualString(archive_entry_symlink_utf8(e), NULL);
archive_entry_copy_symlink_w(e, L"wsymlink");
assertEqualWString(archive_entry_symlink_w(e), L"wsymlink");
+ assertEqualString(archive_entry_symlink_utf8(e), "wsymlink");
+ assertEqualString(archive_entry_symlink(e), "wsymlink");
archive_entry_copy_symlink(e, NULL);
assertEqualWString(archive_entry_symlink_w(e), NULL);
assertEqualString(archive_entry_symlink(e), NULL);
+ assertEqualString(archive_entry_symlink_utf8(e), NULL);
+ archive_entry_set_symlink_utf8(e, "symlinkname");
+ assertEqualWString(archive_entry_symlink_w(e), L"symlinkname");
+ assertEqualString(archive_entry_symlink(e), "symlinkname");
+ assertEqualString(archive_entry_symlink_utf8(e), "symlinkname");
+ archive_entry_update_symlink_utf8(e, "symlinkname2");
+ assertEqualWString(archive_entry_symlink_w(e), L"symlinkname2");
+ assertEqualString(archive_entry_symlink(e), "symlinkname2");
+ assertEqualString(archive_entry_symlink_utf8(e), "symlinkname2");
/* uid */
archive_entry_set_uid(e, 83);
@@ -323,11 +390,27 @@ DEFINE_TEST(test_entry)
/* uname */
archive_entry_set_uname(e, "user");
assertEqualString(archive_entry_uname(e), "user");
+ assertEqualString(archive_entry_uname_utf8(e), "user");
+ assertEqualWString(archive_entry_uname_w(e), L"user");
wcscpy(wbuff, L"wuser");
- archive_entry_copy_gname_w(e, wbuff);
- assertEqualWString(archive_entry_gname_w(e), L"wuser");
+ archive_entry_copy_uname_w(e, wbuff);
+ assertEqualWString(archive_entry_uname_w(e), L"wuser");
memset(wbuff, 0, sizeof(wbuff));
- assertEqualWString(archive_entry_gname_w(e), L"wuser");
+ assertEqualWString(archive_entry_uname_w(e), L"wuser");
+ assertEqualString(archive_entry_uname_utf8(e), "wuser");
+ assertEqualString(archive_entry_uname(e), "wuser");
+ archive_entry_set_uname_utf8(e, "user");
+ assertEqualString(archive_entry_uname_utf8(e), "user");
+ assertEqualWString(archive_entry_uname_w(e), L"user");
+ assertEqualString(archive_entry_uname(e), "user");
+ archive_entry_set_uname_utf8(e, "user");
+ assertEqualWString(archive_entry_uname_w(e), L"user");
+ assertEqualString(archive_entry_uname(e), "user");
+ assertEqualString(archive_entry_uname_utf8(e), "user");
+ archive_entry_update_uname_utf8(e, "user2");
+ assertEqualWString(archive_entry_uname_w(e), L"user2");
+ assertEqualString(archive_entry_uname(e), "user2");
+ assertEqualString(archive_entry_uname_utf8(e), "user2");
/* Test fflags interface. */
archive_entry_set_fflags(e, 0x55, 0xAA);
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_entry_strmode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_entry_strmode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_entry_strmode.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_entry_strmode.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_extattr_freebsd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_extattr_freebsd.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_extattr_freebsd.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_extattr_freebsd.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_filter_count.c b/dependencies/libarchive-3.5.2/libarchive/test/test_filter_count.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_filter_count.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_filter_count.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.cab.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.cab.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.cab.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_fuzz.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_fuzz.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_fuzz_1.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_fuzz_1.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_fuzz_1.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_fuzz_1.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_gnutar_filename_encoding.c b/dependencies/libarchive-3.5.2/libarchive/test/test_gnutar_filename_encoding.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_gnutar_filename_encoding.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_gnutar_filename_encoding.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_link_resolver.c b/dependencies/libarchive-3.5.2/libarchive/test/test_link_resolver.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_link_resolver.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_link_resolver.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_open_failure.c b/dependencies/libarchive-3.5.2/libarchive/test/test_open_failure.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_open_failure.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_open_failure.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_open_fd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_open_fd.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_open_fd.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_open_fd.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_open_file.c b/dependencies/libarchive-3.5.2/libarchive/test/test_open_file.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_open_file.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_open_file.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_open_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_open_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_open_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_open_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_filename_encoding.c b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_filename_encoding.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_filename_encoding.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_filename_encoding.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_filename_encoding.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_filename_encoding.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_filename_encoding.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_filename_encoding.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header.c b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_all.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_all.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_all.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_all.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_libarchive.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_libarchive.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_libarchive.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_libarchive.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_schily.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_schily.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_pax_xattr_header_schily.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_pax_xattr_header_schily.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part1.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part2.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part3.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part4.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part5.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_multiple_files.part6.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part1.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part2.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_single_file.part3.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_data_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_data_large.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_data_large.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_data_large.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_disk.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_disk.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_disk.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_disk.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_directory_traversals.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_directory_traversals.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_directory_traversals.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_directory_traversals.c
index bbfe91a..bca3ce5 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_directory_traversals.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_directory_traversals.c
@@ -528,7 +528,7 @@ test_basic(void)
*/
/* Save current working directory. */
-#ifdef PATH_MAX
+#if defined(PATH_MAX) && !defined(__GLIBC__)
initial_cwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */
#else
initial_cwd = getcwd(NULL, 0);
@@ -560,7 +560,7 @@ test_basic(void)
failure(
"Current working directory does not return to the initial"
"directory");
-#ifdef PATH_MAX
+#if defined(PATH_MAX) && !defined(__GLIBC__)
cwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */
#else
cwd = getcwd(NULL, 0);
@@ -1047,7 +1047,14 @@ test_restore_atime(void)
size_t size;
int64_t offset;
int file_count;
+ const char *skip_test_restore_atime;
+ skip_test_restore_atime = getenv("SKIP_TEST_RESTORE_ATIME");
+ if (skip_test_restore_atime != NULL) {
+ skipping("Skipping restore atime tests due to "
+ "SKIP_TEST_RESTORE_ATIME environment variable");
+ return;
+ }
if (!atimeIsUpdated()) {
skipping("Can't test restoring atime on this filesystem");
return;
@@ -1833,6 +1840,8 @@ test_parent(void)
}
assertChdir("..");
+ assertChmod("lock", 0755);
+ assertChmod("lock/lock2", 0755);
/* Destroy the disk object. */
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_entry_from_file.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_entry_from_file.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_disk_entry_from_file.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_disk_entry_from_file.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_extract.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_extract.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_extract.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_extract.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_file_nonexistent.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_file_nonexistent.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_file_nonexistent.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_file_nonexistent.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_compress.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_compress.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_compress.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_compress.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_grzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_grzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_grzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_grzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_grzip.tar.grz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_grzip.tar.grz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_grzip.tar.grz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_grzip.tar.grz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lrzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lrzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lrzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lrzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lrzip.tar.lrz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lrzip.tar.lrz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lrzip.tar.lrz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lrzip.tar.lrz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop.tar.lzo.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop.tar.lzo.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop.tar.lzo.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop_multiple_parts.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop_multiple_parts.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop_multiple_parts.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop_multiple_parts.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_program.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_program.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_program.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_program.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_program_signature.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_program_signature.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_program_signature.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_program_signature.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_uudecode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_uudecode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_filter_uudecode.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_filter_uudecode.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_copy_lzma.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_deflate.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_1.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma1_2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_1.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj2_lzma2_2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_bzip2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_copy.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_deflate.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_lzma1.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bcj_lzma2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bzip2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bzip2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_bzip2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_bzip2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_copy.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_copy.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_copy.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_copy.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_copy_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_copy_2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_copy_2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_copy_2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_deflate.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_deflate.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_deflate.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_deflate.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_empty_archive.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_empty_archive.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_empty_archive.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_empty_archive.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_empty_file.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_empty_file.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_empty_file.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_empty_file.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_data.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_data.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_data.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_data.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_header.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_header.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_header.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_header.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_header.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_header.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_header.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_header.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_partially.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_partially.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_partially.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_encryption_partially.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_encryption_partially.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1_2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma1_lzma2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_lzma2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_lzma2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed2.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed2.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_malformed2.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_malformed2.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_packinfo_digests.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_packinfo_digests.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_packinfo_digests.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_packinfo_digests.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_ppmd.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_ppmd.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_ppmd.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_ppmd.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_7zip_symbolic_name.7z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ar.ar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ar.ar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ar.ar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ar.ar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_1.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_1.cab.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_1.cab.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_1.cab.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_2.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_2.cab.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_2.cab.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_2.cab.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_3.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_3.cab.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_3.cab.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_3.cab.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_filename_cp932.cab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_filename_cp932.cab.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cab_filename_cp932.cab.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cab_filename_cp932.cab.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_afio.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_afio.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_afio.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_afio.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_Z.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_Z.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_Z.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_Z.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_be.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_be.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_be.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_be.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_be.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_be.cpio.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_be.cpio.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_be.cpio.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_bz2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_bz2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_bz2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_gz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_gz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_gz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_gz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_le.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_le.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_le.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_le.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_le.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_le.cpio.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_le.cpio.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_le.cpio.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_lzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_lzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_lzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_lzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_lzma.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_lzma.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_lzma.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_lzma.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_xz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_xz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_bin_xz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_bin_xz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_eucjp.cpio.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_koi8r.cpio.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_utf8_jp.cpio.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_filename_utf8_ru.cpio.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_odc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_odc.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_odc.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_odc.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4c_Z.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4c_Z.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_cpio_svr4c_Z.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_cpio_svr4c_Z.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_empty.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_empty.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_cp866.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_eucjp.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_filename_koi8r.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_gz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_gz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_gz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_gz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_lzma.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_lzma.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_lzma.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_lzma.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_2.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_2.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_2.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_2.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_Z.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_Z.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_Z.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_Z.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_multi_extent.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_multi_extent.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_multi_extent.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_multi_extent.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_xorriso.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_xorriso.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_xorriso.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_xorriso.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_xorriso.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_bz2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_bz2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_bz2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_long.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_long.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_long.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_long.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_rr.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_rr.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_rr.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_rr.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_versioned.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_versioned.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isojoliet_versioned.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isojoliet_versioned.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_bz2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_bz2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_bz2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_ce.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_ce.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_ce.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_ce.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_new_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_new_bz2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_new_bz2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_new_bz2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_rr_moved.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_rr_moved.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isorr_rr_moved.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isorr_rr_moved.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isozisofs_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isozisofs_bz2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_isozisofs_bz2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_isozisofs_bz2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_bugfix_0.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_bugfix_0.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_bugfix_0.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_bugfix_0.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_bugfix_0.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_cp932.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_utf16.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_utf16.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_utf16.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_utf16.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_filename_utf16.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header0.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header0.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header0.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header0.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header1.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header1.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header1.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header1.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header2.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header2.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header2.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header2.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header3.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header3.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_header3.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_header3.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh0.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh0.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh0.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh0.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh6.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh6.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh6.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh6.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh7.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh7.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_lh7.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_lh7.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_withjunk.lzh.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_withjunk.lzh.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_lha_withjunk.lzh.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_lha_withjunk.lzh.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.c
similarity index 90%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.c
index df6f6cd..41d3257 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.c
@@ -196,8 +196,80 @@ test_read_format_mtree1(void)
assertEqualInt(archive_entry_is_encrypted(ae), 0);
assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
+ /* md5digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\x09\x98\xec\xf8\x42\x7e",
+ 16);
+
+ /* rmd160digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/rmd160file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_RMD160),
+ "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90"
+ "\xaf\xd8\x07\x09", 20);
+
+ /* sha1digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/sha1file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA1),
+ "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90"
+ "\xaf\xd8\x07\x09", 20);
+
+ /* sha256digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/sha256file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA256),
+ "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24"
+ "\x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55",
+ 32);
+
+ /* sha384digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/sha384file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA384),
+ "\x38\xb0\x60\xa7\x51\xac\x96\x38\x4c\xd9\x32\x7e\xb1\xb1\xe3\x6a"
+ "\x21\xfd\xb7\x11\x14\xbe\x07\x43\x4c\x0c\xc7\xbf\x63\xf6\xe1\xda"
+ "\x27\x4e\xde\xbf\xe7\x6f\x65\xfb\xd5\x1a\xd2\xf1\x48\x98\xb9\x5b",
+ 48);
+
+ /* sha512digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/sha512file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA512),
+ "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd\xf1\x54\x28\x50\xd6\x6d\x80\x07"
+ "\xd6\x20\xe4\x05\x0b\x57\x15\xdc\x83\xf4\xa9\x21\xd3\x6c\xe9\xce"
+ "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0\xff\x83\x18\xd2\x87\x7e\xec\x2f"
+ "\x63\xb9\x31\xbd\x47\x41\x7a\x81\xa5\x38\x32\x7a\xf9\x27\xda\x3e",
+ 64);
+
+ /* md5 digest is too short */
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5tooshort");
+ assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ 16, 0x00);
+
+ /* md5 digest is too long */
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5toolong");
+ assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ 16, 0x00);
+
+ /* md5 digest is uppercase hex */
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5caphex");
+ assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ 16, 0x00);
+
+ /* md5 digest is not hex */
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5nothex");
+ assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ 16, 0x00);
+
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
- assertEqualInt(20, archive_file_count(a));
+ assertEqualInt(30, archive_file_count(a));
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.mtree.uu
new file mode 100644
index 0000000..7bfb252
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree.mtree.uu
@@ -0,0 +1,40 @@
+begin 644 test_read_format_mtree.mtree
+M(VUT7!E/61I<@H@9FEL95PP-#!W:71H7#`T,'-P86-E('1Y<&4]9FEL
+M92!U:60],3@*("XN"F9I;&5<,#0P=VET:%PP-#!S<&%C92!T>7!E/69I;&4*
+M9&ER,B!T>7!E/61I<@H@9&ER,V$@='EP93UD:7(*("!I;F1I7!E/61I<@H@(&EN9&ER,V(@
+M='EP93UF:6QE"B`@9FEL96YA;65<7'=I=&A<"E]E7!E/69I
+M;&4@F4]+3$*9&ER,B]B:6=F:6QE('1Y
+M<&4]9FEL92!S:7IE/3DR,C,S-S(P,S8X-30W-S4X,#<*9&ER,B]T;V]B:6=F
+M:6QE('1Y<&4]9FEL92!S:7IE/3DR,C,S-S(P,S8X-30W-S4X,#@*9&ER,B]V
+M97)Y;VQD9FEL92!T>7!E/69I;&4@=&EM93TM.3(R,S,W,C`S-C@U-#7!E/69I;&4@"!T>7!E/69I;&4@
+K;60U9&EG97-T/7$T,60X8V0Y.&8P,&(R,#1E.3@P,#DY.&5C9C@T,C=E"@``
+`
+end
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_crash747.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_crash747.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_crash747.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_crash747.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic.mtree.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic.mtree.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic.mtree.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic2.mtree.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_nomagic3.mtree.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_noprint.mtree.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_noprint.mtree.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_mtree_noprint.mtree.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_mtree_noprint.mtree.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_pax_bz2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_pax_bz2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_pax_bz2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_pax_bz2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_arm.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_arm.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_arm.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_arm.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_blake2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_blake2.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_blake2.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_blake2.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_compressed.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_compressed.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_compressed.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_compressed.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_solid_window_size.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_window_size.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_window_size.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_window_size.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_window_size.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_fileattr.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_fileattr.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_fileattr.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_fileattr.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_hardlink.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_hardlink.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_hardlink.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_hardlink.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_leftshift1.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_leftshift1.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_leftshift1.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_leftshift1.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_leftshift2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_leftshift2.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_leftshift2.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_leftshift2.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiple_files.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiple_files.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiple_files.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiple_files.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_owner.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_owner.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_owner.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_owner.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_solid.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_solid.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_solid.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_solid.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_stored.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_stored.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_stored.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_stored.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_symlink.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_symlink.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_symlink.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_symlink.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_win32.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_win32.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar5_win32.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar5_win32.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_binary_data.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_binary_data.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_binary_data.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_binary_data.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_compress_best.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_compress_best.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_compress_best.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_compress_best.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_compress_normal.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_compress_normal.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_compress_normal.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_compress_normal.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_data.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_data.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_data.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_data.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_data.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_data.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_data.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_data.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_header.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_header.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_header.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_header.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_header.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_header.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_header.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_header.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_partially.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_partially.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_partially.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_partially.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_partially.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_partially.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_encryption_partially.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_encryption_partially.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_invalid1.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_invalid1.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_invalid1.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_invalid1.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_invalid1.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_invalid1.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_invalid1.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_invalid1.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multi_lzss_blocks.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0001.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0002.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0003.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_noeof.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_noeof.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_noeof.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_noeof.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_ppmd_use_after_free2.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_sfx.exe.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_sfx.exe.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_sfx.exe.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_sfx.exe.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_subblock.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_subblock.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_subblock.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_subblock.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_unicode.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_unicode.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_unicode.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_unicode.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_windows.rar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_windows.rar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_rar_windows.rar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_rar_windows.rar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.bufr.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.bufr.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.bufr.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.bufr.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.c
similarity index 96%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.c
index 3961723..457db00 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.c
@@ -72,7 +72,7 @@ DEFINE_TEST(test_read_format_raw)
extract_reference_file(reffile2);
assert((a = archive_read_new()) != NULL);
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_by_code(a, ARCHIVE_FORMAT_RAW));
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, reffile2, 1));
@@ -100,8 +100,7 @@ DEFINE_TEST(test_read_format_raw)
extract_reference_file(reffile3);
assert((a = archive_read_new()) != NULL);
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_set_format(a, ARCHIVE_FORMAT_RAW));
assertEqualIntA(a, ARCHIVE_OK,
archive_read_open_filename(a, reffile3, 1));
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.gz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.gz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.gz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.gz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_raw.data.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_raw.data.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_concatenated.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_concatenated.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_concatenated.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_concatenated.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_concatenated.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_concatenated.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_concatenated.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_concatenated.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_filename.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_filename.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_filename.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_filename.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_pax.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_pax.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_pax.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_pax.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tbz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tbz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tbz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tbz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tgz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tgz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tgz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tgz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tlz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tlz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tlz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tlz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_txz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_txz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_txz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_txz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_tz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_tz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_warc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_warc.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_warc.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_warc.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_warc.warc.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_warc.warc.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_warc.warc.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_warc.warc.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_xar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_xar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_xar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_xar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.c
similarity index 88%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.c
index 04f7e98..424d6a0 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.c
@@ -916,3 +916,112 @@ DEFINE_TEST(test_read_format_zip_lzma_alone_leak)
* suite under Valgrind or ASan, the test runner won't return with
* exit code 0 in case if a memory leak. */
}
+
+DEFINE_TEST(test_read_format_zip_lzma_stream_end)
+{
+ const char *refname = "test_read_format_zip_lzma_stream_end.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one(a, ae, 0xBA8E3BAA));
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_lzma_stream_end_blockread)
+{
+ const char *refname = "test_read_format_zip_lzma_stream_end.zipx";
+ struct archive *a;
+ struct archive_entry *ae;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 37));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("ZIP 6.3 (lzma)", archive_format_name(a));
+ assertEqualString("vimrc", archive_entry_pathname(ae));
+ assertEqualIntA(a, 0, extract_one_using_blocks(a, 13, 0xBA8E3BAA));
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_7z_lzma)
+{
+ const char *refname = "test_read_format_zip_7z_lzma.zip";
+ struct archive_entry *ae;
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping("lzma reading not fully supported on this platform");
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ return;
+ }
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_filename(a, refname, 10240));
+ //read directories
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ //read symlink
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualInt(AE_IFLNK, archive_entry_filetype(ae));
+ assertEqualString("../samples/abc_measurement_analysis_sample"
+ "/src/abc_measurement_analysis_sample.py",
+ archive_entry_symlink(ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_zip_7z_deflate)
+{
+ const char *refname = "test_read_format_zip_7z_deflate.zip";
+ struct archive_entry *ae;
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ extract_reference_file(refname);
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_zip(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_filename(a, refname, 10240));
+ //read first symlink
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualInt(AE_IFLNK, archive_entry_filetype(ae));
+ assertEqualString("libxkbcommon-x11.so.0.0.0",
+ archive_entry_symlink(ae));
+ //read second symlink
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualInt(AE_IFLNK, archive_entry_filetype(ae));
+ assertEqualString("libxkbcommon-x11.so.0.0.0",
+ archive_entry_symlink(ae));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a));
+}
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip.zip.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip_7075_utf8_paths.c b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7075_utf8_paths.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip_7075_utf8_paths.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7075_utf8_paths.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu
diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_deflate.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_deflate.zip.uu
new file mode 100644
index 0000000..7513073
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_deflate.zip.uu
@@ -0,0 +1,361 @@
+begin 644 test_read_format_zip_7z_deflate.zip
+M4$L#!!0#```(`)@!<%+IO$E_&````!D````3````;&EB>&MB8V]M;6]N+7@Q
+M,2YS;\O)3*K(3DK.S\W-S].M,#34*\[7,P!!`%!+`P04`P``"`"8`7!2Z;Q)
+M?Q@````9````%0```&QI8GAK8F-O;6UO;BUX,3$NXSL!\]``!HQ```&0```&QI
+M8GAK8F-O;6UO;BUX,3$N2_;_5V?5+LGB
+MX;Q\HSA:6]+T=J/]D_?LA^>K-9J;LE2+_
+M)+0GZ]QZ0)DP(>^:O#O.:-^^:YM/QX<_>G?G6O^[H[H?774:Z1[?EK&N!OQ'
+M:S.^O6S&OP/\2!LS'C(S'I7,^'O2"?(^P("?`?J'`)T3FIGQ&\W-^.669OP$
+M6-<]X/\CV!?Y@/_;X">
+MDR#NP58@_\#/BS+0`W0>!7X>`?PVJ(=YX%PX@'\)G(L>P,]^P.=@7[8#_;>`
+M_Q(X=Y-`O4T!>I:#H+\[JEN@9RB(NQK4SW-0#VO!NLX#/WME/KN8
+M=`+_5\&ZYH'Z[P/RQ[
+M+[!?;T#>/@/]KX'_'PQ\7C0#?@#_,=!Y%IS'9>`\?@5^5@(_WP&^&]3)2;!?
+M(X">76"_[@&\!O)_&N1_EKP'&O`GH'X&@KH=F>6A`[NV/A]?4;BC\!U6/@Y*
+M>;NF'9WKSS\:XBK^AXHZ_PJ_U3K'@W7Y>)_RPSC?X`4^CQ,K2CAG?,[2!;PJ
+M(K'!B1,1+5TPPPU\L=2JN"*WF2W<;K)XS?$MU]DFAW/K?(GBS7"M.!8Q\X1G
+MAUM9DUWA39LK?(-(N&>%V9UL#47,HR3RN2O\#O.C9)^<4T;+S&4>*P"[,%
+M"+8#+[1RC;&C9Q"S0/[HK#B^1,-(Y%4!7!A@(,ZW/!'SNN6F@KM.G*@W#D*5
+MRO^E_YU':ZX+-^:AB+))P/L_9OV=OCG)^?\6I.W:_Y#K3I2DEDNE^S_T#5&0
+MAH;\0>I?.71LX(Y@ME;BL:PF.;68IR@-'Q#`F^4Z5HRB8[[I_"LC"-R(_$?%
+M_M6HWA'^.`]^$@5N;`150(*;QHXEQ?F[P19>BP*/5T7=L45F5J;4CT1-=T5?
+M>!+1B&B>\W$:5JGQK'AS$2^S&,,5%FV4QR[FBB0-LY@RN<*/G>#WCCM5ZF9B
+M"B.7X:V"D<9"FV=$_\A-GK9(4"8J@155E5P*IJV^0/U:@'!MF\DBB\;+MK(1
+M0#RQS::21HLO#KM-*L,&0&)+&6?=/T
+M0A:)[,LA#67.,[<$NTY%3K`#SPO\47$P:@PA,M9(B=)XK!H7_1562OU)U+=5
+M3_,Q4B8Y]S,ZC:/1,J+ECI:$21/8!3P_!
[2Z59XIZ9WKK[SQ3X+^?*>FO?::X>Z8N=<_D[33N#SOU<7?JZNWD
+M]SY+:N*"?B.;*P9#7)+P-@]XD[2J24V_WY5D9W#J44-W)5;GKNQ4W99PRDM9
+MB6&F!-V4U2I&3N+0I%^0(5BML=],YX#>.\
+M5E/5M6H\M2-*[:>VV]VF&PJVN0Q7E]=Y$O4^>J$?I%L)>%Q3%'Z33(A(.],V
+M91"D!+$'16+2FDGS>&@JEMA+/]1G5R1M+"&,DF%443BU:3CE#*<,_0`37NU!9(137]Q`3V6G$V/T#Q\
+M!)>PQV+6N0H7>#$-VU?3TK&M?L:F^H"F-S[&1P"$B==%FKSPVD+TRNS0A)UF
+M*?`H^.4PC.03]H,WYKOQK@I\NJE\<-[^H`[KP:8M3BZ"@!CI#3[>"OHP*?%:
+M;WKDM4K&*)FD#46-Q?6&*G,?OBH-=2,,"_"D:?!B6@RWKR9-.JT*TA/,,O2X
+MYHA`DJ'U]#LU1PR(*-O`4[XNTFP7\-%:$G`2$_#H6JF`-TZ'-4NXTW(M!:>W
+M-,8Y.HQP1@%O>#W7F'Y4;Z)0LN-=7*`I1!HACK((F$1`;O@%3V^U\7KV.CJP
+M,!S8G7Q2@3FI#!]!'R:`^_*F'C%$2(;2!"T.`*X5^`10*PC4F7D(:H9`39-A
+MX!)JG!%I%4$U0X@BEGD,TCP&*0(09_$\SM8LKHY>4F,#]PP_@?O"H03N>I\4
+MW#WA'AP>["++%SG&R'SB`+>3X*:Q?!OGQ'Y7N/UI[6$?!L@WTZ"-D""W5L=O=2N2/?[
+M2-;8(23K9G)9_?L"SN\JB/DP8=Y!F"-SM=O"?#@'YIU`TFWI7_<&^M>TCLO:
+MR32I6Z)_#0*-6PO!VIA=KT4\AAVPME?M=76@&8`SC6.H1C>#D9\:II5T<`
+M$K9N!_J[S=!+D63,4QT#UX(6N!;<"=>",.&EU[=IP4;XJ[9SSW/D3XAN/*MW
+MJY\L?X3=$$J*V-.W>55T816T[V0X7W0PX;Q`)9P?G"G%^=-*P/9[REB)UR3.
+MJZ@J>JG`ZPC&JYSQ:I3S"B&ONTU>ODFDGM0L`6P=46.?&,8BCNKH5<(*D]@*
+MT3I:8=T,Z0J[XPK5U@I%;(4[]0:/Q9OWE.(CZ"L-9,::]N=M6%7PI/<-D;G3
+M'L`UT!,<`IG[2DPW:9)'5X=2.[%!K2S8.&3WFJ$2O(OJ>0%UR,%7\:I#E[[_
+MEIID#MAI.N"8P43`!TP'&$E=<00MD0?<0+^+-AIA^XS`-@,9YT(1OYF$W[6S
+M"+_G:Z3XI?:"'?W.W'/$X&(Z8;[*;8,D"B59,G:HP%
+MU0%7EY.<$0'@`_C/-\Z[E"CQ01.J;3;^9`UAV^$G;%\]2(KM
+M^CT`VWQ85UB#E3TF(-.W?![R4>4T3*'_,F,@#P;->K?+3K3>6[/AAW7>]`=?N8U&US%O@2
+M005"@+50(JA^?-=O?^KJ"U9?C/I^U^,0":Q#>4%VDAJDW-O#+D[$./0&+A':
+M?Z672E]?PB/Y]O<@FM7/A_$!KM])TVL:)W<'&3JUG30%TON5S(^[_
+ME#X*04JO]6@!->$,J!\[0$2ONLS5,3AJ!:#9@QB`DC"6]*IQ"$!_&@&HF&?*
+MA"T4+5M.GFNDS&%"O;4=0E$;),LLJPPM8,DR/GCTY@$H\2V>_!!TXACV='U/
+MAY^1DF^6M.*5E$#[7LS7:`0.<2J/'>!_N>ZT,]VY^"#2G9=GDNZ\>Z!4=_)W
+M`WWY%02W,[3>/!B/XCI%)!87[*MXV2K'LE7FRU>Y=UWRF1FT
+MR]$,A7VD1E1,(HS->W-
+M:0.1A3Z!3*[-$:[]+(]KI.R,:\+*'RQ-ON5[U.2T@TF==MUT.&H,)J)&8CKO
+M.R$1&P)='S5TO4!(M"#/\H%R)T"Y84E83J]'42+(8H*BQP/4^_YZ`<]SFH2IYB'OPY&
+M`A$H.(C8Y&FAA@9DR%!)\N('NEZ0?ITM)7TU*5RT"0Z$(-`Z[')=?\48`B!*
+MW@"2QT#R"$C>#9)W`N"=`N`_DBEGLGH7#1`L"%?"N$:^QC0;]Y>&9]J\NL?(
+M0"^9FMU9"G%J)C;Y_>9`TM02+VGJU.E23:V'WRW106$FP-:+H:&8K&7&D:11
+ML0*T!:+##
+MAPX5P\4UT`@6U(`0X"==2U^L8?D`CN./J^F)GD[1)H]_.V"]8T4O)*
+MP`:>6FAQ`TQL",+>Z#&=/2KQ@0=6%Z2EZH*+*_"A#];I:_0ODP]^1=!6:J$0
+MSF>AFLZ1HTBE-XC8@32X(-=BS&4W2ENPUJ0=4,:A/7V]2=L]'NT6&9.V8SS:
+M`8.V^_5G1AHR.6ST[81]"FUN?N)D_RG^N?Y3
+M_:?-E?H8\B*8;WQEN1#L`_<.O7?WFR6Z\-D%5IGW,%!$HFHH!-O$:*U`!O*=
+MGIX6QTOGSGF6[PDVCF@ZR\EVY>E'N)^'6W0-D)](X^H4R2^"]J!J(RJ3$SES
+M_XQD#Z*3S9^0Y#3NW#2\,FJ/D_G9@A0+$;?81I1G(\J3$SEM1$XY4:&-J%!.
+MY,Y)1)YY$RIA$GV!K83YW)>"A^84SNP:9H=`5()$3(\>%+H]AG>?DV#>/=`Z
+MLKWK^J?_RHZ%E<9W#.C)H1:\M!ZO-?TOC\$?[F]70PO6J$_C@."(UR5XJAUH
+MS2C->^'"S`M_MR=YX8?WE'IA;RG8T;Y@>^`FZ_MI%N,7'3$,#Y'+8%=DE6!X
+MO.\I[!,O`W);6[**@KCQ>M9G=M.#0R@Z"PZIR@K&M7M2,+ZRDG:O[BK=?>LV
+M8)E%:'K$!$^4F$T\JSHJ,IO(F.W-F&4JI,PJD=FK#L:,!R16JJ]CZ4(=%O-X
+M$VI3Y3Q$OM1G%/-`[`:-K>K3J!9U@%A57Y5SNN)5'VHVJ9:0W97F"3FK'F"8Q+,:IM:JHQ`&Q"2";:YZ;,9PB<
+MI^&(Q@G!5;IYPC<9%-\PHZ5]]B3I4?-BN@E+S7(;5#,9E"W5P8FD#LAZCT]S
+MV-<;'^>PKQ]V(Z6:M9M4J3[WY+"O]S:TKWD?;6A?LZ'/+M(\$*D;1.JD>H]>
+M_P`PA[_J8QRHEV&C5!UAU_R3^;ZSJ,[LHZ*)0;7^$Z)*&^]+V'L29^"/L7C,
+M%")]W+"ZF6']M2L9UD][$`;W[R3%H&]+T/X`"`:(0GU%G/\MF_\,FW^:?/X=
+M.'^6PRJ+;\LL*1-46$$T35?_/F)+/[T.R.L\,3+>AF*X]/?9Y5C"]K$SVT=?
+MN70?+MS'*[Q$RRK<>_$FN`,GUZ`G/A+=@8>[`X\&U%>`#L3XHD'T?,V=.,,[
+M55&8*LQU=;7V<=_@X81P<$FD/$PGA;A]LD&\'XK!'`9:BIIQ:EC/P=(W(."%
+M$E-'WZBT.CE^X>9;=OX9)EX)]`3Z>#Q+!-LP+^+5AP3#K[6"W2N9+=RQHQ2_
+M]Z>:U8?;%*NN5M-RL=C5_%2]IV;OGK-IX2>LRBSR[
+MI'62*?IX%:W<NW&A,LIH4@C3+GR$\516JC)DRKIC"9
+M8;WM%@$\2-A^;AN7NPS;*++]*/QOR@U_OBY31"+$B*W`..V;!?B-D/.K1FY+;"X35":L
+M#&[IQY)BT#CZ^;KTOU:U/-]2MK?CYX6_#!'2%E7I6@.44GXH0/R\"#$GPEOJ&1_";P7YW(?8$+MN10[$%KELB*7Q&,Q9<_@L
+M2N$TIWWF#&MF@],`NVEO?L.$9KF9WZVT`^X?$_,[:3'LL8T4PZ;>5([%L)!0
+M"6,[NNA]:.4H;#V_,G=A*[`#*7B#W!B3$P'QW?)9FH#E@H(IY:RHM3D\P6*\
+M(K,)M3N0T:S;D7B>4BKE>1OR7)5GI!Z%MCJ8QZARH>9`.\W;4[+K8RZQ/D9Q
+M!VIB26S7!>>5<**)0H7KF7=D%2Y>TYK.:EJ58DWK@A54TRHS)`R%%T"N$`PU
+M9$._'E28UY3&X&0M^A:B/R&;_DV+_GT;?1O1S\NF7V+1WV^C;R?Z,[/IYUOT
+M%XU79[MTV*R'S1J/]M9?3=HMQZ.]YC>3-J6,0WN859-[?3S:O-]-VEO'H]W7
+MK+>=9VII&YXA#F;`=5N]+;QWC:VWC?>NL/6V\]XN[.7*=?%RPZHG&5VG+I>7
+M\;*3,KK-K8!_T;("O1ISH]&WZ=[#;EEQP9+/6<[SE$!K6FG>AZ5)=&O9CDQ.
+MEYO*;\/BH#?(+18C:@*
+MOV9;8>346#KBK-'U4Z+X,4]O(W5FQF*[ZW/:VXBWS%TV#%U.6,
+MA0<2M]21V&;?6(U(OK$:Z4GFZSVX#_UM5U==88VK"WSC2.#K32DOAZS\YVDQ
+MO*I'VFM+T#_SW7G5D4L?(9^/]=->\52IJQVZG5J#NSIP^FJE91/X_]57`9/5%I-NQN0^.9-J
+MDPE>+F%U$!GG,N5IF:`HEO(4,<)7D!"K"7%^J4_S$'?B=Z:EM>6BF31D6-@\
+MZ7CM6F/<)QD7K+FY3#H>-PH+35.,`SC0,*L456]S5T<(M7YF3[6].2HACT?%
+M2@A/EL[%ZPK+8S/4I.#R>HRW)T([0FWZ@)"ZK:\+,TSOTP@[_D9U/"[S4"^%
+M$C>.TWZB3+'D6D2'O]DUK:O14JZJYO<#4`.F`NM+207>DYOZ`9MR%4@U&E_:
+M#K\A$?)`&^`9#OBSHR+@M-?K;8!GV([UUA&].0-F5@T"SU$S<\6*3DR/Z_7+
+M9NMJYVR]_K&S].9>.)%(H'69TL25KL;\P7[JEGN5*3QYG-TC[I.33B)2@K40
+M](3W_JF8O47MZF_&:;2KOVIOJ0DD`06(0,VY%Y=ALMW[)OM"-H1F$;?Z_Z;L
+M.D.?BH%XW1-;<2*.N*U;4=RB2'$T5Q6[?^U?:Y<"]\[HTHBH*BB(CBQE7W
+M0$%!1/Q4<#VM'\2]Z^\N]Y:^OVCA]:672W*YY)*[2]+$-'LL%&N%C+(\K@"\
+M*R7U?KD67[(W7/NXA*]S;8Q,CFQ@+XR*/I=P482?VJB]@8K\CX1XE\$1$/=\
+MC!D!Y("&'`#DJ89$P"5`(N&3_3^M($!Y#2@/P,<5$>DVOL."*"1PT5-\^TC!
+M&V:D$SJ"8'D$8?=O@L#NSDK$5UE#PQ`R
+MRG#;:NN%Z7UYD(>C!\1;W=;JHC/#`>8A9$`JH+-.L8LN@K;R4#)']QA+MG8S
+MLSG[^RF/,1&Q=?=E'@?EQ0MVXY5T_/\7?%*IE?&I>5D9/_"#E?'=_-JRC5]K
+MUN/5PURV@GZMXAEN(M6U[4V]A.9.$V8DB4H(K7@+L)@/$C#Q'?D
+ML$WVK*?P3F<&(Y2VO>-(2"5CHF-SHS7%P8?>Q;R2"U8$82)9,^70>826[CS"
+M=,;2>3A1F]CIZ3NDN$M5!P1S-_#1OO
+MR3G$!E`JM1@)1PI'@_5DK&9X'UHN3*Y"<52CS5PC'T-W7&).WLM#.,S)D[I+
+MU5\/\"/6*0@<7GS@)V-:!+(`NAE>_,I>,>NRZ"IU,JB(OC/`Z)+&&Y,VD).,
+MX%F#\"J#!/=S1TY()/1%+B*(2,)"PP/*9^U&*.2U[>&,&^*@LDNNPW"GR`@!
+M3<,1+;C:LVUB[V>*!)8A.$SM@>2\%#M[E3L.16R"[6FZUSD60$DU#A6PY_2[
+MQ?SCEZ0S^ULN,L*HJ;-QXPV2Y%[4L[.^HCBES9Z3DM)?1<%$570[#BIB8T'@
+MWVCKNPZ94R=JT/<6I3>YEL^RN$_EUYI9>&&>5.%H;&$XVG-].-I_=S@ZY$@X
+M&D^%HY/OA:-&.AR=!S)YJP2V,[991ME-'^]`2K=91EG/'7"#C5%%7@XV\QNS
+MV1`#P6S6B>O?
+M\\I/>77-):\OI?XKKWM`MWZ<#<[K>JYY(>562GGEK,=J2U8++&()(6Z7(BCO
+M_R!O,*4=ZDD;+"P06/;>..6]:6]*$_74>7^,'0M2AFG\8L9V,N]&+V*BRH
+M$9Z)-6I#&W6/#]51?!_ZP.4E!T4SLU-*@:P71ZWW,\)V`ZYGF^0[1NUKLG#<
+MKBHT2:P<\_Q_BO*X[D>HR`C%^2PM\^*M#$DY(-Z\3NL.OQF3>;5OMI?9./?(
+M?OK?%F0K1*'P\C%RYNW&0EH>(?GYK0JF\=3LG[ZP'GZ$BY34ZG0Z0.>)$3]N
+M="A,&+8:>?N4.]29S%0<'C%[28B/.0H3;X'1%/ZSY'LK8FG-@5Z*WK"G,:6:
+M-[E>-\F"%L'.<(O`G8E3)X;N[N-IS:6Q/W7%@-3P="8N+YR7#B6;@D#"TP-M
+M'=0%ZAL6;$+)\JMZOO]-">T-SOG\T$*SM'FF&>&+OUM9]PB&7BG%:6ZI`R'14)"IK5TG^:O'TLL@Q?PK1%4I@$Z;
+MJ<248PF4UP'@B4(OH!K<9L5\2(!XHZ7TOAX()/RRTHGZ4`0@V+8\LPR'M=#Q
+M8DIX\0YN&P*U[6WN/9+$0E9!0'4_(3F?GNQ[]K!_GT#WB[
+MG99.F8F05#X18!U^98(!A*`00,M,Q`V6IJ#4$3WO!A:5!8#E-D@.*@LM!_N7
+M`$481U4TJZSI5E\+03/XX#V&^O6#K0YN.!0DW]^;PTI72R[AT\$M4-QFG
+M;Q[5!R/*:Q2]-05Q?B%F]8Z:\:J;$W:'(2W_=IEMN'1+JO\K>)`];H7_*M2\#(<8/,.-965Z.NQ=R';]LH,)27O7AXL],D\
+ML*9X!/IE2A08VNE\(97G)KK&[XBDQ\`0JP>\-5VHWL0;P;\'?%OF3[,9<9^T
+M>FOFAI=4(2)(>(ME[P#6RHD?/@;S?D91"G-3S7>AB1(,Q8H4QXR64\Q$/%N'
+M(I9=CI!!K%U&%>G;4(PIS7T+T62!>,JH0%CS_;D7!,_R9$IH>B'ERUI#H+5W
+MH@AY)X@W$8__`D30!$0'3H)7W(&;=F:RIEW6]$3K\B:1-+LR&;WGW#4<6I4BVN.MR/O@EHKN<6"@-1GJ*E/PDY)PUQ-DZ,X:UW3MH
+M""H]/*BS&1'0FE[<6WBV%ISO.E2:G,X#)0R/K3O6;/PJ8PV2E:97;F/-
+M:<]8\P&")U#1TA"KWS036'D".B1MC@"EH)>30)?`.P+S]=:5,>O)C2E_5?G7
+M3XMSF"(P2@_#8-<*FDHIS`O[\;0Y`SB>7MC[N0+/>SR$VP8::S<\)_%\Q@/8
+M'P__NWZ#]F/&3T\D^^'Z#M6NG6HLY>'?[5LKN@XH/EHE/Z5[?':GG-%QPK:!(V8)4/"$!P#VG3U9M6=$?^H@O'HVVA0-
+M2`06`;0FH`?,8SKE2A%"K5,G@4NSG*,Y+"<,<.FCY@R-JX)&P:C3.87T,:$JFJ*O%I
+M1L[XT:INM''TC_;JR/=!H7BI)+<9WV0RBILW&-_7=`)+N)EP\TDFTH#,7WUO
+M%4N)FCM7^4!>;DA[H&,B#\ZB?3!]JE8MY4=L&TQ#:.#$D9WCR9ZX.^@_Y1-B
+MB+I.,^*)I*`7E5&N@!)A48E5@=U2ND'?UYR1/BY7E&D/[^/'4Z/=$&,
+M-SDQ<7>V<9XT00AN&%0G%W+U:<(,4)SF'%2W'*!2B20\+!X>Y!
+M$P@NP3W!(83@P=T"P=W]@$"`CW>[+[L[0(&?_&"2[7,SSWPC>[/3D]R->$63X/0
+M&3[?)]ZO2]<.75SNT-K`;>I8`-%FAA'5>>J.;9RX,;6,#0R[N+Y\E7)N;![4
+M_]5`L!6UJ%XMT*)>M4#UA@V:^@*-:C8)U*O9,E"MCB]0M4F3JBT#3>NTJHE=
+MHZR6-[J\2S]`IT//SCVP"79T!:,B.Z,L;^[^B4.R:U14I\Z142[CG!I7G1IP
+M6-MX$.S+*93GIA0=+A]I;`"L;YWL%FWD>4";Y6-L!3>M?M0#P&!9;C^%RTSJ
+MT624+,?],DO>Y<#SE3A4KC2A')6$](%(D":^$7
+MKY/`?H=$UH%KCXI<`YN>$/D,9CB)?O%S@&6G12J"_X[2+BP=27$0^.OH+X^'C^KZ-?L,)-]`ONOX5^P1&WT2]8\H[(";`.
+M^`S<<1?C=N+,@GL8-YCA/N+!J0]%^H"'P!G@:W`+&/>1R`6P"A@+]@?3)L!\
+M0`]X'_2!21XC'KP%S@`[/4$\N!&\`'X!8\$Z3Q&/[Z3G@Q[P,N@#ES]#/-CE
+M.>+!.^`6<.X+Q(/OP%BP]4O$XU<7VT$/Z'F%>'`6V`?<\QKQ8(`:1-;9ZO$&=A$B],_99PL21,DG!;'./,C*ZXNBT7VQL<'R5-&),]8
+M-T62?@F':Y4S5RA8,D\NC75JX"JV2B144#5YRK%QJR=SMD5#]!UQE8`O;/>=
+M+3\:5R7X?78?=Q:?']R*WXMK;N1KW>S^%X2_A]ZB?E'&^,\?I
+MA=^`Y\&MQ.!"W%OX
+MR4K\>#.^(LK;'Q>42&9EONG,^S$?OASV
+MA5BE_9=F^[O@DV&_N*_X6Z:_!G\.OHW2?W-K_BA/COVEM])_=_-^9W5@?MAW
+M7H2[WU?4^^U%O>S8EXXJ[1TTYQ,%?_@*-GC%CS3])/BB5T7V*//9:HVOHIG,5`O#?;E,O9V>EOCG`%?$+Z0
+MW0+\U?_B/\$'%1YI>?U^O_`#[
+MAN*;6_.''P0_1/']3>^#OPS?0?'MK/G#9\'7%?F5YS"W^1S.@,_]2&29$K_(
+MFC_\2OB:BJ]BS1_^!/P\I?V99ONQ\+6>B/B5^,;6_,$A\!.4^-&A^/_I?_J?
+M_MTTO(!ROB@3SQ7]7=Q0@V/)B>1TD43-I_DAG^.'
+M?"'FDS-?BOD4S-=C/BGSJW(93,9\B[X&,QDPSV/-\CU/9B93TF?]P;_[*CUU
+MON+`XK/\#/MW,I\_KL'$S/>B)[2,I(/4>,XCP[3Q[#`M\PG(#*0KLUH^/J,Z
+MSMD<7Z(?^OLLQOA3LN`+\O9^OS)?FUY^\*^8K\*!?&0^B?9OIN%AUOM)-EB8C2#\9)&/(L>1,<@6YC3Q$7B(?D.])9Q[V3[K)TF0$Z2>#
+M9`PYEIQ)KB"WD8?(2^0#\CWIS,O^23=9FHP@_620C"''DC/)%>0V\A!YB7Q`
+MOB>=;O9/NLG29`3I)X-D##F6G$FN(+>1A\A+Y`/R/>G,Q_Y)-UF:C"#]9)",
+M(<>2,\D5Y#;R$'F)?$"^)YWYV3_I)DN3$:2?#)(Q9*WJU8IZ
+MBI9QE2A6O$2QDL5+NO(WP4\&:T?V,@M(:*$Z((_$-%R2K0(9KPO;EY^/_XYO\]^_6;F
+MSB+F2=6MF$]5+X%Y1_62F,]4+R6ZDYXDYI%>&O.JZLEX
+MGJA>1IPF/47$&U">*I:27A;/)]7+B3CI:<(Y@W*;<,VDO#R>=ZI7$&FD5Q15
+M2*\D,DA/%W'2*XO32RC7!W\IY55%T7+*U9,BWPNLXMU/U8VDA1CG1DR^A=&+
+M.-Y.Z'-`Z=,%7J3X,+CZ?A4P^A<[K@3X=./OQ/AO09^XTF>_D2?.XU7FN.[\
+MV7_TJ0-_#+\!;P)_"_\!/P,OF2#]5"-9^_'"41G>N+FL=UGEU]JZ)XAR8N=T
+M62>C3S/D;V7+>CY>E-HB?Q3Y5.1[PR\J[D.?,6UE_03S1QCYN\BG(#\3^78=
+M9/T-OA#NZBCK>NBS%GU>H$]9Y'?^V6YG6=?`B3R,_!=EN^>0G]8%QX_\=>23
+M"LW'%2\E\[N[RMJ9B/.%?!7DKO66]
+M"/GJ%MD_`_TK(+\:?>[VE?5->"/TV=T/YPE]6J&/"WW*(=\=^<\#<']B'$8A
+MWQ_YBL@7(&_#C],^PJ?"2PR6]3/X`OA+^"CLSQKTSRLTG\<=R'<;ANL&^U.I
+MO/2CPW$_8/P/H<]D9?Q/PZAR?#OZ3*_MM'R?H2MOL(^:7*]?`&O@E>
+M"_[=0M_OUD39_Y,FZU/PJHFRSQ/TJ0EOD$CWR42?7+>LT^$.)M\)^6\^63>&
+M]X2OS<=U`L^#/U-\#CQKO-FWP0OA@^`7X-?A;>#/F/W\@/R]`MR?\#2K,3Z5
+M1`?,JQW@=:QRW$[C^]@,>%,KW=]IE?WS0K+VP+NA3P:>U^7A&O(/)\AZ7<+_
+MGU,3?O>QB;SY9I]A./6\9OHLQ':7!'&_P#?`]^3B?,/WPB^'<-U@/X_#KP9D
+M/1+Y:U;YW:;Z'+]MY(GWG(?H4S4/\S#\)?P5]K,0_@2^&N/6%?X=_@$KC;;"
+M1Y>4/@$GY#X\Q?B_;N)]IFH)F6^/_;D%KPU/Q_$>A=OA48R;"]Y.=[V;^**,
+M0V?DZR)O@^?!'\-;PR>ACSJ>FW&\5R)XGN*\S$*?<[@?6R*_&%X1]]UL^#9C
+M'(CWMWW(K_=C_H6?T%T0[Y_7C3[$>7\(5]_WWJ-_=B[&"YZ.\]4K1]:3+;@?
+M#2?>PQL@WQ#7B0_>'/TG87R&PELAGX)YX`I\1$G'HIVILPWE'W#,)',_G)C,]C_)#AQOR,YT4H`?,`D__,>)]D
+M(6S$?%4OB<[W93R0)/?G]3CS=;Z,R>]A_"SCMQG_P'BUTK1W9WPLX],8W\+X
+M2<:O,_Z4\2^,UT^FO0WC0QB/,;Z<\1V,'V/\&N//&?_&>.TRM'=@W,OX?,8W
+M,7Y<]PS"+S/Y9XPGI=#N9+PGXQ,97\'X*<;?,EXSE787XWT8+]3=1O@\)K^1
+M\>.,WV&\B/$296EO]MM316B,K.=B_NS'Y`L87\+X#L:O,?Z&<4LYVNLQWI'Q
+M\8PO9/PPXR\9KYA&NYWQ3HR/93S.^*HT^C[=Q>3/,?Z0\8^,U[;1[K#1^].'
+MR<<87\+X=L9/Z5Z'\`=,/K4\[2(S%@EG^O/'9=KMQI=L9Z8G',VWAX3'[?=K
+MN8%0T%CS&XX*G2/1F,]G]PA-Z]EYH-:[A[Y$6Q,YWK`W-S\2-9;=!S2//Q3T
+M1O1$3DC+]8?&N?U:CK%\7G/')@N/OMS?[XUZ<^S9+H>3#FF^_&"^]GNUK/S]
+M'^$+NP->+2<6"$P1FE:LTO1DU!3]^ULC6,8OHF%W,.)W1[W&(NWBY9^UT5K`
+M'2GXYUCK_6^9N+'%6-"C:?8L1XN6K8JO#S=]EIV5I9?]!W8=/'B$UFU(W\[&
+M4F7YB:-9L57DYG_D;/EWP7C$M+3<''/)[>HI=;,MF[5`!^*SYEGBSXI]S1CZ
+M4%`?I8CQB2/+O,`\0JQ/-[7*=IA7JIL__=6ZE?-*#0/AL!P"(7%52#04M$3<
+M1_X!`\$ESXP=WLS10Y+=_)`C>_?]E1.]U$1-D6W3_CFP!Z'`
+M.`H*ZKH?D(PA=QP^@@6B>53`CAP0S:/[ES>/[CGDF5QV,I8J"^G!6%-$IFA>
+MBWT_<,"KRBAFNXH2CTV'TKAW9WDTI5=1H2=9^=!DR*-+L;BAOAU4<:GR*M9%
+M:R_I0\>MO7'P,*W*UNYID$=!TMZ?9L;DX!9&8+O<817%992@(H#<3L=DA'AK
+MW,7??Y2VS=0$T",I@?9VXH\PNR]^_ES1.SAPJAI$W&M.BH:>N'+NPJ!8O
+MGE0*D<0\=S&I:KTWA=-=A`$\\\E\$P-A4(#+BBBS2>:J[28NOP
+ME*:U!9X)(A;.BN'1=8'A59J!R_&6L[N=:\WQJ$C5.$C"6!MPG-YA&'$__I#E
+MLASC-+U7931=$@KM`8J/7/R"KU:NG!BIMS3YR\=/W9>
+M73IUZNKBDEHZ=OS\HA)S.$3E>:U(I"7V"Z.]Q6(49)J*M:`*RZ8(V'4>:6/K
+M<.`'HR&S,DS,*_.&4/P6922F.,ACW2\LG#Y_]O@)M<_?YQ_L+#:1?$:F@$RQ
+M0HI(Y66>H.SK[_PDGTX*<@/%EB'`C.)_)M!+,$;9:C.VH()&C":9E%6=7;J@
+M[!E(VN<3<(FM2DJ*`P>+;LCADHM/#(AEJ@@AG-6.+JN,07:-3C8X&YP+_%LV
+M1+$DKK2*:1%J&N5E18'0QNH>K46T<([[K=/7XV:20Q^Y9OT.TR`/L;4J"F=(&
+M1:'SVEO;U@F7FW]2R"`&YOKVP<%WM\0_Z>P1SL8]0
+M2M?D9JJPDE[&2YCSO)$Y>^9$LE'#"L3P[*$8ZM(4WX":)FTYXMSD"Z/EW,9%
+MFE*_QZKM3?H<6R>R0LK1G.9J7R=IG=UE[6);+N:`!I
+MNA?)3^[99JZ?W$[;.=D%,;<5BCU7$KQ2G[;L[7E;)2X39X_FZQ;TW,<>5]BF
+M7=BP9T?5'!7MYJC*-;/4R=1IP>+>[MAQZK9!QW4D=TX3*9K;"2%=O]ECX+\9
+M?2?[:;>D9F#]:2VL!]^R>.?:J$S$??T4K)QNA
+M'3[JBC*=^I,?L9@VC.CJFX>P17/CZ[WO63Y0M@Q_[G$M=B[6+NX02HT>!/RU
+M0S'CD;Q%KSP:M4=3S_-)Q64P)%KF-1W/GI*TU/Z=I/+YFS'<34',M,9!,?;\
+M\&%"2$-I?-TSU3GOKFBH4#9I:*[C@'%XRN+2\\TW"#_Z=U)Z,!]T/G_DT:#4
+M7.Q]/<;_#8W#W+8,%/])5"-FSW='-(RA/`UQ,;(&DVCD\1SUM,.B\'S:APGY
+M@/=??CN02SY`^\LJ27?-Y1;(G\\YK)0+#CSR/2T]@O>K047%$/HW8G[DSPOZ
+M=H.==]4R_';0!?`>V'Q\03-0FS\H?V>0ZPX\\DPM_=J0?]"@UY!+CS;GHX+*
+M]:\!IKG^$+GWP"-OU=*%'GQA^U`/("CJ`2"_0W^/@3^.-O)@05&/`/QV!_XI
+M=+K.UE\(NJG'?IY(/.?52KI6CM_2H,\E'OFWH$)?[O8KB4?^J*5?SC?GE[_7
+M#?R-2M(-/>M_`_Q@)G\EZ8<&@YT-_'N)1WZ&I6L&W?-_E'CD$5MZ8'VW_CYC
+MCV%?G*<*VJ5_4/C79HM'7BS1%>*_0W[@.1\*=&7[_T/@41?%%/A;7K?^?V+O
+M5]NZ$U#X[T#J?7W#CE[(^3EO&A1_)^Q9_R^)YWP;4,3A03?^-YZ!YSP>4(SK
+ML=_5G*%B.)W^65-QYR(B'JL9X[XL\'*+NWZ'?(GMW7'_ZTM
+M^&^?D"^VJAO_!U!+`0(4`Q0#```(`)@!<%+IO$E_&````!D````3````````
+M````((#_H0````!L:6)X:V)C;VUM;VXM>#$Q+G-O4$L!`A0#%`,```@`F`%P
+M4NF\27\8````&0```!4````````````@@/^A20```&QI8GAK8F-O;6UO;BUX
+M,3$N#$Q+G-O+C`N,"XP4$L%!@`````#``,`
+*RP```.H]````````
+`
+end
diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_lzma.zip.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_lzma.zip.uu
new file mode 100644
index 0000000..8ae8df4
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_read_format_zip_7z_lzma.zip.uu
@@ -0,0 +1,45 @@
+begin 644 test_read_format_zip_7z_lzma.zip
+M4$L#!`H#`````.$#)%$````````````````,````7VENA79\GCDS+I*=O.=!+"5(),_1O%5^1102P,$"@,`````]0,D
+M40```````````````"P```!?:6YS=&%L;&1I7-I00]!0!=````!``1B$)'BB,SPW,_U5E^VGQ_#J
+M*D,VRB^`L-1YB&E9ZQ@#)Z;.!DA4-N"JARAW#NR&V]%F']BN`WU@#,0-<1)%
+M/6DBM+7=&`\IF.F\E3\E9D*1:/'I+057:TA02P$"%`,*`P````#A`R11````
+M````````````#````````````!"`Z$$`````7VEN````7VEN7-I7-I7-I7-I)82Q1PWAL
+M+U`,N0L_$]^&650C/X$D6#4QFD$\A/"_![4!O/5O/!KH`WCQ*4?T2*]4P#/D
+M0'9I?EZG=N69Z0V;H0I=CP*$?".I\
+MGMG/80.A'^W>R4J'S/CZ%P`8`>F=R>R&R$2T@EM#X)"OQH1?A7,`:4IU9WV!
+M#2W*DXT',;.4YIN4A:-X)O=IREL201ZSOC=YSAU[C4-::/YV8\)%"L17+>VC
+M%/'B]ZCQN$2(Q*9*\KJZ`Y131`]5C&G';@1S-QES_RZF!2OX45@58+??ES%(
+MUJ<(\`11M$NO)HK#/MK-9RT"15.2I:IZN8VTM1_?$G\L#BH67]$S%[4
+M%C-$\Q<+./&HV](4,7)OL-@C^M0F"2O!0N$OHOW54H87^QLBQVH*D%A<#SI%
+M/#+-5U(W';:KC)RE>0Y^5YI!RECQNR"R4.UW9IR!@:B!UB8?_D5$FT8YCJHJ
+M2[2"-&-_D2BJ6#XK[6G=%K"%;'^-+0]FHCY4ER#`^'0`````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````#`P,#`V-#0`,#`P,#`P,``P,#`P,#`P`#`P,#`P,#`P,C(R
+M`#$S-#8T-S```````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````````````````!U
+#include
+#include
+
+/*
+ * This test checks whether things work correctly when the archive_write_callback
+ * passed to archive_write_open() does a short write and only writes some of the
+ * data passed in. The way the test works is that two archives are constructed
+ * in parallel - one with short writes, one with full writes - and the results
+ * are compared to see if they are identical.
+ */
+
+struct checker {
+ struct archive *short_archive;
+ char *shortbuf;
+ size_t shortbuf_len;
+
+ struct archive *full_archive;
+ char *fullbuf;
+ size_t fullbuf_len;
+};
+
+static ssize_t
+short_write_callback(struct archive *a, void *client_data, const void *buffer, size_t length)
+{
+ (void)a;
+
+ struct checker *checker = client_data;
+ size_t to_write = length < 100 ? length : 100;
+ size_t new_len = checker->shortbuf_len + to_write;
+ char *new_buf = realloc(checker->shortbuf, new_len);
+ assert(new_buf != NULL);
+
+ checker->shortbuf = new_buf;
+ memcpy(checker->shortbuf + checker->shortbuf_len, buffer, to_write);
+ checker->shortbuf_len = new_len;
+
+ return to_write;
+}
+
+static ssize_t
+full_write_callback(struct archive *a, void *client_data, const void *buffer, size_t length)
+{
+ (void)a;
+
+ struct checker *checker = client_data;
+ size_t to_write = length;
+ size_t new_len = checker->fullbuf_len + to_write;
+ char *new_buf = realloc(checker->fullbuf, new_len);
+ assert(new_buf != NULL);
+
+ checker->fullbuf = new_buf;
+ memcpy(checker->fullbuf + checker->fullbuf_len, buffer, to_write);
+ checker->fullbuf_len = new_len;
+
+ return to_write;
+}
+
+static struct archive *
+create_archive(struct checker *checker, archive_write_callback write_cb, int buffered)
+{
+ struct archive *a;
+
+ assert((a = archive_write_new()) != NULL);
+
+ if (!buffered)
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_write_set_bytes_per_block(a, 0));
+
+ /* With the default value of bytes_in_last_block, the writing code will
+ * pad out the final write to make it a full block. This causes problems
+ * for us because the size of the final write can be different depending
+ * on the size of previous writes, causing the "short" and "full" paths
+ * to get different amounts of padding. Setting it to 1 results in no
+ * padding other than that defined by the archive format. */
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_write_set_bytes_in_last_block(a, 1));
+
+ /* We write a pax archive, but other formats would work fine too. */
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_write_set_format_pax(a));
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_write_add_filter_none(a));
+
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_write_open(a, checker, NULL, write_cb, NULL));
+
+ return a;
+}
+
+static struct checker *
+checker_new(int buffered)
+{
+ struct checker *checker;
+
+ assert ((checker = calloc(1, sizeof *checker)) != NULL);
+
+ checker->short_archive = create_archive(checker, short_write_callback, buffered);
+ checker->full_archive = create_archive(checker, full_write_callback, buffered);
+
+ return checker;
+}
+
+static void
+checker_add_file(struct checker *checker, const char *name, char *buffer, size_t len)
+{
+ struct archive_entry *entry;
+ assert((entry = archive_entry_new()) != NULL);
+
+ archive_entry_set_pathname(entry, name);
+ archive_entry_set_mode(entry, AE_IFREG | 0755);
+ archive_entry_set_size(entry, len);
+
+ assertEqualIntA(checker->short_archive, ARCHIVE_OK,
+ archive_write_header(checker->short_archive, entry));
+ assertEqualIntA(checker->short_archive, len,
+ archive_write_data(checker->short_archive, buffer, len));
+
+ assertEqualIntA(checker->full_archive, ARCHIVE_OK,
+ archive_write_header(checker->full_archive, entry));
+ assertEqualIntA(checker->full_archive, len,
+ archive_write_data(checker->full_archive, buffer, len));
+
+ archive_entry_free(entry);
+}
+
+static void
+checker_close(struct checker *checker)
+{
+ assertEqualIntA(checker->short_archive, ARCHIVE_OK,
+ archive_write_close(checker->short_archive));
+ assertEqualIntA(checker->short_archive, ARCHIVE_OK,
+ archive_write_close(checker->full_archive));
+}
+
+static void
+checker_check(struct checker *checker)
+{
+ assertEqualInt(checker->shortbuf_len, checker->fullbuf_len);
+ assert(memcmp(checker->shortbuf, checker->fullbuf, checker->fullbuf_len) == 0);
+}
+
+static void
+checker_free(struct checker *checker)
+{
+ free(checker->shortbuf);
+ free(checker->fullbuf);
+ free(checker);
+}
+
+DEFINE_TEST(test_short_writes)
+{
+ struct checker *checker;
+ uint16_t test_data[16384];
+ int i;
+
+ for (i = 0; i < 16384; i++)
+ test_data[i] = i;
+
+
+ /* Write a file smaller than the default buffer size (10 * 1024);
+ * this will be written out at close.
+ */
+ checker = checker_new(1);
+ checker_add_file(checker, "a", (char *)test_data, 1024);
+ checker_close(checker);
+ assert(checker->shortbuf_len > 1024);
+ checker_check(checker);
+ checker_free(checker);
+
+ /* Write a file larger larger than twice default buffer size (10 * 1024);
+ * this both fills the buffer and writes it out, and also exercises
+ * the "write out full blocks directly" code path.
+ */
+ checker = checker_new(1);
+ checker_add_file(checker, "a", (char *)test_data, 21 * 1024);
+ checker_close(checker);
+ assert(checker->shortbuf_len > 21 * 1024);
+ checker_check(checker);
+ checker_free(checker);
+
+ /* Test unbuffered writes - a different code path.
+ */
+ checker = checker_new(0);
+ checker_add_file(checker, "a", (char *)test_data, 1024);
+ checker_close(checker);
+ assert(checker->shortbuf_len > 1024);
+ checker_check(checker);
+ checker_free(checker);
+}
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_sparse_basic.c b/dependencies/libarchive-3.5.2/libarchive/test/test_sparse_basic.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_sparse_basic.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_sparse_basic.c
index 0fbb7f7..43e87df 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_sparse_basic.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_sparse_basic.c
@@ -577,7 +577,7 @@ DEFINE_TEST(test_sparse_basic)
/* Check if the filesystem where CWD on can
* report the number of the holes of a sparse file. */
-#ifdef PATH_MAX
+#if defined(PATH_MAX) && !defined(__GLIBC__)
cwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */
#else
cwd = getcwd(NULL, 0);
@@ -637,7 +637,7 @@ DEFINE_TEST(test_fully_sparse_files)
/* Check if the filesystem where CWD on can
* report the number of the holes of a sparse file. */
-#ifdef PATH_MAX
+#if defined(PATH_MAX) && !defined(__GLIBC__)
cwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */
#else
cwd = getcwd(NULL, 0);
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_aa.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_aa.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_aa.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_aa.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_ab.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_ab.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_ab.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_ab.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_ac.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_ac.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_splitted_rar_seek_support_ac.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_splitted_rar_seek_support_ac.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_tar_filenames.c b/dependencies/libarchive-3.5.2/libarchive/test/test_tar_filenames.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_tar_filenames.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_tar_filenames.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_tar_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_tar_large.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_tar_large.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_tar_large.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_ustar_filename_encoding.c b/dependencies/libarchive-3.5.2/libarchive/test/test_ustar_filename_encoding.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_ustar_filename_encoding.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_ustar_filename_encoding.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_ustar_filenames.c b/dependencies/libarchive-3.5.2/libarchive/test/test_ustar_filenames.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_ustar_filenames.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_ustar_filenames.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_warn_missing_hardlink_target.c b/dependencies/libarchive-3.5.2/libarchive/test/test_warn_missing_hardlink_target.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_warn_missing_hardlink_target.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_warn_missing_hardlink_target.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.c
index 706794a..d82d698 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.c
@@ -67,7 +67,7 @@ has_xattr(const char *filename, const char *xattrname)
{
char *nl, *nlp;
ssize_t r;
- int exisiting;
+ int existing;
r = listxattr(filename, NULL, 0, XATTR_SHOWCOMPRESSION);
if (r < 0)
@@ -85,15 +85,15 @@ has_xattr(const char *filename, const char *xattrname)
return (0);
}
- exisiting = 0;
+ existing = 0;
for (nlp = nl; nlp < nl + r; nlp += strlen(nlp) + 1) {
if (strcmp(nlp, xattrname) == 0) {
- exisiting = 1;
+ existing = 1;
break;
}
}
free(nl);
- return (exisiting);
+ return (existing);
}
#endif
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.cpio.gz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.cpio.gz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_appledouble.cpio.gz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_appledouble.cpio.gz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_failures.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_failures.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_failures.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_failures.c
diff --git a/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_fixup.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_fixup.c
new file mode 100644
index 0000000..c399c98
--- /dev/null
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_fixup.c
@@ -0,0 +1,81 @@
+/*-
+ * Copyright (c) 2021 Martin Matuska
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "test.h"
+
+/*
+ * Test fixup entries don't follow symlinks
+ */
+DEFINE_TEST(test_write_disk_fixup)
+{
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ skipping("Skipping test on Windows");
+#else
+ struct archive *ad;
+ struct archive_entry *ae;
+ int r;
+
+ if (!canSymlink()) {
+ skipping("Symlinks not supported");
+ return;
+ }
+
+ /* Write entries to disk. */
+ assert((ad = archive_write_disk_new()) != NULL);
+
+ /*
+ * Create a file
+ */
+ assertMakeFile("victim", 0600, "a");
+
+ /*
+ * Create a directory and a symlink with the same name
+ */
+
+ /* Directory: dir */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "dir");
+ archive_entry_set_mode(ae, AE_IFDIR | 0606);
+ assertEqualIntA(ad, 0, archive_write_header(ad, ae));
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ /* Symbolic Link: dir -> foo */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "dir");
+ archive_entry_set_mode(ae, AE_IFLNK | 0777);
+ archive_entry_set_size(ae, 0);
+ archive_entry_copy_symlink(ae, "victim");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN)
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ archive_entry_free(ae);
+
+ assertEqualInt(ARCHIVE_OK, archive_write_free(ad));
+
+ /* Test the entries on disk. */
+ assertIsSymlink("dir", "victim", 0);
+ assertFileMode("victim", 0600);
+#endif
+}
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hardlink.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hardlink.c
similarity index 83%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hardlink.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hardlink.c
index f80821c..184f77a 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hardlink.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hardlink.c
@@ -49,6 +49,9 @@ DEFINE_TEST(test_write_disk_hardlink)
static const char data[]="abcdefghijklmnopqrstuvwxyz";
struct archive *ad;
struct archive_entry *ae;
+#ifdef HAVE_LINKAT
+ int can_symlink;
+#endif
int r;
/* Force the umask to something predictable. */
@@ -147,7 +150,7 @@ DEFINE_TEST(test_write_disk_hardlink)
archive_entry_free(ae);
/*
- * Finally, try a new-cpio-like approach, where the initial
+ * Third, try a new-cpio-like approach, where the initial
* regular file is empty and the hardlink has the data.
*/
@@ -174,6 +177,41 @@ DEFINE_TEST(test_write_disk_hardlink)
assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
}
archive_entry_free(ae);
+
+#ifdef HAVE_LINKAT
+ /* Finally, try creating a hard link to a dangling symlink */
+ can_symlink = canSymlink();
+ if (can_symlink) {
+ /* Symbolic link: link5a -> foo */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "link5a");
+ archive_entry_set_mode(ae, AE_IFLNK | 0642);
+ archive_entry_unset_size(ae);
+ archive_entry_copy_symlink(ae, "foo");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN) {
+ assertEqualInt(ARCHIVE_WARN,
+ archive_write_data(ad, data, sizeof(data)));
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ }
+ archive_entry_free(ae);
+
+
+ /* Link. Size of zero means this doesn't carry data. */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "link5b");
+ archive_entry_set_mode(ae, S_IFREG | 0642);
+ archive_entry_set_size(ae, 0);
+ archive_entry_copy_hardlink(ae, "link5a");
+ assertEqualIntA(ad, 0, r = archive_write_header(ad, ae));
+ if (r >= ARCHIVE_WARN) {
+ assertEqualInt(ARCHIVE_WARN,
+ archive_write_data(ad, data, sizeof(data)));
+ assertEqualIntA(ad, 0, archive_write_finish_entry(ad));
+ }
+ archive_entry_free(ae);
+ }
+#endif
assertEqualInt(0, archive_write_free(ad));
/* Test the entries on disk. */
@@ -211,5 +249,14 @@ DEFINE_TEST(test_write_disk_hardlink)
assertFileNLinks("link4a", 2);
assertFileSize("link4a", sizeof(data));
assertIsHardlink("link4a", "link4b");
+
+#ifdef HAVE_LINKAT
+ if (can_symlink) {
+ /* Test #5 */
+ assertIsSymlink("link5a", "foo", 0);
+ assertFileNLinks("link5a", 2);
+ assertIsHardlink("link5a", "link5b");
+ }
+#endif
#endif
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.c
index 2960fe2..8a2e7df 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.c
@@ -37,7 +37,7 @@ has_xattr(const char *filename, const char *xattrname)
{
char *nl, *nlp;
ssize_t r;
- int exisiting;
+ int existing;
r = listxattr(filename, NULL, 0, XATTR_SHOWCOMPRESSION);
if (r < 0)
@@ -55,15 +55,15 @@ has_xattr(const char *filename, const char *xattrname)
return (0);
}
- exisiting = 0;
+ existing = 0;
for (nlp = nl; nlp < nl + r; nlp += strlen(nlp) + 1) {
if (strcmp(nlp, xattrname) == 0) {
- exisiting = 1;
+ existing = 1;
break;
}
}
free(nl);
- return (exisiting);
+ return (existing);
}
static int
get_rsrc_footer(const char *filename, char *buff, size_t s)
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.tgz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.tgz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_hfs_compression.tgz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_hfs_compression.tgz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_lookup.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_lookup.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_lookup.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_lookup.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.c
index 6e9e723..be13d96 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.c
@@ -67,7 +67,7 @@ has_xattr(const char *filename, const char *xattrname)
{
char *nl, *nlp;
ssize_t r;
- int exisiting;
+ int existing;
r = listxattr(filename, NULL, 0, XATTR_SHOWCOMPRESSION);
if (r < 0)
@@ -85,15 +85,15 @@ has_xattr(const char *filename, const char *xattrname)
return (0);
}
- exisiting = 0;
+ existing = 0;
for (nlp = nl; nlp < nl + r; nlp += strlen(nlp) + 1) {
if (strcmp(nlp, xattrname) == 0) {
- exisiting = 1;
+ existing = 1;
break;
}
}
free(nl);
- return (exisiting);
+ return (existing);
}
#endif
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_mac_metadata.tar.gz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.c
index b7210e2..0af44d2 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.c
@@ -37,7 +37,7 @@ has_xattr(const char *filename, const char *xattrname)
{
char *nl, *nlp;
ssize_t r;
- int exisiting;
+ int existing;
r = listxattr(filename, NULL, 0, XATTR_SHOWCOMPRESSION);
if (r < 0)
@@ -55,15 +55,15 @@ has_xattr(const char *filename, const char *xattrname)
return (0);
}
- exisiting = 0;
+ existing = 0;
for (nlp = nl; nlp < nl + r; nlp += strlen(nlp) + 1) {
if (strcmp(nlp, xattrname) == 0) {
- exisiting = 1;
+ existing = 1;
break;
}
}
free(nl);
- return (exisiting);
+ return (existing);
}
#endif
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_no_hfs_compression.tgz.uu
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_perms.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_perms.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_perms.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_perms.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure.c
similarity index 93%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure.c
index 7cd66c4..44b9ea0 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure.c
@@ -40,6 +40,10 @@ DEFINE_TEST(test_write_disk_secure)
struct archive *a;
struct archive_entry *ae;
struct stat st;
+#if defined(HAVE_LCHMOD) && defined(HAVE_SYMLINK) && \
+ defined(S_IRUSR) && defined(S_IWUSR) && defined(S_IXUSR)
+ int working_lchmod;
+#endif
/* Start with a known umask. */
assertUmask(UMASK);
@@ -251,10 +255,32 @@ DEFINE_TEST(test_write_disk_secure)
assert(0 == lstat("link_to_dir", &st));
failure("link_to_dir: st.st_mode=%o", st.st_mode);
assert(S_ISLNK(st.st_mode));
-#if HAVE_LCHMOD
- /* Systems that lack lchmod() can't set symlink perms, so skip this. */
- failure("link_to_dir: st.st_mode=%o", st.st_mode);
- assert((st.st_mode & 07777) == 0755);
+#if defined(HAVE_SYMLINK) && defined(HAVE_LCHMOD) && \
+ defined(S_IRUSR) && defined(S_IWUSR) && defined(S_IXUSR)
+ /* Verify if we are able to lchmod() */
+ if (symlink("dir", "testlink_to_dir") == 0) {
+ if (lchmod("testlink_to_dir",
+ S_IRUSR | S_IWUSR | S_IXUSR) != 0) {
+ switch (errno) {
+ case ENOTSUP:
+ case ENOSYS:
+#if ENOTSUP != EOPNOTSUPP
+ case EOPNOTSUPP:
+#endif
+ working_lchmod = 0;
+ break;
+ default:
+ working_lchmod = 1;
+ }
+ } else
+ working_lchmod = 1;
+ } else
+ working_lchmod = 0;
+
+ if (working_lchmod) {
+ failure("link_to_dir: st.st_mode=%o", st.st_mode);
+ assert((st.st_mode & 07777) == 0755);
+ }
#endif
assert(0 == lstat("dir/filea", &st));
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure744.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure744.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure744.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure744.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure745.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure745.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure745.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure745.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure746.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure746.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_secure746.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_secure746.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_sparse.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_sparse.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_sparse.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_sparse.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_symlink.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_symlink.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_symlink.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_symlink.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_times.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_times.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_disk_times.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_disk_times.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_b64encode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_b64encode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_b64encode.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_b64encode.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_bzip2.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_bzip2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_bzip2.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_bzip2.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_compress.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_compress.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_compress.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_compress.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_gzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_gzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_gzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_gzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_gzip_timestamp.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_gzip_timestamp.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_gzip_timestamp.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_gzip_timestamp.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lrzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lrzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lrzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lrzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lz4.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lz4.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lz4.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lz4.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzma.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzma.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzma.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzma.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzop.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzop.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_lzop.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_lzop.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_program.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_program.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_program.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_program.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_uuencode.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_uuencode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_uuencode.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_uuencode.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_xz.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_xz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_xz.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_xz.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_zstd.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_zstd.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_zstd.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_zstd.c
index ba1b6bf..b5f061a 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_filter_zstd.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_filter_zstd.c
@@ -124,6 +124,9 @@ DEFINE_TEST(test_write_filter_zstd)
archive_write_set_filter_option(a, NULL, "compression-level", "25")); /* too big */
assertEqualIntA(a, ARCHIVE_OK,
archive_write_set_filter_option(a, NULL, "compression-level", "9"));
+ /* Following is disabled as it will fail on library versions < 1.3.4 */
+ /* assertEqualIntA(a, ARCHIVE_OK,
+ archive_write_set_filter_option(a, NULL, "compression-level", "-1")); */
assertEqualIntA(a, ARCHIVE_OK,
archive_write_set_filter_option(a, NULL, "compression-level", "7"));
assertEqualIntA(a, ARCHIVE_OK, archive_write_open_memory(a, buff, buffsize, &used2));
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip_empty.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip_empty.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip_large.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_7zip_large.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_7zip_large.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_ar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_ar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_ar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_ar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio.c
similarity index 87%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio.c
index 9f7307f..d5df8a8 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio.c
@@ -141,6 +141,17 @@ test_format(int (*set_format)(struct archive *))
archive_entry_free(ae);
assertEqualIntA(a, 0, archive_write_data(a, "12345678", 9));
+ /*
+ * Write a character device to it.
+ */
+ assert((ae = archive_entry_new()) != NULL);
+ archive_entry_copy_pathname(ae, "tty0");
+ archive_entry_set_mode(ae, S_IFCHR | 0600);
+ archive_entry_set_size(ae, 0);
+ archive_entry_set_rdev(ae, 1024);
+ assertA(0 == archive_write_header(a, ae));
+ archive_entry_free(ae);
+
/* Close out the archive. */
assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
@@ -212,6 +223,15 @@ test_format(int (*set_format)(struct archive *))
assertEqualInt(0, archive_entry_size(ae));
assertEqualIntA(a, 0, archive_read_data(a, filedata, 10));
+ /*
+ * Read the character device entry back.
+ */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("tty0", archive_entry_pathname(ae));
+ assertEqualInt((S_IFCHR | 0600), archive_entry_mode(ae));
+ assertEqualInt(0, archive_entry_size(ae));
+ assertEqualInt(1024, archive_entry_rdev(ae));
+
/* Verify the end of the archive. */
assertEqualIntA(a, 1, archive_read_next_header(a, &ae));
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
@@ -253,18 +273,28 @@ test_big_entries(int (*set_format)(struct archive *), int64_t size, int expected
DEFINE_TEST(test_write_format_cpio)
{
+ int64_t size_16m = ((int64_t)1) << 24;
+ int64_t size_2g = ((int64_t)1) << 31;
int64_t size_4g = ((int64_t)1) << 32;
int64_t size_8g = ((int64_t)1) << 33;
- test_format(archive_write_set_format_cpio);
+ test_format(archive_write_set_format_cpio_odc);
test_format(archive_write_set_format_cpio_newc);
- test_big_entries(archive_write_set_format_cpio,
+ test_big_entries(archive_write_set_format_cpio_odc,
size_8g - 1, ARCHIVE_OK);
- test_big_entries(archive_write_set_format_cpio,
+ test_big_entries(archive_write_set_format_cpio_odc,
size_8g, ARCHIVE_FAILED);
test_big_entries(archive_write_set_format_cpio_newc,
size_4g - 1, ARCHIVE_OK);
test_big_entries(archive_write_set_format_cpio_newc,
size_4g, ARCHIVE_FAILED);
+ test_big_entries(archive_write_set_format_cpio_bin,
+ size_2g - 1, ARCHIVE_OK);
+ test_big_entries(archive_write_set_format_cpio_bin,
+ size_2g, ARCHIVE_FAILED);
+ test_big_entries(archive_write_set_format_cpio_pwb,
+ size_16m - 1, ARCHIVE_OK);
+ test_big_entries(archive_write_set_format_cpio_pwb,
+ size_16m, ARCHIVE_FAILED);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_empty.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_empty.c
index 2ba415c..3ca5c39 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_empty.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_empty.c
@@ -52,7 +52,7 @@ DEFINE_TEST(test_write_format_cpio_empty)
/* Create a new archive in memory. */
assert((a = archive_write_new()) != NULL);
- assertA(0 == archive_write_set_format_cpio(a));
+ assertA(0 == archive_write_set_format_cpio_odc(a));
assertA(0 == archive_write_add_filter_none(a));
/* 1-byte block size ensures we see only the required bytes. */
/* We're not testing the padding here. */
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_newc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_newc.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_newc.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_newc.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_odc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_odc.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_odc.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_odc.c
index ba1fecd..aefb42e 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_cpio_odc.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_cpio_odc.c
@@ -54,7 +54,7 @@ DEFINE_TEST(test_write_format_cpio_odc)
/* Create a new archive in memory. */
assert((a = archive_write_new()) != NULL);
- assertEqualIntA(a, 0, archive_write_set_format_cpio(a));
+ assertEqualIntA(a, 0, archive_write_set_format_cpio_odc(a));
assertEqualIntA(a, 0, archive_write_add_filter_none(a));
assertEqualIntA(a, 0, archive_write_open_memory(a, buff, buffsize, &used));
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_gnutar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_gnutar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_gnutar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_gnutar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_gnutar_filenames.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_gnutar_filenames.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_gnutar_filenames.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_gnutar_filenames.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_boot.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_boot.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_boot.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_boot.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_empty.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_empty.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_zisofs.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_zisofs.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_iso9660_zisofs.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_iso9660_zisofs.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_absolute_path.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_absolute_path.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_absolute_path.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_absolute_path.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_classic.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_classic.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_classic.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_classic.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_classic_indent.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_classic_indent.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_classic_indent.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_classic_indent.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_fflags.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_fflags.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_fflags.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_fflags.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_no_separator.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_no_separator.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_no_separator.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_no_separator.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_quoted_filename.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_quoted_filename.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_mtree_quoted_filename.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_mtree_quoted_filename.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_pax.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_pax.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_pax.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_pax.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_raw.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_raw.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_raw.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_raw.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_raw_b64.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_raw_b64.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_raw_b64.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_raw_b64.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_shar_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_shar_empty.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_shar_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_shar_empty.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_empty.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_empty.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_sparse.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_sparse.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_sparse.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_sparse.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_ustar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_ustar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_ustar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_ustar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_v7tar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_v7tar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_tar_v7tar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_tar_v7tar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc.c
similarity index 91%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc.c
index 60d1898..3a4c2da 100644
--- a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc.c
+++ b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc.c
@@ -26,6 +26,19 @@
#include "test.h"
__FBSDID("$FreeBSD$");
+static void test_read(struct archive *a, char *buff, size_t used, char *filedata)
+{
+ struct archive_entry *ae;
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_none(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualIntA(a, 9, archive_read_data(a, filedata, 10));
+ assertEqualMem(filedata, "12345678", 9);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
+
DEFINE_TEST(test_write_format_warc)
{
char filedata[64];
@@ -62,14 +75,15 @@ DEFINE_TEST(test_write_format_warc)
*/
assert((a = archive_read_new()) != NULL);
assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_warc(a));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_none(a));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_open_memory(a, buff, used));
+ test_read(a, buff, used, filedata);
- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualIntA(a, 9, archive_read_data(a, filedata, 10));
- assertEqualMem(filedata, "12345678", 9);
- assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
- assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_by_code(a, ARCHIVE_FORMAT_WARC));
+ test_read(a, buff, used, filedata);
+
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_set_format(a, ARCHIVE_FORMAT_WARC));
+ test_read(a, buff, used, filedata);
/* Create a new archive */
assert((a = archive_write_new()) != NULL);
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc_empty.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_warc_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_warc_empty.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_xar.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_xar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_xar.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_xar.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_xar_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_xar_empty.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_xar_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_xar_empty.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_compression_store.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_compression_store.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_compression_store.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_compression_store.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_empty.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_empty.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_empty.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_empty.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_empty_zip64.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_empty_zip64.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_empty_zip64.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_empty_zip64.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_file.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_file.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_file.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_file.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_file_zip64.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_file_zip64.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_file_zip64.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_file_zip64.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_large.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_large.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_large.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_large.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_zip64.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_zip64.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_format_zip_zip64.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_format_zip_zip64.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_open_memory.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_open_memory.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_open_memory.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_open_memory.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_write_read_format_zip.c b/dependencies/libarchive-3.5.2/libarchive/test/test_write_read_format_zip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_write_read_format_zip.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_write_read_format_zip.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_xattr_platform.c b/dependencies/libarchive-3.5.2/libarchive/test/test_xattr_platform.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_xattr_platform.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_xattr_platform.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/test/test_zip_filename_encoding.c b/dependencies/libarchive-3.5.2/libarchive/test/test_zip_filename_encoding.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive/test/test_zip_filename_encoding.c
rename to dependencies/libarchive-3.5.2/libarchive/test/test_zip_filename_encoding.c
diff --git a/dependencies/libarchive-3.4.2/libarchive/xxhash.c b/dependencies/libarchive-3.5.2/libarchive/xxhash.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/libarchive/xxhash.c
rename to dependencies/libarchive-3.5.2/libarchive/xxhash.c
index 70750ba..f96e9d9 100644
--- a/dependencies/libarchive-3.4.2/libarchive/xxhash.c
+++ b/dependencies/libarchive-3.5.2/libarchive/xxhash.c
@@ -150,7 +150,11 @@ typedef struct _U32_S { U32 v; } _PACKED U32_S;
#if GCC_VERSION >= 409
__attribute__((__no_sanitize_undefined__))
#endif
-static inline U32 A32(const void * x)
+#if defined(_MSC_VER)
+static __inline U32 A32(const void * x)
+#else
+static inline U32 A32(const void* x)
+#endif
{
return (((const U32_S *)(x))->v);
}
diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/err.c b/dependencies/libarchive-3.5.2/libarchive_fe/err.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive_fe/err.c
rename to dependencies/libarchive-3.5.2/libarchive_fe/err.c
diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/err.h b/dependencies/libarchive-3.5.2/libarchive_fe/err.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive_fe/err.h
rename to dependencies/libarchive-3.5.2/libarchive_fe/err.h
diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/lafe_platform.h b/dependencies/libarchive-3.5.2/libarchive_fe/lafe_platform.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive_fe/lafe_platform.h
rename to dependencies/libarchive-3.5.2/libarchive_fe/lafe_platform.h
diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/line_reader.c b/dependencies/libarchive-3.5.2/libarchive_fe/line_reader.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive_fe/line_reader.c
rename to dependencies/libarchive-3.5.2/libarchive_fe/line_reader.c
diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/line_reader.h b/dependencies/libarchive-3.5.2/libarchive_fe/line_reader.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive_fe/line_reader.h
rename to dependencies/libarchive-3.5.2/libarchive_fe/line_reader.h
diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/passphrase.c b/dependencies/libarchive-3.5.2/libarchive_fe/passphrase.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive_fe/passphrase.c
rename to dependencies/libarchive-3.5.2/libarchive_fe/passphrase.c
diff --git a/dependencies/libarchive-3.4.2/libarchive_fe/passphrase.h b/dependencies/libarchive-3.5.2/libarchive_fe/passphrase.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/libarchive_fe/passphrase.h
rename to dependencies/libarchive-3.5.2/libarchive_fe/passphrase.h
diff --git a/dependencies/libarchive-3.4.2/tar/CMakeLists.txt b/dependencies/libarchive-3.5.2/tar/CMakeLists.txt
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/CMakeLists.txt
rename to dependencies/libarchive-3.5.2/tar/CMakeLists.txt
diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar.1 b/dependencies/libarchive-3.5.2/tar/bsdtar.1
similarity index 99%
rename from dependencies/libarchive-3.4.2/tar/bsdtar.1
rename to dependencies/libarchive-3.5.2/tar/bsdtar.1
index f157423..86a06bb 100644
--- a/dependencies/libarchive-3.4.2/tar/bsdtar.1
+++ b/dependencies/libarchive-3.5.2/tar/bsdtar.1
@@ -631,7 +631,8 @@ A decimal integer from 4 to 7 specifying the lz4 compression block size
Use the previous block of the block being compressed for
a compression dictionary to improve compression ratio.
.It Cm zstd:compression-level
-A decimal integer from 1 to 22 specifying the zstd compression level.
+A decimal integer specifying the zstd compression level. Supported values depend
+on the library version, common values are from 1 to 22.
.It Cm lzop:compression-level
A decimal integer from 1 to 9 specifying the lzop compression level.
.It Cm xz:compression-level
diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar.c b/dependencies/libarchive-3.5.2/tar/bsdtar.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/bsdtar.c
rename to dependencies/libarchive-3.5.2/tar/bsdtar.c
diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar.h b/dependencies/libarchive-3.5.2/tar/bsdtar.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/bsdtar.h
rename to dependencies/libarchive-3.5.2/tar/bsdtar.h
diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar_platform.h b/dependencies/libarchive-3.5.2/tar/bsdtar_platform.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/bsdtar_platform.h
rename to dependencies/libarchive-3.5.2/tar/bsdtar_platform.h
diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar_windows.c b/dependencies/libarchive-3.5.2/tar/bsdtar_windows.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/bsdtar_windows.c
rename to dependencies/libarchive-3.5.2/tar/bsdtar_windows.c
diff --git a/dependencies/libarchive-3.4.2/tar/bsdtar_windows.h b/dependencies/libarchive-3.5.2/tar/bsdtar_windows.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/bsdtar_windows.h
rename to dependencies/libarchive-3.5.2/tar/bsdtar_windows.h
diff --git a/dependencies/libarchive-3.4.2/tar/cmdline.c b/dependencies/libarchive-3.5.2/tar/cmdline.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/cmdline.c
rename to dependencies/libarchive-3.5.2/tar/cmdline.c
diff --git a/dependencies/libarchive-3.4.2/tar/config_freebsd.h b/dependencies/libarchive-3.5.2/tar/config_freebsd.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/config_freebsd.h
rename to dependencies/libarchive-3.5.2/tar/config_freebsd.h
diff --git a/dependencies/libarchive-3.4.2/tar/creation_set.c b/dependencies/libarchive-3.5.2/tar/creation_set.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/creation_set.c
rename to dependencies/libarchive-3.5.2/tar/creation_set.c
diff --git a/dependencies/libarchive-3.4.2/tar/read.c b/dependencies/libarchive-3.5.2/tar/read.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/read.c
rename to dependencies/libarchive-3.5.2/tar/read.c
diff --git a/dependencies/libarchive-3.4.2/tar/subst.c b/dependencies/libarchive-3.5.2/tar/subst.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/subst.c
rename to dependencies/libarchive-3.5.2/tar/subst.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/CMakeLists.txt b/dependencies/libarchive-3.5.2/tar/test/CMakeLists.txt
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/CMakeLists.txt
rename to dependencies/libarchive-3.5.2/tar/test/CMakeLists.txt
diff --git a/dependencies/libarchive-3.4.2/tar/test/list.h b/dependencies/libarchive-3.5.2/tar/test/list.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/list.h
rename to dependencies/libarchive-3.5.2/tar/test/list.h
index 01e6721..379b8a3 100644
--- a/dependencies/libarchive-3.4.2/tar/test/list.h
+++ b/dependencies/libarchive-3.5.2/tar/test/list.h
@@ -2,42 +2,38 @@ DEFINE_TEST(test_0)
DEFINE_TEST(test_basic)
DEFINE_TEST(test_copy)
DEFINE_TEST(test_empty_mtree)
-DEFINE_TEST(test_extract_tar_Z)
DEFINE_TEST(test_extract_tar_bz2)
DEFINE_TEST(test_extract_tar_grz)
DEFINE_TEST(test_extract_tar_gz)
DEFINE_TEST(test_extract_tar_lrz)
-DEFINE_TEST(test_extract_tar_lz)
DEFINE_TEST(test_extract_tar_lz4)
+DEFINE_TEST(test_extract_tar_lz)
DEFINE_TEST(test_extract_tar_lzma)
DEFINE_TEST(test_extract_tar_lzo)
DEFINE_TEST(test_extract_tar_xz)
+DEFINE_TEST(test_extract_tar_Z)
DEFINE_TEST(test_extract_tar_zstd)
DEFINE_TEST(test_format_newc)
DEFINE_TEST(test_help)
DEFINE_TEST(test_leading_slash)
DEFINE_TEST(test_missing_file)
-DEFINE_TEST(test_option_C_mtree)
-DEFINE_TEST(test_option_C_upper)
-DEFINE_TEST(test_option_H_upper)
-DEFINE_TEST(test_option_L_upper)
-DEFINE_TEST(test_option_O_upper)
-DEFINE_TEST(test_option_T_upper)
-DEFINE_TEST(test_option_U_upper)
-DEFINE_TEST(test_option_X_upper)
DEFINE_TEST(test_option_a)
DEFINE_TEST(test_option_acls)
-DEFINE_TEST(test_option_b)
DEFINE_TEST(test_option_b64encode)
+DEFINE_TEST(test_option_b)
+DEFINE_TEST(test_option_C_mtree)
+DEFINE_TEST(test_option_C_upper)
DEFINE_TEST(test_option_exclude)
DEFINE_TEST(test_option_exclude_vcs)
DEFINE_TEST(test_option_fflags)
DEFINE_TEST(test_option_gid_gname)
DEFINE_TEST(test_option_grzip)
+DEFINE_TEST(test_option_H_upper)
DEFINE_TEST(test_option_j)
DEFINE_TEST(test_option_k)
DEFINE_TEST(test_option_keep_newer_files)
DEFINE_TEST(test_option_lrzip)
+DEFINE_TEST(test_option_L_upper)
DEFINE_TEST(test_option_lz4)
DEFINE_TEST(test_option_lzma)
DEFINE_TEST(test_option_lzop)
@@ -45,14 +41,18 @@ DEFINE_TEST(test_option_n)
DEFINE_TEST(test_option_newer_than)
DEFINE_TEST(test_option_nodump)
DEFINE_TEST(test_option_older_than)
+DEFINE_TEST(test_option_O_upper)
DEFINE_TEST(test_option_passphrase)
DEFINE_TEST(test_option_q)
DEFINE_TEST(test_option_r)
-DEFINE_TEST(test_option_s)
DEFINE_TEST(test_option_safe_writes)
+DEFINE_TEST(test_option_s)
+DEFINE_TEST(test_option_T_upper)
DEFINE_TEST(test_option_uid_uname)
DEFINE_TEST(test_option_uuencode)
+DEFINE_TEST(test_option_U_upper)
DEFINE_TEST(test_option_xattrs)
+DEFINE_TEST(test_option_X_upper)
DEFINE_TEST(test_option_xz)
DEFINE_TEST(test_option_z)
DEFINE_TEST(test_option_zstd)
diff --git a/dependencies/libarchive-3.4.2/tar/test/test.h b/dependencies/libarchive-3.5.2/tar/test/test.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test.h
rename to dependencies/libarchive-3.5.2/tar/test/test.h
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_0.c b/dependencies/libarchive-3.5.2/tar/test/test_0.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_0.c
rename to dependencies/libarchive-3.5.2/tar/test/test_0.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_basic.c b/dependencies/libarchive-3.5.2/tar/test/test_basic.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_basic.c
rename to dependencies/libarchive-3.5.2/tar/test/test_basic.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_copy.c b/dependencies/libarchive-3.5.2/tar/test/test_copy.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_copy.c
rename to dependencies/libarchive-3.5.2/tar/test/test_copy.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_empty_mtree.c b/dependencies/libarchive-3.5.2/tar/test/test_empty_mtree.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_empty_mtree.c
rename to dependencies/libarchive-3.5.2/tar/test/test_empty_mtree.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.Z.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.Z.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.bz2.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.bz2.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.bz2.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.bz2.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.grz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.grz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.grz.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.grz.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.gz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.gz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.gz.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.gz.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lrz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lrz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lrz.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lrz.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lz.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lz.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lz4.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lz4.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lz4.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lz4.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lzma.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lzma.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lzma.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lzma.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lzo.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lzo.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.lzo.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.lzo.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.xz.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.xz.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.xz.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.xz.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract.tar.zst.uu b/dependencies/libarchive-3.5.2/tar/test/test_extract.tar.zst.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract.tar.zst.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_extract.tar.zst.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_Z.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_Z.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_Z.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_Z.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_bz2.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_bz2.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_bz2.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_bz2.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_grz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_grz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_grz.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_grz.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_gz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_gz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_gz.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_gz.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lrz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lrz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lrz.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lrz.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lz.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lz.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lz4.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lz4.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lz4.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lz4.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lzma.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lzma.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lzma.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lzma.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lzo.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lzo.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_lzo.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_lzo.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_xz.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_xz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_xz.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_xz.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_extract_tar_zstd.c b/dependencies/libarchive-3.5.2/tar/test/test_extract_tar_zstd.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_extract_tar_zstd.c
rename to dependencies/libarchive-3.5.2/tar/test/test_extract_tar_zstd.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_format_newc.c b/dependencies/libarchive-3.5.2/tar/test/test_format_newc.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_format_newc.c
rename to dependencies/libarchive-3.5.2/tar/test/test_format_newc.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_help.c b/dependencies/libarchive-3.5.2/tar/test/test_help.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_help.c
rename to dependencies/libarchive-3.5.2/tar/test/test_help.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_leading_slash.c b/dependencies/libarchive-3.5.2/tar/test/test_leading_slash.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_leading_slash.c
rename to dependencies/libarchive-3.5.2/tar/test/test_leading_slash.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_leading_slash.tar.uu b/dependencies/libarchive-3.5.2/tar/test/test_leading_slash.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_leading_slash.tar.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_leading_slash.tar.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_missing_file.c b/dependencies/libarchive-3.5.2/tar/test/test_missing_file.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_missing_file.c
rename to dependencies/libarchive-3.5.2/tar/test/test_missing_file.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_C_mtree.c b/dependencies/libarchive-3.5.2/tar/test/test_option_C_mtree.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_C_mtree.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_C_mtree.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_C_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_C_upper.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_C_upper.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_C_upper.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_H_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_H_upper.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_H_upper.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_H_upper.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_L_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_L_upper.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_L_upper.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_L_upper.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_O_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_O_upper.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_O_upper.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_O_upper.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_T_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_T_upper.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_T_upper.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_T_upper.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_U_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_U_upper.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_U_upper.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_U_upper.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_X_upper.c b/dependencies/libarchive-3.5.2/tar/test/test_option_X_upper.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_X_upper.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_X_upper.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_a.c b/dependencies/libarchive-3.5.2/tar/test/test_option_a.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_a.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_a.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_acls.c b/dependencies/libarchive-3.5.2/tar/test/test_option_acls.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_acls.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_acls.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_b.c b/dependencies/libarchive-3.5.2/tar/test/test_option_b.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_b.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_b.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_b64encode.c b/dependencies/libarchive-3.5.2/tar/test/test_option_b64encode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_b64encode.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_b64encode.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_exclude.c b/dependencies/libarchive-3.5.2/tar/test/test_option_exclude.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_exclude.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_exclude.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_exclude_vcs.c b/dependencies/libarchive-3.5.2/tar/test/test_option_exclude_vcs.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_exclude_vcs.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_exclude_vcs.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_fflags.c b/dependencies/libarchive-3.5.2/tar/test/test_option_fflags.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_fflags.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_fflags.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_gid_gname.c b/dependencies/libarchive-3.5.2/tar/test/test_option_gid_gname.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_gid_gname.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_gid_gname.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_grzip.c b/dependencies/libarchive-3.5.2/tar/test/test_option_grzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_grzip.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_grzip.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_j.c b/dependencies/libarchive-3.5.2/tar/test/test_option_j.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_j.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_j.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_k.c b/dependencies/libarchive-3.5.2/tar/test/test_option_k.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_k.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_k.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_keep_newer_files.c b/dependencies/libarchive-3.5.2/tar/test/test_option_keep_newer_files.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_keep_newer_files.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_keep_newer_files.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_keep_newer_files.tar.Z.uu b/dependencies/libarchive-3.5.2/tar/test/test_option_keep_newer_files.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_keep_newer_files.tar.Z.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_option_keep_newer_files.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_lrzip.c b/dependencies/libarchive-3.5.2/tar/test/test_option_lrzip.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_lrzip.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_lrzip.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_lz4.c b/dependencies/libarchive-3.5.2/tar/test/test_option_lz4.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_lz4.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_lz4.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_lzma.c b/dependencies/libarchive-3.5.2/tar/test/test_option_lzma.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_lzma.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_lzma.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_lzop.c b/dependencies/libarchive-3.5.2/tar/test/test_option_lzop.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_lzop.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_lzop.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_n.c b/dependencies/libarchive-3.5.2/tar/test/test_option_n.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_n.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_n.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_newer_than.c b/dependencies/libarchive-3.5.2/tar/test/test_option_newer_than.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_newer_than.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_newer_than.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_nodump.c b/dependencies/libarchive-3.5.2/tar/test/test_option_nodump.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_nodump.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_nodump.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_older_than.c b/dependencies/libarchive-3.5.2/tar/test/test_option_older_than.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_older_than.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_older_than.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_passphrase.c b/dependencies/libarchive-3.5.2/tar/test/test_option_passphrase.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_passphrase.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_passphrase.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_passphrase.zip.uu b/dependencies/libarchive-3.5.2/tar/test/test_option_passphrase.zip.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_passphrase.zip.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_option_passphrase.zip.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_q.c b/dependencies/libarchive-3.5.2/tar/test/test_option_q.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_q.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_q.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_r.c b/dependencies/libarchive-3.5.2/tar/test/test_option_r.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_r.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_r.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_s.c b/dependencies/libarchive-3.5.2/tar/test/test_option_s.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_s.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_s.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_s.tar.Z.uu b/dependencies/libarchive-3.5.2/tar/test/test_option_s.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_s.tar.Z.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_option_s.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_safe_writes.c b/dependencies/libarchive-3.5.2/tar/test/test_option_safe_writes.c
similarity index 98%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_safe_writes.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_safe_writes.c
index 8edf5c6..7b42e8f 100644
--- a/dependencies/libarchive-3.4.2/tar/test/test_option_safe_writes.c
+++ b/dependencies/libarchive-3.5.2/tar/test/test_option_safe_writes.c
@@ -58,7 +58,7 @@ DEFINE_TEST(test_option_safe_writes)
}
assertEqualInt(0, chdir(".."));
- /* Extract created archive withe safe writes */
+ /* Extract created archive with safe writes */
assertEqualInt(0,
systemf("%s -x -C out --safe-writes -f t.tar "
">unpack.out 2>unpack.err", testprog));
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_uid_uname.c b/dependencies/libarchive-3.5.2/tar/test/test_option_uid_uname.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_uid_uname.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_uid_uname.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_uuencode.c b/dependencies/libarchive-3.5.2/tar/test/test_option_uuencode.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_uuencode.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_uuencode.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_xattrs.c b/dependencies/libarchive-3.5.2/tar/test/test_option_xattrs.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_xattrs.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_xattrs.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_xz.c b/dependencies/libarchive-3.5.2/tar/test/test_option_xz.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_xz.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_xz.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_z.c b/dependencies/libarchive-3.5.2/tar/test/test_option_z.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_z.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_z.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_option_zstd.c b/dependencies/libarchive-3.5.2/tar/test/test_option_zstd.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_option_zstd.c
rename to dependencies/libarchive-3.5.2/tar/test/test_option_zstd.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_patterns.c b/dependencies/libarchive-3.5.2/tar/test/test_patterns.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_patterns.c
rename to dependencies/libarchive-3.5.2/tar/test/test_patterns.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_patterns_2.tar.uu b/dependencies/libarchive-3.5.2/tar/test/test_patterns_2.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_patterns_2.tar.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_patterns_2.tar.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_patterns_3.tar.uu b/dependencies/libarchive-3.5.2/tar/test/test_patterns_3.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_patterns_3.tar.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_patterns_3.tar.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_patterns_4.tar.uu b/dependencies/libarchive-3.5.2/tar/test/test_patterns_4.tar.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_patterns_4.tar.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_patterns_4.tar.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_print_longpath.c b/dependencies/libarchive-3.5.2/tar/test/test_print_longpath.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_print_longpath.c
rename to dependencies/libarchive-3.5.2/tar/test/test_print_longpath.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_print_longpath.tar.Z.uu b/dependencies/libarchive-3.5.2/tar/test/test_print_longpath.tar.Z.uu
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_print_longpath.tar.Z.uu
rename to dependencies/libarchive-3.5.2/tar/test/test_print_longpath.tar.Z.uu
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_stdio.c b/dependencies/libarchive-3.5.2/tar/test/test_stdio.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_stdio.c
rename to dependencies/libarchive-3.5.2/tar/test/test_stdio.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_strip_components.c b/dependencies/libarchive-3.5.2/tar/test/test_strip_components.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_strip_components.c
rename to dependencies/libarchive-3.5.2/tar/test/test_strip_components.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_symlink_dir.c b/dependencies/libarchive-3.5.2/tar/test/test_symlink_dir.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_symlink_dir.c
rename to dependencies/libarchive-3.5.2/tar/test/test_symlink_dir.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_version.c b/dependencies/libarchive-3.5.2/tar/test/test_version.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_version.c
rename to dependencies/libarchive-3.5.2/tar/test/test_version.c
diff --git a/dependencies/libarchive-3.4.2/tar/test/test_windows.c b/dependencies/libarchive-3.5.2/tar/test/test_windows.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/test/test_windows.c
rename to dependencies/libarchive-3.5.2/tar/test/test_windows.c
diff --git a/dependencies/libarchive-3.4.2/tar/util.c b/dependencies/libarchive-3.5.2/tar/util.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/util.c
rename to dependencies/libarchive-3.5.2/tar/util.c
diff --git a/dependencies/libarchive-3.4.2/tar/write.c b/dependencies/libarchive-3.5.2/tar/write.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/tar/write.c
rename to dependencies/libarchive-3.5.2/tar/write.c
diff --git a/dependencies/libarchive-3.4.2/test_utils/test_common.h b/dependencies/libarchive-3.5.2/test_utils/test_common.h
similarity index 98%
rename from dependencies/libarchive-3.4.2/test_utils/test_common.h
rename to dependencies/libarchive-3.5.2/test_utils/test_common.h
index 80d54f0..42119c0 100644
--- a/dependencies/libarchive-3.4.2/test_utils/test_common.h
+++ b/dependencies/libarchive-3.5.2/test_utils/test_common.h
@@ -169,6 +169,9 @@
/* chdir() and error if it fails */
#define assertChdir(path) \
assertion_chdir(__FILE__, __LINE__, path)
+/* change file/directory permissions and errors if it fails */
+#define assertChmod(pathname, mode) \
+ assertion_chmod(__FILE__, __LINE__, pathname, mode)
/* Assert two files have the same file flags */
#define assertEqualFflags(patha, pathb) \
assertion_compare_fflags(__FILE__, __LINE__, patha, pathb, 0)
@@ -282,6 +285,7 @@
void failure(const char *fmt, ...) __LA_PRINTFLIKE(1, 2);
int assertion_assert(const char *, int, int, const char *, void *);
int assertion_chdir(const char *, int, const char *);
+int assertion_chmod(const char *, int, const char *, int);
int assertion_compare_fflags(const char *, int, const char *, const char *,
int);
int assertion_empty_file(const char *, int, const char *);
diff --git a/dependencies/libarchive-3.4.2/test_utils/test_main.c b/dependencies/libarchive-3.5.2/test_utils/test_main.c
similarity index 99%
rename from dependencies/libarchive-3.4.2/test_utils/test_main.c
rename to dependencies/libarchive-3.5.2/test_utils/test_main.c
index 7b8aa70..c1c03cd 100644
--- a/dependencies/libarchive-3.4.2/test_utils/test_main.c
+++ b/dependencies/libarchive-3.5.2/test_utils/test_main.c
@@ -475,7 +475,7 @@ static struct line {
int count;
int skip;
} failed_lines[10000];
-const char *failed_filename;
+static const char *failed_filename;
/* Count this failure, setup up log destination and handle initial report. */
static void __LA_PRINTFLIKE(3, 4)
@@ -597,6 +597,19 @@ assertion_chdir(const char *file, int line, const char *pathname)
}
+/* change file/directory permissions and errors if it fails */
+int
+assertion_chmod(const char *file, int line, const char *pathname, int mode)
+{
+ assertion_count(file, line);
+ if (chmod(pathname, mode) == 0)
+ return (1);
+ failure_start(file, line, "chmod(\"%s\", %4.o)", pathname, mode);
+ failure_finish(NULL);
+ return (0);
+
+}
+
/* Verify two integers are equal. */
int
assertion_equal_int(const char *file, int line,
@@ -3458,7 +3471,7 @@ assertion_entry_compare_acls(const char *file, int line,
/* Use "list.h" to create a list of all tests (functions and names). */
#undef DEFINE_TEST
#define DEFINE_TEST(n) { n, #n, 0 },
-struct test_list_t tests[] = {
+static struct test_list_t tests[] = {
#include "list.h"
};
@@ -3667,7 +3680,7 @@ get_refdir(const char *d)
}
/* Get the current dir. */
-#ifdef PATH_MAX
+#if defined(PATH_MAX) && !defined(__GLIBC__)
pwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */
#else
pwd = getcwd(NULL, 0);
@@ -3762,7 +3775,7 @@ main(int argc, char **argv)
(void)argc; /* UNUSED */
/* Get the current dir. */
-#ifdef PATH_MAX
+#if defined(PATH_MAX) && !defined(__GLIBC__)
pwd = getcwd(NULL, PATH_MAX);/* Solaris getcwd needs the size. */
#else
pwd = getcwd(NULL, 0);
diff --git a/dependencies/libarchive-3.4.2/test_utils/test_utils.c b/dependencies/libarchive-3.5.2/test_utils/test_utils.c
similarity index 100%
rename from dependencies/libarchive-3.4.2/test_utils/test_utils.c
rename to dependencies/libarchive-3.5.2/test_utils/test_utils.c
diff --git a/dependencies/libarchive-3.4.2/test_utils/test_utils.h b/dependencies/libarchive-3.5.2/test_utils/test_utils.h
similarity index 100%
rename from dependencies/libarchive-3.4.2/test_utils/test_utils.h
rename to dependencies/libarchive-3.5.2/test_utils/test_utils.h
diff --git a/dependencies/zstd-1.5.0/.buckconfig b/dependencies/zstd-1.5.0/.buckconfig
new file mode 100644
index 0000000..483f605
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.buckconfig
@@ -0,0 +1,9 @@
+[cxx]
+ cppflags = -DXXH_NAMESPACE=ZSTD_ -DZSTD_LEGACY_SUPPORT=4
+ cflags = -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow -Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement -Wstrict-prototypes -Wundef -Wpointer-arith
+ cxxppflags = -DXXH_NAMESPACE=ZSTD_ -DZSTD_LEGACY_SUPPORT=4
+ cxxflags = -std=c++11 -Wno-deprecated-declarations
+ gtest_dep = //contrib/pzstd:gtest
+
+[httpserver]
+ port = 0
diff --git a/dependencies/zstd-1.5.0/.buckversion b/dependencies/zstd-1.5.0/.buckversion
new file mode 100644
index 0000000..892fad9
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.buckversion
@@ -0,0 +1 @@
+c8dec2e8da52d483f6dd7c6cd2ad694e8e6fed2b
diff --git a/dependencies/zstd-1.5.0/.circleci/config.yml b/dependencies/zstd-1.5.0/.circleci/config.yml
new file mode 100644
index 0000000..c634737
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.circleci/config.yml
@@ -0,0 +1,143 @@
+version: 2
+
+jobs:
+ # the first half of the jobs are in this test
+ short-tests-0:
+ # TODO: Create a small custom docker image with all the dependencies we need
+ # preinstalled to reduce installation time.
+ docker:
+ - image: fbopensource/zstd-circleci-primary:0.0.1
+ steps:
+ - checkout
+ - run:
+ name: Test
+ command: |
+ ./tests/test-license.py
+ cc -v; CFLAGS="-O0 -Werror -pedantic" make all && make clean
+ make c99build ; make clean
+ make c11build ; make clean
+ make aarch64build ; make clean
+ make -j regressiontest; make clean
+ make shortest ; make clean
+ make cxxtest ; make clean
+ # the second half of the jobs are in this test
+ short-tests-1:
+ docker:
+ - image: fbopensource/zstd-circleci-primary:0.0.1
+ steps:
+ - checkout
+ - run:
+ name: Test
+ command: |
+ make gnu90build; make clean
+ make gnu99build; make clean
+ make ppc64build V=1; make clean
+ make ppcbuild V=1; make clean
+ make armbuild V=1; make clean
+ make -C tests test-legacy test-longmatch; make clean
+ make -C lib libzstd-nomt; make clean
+ # This step should only be run in a cron job
+ regression-test:
+ docker:
+ - image: fbopensource/zstd-circleci-primary:0.0.1
+ environment:
+ CIRCLE_ARTIFACTS: /tmp/circleci-artifacts
+ steps:
+ - checkout
+ # Restore the cached resources.
+ - restore_cache:
+ # We try our best to bust the cache when the data changes by hashing
+ # data.c. If that doesn't work, simply update the version number here
+ # and below. If we fail to bust the cache, the regression testing will
+ # still work, since it has its own stamp, but will need to redownload
+ # everything.
+ keys:
+ - regression-cache-{{ checksum "tests/regression/data.c" }}-v0
+ - run:
+ name: Regression Test
+ command: |
+ make -C programs zstd
+ make -C tests/regression test
+ mkdir -p $CIRCLE_ARTIFACTS
+ ./tests/regression/test \
+ --cache tests/regression/cache \
+ --output $CIRCLE_ARTIFACTS/results.csv \
+ --zstd programs/zstd
+ echo "NOTE: The new results.csv is uploaded as an artifact to this job"
+ echo " If this fails, go to the Artifacts pane in CircleCI, "
+ echo " download /tmp/circleci-artifacts/results.csv, and if they "
+ echo " are still good, copy it into the repo and commit it."
+ echo "> diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv"
+ diff tests/regression/results.csv $CIRCLE_ARTIFACTS/results.csv
+ # Only save the cache on success (default), since if the failure happened
+ # before we stamp the data cache, we will have a bad cache for this key.
+ - save_cache:
+ key: regression-cache-{{ checksum "tests/regression/data.c" }}-v0
+ paths:
+ - tests/regression/cache
+ - store_artifacts:
+ path: /tmp/circleci-artifacts
+
+
+workflows:
+ version: 2
+ commit:
+ jobs:
+ # Run the tests in parallel
+ - short-tests-0:
+ filters:
+ tags:
+ only: /.*/
+ - short-tests-1:
+ filters:
+ tags:
+ only: /.*/
+ # Create a branch called regression and set it to dev to force a
+ # regression test run
+ - regression-test:
+ filters:
+ branches:
+ only:
+ - regression
+ # Only run on release tags.
+ - publish-github-release:
+ requires:
+ - short-tests-0
+ - short-tests-1
+ filters:
+ branches:
+ ignore: /.*/
+ tags:
+ only: /^v\d+\.\d+\.\d+$/
+ nightly:
+ triggers:
+ - schedule:
+ cron: "0 0 * * *"
+ filters:
+ branches:
+ only:
+ - release
+ - dev
+ - master
+ jobs:
+ # Run daily long regression tests
+ - regression-test
+
+
+
+ # Longer tests
+ #- make -C tests test-zstd-nolegacy && make clean
+ #- pyenv global 3.4.4; make -C tests versionsTest && make clean
+ #- make zlibwrapper && make clean
+ #- gcc -v; make -C tests test32 MOREFLAGS="-I/usr/include/x86_64-linux-gnu" && make clean
+ #- make uasan && make clean
+ #- make asan32 && make clean
+ #- make -C tests test32 CC=clang MOREFLAGS="-g -fsanitize=address -I/usr/include/x86_64-linux-gnu"
+ # Valgrind tests
+ #- CFLAGS="-O1 -g" make -C zlibWrapper valgrindTest && make clean
+ #- make -C tests valgrindTest && make clean
+ # ARM, AArch64, PowerPC, PowerPC64 tests
+ #- make ppctest && make clean
+ #- make ppc64test && make clean
+ #- make armtest && make clean
+ #- make aarch64test && make clean
diff --git a/dependencies/zstd-1.5.0/.circleci/images/primary/Dockerfile b/dependencies/zstd-1.5.0/.circleci/images/primary/Dockerfile
new file mode 100644
index 0000000..dd80041
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.circleci/images/primary/Dockerfile
@@ -0,0 +1,9 @@
+FROM circleci/buildpack-deps:bionic
+
+RUN sudo dpkg --add-architecture i386
+RUN sudo apt-get -y -qq update
+RUN sudo apt-get -y install \
+ gcc-multilib-powerpc-linux-gnu gcc-arm-linux-gnueabi \
+ libc6-dev-armel-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross \
+ libc6-dev-ppc64-powerpc-cross zstd gzip coreutils \
+ libcurl4-openssl-dev
diff --git a/dependencies/zstd-1.5.0/.cirrus.yml b/dependencies/zstd-1.5.0/.cirrus.yml
new file mode 100644
index 0000000..fe17aac
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.cirrus.yml
@@ -0,0 +1,11 @@
+task:
+ name: FreeBSD (shortest)
+ freebsd_instance:
+ matrix:
+ image_family: freebsd-12-2
+ # The stable 11.3 image causes "Agent is not responding" so use a snapshot
+ image_family: freebsd-11-3-snap
+ install_script: pkg install -y gmake coreutils
+ script: |
+ MOREFLAGS="-Werror" gmake -j all
+ gmake shortest
diff --git a/dependencies/zstd-1.5.0/.gitattributes b/dependencies/zstd-1.5.0/.gitattributes
new file mode 100644
index 0000000..6212bd4
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.gitattributes
@@ -0,0 +1,21 @@
+# Set the default behavior
+* text eol=lf
+
+# Explicitly declare source files
+*.c text eol=lf
+*.h text eol=lf
+
+# Denote files that should not be modified.
+*.odt binary
+*.png binary
+
+# Visual Studio
+*.sln text eol=crlf
+*.vcxproj* text eol=crlf
+*.vcproj* text eol=crlf
+*.suo binary
+*.rc text eol=crlf
+
+# Windows
+*.bat text eol=crlf
+*.cmd text eol=crlf
diff --git a/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/bug_report.md b/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..bacdac2
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,35 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Downloads data '...'
+2. Run '...' with flags '...'
+3. Scroll up on the log to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots and charts**
+If applicable, add screenshots and charts to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. Mac]
+ - Version [e.g. 22]
+ - Compiler [e.g gcc]
+ - Flags [e.g O2]
+ - Other relevant hardware specs [e.g. Dual-core]
+ - Build system [e.g. Makefile]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/feature_request.md b/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..bbcbbe7
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/dependencies/zstd-1.5.0/.github/workflows/generic-dev.yml b/dependencies/zstd-1.5.0/.github/workflows/generic-dev.yml
new file mode 100644
index 0000000..ae4ee7e
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.github/workflows/generic-dev.yml
@@ -0,0 +1,225 @@
+name: generic-dev
+
+on:
+ pull_request:
+ branches: [ dev, release, actionsTest ]
+
+jobs:
+
+# Dev PR jobs that still have to be migrated from travis
+#
+# versionTag (only on release tags)
+# valgrindTest (keeps failing for some reason. need investigation)
+# staticAnalyze (need trusty so need self-hosted)
+# pcc-fuzz: (need trusty so need self-hosted)
+# min-decomp-macros (flakey)
+#
+# setting up self-hosted is pretty straightforward, but
+# I need admins permissions to the repo for that it looks like
+# So I'm tabling that for now
+#
+# The release branch exclusive jobs will be in a separate
+# workflow file (the osx tests and meson build that is)
+
+ benchmarking:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: make benchmarking
+ run: make benchmarking
+
+ test:
+ runs-on: ubuntu-latest
+ env:
+ DEVNULLRIGHTS: 1
+ READFROMBLOCKDEVICE: 1
+ steps:
+ - uses: actions/checkout@v2
+ - name: make test
+ run: make test
+
+ check-32bit: # designed to catch https://github.com/facebook/zstd/issues/2428
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: make check on 32-bit
+ run: |
+ sudo apt update
+ APT_PACKAGES="gcc-multilib" make apt-install
+ CFLAGS="-m32 -O1 -fstack-protector" make check V=1
+
+ gcc-7-libzstd:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: gcc-7 + libzstdmt compilation
+ run: |
+ make gcc7install
+ CC=gcc-7 CFLAGS=-Werror make -j all
+ make clean
+ LDFLAGS=-Wl,--no-undefined make -C lib libzstd-mt
+
+ # candidate test (to check) : underlink test
+ # LDFLAGS=-Wl,--no-undefined : will make the linker fail if dll is underlinked
+
+ gcc-8-asan-ubsan-testzstd:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: gcc-8 + ASan + UBSan + Test Zstd
+ run: |
+ make gcc8install
+ CC=gcc-8 CFLAGS="-Werror" make -j all
+ make clean
+ CC=gcc-8 make -j uasan-test-zstd $ZSTD_VERSION.tar.zst.sha256
+ sha256sum $ZSTD_VERSION.tar.gz > $ZSTD_VERSION.tar.gz.sha256
+
+ # sign
+ if [ -n "$RELEASE_SIGNING_KEY" ]; then
+ export GPG_BATCH_OPTS="--batch --no-use-agent --pinentry-mode loopback --no-tty --yes"
+ echo "$RELEASE_SIGNING_KEY" | gpg $GPG_BATCH_OPTS --import
+ gpg $GPG_BATCH_OPTS --armor --sign --sign-with signing@zstd.net --detach-sig --passphrase "$RELEASE_SIGNING_KEY_PASSPHRASE" --output $ZSTD_VERSION.tar.zst.sig $ZSTD_VERSION.tar.zst
+ gpg $GPG_BATCH_OPTS --armor --sign --sign-with signing@zstd.net --detach-sig --passphrase "$RELEASE_SIGNING_KEY_PASSPHRASE" --output $ZSTD_VERSION.tar.gz.sig $ZSTD_VERSION.tar.gz
+ fi
+
+ - name: Publish
+ uses: skx/github-action-publish-binaries@release-1.3
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ args: artifacts/*
diff --git a/dependencies/zstd-1.5.0/.gitignore b/dependencies/zstd-1.5.0/.gitignore
new file mode 100644
index 0000000..ea574d7
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.gitignore
@@ -0,0 +1,54 @@
+# Object files
+*.o
+*.ko
+*.dSYM
+
+# Libraries
+*.lib
+*.a
+
+# Shared objects (inc. Windows DLLs)
+*.dll
+*.so
+*.so.*
+*.dylib
+
+# Executables
+/zstd
+zstdmt
+*.exe
+*.out
+*.app
+
+# Test artefacts
+tmp*
+*.zst
+*.zstd
+dictionary.
+dictionary
+NUL
+
+# Build artefacts
+projects/
+bin/
+.buckd/
+buck-out/
+build-*
+*.gcda
+
+# Other files
+.directory
+_codelite/
+_zstdbench/
+.clang_complete
+*.idea
+*.swp
+.DS_Store
+googletest/
+*.d
+*.vscode
+*.code-workspace
+compile_commands.json
+.clangd
+perf.data
+perf.data.old
diff --git a/dependencies/zstd-1.5.0/.travis.yml b/dependencies/zstd-1.5.0/.travis.yml
new file mode 100644
index 0000000..b0e7048
--- /dev/null
+++ b/dependencies/zstd-1.5.0/.travis.yml
@@ -0,0 +1,160 @@
+# Medium Tests: Run on all commits/PRs to dev branch
+
+language: c
+
+git:
+ depth: 1
+
+branches:
+ only:
+ - dev
+ - release
+ - master
+ - travisTest
+
+addons:
+ apt:
+ update: true
+
+env:
+ global:
+ - FUZZERTEST=-T2mn
+ ZSTREAM_TESTTIME=-T2mn
+ DECODECORPUS_TESTTIME=-T1mn
+
+
+matrix:
+ fast_finish: true
+ include:
+ - name: arm64 # ~2.5 mn
+ os: linux
+ arch: arm64
+ script:
+ - make check
+
+ - name: Minimal Decompressor Macros # ~5mn
+ script:
+ - make clean && make -j all ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
+ - make clean && make check ZSTD_LIB_MINIFY=1 MOREFLAGS="-Werror"
+ - make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
+ - make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X1 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT"
+ - make clean && make -j all MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
+ - make clean && make check MOREFLAGS="-Werror -DHUF_FORCE_DECOMPRESS_X2 -DZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG"
+ - make clean && make -j all MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
+ - make clean && make check MOREFLAGS="-Werror -DZSTD_NO_INLINE -DZSTD_STRIP_ERROR_STRINGS"
+
+ - name: static analyzer scanbuild # ~26mn
+ dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives
+ script:
+ - make staticAnalyze
+
+ - name: Valgrind + Fuzz Test Stack Mode # ~ 7mn
+ script:
+ - make valgrindinstall
+ - make -C tests clean valgrindTest
+ - make clean
+ - make -C tests test-fuzzer-stackmode
+
+ - name: Qemu ARM emulation + Fuzz Test # ~13.5mn
+ script:
+ - make arminstall
+ - make armfuzz
+
+ # Introduced to check compat with old toolchains, to prevent e.g. #1872
+ - name: ARM Build Test (on Trusty)
+ dist: trusty
+ script:
+ - make arminstall
+ - make armbuild
+
+ - name: Qemu PPC + Fuzz Test # ~13mn
+ dist: trusty # it seems ppc cross-compilation fails on "current"
+ script:
+ - make ppcinstall
+ - make ppcfuzz
+
+ # check release number (release only)
+ - name: Tag-Specific Test
+ if: tag =~ ^v[0-9]\.[0-9]
+ script:
+ - make -C tests checkTag
+ - tests/checkTag "$TRAVIS_BRANCH"
+
+ # tests for release branch and cron job only
+ - name: OS-X # ~13mn
+ if: branch = release
+ os: osx
+ script:
+ - make test
+ - make -C lib all
+
+ - name: Versions Compatibility Test # 11.5mn
+ if: branch = release
+ script:
+ - make -C tests versionsTest
+
+ - name: thread sanitizer # ~29mn
+ if: branch = release
+ script:
+ - make clang38install
+ - CC=clang-3.8 make tsan-test-zstream
+ - CC=clang-3.8 make tsan-fuzztest
+
+ - name: PPC64LE + Fuzz test # ~13mn
+ if: branch = release
+ arch: ppc64le
+ script:
+ - cat /proc/cpuinfo
+ - make test
+
+ - name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?)
+ dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial
+ if: branch = release
+ script:
+ - make ppcinstall
+ - make ppc64fuzz
+
+ # note : we already have aarch64 tests on hardware
+ - name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn
+ if: branch = release
+ dist: xenial
+ script:
+ - make arminstall
+ - make aarch64fuzz
+
+ # meson dedicated test
+ - name: Xenial (Meson + clang) # ~15mn
+ if: branch = release
+ dist: bionic
+ language: cpp
+ compiler: clang
+ install:
+ - sudo apt-get install -qq liblz4-dev valgrind tree
+ - |
+ travis_retry curl -o ~/ninja.zip -L 'https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip' &&
+ unzip ~/ninja.zip -d ~/.local/bin
+ - |
+ travis_retry curl -o ~/get-pip.py -L 'https://bootstrap.pypa.io/get-pip.py' &&
+ python3 ~/get-pip.py --user &&
+ pip3 install --user meson
+ script:
+ - |
+ meson setup \
+ --buildtype=debugoptimized \
+ -Db_lundef=false \
+ -Dauto_features=enabled \
+ -Dbin_programs=true \
+ -Dbin_tests=true \
+ -Dbin_contrib=true \
+ -Ddefault_library=both \
+ build/meson builddir
+ - pushd builddir
+ - ninja
+ - meson test --verbose --no-rebuild
+ - DESTDIR=./staging ninja install
+ - tree ./staging
+ after_failure:
+ - cat "$TRAVIS_BUILD_DIR"/builddir/meson-logs/testlog.txt
+
+ allow_failures:
+ - env: ALLOW_FAILURES=true
diff --git a/dependencies/zstd-1.5.0/CHANGELOG b/dependencies/zstd-1.5.0/CHANGELOG
new file mode 100644
index 0000000..3b15165
--- /dev/null
+++ b/dependencies/zstd-1.5.0/CHANGELOG
@@ -0,0 +1,698 @@
+v1.5.0 (May 11, 2021)
+api: Various functions promoted from experimental to stable API: (#2579-2581, @senhuang42)
+ `ZSTD_defaultCLevel()`
+ `ZSTD_getDictID_fromCDict()`
+api: Several experimental functions have been deprecated and will emit a compiler warning (#2582, @senhuang42)
+ `ZSTD_compress_advanced()`
+ `ZSTD_compress_usingCDict_advanced()`
+ `ZSTD_compressBegin_advanced()`
+ `ZSTD_compressBegin_usingCDict_advanced()`
+ `ZSTD_initCStream_srcSize()`
+ `ZSTD_initCStream_usingDict()`
+ `ZSTD_initCStream_usingCDict()`
+ `ZSTD_initCStream_advanced()`
+ `ZSTD_initCStream_usingCDict_advanced()`
+ `ZSTD_resetCStream()`
+api: ZSTDMT_NBWORKERS_MAX reduced to 64 for 32-bit environments (@Cyan4973)
+perf: Significant speed improvements for middle compression levels (#2494, @senhuang42 @terrelln)
+perf: Block splitter to improve compression ratio, enabled by default for high compression levels (#2447, @senhuang42)
+perf: Decompression loop refactor, speed improvements on `clang` and for `--long` modes (#2614 #2630, @Cyan4973)
+perf: Reduced stack usage during compression and decompression entropy stage (#2522 #2524, @terrelln)
+bug: Improve setting permissions of created files (#2525, @felixhandte)
+bug: Fix large dictionary non-determinism (#2607, @terrelln)
+bug: Fix non-determinism test failures on Linux i686 (#2606, @terrelln)
+bug: Fix various dedicated dictionary search bugs (#2540 #2586, @senhuang42 @felixhandte)
+bug: Ensure `ZSTD_estimateCCtxSize*() `monotonically increases with compression level (#2538, @senhuang42)
+bug: Fix --patch-from mode parameter bound bug with small files (#2637, @occivink)
+bug: Fix UBSAN error in decompression (#2625, @terrelln)
+bug: Fix superblock compression divide by zero bug (#2592, @senhuang42)
+bug: Make the number of physical CPU cores detection more robust (#2517, @PaulBone)
+doc: Improve `zdict.h` dictionary training API documentation (#2622, @terrelln)
+doc: Note that public `ZSTD_free*()` functions accept NULL pointers (#2521, @animalize)
+doc: Add style guide docs for open source contributors (#2626, @Cyan4973)
+tests: Better regression test coverage for different dictionary modes (#2559, @senhuang42)
+tests: Better test coverage of index reduction (#2603, @terrelln)
+tests: OSS-Fuzz coverage for seekable format (#2617, @senhuang42)
+tests: Test coverage for ZSTD threadpool API (#2604, @senhuang42)
+build: Dynamic library built multithreaded by default (#2584, @senhuang42)
+build: Move `zstd_errors.h` and `zdict.h` to `lib/` root (#2597, @terrelln)
+build: Allow `ZSTDMT_JOBSIZE_MIN` to be configured at compile-time, reduce default to 512KB (#2611, @Cyan4973)
+build: Single file library build script moved to `build/` directory (#2618, @felixhandte)
+build: `ZBUFF_*()` is no longer built by default (#2583, @senhuang42)
+build: Fixed Meson build (#2548, @SupervisedThinking @kloczek)
+build: Fix excessive compiler warnings with clang-cl and CMake (#2600, @nickhutchinson)
+build: Detect presence of `md5` on Darwin (#2609, @felixhandte)
+build: Avoid SIGBUS on armv6 (#2633, @bmwiedmann)
+cli: `--progress` flag added to always display progress bar (#2595, @senhuang42)
+cli: Allow reading from block devices with `--force` (#2613, @felixhandte)
+cli: Fix CLI filesize display bug (#2550, @Cyan4973)
+cli: Fix windows CLI `--filelist` end-of-line bug (#2620, @Cyan4973)
+contrib: Various fixes for linux kernel patch (#2539, @terrelln)
+contrib: Seekable format - Decompression hanging edge case fix (#2516, @senhuang42)
+contrib: Seekable format - New seek table-only API (#2113 #2518, @mdittmer @Cyan4973)
+contrib: Seekable format - Fix seek table descriptor check when loading (#2534, @foxeng)
+contrib: Seekable format - Decompression fix for large offsets, (#2594, @azat)
+misc: Automatically published release tarballs available on Github (#2535, @felixhandte)
+
+v1.4.9 (Mar 1, 2021)
+bug: Use `umask()` to Constrain Created File Permissions (#2495, @felixhandte)
+bug: Make Simple Single-Pass Functions Ignore Advanced Parameters (#2498, @terrelln)
+api: Add (De)Compression Tracing Functionality (#2482, @terrelln)
+api: Support References to Multiple DDicts (#2446, @senhuang42)
+api: Add Function to Generate Skippable Frame (#2439, @senhuang42)
+perf: New Algorithms for the Long Distance Matcher (#2483, @mpu)
+perf: Performance Improvements for Long Distance Matcher (#2464, @mpu)
+perf: Don't Shrink Window Log when Streaming with a Dictionary (#2451, @terrelln)
+cli: Fix `--output-dir-mirror`'s Rejection of `..`-Containing Paths (#2512, @felixhandte)
+cli: Allow Input From Console When `-f`/`--force` is Passed (#2466, @felixhandte)
+cli: Improve Help Message (#2500, @senhuang42)
+tests: Remove Flaky Tests (#2455, #2486, #2445, @Cyan4973)
+tests: Correctly Invoke md5 Utility on NetBSD (#2492, @niacat)
+tests: Avoid Using `stat -c` on NetBSD (#2513, @felixhandte)
+build: Zstd CLI Can Now be Linked to Dynamic `libzstd` (#2457, #2454 @Cyan4973)
+build: Hide and Avoid Using Static-Only Symbols (#2501, #2504, @skitt)
+build: CMake: Enable Only C for lib/ and programs/ Projects (#2498, @concatime)
+build: CMake: Use `configure_file()` to Create the `.pc` File (#2462, @lazka)
+build: Fix Fuzzer Compiler Detection & Update UBSAN Flags (#2503, @terrelln)
+build: Add Guards for `_LARGEFILE_SOURCE` and `_LARGEFILE64_SOURCE` (#2444, @indygreg)
+build: Improve `zlibwrapper` Makefile (#2437, @Cyan4973)
+contrib: Add `recover_directory` Program (#2473, @terrelln)
+doc: Change License Year to 2021 (#2452 & #2465, @terrelln & @senhuang42)
+doc: Fix Typos (#2459, @ThomasWaldmann)
+
+v1.4.8 (Dec 18, 2020)
+hotfix: wrong alignment of an internal buffer
+
+v1.4.7 (Dec 16, 2020)
+perf: stronger --long mode at high compression levels, by @senhuang42
+perf: stronger --patch-from at high compression levels, thanks to --long improvements
+perf: faster dictionary compression at medium compression levels, by @felixhandte
+perf: small speed & memory usage improvements for ZSTD_compress2(), by @terrelln
+perf: improved fast compression speeds with Visual Studio, by @animalize
+cli : Set nb of threads with environment variable ZSTD_NBTHREADS, by @senhuang42
+cli : accept decompressing files with *.zstd suffix
+cli : provide a condensed summary by default when processing multiple files
+cli : fix : stdin input no longer confused as user prompt
+cli : improve accuracy of several error messages
+api : new sequence ingestion API, by @senhuang42
+api : shared thread pool: control total nb of threads used by multiple compression jobs, by @marxin
+api : new ZSTD_getDictID_fromCDict(), by @LuAPi
+api : zlibWrapper only uses public API, and is compatible with dynamic library, by @terrelln
+api : fix : multithreaded compression has predictable output even in special cases (see #2327) (issue not accessible from cli)
+api : fix : dictionary compression correctly respects dictionary compression level (see #2303) (issue not accessible from cli)
+build: fix cmake script when using path with spaces, by @terrelln
+build: improved compile-time detection of aarch64/neon platforms, by @bsdimp
+build: Fix building on AIX 5.1, by @likema
+build: compile paramgrill with cmake on Windows, requested by @mirh
+doc : clarify repcode updates in format specification, by @felixhandte
+
+v1.4.6
+fix : Always return dstSize_tooSmall when that is the case
+fix : Fix ZSTD_initCStream_advanced() with static allocation and no dictionary
+perf: Improve small block decompression speed by 20%+, by @terrelln
+perf: Reduce compression stack usage by 1 KB, by @terrelln
+perf: Improve decompression speed by improving ZSTD_wildcopy, by @helloguo (#2252, #2256)
+perf: Improve histogram construction, by @cyan4973 (#2253)
+cli : Add --output-dir-mirror option, by @xxie24 (#2219)
+cli : Warn when (de)compressing multiple files into a single output, by @senhuang42 (#2279)
+cli : Improved progress bar and status summary when (de)compressing multiple files, by @senhuang42 (#2283)
+cli : Call stat less often, by @felixhandte (#2262)
+cli : Allow --patch-from XXX and --filelist XXX in addition to --patch-from=XXX and --filelist=XXX, by @cyan4973 (#2250)
+cli : Allow --patch-from to compress stdin with --stream-size, by @bimbashrestha (#2206)
+api : Do not install zbuff.h, since it has long been deprecated, by @cyan4973 (#2166).
+api : Fix ZSTD_CCtx_setParameter() with ZSTD_c_compressionLevel to make 0 mean default level, by @i-do-cpp (#2291)
+api : Rename ZSTDMT_NBTHREADS_MAX to ZSTDMT_NBWORKERS_MAX, by @marxin (#2228).
+build: Install pkg-config file with CMake and MinGW, by @tonytheodore (#2183)
+build: Install DLL with CMake on Windows, by @BioDataAnalysis (#2221)
+build: Fix DLL install location with CMake, by @xantares and @bimbashrestha (#2186)
+build: Add ZSTD_NO_UNUSED_FUNCTIONS macro to hide unused functions
+build: Add ZSTD_NO_INTRINSICS macro to avoid explicit intrinsics
+build: Add STATIC_BMI2 macro for compile time detection of BMI2 on MSVC, by @Niadb (#2258)
+build: Fix -Wcomma warnings, by @cwoffenden
+build: Remove distutils requirement for meson build, by @neheb (#2197)
+build: Fix cli compilation with uclibc
+build: Fix cli compilation without st_mtime, by @ffontaine (#2246)
+build: Fix shadowing warnings in library
+build: Fix single file library compilation with Enscripten, by @yoshihitoh (#2227)
+misc: Improve single file library and include dictBuilder, by @cwoffenden
+misc: Allow compression dictionaries with missing symbols
+misc: Add freestanding translation script in contrib/freestanding_lib
+misc: Collect all of zstd's libc dependencies into zstd_deps.h
+doc : Add ZSTD_versionString() to manual, by @animalize
+doc : Fix documentation for ZSTD_CCtxParams_setParameter(), by @felixhandte (#2270)
+
+v1.4.5 (May 22, 2020)
+fix : Compression ratio regression on huge files (> 3 GB) using high levels (--ultra) and multithreading, by @terrelln
+perf: Improved decompression speed: x64 : +10% (clang) / +5% (gcc); ARM : from +15% to +50%, depending on SoC, by @terrelln
+perf: Automatically downsizes ZSTD_DCtx when too large for too long (#2069, by @bimbashreshta)
+perf: Improved fast compression speed on aarch64 (#2040, ~+3%, by @caoyzh)
+perf: Small level 1 compression speed gains (depending on compiler)
+cli : New --patch-from command, create and apply patches from files, by @bimbashreshta
+cli : New --filelist= : Provide a list of files to operate upon from a file
+cli : -b -d command can now benchmark decompression on multiple files
+cli : New --no-content-size command
+cli : New --show-default-cparams information command
+api : ZDICT_finalizeDictionary() is promoted to stable (#2111)
+api : new experimental parameter ZSTD_d_stableOutBuffer (#2094)
+build: Generate a single-file libzstd library (#2065, by @cwoffenden)
+build: Relative includes no longer require -I compiler flags for zstd lib subdirs (#2103, by @felixhandte)
+build: zstd now compiles cleanly under -pedantic (#2099)
+build: zstd now compiles with make-4.3
+build: Support mingw cross-compilation from Linux, by @Ericson2314
+build: Meson multi-thread build fix on windows
+build: Some misc icc fixes backed by new ci test on travis
+misc: bitflip analyzer tool, by @felixhandte
+misc: Extend largeNbDicts benchmark to compression
+misc: Edit-distance match finder in contrib/
+doc : Improved beginner CONTRIBUTING.md docs
+doc : New issue templates for zstd
+
+v1.4.4 (Nov 6, 2019)
+perf: Improved decompression speed, by > 10%, by @terrelln
+perf: Better compression speed when re-using a context, by @felixhandte
+perf: Fix compression ratio when compressing large files with small dictionary, by @senhuang42
+perf: zstd reference encoder can generate RLE blocks, by @bimbashrestha
+perf: minor generic speed optimization, by @davidbolvansky
+api: new ability to extract sequences from the parser for analysis, by @bimbashrestha
+api: fixed decoding of magic-less frames, by @terrelln
+api: fixed ZSTD_initCStream_advanced() performance with fast modes, reported by @QrczakMK
+cli: Named pipes support, by @bimbashrestha
+cli: short tar's extension support, by @stokito
+cli: command --output-dir-flat= , generates target files into requested directory, by @senhuang42
+cli: commands --stream-size=# and --size-hint=#, by @nmagerko
+cli: command --exclude-compressed, by @shashank0791
+cli: faster `-t` test mode
+cli: improved some error messages, by @vangyzen
+cli: fix command `-D dictionary` on Windows, reported by @artyompetrov
+cli: fix rare deadlock condition within dictionary builder, by @terrelln
+build: single-file decoder with emscripten compilation script, by @cwoffenden
+build: fixed zlibWrapper compilation on Visual Studio, reported by @bluenlive
+build: fixed deprecation warning for certain gcc version, reported by @jasonma163
+build: fix compilation on old gcc versions, by @cemeyer
+build: improved installation directories for cmake script, by Dmitri Shubin
+pack: modified pkgconfig, for better integration into openwrt, requested by @neheb
+misc: Improved documentation : ZSTD_CLEVEL, DYNAMIC_BMI2, ZSTD_CDict, function deprecation, zstd format
+misc: fixed educational decoder : accept larger literals section, and removed UNALIGNED() macro
+
+v1.4.3 (Aug 20, 2019)
+bug: Fix Dictionary Compression Ratio Regression by @cyan4973 (#1709)
+bug: Fix Buffer Overflow in legacy v0.3 decompression by @felixhandte (#1722)
+build: Add support for IAR C/C++ Compiler for Arm by @joseph0918 (#1705)
+
+v1.4.2 (Jul 26, 2019)
+bug: Fix bug in zstd-0.5 decoder by @terrelln (#1696)
+bug: Fix seekable decompression in-memory API by @iburinoc (#1695)
+misc: Validate blocks are smaller than size limit by @vivekmg (#1685)
+misc: Restructure source files by @ephiepark (#1679)
+
+v1.4.1 (Jul 20, 2019)
+bug: Fix data corruption in niche use cases by @terrelln (#1659)
+bug: Fuzz legacy modes, fix uncovered bugs by @terrelln (#1593, #1594, #1595)
+bug: Fix out of bounds read by @terrelln (#1590)
+perf: Improve decode speed by ~7% @mgrice (#1668)
+perf: Slightly improved compression ratio of level 3 and 4 (ZSTD_dfast) by @cyan4973 (#1681)
+perf: Slightly faster compression speed when re-using a context by @cyan4973 (#1658)
+perf: Improve compression ratio for small windowLog by @cyan4973 (#1624)
+perf: Faster compression speed in high compression mode for repetitive data by @terrelln (#1635)
+api: Add parameter to generate smaller dictionaries by @tyler-tran (#1656)
+cli: Recognize symlinks when built in C99 mode by @felixhandte (#1640)
+cli: Expose cpu load indicator for each file on -vv mode by @ephiepark (#1631)
+cli: Restrict read permissions on destination files by @chungy (#1644)
+cli: zstdgrep: handle -f flag by @felixhandte (#1618)
+cli: zstdcat: follow symlinks by @vejnar (#1604)
+doc: Remove extra size limit on compressed blocks by @felixhandte (#1689)
+doc: Fix typo by @yk-tanigawa (#1633)
+doc: Improve documentation on streaming buffer sizes by @cyan4973 (#1629)
+build: CMake: support building with LZ4 @leeyoung624 (#1626)
+build: CMake: install zstdless and zstdgrep by @leeyoung624 (#1647)
+build: CMake: respect existing uninstall target by @j301scott (#1619)
+build: Make: skip multithread tests when built without support by @michaelforney (#1620)
+build: Make: Fix examples/ test target by @sjnam (#1603)
+build: Meson: rename options out of deprecated namespace by @lzutao (#1665)
+build: Meson: fix build by @lzutao (#1602)
+build: Visual Studio: don't export symbols in static lib by @scharan (#1650)
+build: Visual Studio: fix linking by @absotively (#1639)
+build: Fix MinGW-W64 build by @myzhang1029 (#1600)
+misc: Expand decodecorpus coverage by @ephiepark (#1664)
+
+v1.4.0 (Apr 17, 2019)
+perf: Improve level 1 compression speed in most scenarios by 6% by @gbtucker and @terrelln
+api: Move the advanced API, including all functions in the staging section, to the stable section
+api: Make ZSTD_e_flush and ZSTD_e_end block for maximum forward progress
+api: Rename ZSTD_CCtxParam_getParameter to ZSTD_CCtxParams_getParameter
+api: Rename ZSTD_CCtxParam_setParameter to ZSTD_CCtxParams_setParameter
+api: Don't export ZSTDMT functions from the shared library by default
+api: Require ZSTD_MULTITHREAD to be defined to use ZSTDMT
+api: Add ZSTD_decompressBound() to provide an upper bound on decompressed size by @shakeelrao
+api: Fix ZSTD_decompressDCtx() corner cases with a dictionary
+api: Move ZSTD_getDictID_*() functions to the stable section
+api: Add ZSTD_c_literalCompressionMode flag to enable or disable literal compression by @terrelln
+api: Allow compression parameters to be set when a dictionary is used
+api: Allow setting parameters before or after ZSTD_CCtx_loadDictionary() is called
+api: Fix ZSTD_estimateCStreamSize_usingCCtxParams()
+api: Setting ZSTD_d_maxWindowLog to 0 means use the default
+cli: Ensure that a dictionary is not used to compress itself by @shakeelrao
+cli: Add --[no-]compress-literals flag to enable or disable literal compression
+doc: Update the examples to use the advanced API
+doc: Explain how to transition from old streaming functions to the advanced API in the header
+build: Improve the Windows release packages
+build: Improve CMake build by @hjmjohnson
+build: Build fixes for FreeBSD by @lwhsu
+build: Remove redundant warnings by @thatsafunnyname
+build: Fix tests on OpenBSD by @bket
+build: Extend fuzzer build system to work with the new clang engine
+build: CMake now creates the libzstd.so.1 symlink
+build: Improve Menson build by @lzutao
+misc: Fix symbolic link detection on FreeBSD
+misc: Use physical core count for -T0 on FreeBSD by @cemeyer
+misc: Fix zstd --list on truncated files by @kostmo
+misc: Improve logging in debug mode by @felixhandte
+misc: Add CirrusCI tests by @lwhsu
+misc: Optimize dictionary memory usage in corner cases
+misc: Improve the dictionary builder on small or homogeneous data
+misc: Fix spelling across the repo by @jsoref
+
+v1.3.8 (Dec 28, 2018)
+perf: better decompression speed on large files (+7%) and cold dictionaries (+15%)
+perf: slightly better compression ratio at high compression modes
+api : finalized advanced API, last stage before "stable" status
+api : new --rsyncable mode, by @terrelln
+api : support decompression of empty frames into NULL (used to be an error) (#1385)
+build: new set of macros to build a minimal size decoder, by @felixhandte
+build: fix compilation on MIPS32, reported by @clbr (#1441)
+build: fix compilation with multiple -arch flags, by @ryandesign
+build: highly upgraded meson build, by @lzutao
+build: improved buck support, by @obelisk
+build: fix cmake script : can create debug build, by @pitrou
+build: Makefile : grep works on both colored consoles and systems without color support
+build: fixed zstd-pgo, by @bmwiedemann
+cli : support ZSTD_CLEVEL environment variable, by @yijinfb (#1423)
+cli : --no-progress flag, preserving final summary (#1371), by @terrelln
+cli : ensure destination file is not source file (#1422)
+cli : clearer error messages, especially when input file not present
+doc : clarified zstd_compression_format.md, by @ulikunitz
+misc: fixed zstdgrep, returns 1 on failure, by @lzutao
+misc: NEWS renamed as CHANGELOG, in accordance with fboss
+
+v1.3.7 (Oct 20, 2018)
+perf: slightly better decompression speed on clang (depending on hardware target)
+fix : performance of dictionary compression for small input < 4 KB at levels 9 and 10
+build: no longer build backtrace by default in release mode; restrict further automatic mode
+build: control backtrace support through build macro BACKTRACE
+misc: added man pages for zstdless and zstdgrep, by @samrussell
+
+v1.3.6 (Oct 6, 2018)
+perf: much faster dictionary builder, by @jenniferliu
+perf: faster dictionary compression on small data when using multiple contexts, by @felixhandte
+perf: faster dictionary decompression when using a very large number of dictionaries simultaneously
+cli : fix : does no longer overwrite destination when source does not exist (#1082)
+cli : new command --adapt, for automatic compression level adaptation
+api : fix : block api can be streamed with > 4 GB, reported by @catid
+api : reduced ZSTD_DDict size by 2 KB
+api : minimum negative compression level is defined, and can be queried using ZSTD_minCLevel().
+build: support Haiku target, by @korli
+build: Read Legacy format is limited to v0.5+ by default. Can be changed at compile time with macro ZSTD_LEGACY_SUPPORT.
+doc : zstd_compression_format.md updated to match wording in IETF RFC 8478
+misc: tests/paramgrill, a parameter optimizer, by @GeorgeLu97
+
+v1.3.5 (Jun 29, 2018)
+perf: much faster dictionary compression, by @felixhandte
+perf: small quality improvement for dictionary generation, by @terrelln
+perf: slightly improved high compression levels (notably level 19)
+mem : automatic memory release for long duration contexts
+cli : fix : overlapLog can be manually set
+cli : fix : decoding invalid lz4 frames
+api : fix : performance degradation for dictionary compression when using advanced API, by @terrelln
+api : change : clarify ZSTD_CCtx_reset() vs ZSTD_CCtx_resetParameters(), by @terrelln
+build: select custom libzstd scope through control macros, by @GeorgeLu97
+build: OpenBSD patch, by @bket
+build: make and make all are compatible with -j
+doc : clarify zstd_compression_format.md, updated for IETF RFC process
+misc: pzstd compatible with reproducible compilation, by @lamby
+
+v1.3.4 (Mar 27, 2018)
+perf: faster speed (especially decoding speed) on recent cpus (haswell+)
+perf: much better performance associating --long with multi-threading, by @terrelln
+perf: better compression at levels 13-15
+cli : asynchronous compression by default, for faster experience (use --single-thread for former behavior)
+cli : smoother status report in multi-threading mode
+cli : added command --fast=#, for faster compression modes
+cli : fix crash when not overwriting existing files, by Pádraig Brady (@pixelb)
+api : `nbThreads` becomes `nbWorkers` : 1 triggers asynchronous mode
+api : compression levels can be negative, for even more speed
+api : ZSTD_getFrameProgression() : get precise progress status of ZSTDMT anytime
+api : ZSTDMT can accept new compression parameters during compression
+api : implemented all advanced dictionary decompression prototypes
+build: improved meson recipe, by Shawn Landden (@shawnl)
+build: VS2017 scripts, by @HaydnTrigg
+misc: all /contrib projects fixed
+misc: added /contrib/docker script by @gyscos
+
+v1.3.3 (Dec 21, 2017)
+perf: faster zstd_opt strategy (levels 16-19)
+fix : bug #944 : multithreading with shared ditionary and large data, reported by @gsliepen
+cli : fix : content size written in header by default
+cli : fix : improved LZ4 format support, by @felixhandte
+cli : new : hidden command `-S`, to benchmark multiple files while generating one result per file
+api : fix : support large skippable frames, by @terrelln
+api : fix : streaming interface was adding a useless 3-bytes null block to small frames
+api : change : when setting `pledgedSrcSize`, use `ZSTD_CONTENTSIZE_UNKNOWN` macro value to mean "unknown"
+build: fix : compilation under rhel6 and centos6, reported by @pixelb
+build: added `check` target
+
+v1.3.2 (Oct 10, 2017)
+new : long range mode, using --long command, by Stella Lau (@stellamplau)
+new : ability to generate and decode magicless frames (#591)
+changed : maximum nb of threads reduced to 200, to avoid address space exhaustion in 32-bits mode
+fix : multi-threading compression works with custom allocators
+fix : ZSTD_sizeof_CStream() was over-evaluating memory usage
+fix : a rare compression bug when compression generates very large distances and bunch of other conditions (only possible at --ultra -22)
+fix : 32-bits build can now decode large offsets (levels 21+)
+cli : added LZ4 frame support by default, by Felix Handte (@felixhandte)
+cli : improved --list output
+cli : new : can split input file for dictionary training, using command -B#
+cli : new : clean operation artefact on Ctrl-C interruption
+cli : fix : do not change /dev/null permissions when using command -t with root access, reported by @mike155 (#851)
+cli : fix : write file size in header in multiple-files mode
+api : added macro ZSTD_COMPRESSBOUND() for static allocation
+api : experimental : new advanced decompression API
+api : fix : sizeof_CCtx() used to over-estimate
+build: fix : no-multithread variant compiles without pool.c dependency, reported by Mitchell Blank Jr (@mitchblank) (#819)
+build: better compatibility with reproducible builds, by Bernhard M. Wiedemann (@bmwiedemann) (#818)
+example : added streaming_memory_usage
+license : changed /examples license to BSD + GPLv2
+license : fix a few header files to reflect new license (#825)
+
+v1.3.1 (Aug 21, 2017)
+New license : BSD + GPLv2
+perf: substantially decreased memory usage in Multi-threading mode, thanks to reports by Tino Reichardt (@mcmilk)
+perf: Multi-threading supports up to 256 threads. Cap at 256 when more are requested (#760)
+cli : improved and fixed --list command, by @ib (#772)
+cli : command -vV to list supported formats, by @ib (#771)
+build : fixed binary variants, reported by @svenha (#788)
+build : fix Visual compilation for non x86/x64 targets, reported by Greg Slazinski (@GregSlazinski) (#718)
+API exp : breaking change : ZSTD_getframeHeader() provides more information
+API exp : breaking change : pinned down values of error codes
+doc : fixed huffman example, by Ulrich Kunitz (@ulikunitz)
+new : contrib/adaptive-compression, I/O driven compression strength, by Paul Cruz (@paulcruz74)
+new : contrib/long_distance_matching, statistics by Stella Lau (@stellamplau)
+updated : contrib/linux-kernel, by Nick Terrell (@terrelln)
+
+v1.3.0 (Jul 6, 2017)
+cli : new : `--list` command, by Paul Cruz
+cli : changed : xz/lzma support enabled by default
+cli : changed : `-t *` continue processing list after a decompression error
+API : added : ZSTD_versionString()
+API : promoted to stable status : ZSTD_getFrameContentSize(), by Sean Purcell
+API exp : new advanced API : ZSTD_compress_generic(), ZSTD_CCtx_setParameter()
+API exp : new : API for static or external allocation : ZSTD_initStatic?Ctx()
+API exp : added : ZSTD_decompressBegin_usingDDict(), requested by Guy Riddle (#700)
+API exp : clarified memory estimation / measurement functions.
+API exp : changed : strongest strategy renamed ZSTD_btultra, fastest strategy ZSTD_fast set to 1
+tools : decodecorpus can generate random dictionary-compressed samples, by Paul Cruz
+new : contrib/seekable_format, demo and API, by Sean Purcell
+changed : contrib/linux-kernel, updated version and license, by Nick Terrell
+
+v1.2.0 (May 5, 2017)
+cli : changed : Multithreading enabled by default (use target zstd-nomt or HAVE_THREAD=0 to disable)
+cli : new : command -T0 means "detect and use nb of cores", by Sean Purcell
+cli : new : zstdmt symlink hardwired to `zstd -T0`
+cli : new : command --threads=# (#671)
+cli : changed : cover dictionary builder by default, for improved quality, by Nick Terrell
+cli : new : commands --train-cover and --train-legacy, to select dictionary algorithm and parameters
+cli : experimental targets `zstd4` and `xzstd4`, with support for lz4 format, by Sean Purcell
+cli : fix : does not output compressed data on console
+cli : fix : ignore symbolic links unless --force specified,
+API : breaking change : ZSTD_createCDict_advanced(), only use compressionParameters as argument
+API : added : prototypes ZSTD_*_usingCDict_advanced(), for direct control over frameParameters.
+API : improved: ZSTDMT_compressCCtx() reduced memory usage
+API : fix : ZSTDMT_compressCCtx() now provides srcSize in header (#634)
+API : fix : src size stored in frame header is controlled at end of frame
+API : fix : enforced consistent rules for pledgedSrcSize==0 (#641)
+API : fix : error code "GENERIC" replaced by "dstSizeTooSmall" when appropriate
+build: improved cmake script, by @Majlen
+build: enabled Multi-threading support for *BSD, by Baptiste Daroussin
+tools: updated Paramgrill. Command -O# provides best parameters for sample and speed target.
+new : contrib/linux-kernel version, by Nick Terrell
+
+v1.1.4 (Mar 18, 2017)
+cli : new : can compress in *.gz format, using --format=gzip command, by Przemyslaw Skibinski
+cli : new : advanced benchmark command --priority=rt
+cli : fix : write on sparse-enabled file systems in 32-bits mode, by @ds77
+cli : fix : --rm remains silent when input is stdin
+cli : experimental : xzstd, with support for xz/lzma decoding, by Przemyslaw Skibinski
+speed : improved decompression speed in streaming mode for single shot scenarios (+5%)
+memory: DDict (decompression dictionary) memory usage down from 150 KB to 20 KB
+arch: 32-bits variant able to generate and decode very long matches (>32 MB), by Sean Purcell
+API : new : ZSTD_findFrameCompressedSize(), ZSTD_getFrameContentSize(), ZSTD_findDecompressedSize()
+API : changed : dropped support of legacy versions <= v0.3 (can be changed by modifying ZSTD_LEGACY_SUPPORT value)
+build : new: meson build system in contrib/meson, by Dima Krasner
+build : improved cmake script, by @Majlen
+build : added -Wformat-security flag, as recommended by Padraig Brady
+doc : new : educational decoder, by Sean Purcell
+
+v1.1.3 (Feb 7, 2017)
+cli : zstd can decompress .gz files (can be disabled with `make zstd-nogz` or `make HAVE_ZLIB=0`)
+cli : new : experimental target `make zstdmt`, with multi-threading support
+cli : new : improved dictionary builder "cover" (experimental), by Nick Terrell, based on prior work by Giuseppe Ottaviano.
+cli : new : advanced commands for detailed parameters, by Przemyslaw Skibinski
+cli : fix zstdless on Mac OS-X, by Andrew Janke
+cli : fix #232 "compress non-files"
+dictBuilder : improved dictionary generation quality, thanks to Nick Terrell
+API : new : lib/compress/ZSTDMT_compress.h multithreading API (experimental)
+API : new : ZSTD_create?Dict_byReference(), requested by Bartosz Taudul
+API : new : ZDICT_finalizeDictionary()
+API : fix : ZSTD_initCStream_usingCDict() properly writes dictID into frame header, by Gregory Szorc (#511)
+API : fix : all symbols properly exposed in libzstd, by Nick Terrell
+build : support for Solaris target, by Przemyslaw Skibinski
+doc : clarified specification, by Sean Purcell
+
+v1.1.2 (Dec 15, 2016)
+API : streaming : decompression : changed : automatic implicit reset when chain-decoding new frames without init
+API : experimental : added : dictID retrieval functions, and ZSTD_initCStream_srcSize()
+API : zbuff : changed : prototypes now generate deprecation warnings
+lib : improved : faster decompression speed at ultra compression settings and 32-bits mode
+lib : changed : only public ZSTD_ symbols are now exposed
+lib : changed : reduced usage of stack memory
+lib : fixed : several corner case bugs, by Nick Terrell
+cli : new : gzstd, experimental version able to decode .gz files, by Przemyslaw Skibinski
+cli : new : preserve file attributes
+cli : new : added zstdless and zstdgrep tools
+cli : fixed : status displays total amount decoded, even for file consisting of multiple frames (like pzstd)
+cli : fixed : zstdcat
+zlib_wrapper : added support for gz* functions, by Przemyslaw Skibinski
+install : better compatibility with FreeBSD, by Dimitry Andric
+source tree : changed : zbuff source files moved to lib/deprecated
+
+v1.1.1 (Nov 2, 2016)
+New : command -M#, --memory=, --memlimit=, --memlimit-decompress= to limit allowed memory consumption
+New : doc/zstd_manual.html, by Przemyslaw Skibinski
+Improved : slightly better compression ratio at --ultra levels (>= 20)
+Improved : better memory usage when using streaming compression API, thanks to @Rogier-5 report
+Added : API : ZSTD_initCStream_usingCDict(), ZSTD_initDStream_usingDDict() (experimental section)
+Added : example/multiple_streaming_compression.c
+Changed : zstd_errors.h is now installed within /include (and replaces errors_public.h)
+Updated man page
+Fixed : zstd-small, zstd-compress and zstd-decompress compilation targets
+
+v1.1.0 (Sep 28, 2016)
+New : contrib/pzstd, parallel version of zstd, by Nick Terrell
+added : NetBSD install target (#338)
+Improved : speed for batches of small files
+Improved : speed of zlib wrapper, by Przemyslaw Skibinski
+Changed : libzstd on Windows supports legacy formats, by Christophe Chevalier
+Fixed : CLI -d output to stdout by default when input is stdin (#322)
+Fixed : CLI correctly detects console on Mac OS-X
+Fixed : CLI supports recursive mode `-r` on Mac OS-X
+Fixed : Legacy decoders use unified error codes, reported by benrg (#341), fixed by Przemyslaw Skibinski
+Fixed : compatibility with OpenBSD, reported by Juan Francisco Cantero Hurtado (#319)
+Fixed : compatibility with Hurd, by Przemyslaw Skibinski (#365)
+Fixed : zstd-pgo, reported by octoploid (#329)
+
+v1.0.0 (Sep 1, 2016)
+Change Licensing, all project is now BSD, Copyright Facebook
+Small decompression speed improvement
+API : Streaming API supports legacy format
+API : ZDICT_getDictID(), ZSTD_sizeof_{CCtx, DCtx, CStream, DStream}(), ZSTD_setDStreamParameter()
+CLI supports legacy formats v0.4+
+Fixed : compression fails on certain huge files, reported by Jesse McGrew
+Enhanced documentation, by Przemyslaw Skibinski
+
+v0.8.1 (Aug 18, 2016)
+New streaming API
+Changed : --ultra now enables levels beyond 19
+Changed : -i# now selects benchmark time in second
+Fixed : ZSTD_compress* can now compress > 4 GB in a single pass, reported by Nick Terrell
+Fixed : speed regression on specific patterns (#272)
+Fixed : support for Z_SYNC_FLUSH, by Dmitry Krot (#291)
+Fixed : ICC compilation, by Przemyslaw Skibinski
+
+v0.8.0 (Aug 2, 2016)
+Improved : better speed on clang and gcc -O2, thanks to Eric Biggers
+New : Build on FreeBSD and DragonFly, thanks to JrMarino
+Changed : modified API : ZSTD_compressEnd()
+Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist
+Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers
+Fixed : large dictionaries (> 384 KB), reported by Ilona Papava
+Fixed : checksum correctly checked in single-pass mode
+Fixed : combined --test amd --rm, reported by Andreas M. Nilsson
+Modified : minor compression level adaptations
+Updated : compression format specification to v0.2.0
+changed : zstd.h moved to /lib directory
+
+v0.7.5 (Aug 1, 2016)
+Transition version, supporting decoding of v0.8.x
+
+v0.7.4 (Jul 17, 2016)
+Added : homebrew for Mac, by Daniel Cade
+Added : more examples
+Fixed : segfault when using small dictionaries, reported by Felix Handte
+Modified : default compression level for CLI is now 3
+Updated : specification, to v0.1.1
+
+v0.7.3 (Jul 9, 2016)
+New : compression format specification
+New : `--` separator, stating that all following arguments are file names. Suggested by Chip Turner.
+New : `ZSTD_getDecompressedSize()`
+New : OpenBSD target, by Juan Francisco Cantero Hurtado
+New : `examples` directory
+fixed : dictBuilder using HC levels, reported by Bartosz Taudul
+fixed : legacy support from ZSTD_decompress_usingDDict(), reported by Felix Handte
+fixed : multi-blocks decoding with intermediate uncompressed blocks, reported by Greg Slazinski
+modified : removed "mem.h" and "error_public.h" dependencies from "zstd.h" (experimental section)
+modified : legacy functions no longer need magic number
+
+v0.7.2 (Jul 4, 2016)
+fixed : ZSTD_decompressBlock() using multiple consecutive blocks. Reported by Greg Slazinski.
+fixed : potential segfault on very large files (many gigabytes). Reported by Chip Turner.
+fixed : CLI displays system error message when destination file cannot be created (#231). Reported by Chip Turner.
+
+v0.7.1 (Jun 23, 2016)
+fixed : ZBUFF_compressEnd() called multiple times with too small `dst` buffer, reported by Christophe Chevalier
+fixed : dictBuilder fails if first sample is too small, reported by Руслан Ковалёв
+fixed : corruption issue, reported by cj
+modified : checksum enabled by default in command line mode
+
+v0.7.0 (Jun 17, 2016)
+New : Support for directory compression, using `-r`, thanks to Przemyslaw Skibinski
+New : Command `--rm`, to remove source file after successful de/compression
+New : Visual build scripts, by Christophe Chevalier
+New : Support for Sparse File-systems (do not use space for zero-filled sectors)
+New : Frame checksum support
+New : Support pass-through mode (when using `-df`)
+API : more efficient Dictionary API : `ZSTD_compress_usingCDict()`, `ZSTD_decompress_usingDDict()`
+API : create dictionary files from custom content, by Giuseppe Ottaviano
+API : support for custom malloc/free functions
+New : controllable Dictionary ID
+New : Support for skippable frames
+
+v0.6.1 (May 13, 2016)
+New : zlib wrapper API, thanks to Przemyslaw Skibinski
+New : Ability to compile compressor / decompressor separately
+Changed : new lib directory structure
+Fixed : Legacy codec v0.5 compatible with dictionary decompression
+Fixed : Decoder corruption error (#173)
+Fixed : null-string roundtrip (#176)
+New : benchmark mode can select directory as input
+Experimental : midipix support, VMS support
+
+v0.6.0 (Apr 13, 2016)
+Stronger high compression modes, thanks to Przemyslaw Skibinski
+API : ZSTD_getFrameParams() provides size of decompressed content
+New : highest compression modes require `--ultra` command to fully unleash their capacity
+Fixed : zstd cli return error code > 0 and removes dst file artifact when decompression fails, thanks to Chip Turner
+
+v0.5.1 (Feb 18, 2016)
+New : Optimal parsing => Very high compression modes, thanks to Przemyslaw Skibinski
+Changed : Dictionary builder integrated into libzstd and zstd cli
+Changed (!) : zstd cli now uses "multiple input files" as default mode. See `zstd -h`.
+Fix : high compression modes for big-endian platforms
+New : zstd cli : `-t` | `--test` command
+
+v0.5.0 (Feb 5, 2016)
+New : dictionary builder utility
+Changed : streaming & dictionary API
+Improved : better compression of small data
+
+v0.4.7 (Jan 22, 2016)
+Improved : small compression speed improvement in HC mode
+Changed : `zstd_decompress.c` has ZSTD_LEGACY_SUPPORT to 0 by default
+fix : bt search bug
+
+v0.4.6 (Jan 13, 2016)
+fix : fast compression mode on Windows
+New : cmake configuration file, thanks to Artyom Dymchenko
+Improved : high compression mode on repetitive data
+New : block-level API
+New : ZSTD_duplicateCCtx()
+
+v0.4.5 (Dec 18, 2015)
+new : -m/--multiple : compress/decompress multiple files
+
+v0.4.4 (Dec 14, 2015)
+Fixed : high compression modes for Windows 32 bits
+new : external dictionary API extended to buffered mode and accessible through command line
+new : windows DLL project, thanks to Christophe Chevalier
+
+v0.4.3 (Dec 7, 2015)
+new : external dictionary API
+new : zstd-frugal
+
+v0.4.2 (Dec 2, 2015)
+Generic minor improvements for small blocks
+Fixed : big-endian compatibility, by Peter Harris (#85)
+
+v0.4.1 (Dec 1, 2015)
+Fixed : ZSTD_LEGACY_SUPPORT=0 build mode (reported by Luben)
+removed `zstd.c`
+
+v0.4.0 (Nov 29, 2015)
+Command line utility compatible with high compression levels
+Removed zstdhc => merged into zstd
+Added : ZBUFF API (see zstd_buffered.h)
+Rolling buffer support
+
+v0.3.6 (Nov 10, 2015)
+small blocks params
+
+v0.3.5 (Nov 9, 2015)
+minor generic compression improvements
+
+v0.3.4 (Nov 6, 2015)
+Faster fast cLevels
+
+v0.3.3 (Nov 5, 2015)
+Small compression ratio improvement
+
+v0.3.2 (Nov 2, 2015)
+Fixed Visual Studio
+
+v0.3.1 (Nov 2, 2015)
+Small compression ratio improvement
+
+v0.3 (Oct 30, 2015)
+HC mode : compression levels 2-26
+
+v0.2.2 (Oct 28, 2015)
+Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier
+
+v0.2.1 (Oct 24, 2015)
+Fix : Read errors, advanced fuzzer tests, by Hanno Böck
+
+v0.2.0 (Oct 22, 2015)
+**Breaking format change**
+Faster decompression speed
+Can still decode v0.1 format
+
+v0.1.3 (Oct 15, 2015)
+fix uninitialization warning, reported by Evan Nemerson
+
+v0.1.2 (Sep 11, 2015)
+frame concatenation support
+
+v0.1.1 (Aug 27, 2015)
+fix compression bug
+detects write-flush errors
+
+v0.1.0 (Aug 25, 2015)
+first release
diff --git a/dependencies/zstd-1.5.0/CODE_OF_CONDUCT.md b/dependencies/zstd-1.5.0/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..0f7ad8b
--- /dev/null
+++ b/dependencies/zstd-1.5.0/CODE_OF_CONDUCT.md
@@ -0,0 +1,5 @@
+# Code of Conduct
+
+Facebook has adopted a Code of Conduct that we expect project participants to adhere to.
+Please read the [full text](https://code.fb.com/codeofconduct/)
+so that you can understand what actions will and will not be tolerated.
diff --git a/dependencies/zstd-1.5.0/CONTRIBUTING.md b/dependencies/zstd-1.5.0/CONTRIBUTING.md
new file mode 100644
index 0000000..5effa26
--- /dev/null
+++ b/dependencies/zstd-1.5.0/CONTRIBUTING.md
@@ -0,0 +1,504 @@
+# Contributing to Zstandard
+We want to make contributing to this project as easy and transparent as
+possible.
+
+## Our Development Process
+New versions are being developed in the "dev" branch,
+or in their own feature branch.
+When they are deemed ready for a release, they are merged into "release".
+
+As a consequences, all contributions must stage first through "dev"
+or their own feature branch.
+
+## Pull Requests
+We actively welcome your pull requests.
+
+1. Fork the repo and create your branch from `dev`.
+2. If you've added code that should be tested, add tests.
+3. If you've changed APIs, update the documentation.
+4. Ensure the test suite passes.
+5. Make sure your code lints.
+6. If you haven't already, complete the Contributor License Agreement ("CLA").
+
+## Contributor License Agreement ("CLA")
+In order to accept your pull request, we need you to submit a CLA. You only need
+to do this once to work on any of Facebook's open source projects.
+
+Complete your CLA here:
+
+## Workflow
+Zstd uses a branch-based workflow for making changes to the codebase. Typically, zstd
+will use a new branch per sizable topic. For smaller changes, it is okay to lump multiple
+related changes into a branch.
+
+Our contribution process works in three main stages:
+1. Local development
+ * Update:
+ * Checkout your fork of zstd if you have not already
+ ```
+ git checkout https://github.com//zstd
+ cd zstd
+ ```
+ * Update your local dev branch
+ ```
+ git pull https://github.com/facebook/zstd dev
+ git push origin dev
+ ```
+ * Topic and development:
+ * Make a new branch on your fork about the topic you're developing for
+ ```
+ # branch names should be consise but sufficiently informative
+ git checkout -b
+ git push origin
+ ```
+ * Make commits and push
+ ```
+ # make some changes =
+ git add -u && git commit -m
+ git push origin
+ ```
+ * Note: run local tests to ensure that your changes didn't break existing functionality
+ * Quick check
+ ```
+ make shortest
+ ```
+ * Longer check
+ ```
+ make test
+ ```
+2. Code Review and CI tests
+ * Ensure CI tests pass:
+ * Before sharing anything to the community, make sure that all CI tests pass on your local fork.
+ See our section on setting up your CI environment for more information on how to do this.
+ * Ensure that static analysis passes on your development machine. See the Static Analysis section
+ below to see how to do this.
+ * Create a pull request:
+ * When you are ready to share you changes to the community, create a pull request from your branch
+ to facebook:dev. You can do this very easily by clicking 'Create Pull Request' on your fork's home
+ page.
+ * From there, select the branch where you made changes as your source branch and facebook:dev
+ as the destination.
+ * Examine the diff presented between the two branches to make sure there is nothing unexpected.
+ * Write a good pull request description:
+ * While there is no strict template that our contributors follow, we would like them to
+ sufficiently summarize and motivate the changes they are proposing. We recommend all pull requests,
+ at least indirectly, address the following points.
+ * Is this pull request important and why?
+ * Is it addressing an issue? If so, what issue? (provide links for convenience please)
+ * Is this a new feature? If so, why is it useful and/or necessary?
+ * Are there background references and documents that reviewers should be aware of to properly assess this change?
+ * Note: make sure to point out any design and architectural decisions that you made and the rationale behind them.
+ * Note: if you have been working with a specific user and would like them to review your work, make sure you mention them using (@)
+ * Submit the pull request and iterate with feedback.
+3. Merge and Release
+ * Getting approval:
+ * You will have to iterate on your changes with feedback from other collaborators to reach a point
+ where your pull request can be safely merged.
+ * To avoid too many comments on style and convention, make sure that you have a
+ look at our style section below before creating a pull request.
+ * Eventually, someone from the zstd team will approve your pull request and not long after merge it into
+ the dev branch.
+ * Housekeeping:
+ * Most PRs are linked with one or more Github issues. If this is the case for your PR, make sure
+ the corresponding issue is mentioned. If your change 'fixes' or completely addresses the
+ issue at hand, then please indicate this by requesting that an issue be closed by commenting.
+ * Just because your changes have been merged does not mean the topic or larger issue is complete. Remember
+ that the change must make it to an official zstd release for it to be meaningful. We recommend
+ that contributers track the activity on their pull request and corresponding issue(s) page(s) until
+ their change makes it to the next release of zstd. Users will often discover bugs in your code or
+ suggest ways to refine and improve your initial changes even after the pull request is merged.
+
+## Static Analysis
+Static analysis is a process for examining the correctness or validity of a program without actually
+executing it. It usually helps us find many simple bugs. Zstd uses clang's `scan-build` tool for
+static analysis. You can install it by following the instructions for your OS on https://clang-analyzer.llvm.org/scan-build.
+
+Once installed, you can ensure that our static analysis tests pass on your local development machine
+by running:
+```
+make staticAnalyze
+```
+
+In general, you can use `scan-build` to static analyze any build script. For example, to static analyze
+just `contrib/largeNbDicts` and nothing else, you can run:
+
+```
+scan-build make -C contrib/largeNbDicts largeNbDicts
+```
+
+### Pitfalls of static analysis
+`scan-build` is part of our regular CI suite. Other static analyzers are not.
+
+It can be useful to look at additional static analyzers once in a while (and we do), but it's not a good idea to multiply the nb of analyzers run continuously at each commit and PR. The reasons are :
+
+- Static analyzers are full of false positive. The signal to noise ratio is actually pretty low.
+- A good CI policy is "zero-warning tolerance". That means that all issues must be solved, including false positives. This quickly becomes a tedious workload.
+- Multiple static analyzers will feature multiple kind of false positives, sometimes applying to the same code but in different ways leading to :
+ + torteous code, trying to please multiple constraints, hurting readability and therefore maintenance. Sometimes, such complexity introduce other more subtle bugs, that are just out of scope of the analyzers.
+ + sometimes, these constraints are mutually exclusive : if one try to solve one, the other static analyzer will complain, they can't be both happy at the same time.
+- As if that was not enough, the list of false positives change with each version. It's hard enough to follow one static analyzer, but multiple ones with their own update agenda, this quickly becomes a massive velocity reducer.
+
+This is different from running a static analyzer once in a while, looking at the output, and __cherry picking__ a few warnings that seem helpful, either because they detected a genuine risk of bug, or because it helps expressing the code in a way which is more readable or more difficult to misuse. These kind of reports can be useful, and are accepted.
+
+## Performance
+Performance is extremely important for zstd and we only merge pull requests whose performance
+landscape and corresponding trade-offs have been adequately analyzed, reproduced, and presented.
+This high bar for performance means that every PR which has the potential to
+impact performance takes a very long time for us to properly review. That being said, we
+always welcome contributions to improve performance (or worsen performance for the trade-off of
+something else). Please keep the following in mind before submitting a performance related PR:
+
+1. Zstd isn't as old as gzip but it has been around for time now and its evolution is
+very well documented via past Github issues and pull requests. It may be the case that your
+particular performance optimization has already been considered in the past. Please take some
+time to search through old issues and pull requests using keywords specific to your
+would-be PR. Of course, just because a topic has already been discussed (and perhaps rejected
+on some grounds) in the past, doesn't mean it isn't worth bringing up again. But even in that case,
+it will be helpful for you to have context from that topic's history before contributing.
+2. The distinction between noise and actual performance gains can unfortunately be very subtle
+especially when microbenchmarking extremely small wins or losses. The only remedy to getting
+something subtle merged is extensive benchmarking. You will be doing us a great favor if you
+take the time to run extensive, long-duration, and potentially cross-(os, platform, process, etc)
+benchmarks on your end before submitting a PR. Of course, you will not be able to benchmark
+your changes on every single processor and os out there (and neither will we) but do that best
+you can:) We've adding some things to think about when benchmarking below in the Benchmarking
+Performance section which might be helpful for you.
+3. Optimizing performance for a certain OS, processor vendor, compiler, or network system is a perfectly
+legitimate thing to do as long as it does not harm the overall performance health of Zstd.
+This is a hard balance to strike but please keep in mind other aspects of Zstd when
+submitting changes that are clang-specific, windows-specific, etc.
+
+## Benchmarking Performance
+Performance microbenchmarking is a tricky subject but also essential for Zstd. We value empirical
+testing over theoretical speculation. This guide it not perfect but for most scenarios, it
+is a good place to start.
+
+### Stability
+Unfortunately, the most important aspect in being able to benchmark reliably is to have a stable
+benchmarking machine. A virtual machine, a machine with shared resources, or your laptop
+will typically not be stable enough to obtain reliable benchmark results. If you can get your
+hands on a desktop, this is usually a better scenario.
+
+Of course, benchmarking can be done on non-hyper-stable machines as well. You will just have to
+do a little more work to ensure that you are in fact measuring the changes you've made not and
+noise. Here are some things you can do to make your benchmarks more stable:
+
+1. The most simple thing you can do to drastically improve the stability of your benchmark is
+to run it multiple times and then aggregate the results of those runs. As a general rule of
+thumb, the smaller the change you are trying to measure, the more samples of benchmark runs
+you will have to aggregate over to get reliable results. Here are some additional things to keep in
+mind when running multiple trials:
+ * How you aggregate your samples are important. You might be tempted to use the mean of your
+ results. While this is certainly going to be a more stable number than a raw single sample
+ benchmark number, you might have more luck by taking the median. The mean is not robust to
+ outliers whereas the median is. Better still, you could simply take the fastest speed your
+ benchmark achieved on each run since that is likely the fastest your process will be
+ capable of running your code. In our experience, this (aggregating by just taking the sample
+ with the fastest running time) has been the most stable approach.
+ * The more samples you have, the more stable your benchmarks should be. You can verify
+ your improved stability by looking at the size of your confidence intervals as you
+ increase your sample count. These should get smaller and smaller. Eventually hopefully
+ smaller than the performance win you are expecting.
+ * Most processors will take some time to get `hot` when running anything. The observations
+ you collect during that time period will very different from the true performance number. Having
+ a very large number of sample will help alleviate this problem slightly but you can also
+ address is directly by simply not including the first `n` iterations of your benchmark in
+ your aggregations. You can determine `n` by simply looking at the results from each iteration
+ and then hand picking a good threshold after which the variance in results seems to stabilize.
+2. You cannot really get reliable benchmarks if your host machine is simultaneously running
+another cpu/memory-intensive application in the background. If you are running benchmarks on your
+personal laptop for instance, you should close all applications (including your code editor and
+browser) before running your benchmarks. You might also have invisible background applications
+running. You can see what these are by looking at either Activity Monitor on Mac or Task Manager
+on Windows. You will get more stable benchmark results of you end those processes as well.
+ * If you have multiple cores, you can even run your benchmark on a reserved core to prevent
+ pollution from other OS and user processes. There are a number of ways to do this depending
+ on your OS:
+ * On linux boxes, you have use https://github.com/lpechacek/cpuset.
+ * On Windows, you can "Set Processor Affinity" using https://www.thewindowsclub.com/processor-affinity-windows
+ * On Mac, you can try to use their dedicated affinity API https://developer.apple.com/library/archive/releasenotes/Performance/RN-AffinityAPI/#//apple_ref/doc/uid/TP40006635-CH1-DontLinkElementID_2
+3. To benchmark, you will likely end up writing a separate c/c++ program that will link libzstd.
+Dynamically linking your library will introduce some added variation (not a large amount but
+definitely some). Statically linking libzstd will be more stable. Static libraries should
+be enabled by default when building zstd.
+4. Use a profiler with a good high resolution timer. See the section below on profiling for
+details on this.
+5. Disable frequency scaling, turbo boost and address space randomization (this will vary by OS)
+6. Try to avoid storage. On some systems you can use tmpfs. Putting the program, inputs and outputs on
+tmpfs avoids touching a real storage system, which can have a pretty big variability.
+
+Also check our LLVM's guide on benchmarking here: https://llvm.org/docs/Benchmarking.html
+
+### Zstd benchmark
+The fastest signal you can get regarding your performance changes is via the in-build zstd cli
+bench option. You can run Zstd as you typically would for your scenario using some set of options
+and then additionally also specify the `-b#` option. Doing this will run our benchmarking pipeline
+for that options you have just provided. If you want to look at the internals of how this
+benchmarking script works, you can check out programs/benchzstd.c
+
+For example: say you have made a change that you believe improves the speed of zstd level 1. The
+very first thing you should use to asses whether you actually achieved any sort of improvement
+is `zstd -b`. You might try to do something like this. Note: you can use the `-i` option to
+specify a running time for your benchmark in seconds (default is 3 seconds).
+Usually, the longer the running time, the more stable your results will be.
+
+```
+$ git checkout
+$ make && cp zstd zstd-old
+$ git checkout
+$ make && cp zstd zstd-new
+$ zstd-old -i5 -b1
+ 1 : 8990 -> 3992 (2.252), 302.6 MB/s , 626.4 MB/s
+$ zstd-new -i5 -b1
+ 1 : 8990 -> 3992 (2.252), 302.8 MB/s , 628.4 MB/s
+```
+
+Unless your performance win is large enough to be visible despite the intrinsic noise
+on your computer, benchzstd alone will likely not be enough to validate the impact of your
+changes. For example, the results of the example above indicate that effectively nothing
+changed but there could be a small <3% improvement that the noise on the host machine
+obscured. So unless you see a large performance win (10-15% consistently) using just
+this method of evaluation will not be sufficient.
+
+### Profiling
+There are a number of great profilers out there. We're going to briefly mention how you can
+profile your code using `instruments` on mac, `perf` on linux and `visual studio profiler`
+on windows.
+
+Say you have an idea for a change that you think will provide some good performance gains
+for level 1 compression on Zstd. Typically this means, you have identified a section of
+code that you think can be made to run faster.
+
+The first thing you will want to do is make sure that the piece of code is actually taking up
+a notable amount of time to run. It is usually not worth optimzing something which accounts for less than
+0.0001% of the total running time. Luckily, there are tools to help with this.
+Profilers will let you see how much time your code spends inside a particular function.
+If your target code snippit is only part of a function, it might be worth trying to
+isolate that snippit by moving it to its own function (this is usually not necessary but
+might be).
+
+Most profilers (including the profilers dicusssed below) will generate a call graph of
+functions for you. Your goal will be to find your function of interest in this call grapch
+and then inspect the time spent inside of it. You might also want to to look at the
+annotated assembly which most profilers will provide you with.
+
+#### Instruments
+We will once again consider the scenario where you think you've identified a piece of code
+whose performance can be improved upon. Follow these steps to profile your code using
+Instruments.
+
+1. Open Instruments
+2. Select `Time Profiler` from the list of standard templates
+3. Close all other applications except for your instruments window and your terminal
+4. Run your benchmarking script from your terminal window
+ * You will want a benchmark that runs for at least a few seconds (5 seconds will
+ usually be long enough). This way the profiler will have something to work with
+ and you will have ample time to attach your profiler to this process:)
+ * I will just use benchzstd as my bencharmking script for this example:
+```
+$ zstd -b1 -i5 # this will run for 5 seconds
+```
+5. Once you run your benchmarking script, switch back over to instruments and attach your
+process to the time profiler. You can do this by:
+ * Clicking on the `All Processes` drop down in the top left of the toolbar.
+ * Selecting your process from the dropdown. In my case, it is just going to be labled
+ `zstd`
+ * Hitting the bright red record circle button on the top left of the toolbar
+6. You profiler will now start collecting metrics from your bencharking script. Once
+you think you have collected enough samples (usually this is the case after 3 seconds of
+recording), stop your profiler.
+7. Make sure that in toolbar of the bottom window, `profile` is selected.
+8. You should be able to see your call graph.
+ * If you don't see the call graph or an incomplete call graph, make sure you have compiled
+ zstd and your benchmarking scripg using debug flags. On mac and linux, this just means
+ you will have to supply the `-g` flag alone with your build script. You might also
+ have to provide the `-fno-omit-frame-pointer` flag
+9. Dig down the graph to find your function call and then inspect it by double clicking
+the list item. You will be able to see the annotated source code and the assembly side by
+side.
+
+#### Perf
+
+This wiki has a pretty detailed tutorial on getting started working with perf so we'll
+leave you to check that out of you're getting started:
+
+https://perf.wiki.kernel.org/index.php/Tutorial
+
+Some general notes on perf:
+* Use `perf stat -r # ` to quickly get some relevant timing and
+counter statistics. Perf uses a high resolution timer and this is likely one
+of the first things your team will run when assessing your PR.
+* Perf has a long list of hardware counters that can be viewed with `perf --list`.
+When measuring optimizations, something worth trying is to make sure the handware
+counters you expect to be impacted by your change are in fact being so. For example,
+if you expect the L1 cache misses to decrease with your change, you can look at the
+counter `L1-dcache-load-misses`
+* Perf hardware counters will not work on a virtual machine.
+
+#### Visual Studio
+
+TODO
+
+
+## Setting up continuous integration (CI) on your fork
+Zstd uses a number of different continuous integration (CI) tools to ensure that new changes
+are well tested before they make it to an official release. Specifically, we use the platforms
+travis-ci, circle-ci, and appveyor.
+
+Changes cannot be merged into the main dev branch unless they pass all of our CI tests.
+The easiest way to run these CI tests on your own before submitting a PR to our dev branch
+is to configure your personal fork of zstd with each of the CI platforms. Below, you'll find
+instructions for doing this.
+
+### travis-ci
+Follow these steps to link travis-ci with your github fork of zstd
+
+1. Make sure you are logged into your github account
+2. Go to https://travis-ci.org/
+3. Click 'Sign in with Github' on the top right
+4. Click 'Authorize travis-ci'
+5. Click 'Activate all repositories using Github Apps'
+6. Select 'Only select repositories' and select your fork of zstd from the drop down
+7. Click 'Approve and Install'
+8. Click 'Sign in with Github' again. This time, it will be for travis-pro (which will let you view your tests on the web dashboard)
+9. Click 'Authorize travis-pro'
+10. You should have travis set up on your fork now.
+
+### circle-ci
+TODO
+
+### appveyor
+Follow these steps to link circle-ci with your girhub fork of zstd
+
+1. Make sure you are logged into your github account
+2. Go to https://www.appveyor.com/
+3. Click 'Sign in' on the top right
+4. Select 'Github' on the left panel
+5. Click 'Authorize appveyor'
+6. You might be asked to select which repositories you want to give appveyor permission to. Select your fork of zstd if you're prompted
+7. You should have appveyor set up on your fork now.
+
+### General notes on CI
+CI tests run every time a pull request (PR) is created or updated. The exact tests
+that get run will depend on the destination branch you specify. Some tests take
+longer to run than others. Currently, our CI is set up to run a short
+series of tests when creating a PR to the dev branch and a longer series of tests
+when creating a PR to the release branch. You can look in the configuration files
+of the respective CI platform for more information on what gets run when.
+
+Most people will just want to create a PR with the destination set to their local dev
+branch of zstd. You can then find the status of the tests on the PR's page. You can also
+re-run tests and cancel running tests from the PR page or from the respective CI's dashboard.
+
+## Issues
+We use GitHub issues to track public bugs. Please ensure your description is
+clear and has sufficient instructions to be able to reproduce the issue.
+
+Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe
+disclosure of security bugs. In those cases, please go through the process
+outlined on that page and do not file a public issue.
+
+## Coding Style
+It's a pretty long topic, which is difficult to summarize in a single paragraph.
+As a rule of thumbs, try to imitate the coding style of
+similar lines of codes around your contribution.
+The following is a non-exhaustive list of rules employed in zstd code base:
+
+### C90
+This code base is following strict C90 standard,
+with 2 extensions : 64-bit `long long` types, and variadic macros.
+This rule is applied strictly to code within `lib/` and `programs/`.
+Sub-project in `contrib/` are allowed to use other conventions.
+
+### C++ direct compatibility : symbol mangling
+All public symbol declarations must be wrapped in `extern “C” { … }`,
+so that this project can be compiled as C++98 code,
+and linked into C++ applications.
+
+### Minimal Frugal
+This design requirement is fundamental to preserve the portability of the code base.
+#### Dependencies
+- Reduce dependencies to the minimum possible level.
+ Any dependency should be considered “bad” by default,
+ and only tolerated because it provides a service in a better way than can be achieved locally.
+ The only external dependencies this repository tolerates are
+ standard C libraries, and in rare cases, system level headers.
+- Within `lib/`, this policy is even more drastic.
+ The only external dependencies allowed are ``, ``, ``,
+ and even then, not directly.
+ In particular, no function shall ever allocate on heap directly,
+ and must use instead `ZSTD_malloc()` and equivalent.
+ Other accepted non-symbol headers are `` and ``.
+- Within the project, there is a strict hierarchy of dependencies that must be respected.
+ `programs/` is allowed to depend on `lib/`, but only its public API.
+ Within `lib/`, `lib/common` doesn't depend on any other directory.
+ `lib/compress` and `lib/decompress` shall not depend on each other.
+ `lib/dictBuilder` can depend on `lib/common` and `lib/compress`, but not `lib/decompress`.
+#### Resources
+- Functions in `lib/` must use very little stack space,
+ several dozens of bytes max.
+ Everything larger must use the heap allocator,
+ or require a scratch buffer to be emplaced manually.
+
+### Naming
+* All public symbols are prefixed with `ZSTD_`
+ + private symbols, with a scope limited to their own unit, are free of this restriction.
+ However, since `libzstd` source code can be amalgamated,
+ each symbol name must attempt to be (and remain) unique.
+ Avoid too generic names that could become ground for future collisions.
+ This generally implies usage of some form of prefix.
+* For symbols (functions and variables), naming convention is `PREFIX_camelCase`.
+ + In some advanced cases, one can also find :
+ - `PREFIX_prefix2_camelCase`
+ - `PREFIX_camelCase_extendedQualifier`
+* Multi-words names generally consist of an action followed by object:
+ - for example : `ZSTD_createCCtx()`
+* Prefer positive actions
+ - `goBackward` rather than `notGoForward`
+* Type names (`struct`, etc.) follow similar convention,
+ except that they are allowed and even invited to start by an Uppercase letter.
+ Example : `ZSTD_CCtx`, `ZSTD_CDict`
+* Macro names are all Capital letters.
+ The same composition rules (`PREFIX_NAME_QUALIFIER`) apply.
+* File names are all lowercase letters.
+ The convention is `snake_case`.
+ File names **must** be unique across the entire code base,
+ even when they stand in clearly separated directories.
+
+### Qualifiers
+* This code base is `const` friendly, if not `const` fanatical.
+ Any variable that can be `const` (aka. read-only) **must** be `const`.
+ Any pointer which content will not be modified must be `const`.
+ This property is then controlled at compiler level.
+ `const` variables are an important signal to readers that this variable isn’t modified.
+ Conversely, non-const variables are a signal to readers to watch out for modifications later on in the function.
+* If a function must be inlined, mention it explicitly,
+ using project's own portable macros, such as `FORCE_INLINE_ATTR`,
+ defined in `lib/common/compiler.h`.
+
+### Debugging
+* **Assertions** are welcome, and should be used very liberally,
+ to control any condition the code expects for its correct execution.
+ These assertion checks will be run in debug builds, and disabled in production.
+* For traces, this project provides its own debug macros,
+ in particular `DEBUGLOG(level, ...)`, defined in `lib/common/debug.h`.
+
+### Code documentation
+* Avoid code documentation that merely repeats what the code is already stating.
+ Whenever applicable, prefer employing the code as the primary way to convey explanations.
+ Example 1 : `int nbTokens = n;` instead of `int i = n; /* i is a nb of tokens *./`.
+ Example 2 : `assert(size > 0);` instead of `/* here, size should be positive */`.
+* At declaration level, the documentation explains how to use the function or variable
+ and when applicable why it's needed, of the scenarios where it can be useful.
+* At implementation level, the documentation explains the general outline of the algorithm employed,
+ and when applicable why this specific choice was preferred.
+
+### General layout
+* 4 spaces for indentation rather than tabs
+* Code documentation shall directly precede function declaration or implementation
+* Function implementations and its code documentation should be preceded and followed by an empty line
+
+
+## License
+By contributing to Zstandard, you agree that your contributions will be licensed
+under both the [LICENSE](LICENSE) file and the [COPYING](COPYING) file in the root directory of this source tree.
diff --git a/dependencies/zstd-1.5.0/COPYING b/dependencies/zstd-1.5.0/COPYING
new file mode 100644
index 0000000..ecbc059
--- /dev/null
+++ b/dependencies/zstd-1.5.0/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
\ No newline at end of file
diff --git a/dependencies/zstd-1.5.0/LICENSE b/dependencies/zstd-1.5.0/LICENSE
new file mode 100644
index 0000000..a793a80
--- /dev/null
+++ b/dependencies/zstd-1.5.0/LICENSE
@@ -0,0 +1,30 @@
+BSD License
+
+For Zstandard software
+
+Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ * Neither the name Facebook nor the names of its contributors may be used to
+ endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/dependencies/zstd-1.5.0/Makefile b/dependencies/zstd-1.5.0/Makefile
new file mode 100644
index 0000000..c1908f0
--- /dev/null
+++ b/dependencies/zstd-1.5.0/Makefile
@@ -0,0 +1,420 @@
+# ################################################################
+# Copyright (c) 2015-2021, Yann Collet, Facebook, Inc.
+# All rights reserved.
+#
+# This source code is licensed under both the BSD-style license (found in the
+# LICENSE file in the root directory of this source tree) and the GPLv2 (found
+# in the COPYING file in the root directory of this source tree).
+# You may select, at your option, one of the above-listed licenses.
+# ################################################################
+
+# verbose mode (print commands) on V=1 or VERBOSE=1
+Q = $(if $(filter 1,$(V) $(VERBOSE)),,@)
+
+PRGDIR = programs
+ZSTDDIR = lib
+BUILDIR = build
+ZWRAPDIR = zlibWrapper
+TESTDIR = tests
+FUZZDIR = $(TESTDIR)/fuzz
+
+# Define nul output
+VOID = /dev/null
+
+# When cross-compiling from linux to windows, you might
+# need to specify this as "Windows." Fedora build fails
+# without it.
+#
+# Note: mingw-w64 build from linux to windows does not
+# fail on other tested distros (ubuntu, debian) even
+# without manually specifying the TARGET_SYSTEM.
+TARGET_SYSTEM ?= $(OS)
+
+ifneq (,$(filter Windows%,$(TARGET_SYSTEM)))
+ EXT =.exe
+else
+ EXT =
+endif
+
+## default: Build lib-release and zstd-release
+.PHONY: default
+default: lib-release zstd-release
+
+.PHONY: all
+all: allmost examples manual contrib
+
+.PHONY: allmost
+allmost: allzstd zlibwrapper
+
+# skip zwrapper, can't build that on alternate architectures without the proper zlib installed
+.PHONY: allzstd
+allzstd: lib
+ $(Q)$(MAKE) -C $(PRGDIR) all
+ $(Q)$(MAKE) -C $(TESTDIR) all
+
+.PHONY: all32
+all32:
+ $(MAKE) -C $(PRGDIR) zstd32
+ $(MAKE) -C $(TESTDIR) all32
+
+.PHONY: lib lib-release lib-mt lib-nomt
+lib lib-release lib-mt lib-nomt:
+ $(Q)$(MAKE) -C $(ZSTDDIR) $@
+
+.PHONY: zstd zstd-release
+zstd zstd-release:
+ $(Q)$(MAKE) -C $(PRGDIR) $@
+ $(Q)ln -sf $(PRGDIR)/zstd$(EXT) zstd$(EXT)
+
+.PHONY: zstdmt
+zstdmt:
+ $(Q)$(MAKE) -C $(PRGDIR) $@
+ $(Q)cp $(PRGDIR)/zstd$(EXT) ./zstdmt$(EXT)
+
+.PHONY: zlibwrapper
+zlibwrapper: lib
+ $(MAKE) -C $(ZWRAPDIR) all
+
+## test: run long-duration tests
+.PHONY: test
+DEBUGLEVEL ?= 1
+test: MOREFLAGS += -g -Werror
+test:
+ DEBUGLEVEL=$(DEBUGLEVEL) MOREFLAGS="$(MOREFLAGS)" $(MAKE) -j -C $(PRGDIR) allVariants
+ $(MAKE) -C $(TESTDIR) $@
+ ZSTD=../../programs/zstd $(MAKE) -C doc/educational_decoder $@
+
+## shortest: same as `make check`
+.PHONY: shortest
+shortest:
+ $(Q)$(MAKE) -C $(TESTDIR) $@
+
+## check: run basic tests for `zstd` cli
+.PHONY: check
+check: shortest
+
+.PHONY: automated_benchmarking
+automated_benchmarking:
+ $(MAKE) -C $(TESTDIR) $@
+
+.PHONY: benchmarking
+benchmarking: automated_benchmarking
+
+## examples: build all examples in `examples/` directory
+.PHONY: examples
+examples: lib
+ $(MAKE) -C examples all
+
+## manual: generate API documentation in html format
+.PHONY: manual
+manual:
+ $(MAKE) -C contrib/gen_html $@
+
+## man: generate man page
+.PHONY: man
+man:
+ $(MAKE) -C programs $@
+
+## contrib: build all supported projects in `/contrib` directory
+.PHONY: contrib
+contrib: lib
+ $(MAKE) -C contrib/pzstd all
+ $(MAKE) -C contrib/seekable_format/examples all
+ $(MAKE) -C contrib/seekable_format/tests test
+ $(MAKE) -C contrib/largeNbDicts all
+ cd build/single_file_libs/ ; ./build_decoder_test.sh
+ cd build/single_file_libs/ ; ./build_library_test.sh
+
+.PHONY: cleanTabs
+cleanTabs:
+ cd contrib; ./cleanTabs
+
+.PHONY: clean
+clean:
+ $(Q)$(MAKE) -C $(ZSTDDIR) $@ > $(VOID)
+ $(Q)$(MAKE) -C $(PRGDIR) $@ > $(VOID)
+ $(Q)$(MAKE) -C $(TESTDIR) $@ > $(VOID)
+ $(Q)$(MAKE) -C $(ZWRAPDIR) $@ > $(VOID)
+ $(Q)$(MAKE) -C examples/ $@ > $(VOID)
+ $(Q)$(MAKE) -C contrib/gen_html $@ > $(VOID)
+ $(Q)$(MAKE) -C contrib/pzstd $@ > $(VOID)
+ $(Q)$(MAKE) -C contrib/seekable_format/examples $@ > $(VOID)
+ $(Q)$(MAKE) -C contrib/seekable_format/tests $@ > $(VOID)
+ $(Q)$(MAKE) -C contrib/largeNbDicts $@ > $(VOID)
+ $(Q)$(RM) zstd$(EXT) zstdmt$(EXT) tmp*
+ $(Q)$(RM) -r lz4
+ @echo Cleaning completed
+
+#------------------------------------------------------------------------------
+# make install is validated only for Linux, macOS, Hurd and some BSD targets
+#------------------------------------------------------------------------------
+ifneq (,$(filter $(shell uname),Linux Darwin GNU/kFreeBSD GNU OpenBSD FreeBSD DragonFly NetBSD MSYS_NT Haiku))
+
+HOST_OS = POSIX
+
+HAVE_COLORNEVER = $(shell echo a | egrep --color=never a > /dev/null 2> /dev/null && echo 1 || echo 0)
+EGREP_OPTIONS ?=
+ifeq ($HAVE_COLORNEVER, 1)
+EGREP_OPTIONS += --color=never
+endif
+EGREP = egrep $(EGREP_OPTIONS)
+
+# Print a two column output of targets and their description. To add a target description, put a
+# comment in the Makefile with the format "## : ". For example:
+#
+## list: Print all targets and their descriptions (if provided)
+.PHONY: list
+list:
+ $(Q)TARGETS=$$($(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null \
+ | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' \
+ | $(EGREP) -v -e '^[^[:alnum:]]' | sort); \
+ { \
+ printf "Target Name\tDescription\n"; \
+ printf "%0.s-" {1..16}; printf "\t"; printf "%0.s-" {1..40}; printf "\n"; \
+ for target in $$TARGETS; do \
+ line=$$($(EGREP) "^##[[:space:]]+$$target:" $(lastword $(MAKEFILE_LIST))); \
+ description=$$(echo $$line | awk '{i=index($$0,":"); print substr($$0,i+1)}' | xargs); \
+ printf "$$target\t$$description\n"; \
+ done \
+ } | column -t -s $$'\t'
+
+.PHONY: install armtest usan asan uasan msan asan32
+install:
+ $(Q)$(MAKE) -C $(ZSTDDIR) $@
+ $(Q)$(MAKE) -C $(PRGDIR) $@
+
+.PHONY: uninstall
+uninstall:
+ $(Q)$(MAKE) -C $(ZSTDDIR) $@
+ $(Q)$(MAKE) -C $(PRGDIR) $@
+
+.PHONY: travis-install
+travis-install:
+ $(MAKE) install PREFIX=~/install_test_dir
+
+.PHONY: gcc5build gcc6build gcc7build clangbuild m32build armbuild aarch64build ppcbuild ppc64build
+gcc5build: clean
+ gcc-5 -v
+ CC=gcc-5 $(MAKE) all MOREFLAGS="-Werror"
+
+gcc6build: clean
+ gcc-6 -v
+ CC=gcc-6 $(MAKE) all MOREFLAGS="-Werror"
+
+gcc7build: clean
+ gcc-7 -v
+ CC=gcc-7 $(MAKE) all MOREFLAGS="-Werror"
+
+clangbuild: clean
+ clang -v
+ CXX=clang++ CC=clang CFLAGS="-Werror -Wconversion -Wno-sign-conversion -Wdocumentation" $(MAKE) all
+
+m32build: clean
+ gcc -v
+ $(MAKE) all32
+
+armbuild: clean
+ CC=arm-linux-gnueabi-gcc CFLAGS="-Werror" $(MAKE) allzstd
+
+aarch64build: clean
+ CC=aarch64-linux-gnu-gcc CFLAGS="-Werror" $(MAKE) allzstd
+
+ppcbuild: clean
+ CC=powerpc-linux-gnu-gcc CFLAGS="-m32 -Wno-attributes -Werror" $(MAKE) -j allzstd
+
+ppc64build: clean
+ CC=powerpc-linux-gnu-gcc CFLAGS="-m64 -Werror" $(MAKE) -j allzstd
+
+.PHONY: armfuzz aarch64fuzz ppcfuzz ppc64fuzz
+armfuzz: clean
+ CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static MOREFLAGS="-static" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) fuzztest
+
+aarch64fuzz: clean
+ ld -v
+ CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static MOREFLAGS="-static" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) fuzztest
+
+ppcfuzz: clean
+ CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static MOREFLAGS="-static" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) fuzztest
+
+ppc64fuzz: clean
+ CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static MOREFLAGS="-m64 -static" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) fuzztest
+
+.PHONY: cxxtest gcc5test gcc6test armtest aarch64test ppctest ppc64test
+cxxtest: CXXFLAGS += -Wall -Wextra -Wundef -Wshadow -Wcast-align -Werror
+cxxtest: clean
+ $(MAKE) -C $(PRGDIR) all CC="$(CXX) -Wno-deprecated" CFLAGS="$(CXXFLAGS)" # adding -Wno-deprecated to avoid clang++ warning on dealing with C files directly
+
+gcc5test: clean
+ gcc-5 -v
+ $(MAKE) all CC=gcc-5 MOREFLAGS="-Werror"
+
+gcc6test: clean
+ gcc-6 -v
+ $(MAKE) all CC=gcc-6 MOREFLAGS="-Werror"
+
+armtest: clean
+ $(MAKE) -C $(TESTDIR) datagen # use native, faster
+ $(MAKE) -C $(TESTDIR) test CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static ZSTDRTTEST= MOREFLAGS="-Werror -static" FUZZER_FLAGS=--no-big-tests
+
+aarch64test:
+ $(MAKE) -C $(TESTDIR) datagen # use native, faster
+ $(MAKE) -C $(TESTDIR) test CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static ZSTDRTTEST= MOREFLAGS="-Werror -static" FUZZER_FLAGS=--no-big-tests
+
+ppctest: clean
+ $(MAKE) -C $(TESTDIR) datagen # use native, faster
+ $(MAKE) -C $(TESTDIR) test CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static ZSTDRTTEST= MOREFLAGS="-Werror -Wno-attributes -static" FUZZER_FLAGS=--no-big-tests
+
+ppc64test: clean
+ $(MAKE) -C $(TESTDIR) datagen # use native, faster
+ $(MAKE) -C $(TESTDIR) test CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static ZSTDRTTEST= MOREFLAGS="-m64 -static" FUZZER_FLAGS=--no-big-tests
+
+.PHONY: arm-ppc-compilation
+arm-ppc-compilation:
+ $(MAKE) -C $(PRGDIR) clean zstd CC=arm-linux-gnueabi-gcc QEMU_SYS=qemu-arm-static ZSTDRTTEST= MOREFLAGS="-Werror -static"
+ $(MAKE) -C $(PRGDIR) clean zstd CC=aarch64-linux-gnu-gcc QEMU_SYS=qemu-aarch64-static ZSTDRTTEST= MOREFLAGS="-Werror -static"
+ $(MAKE) -C $(PRGDIR) clean zstd CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc-static ZSTDRTTEST= MOREFLAGS="-Werror -Wno-attributes -static"
+ $(MAKE) -C $(PRGDIR) clean zstd CC=powerpc-linux-gnu-gcc QEMU_SYS=qemu-ppc64-static ZSTDRTTEST= MOREFLAGS="-m64 -static"
+
+regressiontest:
+ $(MAKE) -C $(FUZZDIR) regressiontest
+
+uasanregressiontest:
+ $(MAKE) -C $(FUZZDIR) regressiontest CC=clang CXX=clang++ CFLAGS="-O3 -fsanitize=address,undefined" CXXFLAGS="-O3 -fsanitize=address,undefined"
+
+msanregressiontest:
+ $(MAKE) -C $(FUZZDIR) regressiontest CC=clang CXX=clang++ CFLAGS="-O3 -fsanitize=memory" CXXFLAGS="-O3 -fsanitize=memory"
+
+# run UBsan with -fsanitize-recover=pointer-overflow
+# this only works with recent compilers such as gcc 8+
+usan: clean
+ $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=pointer-overflow -fsanitize=undefined -Werror"
+
+asan: clean
+ $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address -Werror"
+
+asan-%: clean
+ LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=address -Werror" $(MAKE) -C $(TESTDIR) $*
+
+msan: clean
+ $(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=memory -fno-omit-frame-pointer -Werror" HAVE_LZMA=0 # datagen.c fails this test for no obvious reason
+
+msan-%: clean
+ LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=memory -fno-omit-frame-pointer -Werror" FUZZER_FLAGS=--no-big-tests $(MAKE) -C $(TESTDIR) HAVE_LZMA=0 $*
+
+asan32: clean
+ $(MAKE) -C $(TESTDIR) test32 CC=clang MOREFLAGS="-g -fsanitize=address"
+
+uasan: clean
+ $(MAKE) test CC=clang MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=pointer-overflow -fsanitize=address,undefined -Werror"
+
+uasan-%: clean
+ LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize-recover=pointer-overflow -fsanitize=address,undefined -Werror" $(MAKE) -C $(TESTDIR) $*
+
+tsan-%: clean
+ LDFLAGS=-fuse-ld=gold MOREFLAGS="-g -fno-sanitize-recover=all -fsanitize=thread -Werror" $(MAKE) -C $(TESTDIR) $* FUZZER_FLAGS=--no-big-tests
+
+.PHONY: apt-install
+apt-install:
+ sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install $(APT_PACKAGES)
+
+.PHONY: apt-add-repo
+apt-add-repo:
+ sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
+ sudo apt-get update -y -qq
+
+.PHONY: ppcinstall arminstall valgrindinstall libc6install gcc6install gcc7install gcc8install gpp6install clang38install lz4install
+ppcinstall:
+ APT_PACKAGES="qemu-system-ppc qemu-user-static gcc-powerpc-linux-gnu" $(MAKE) apt-install
+
+arminstall:
+ APT_PACKAGES="qemu-system-arm qemu-user-static gcc-arm-linux-gnueabi libc6-dev-armel-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross" $(MAKE) apt-install
+
+valgrindinstall:
+ APT_PACKAGES="valgrind" $(MAKE) apt-install
+
+libc6install:
+ APT_PACKAGES="libc6-dev-i386 gcc-multilib" $(MAKE) apt-install
+
+gcc6install: apt-add-repo
+ APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-6 gcc-6-multilib" $(MAKE) apt-install
+
+gcc7install: apt-add-repo
+ APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-7 gcc-7-multilib" $(MAKE) apt-install
+
+gcc8install: apt-add-repo
+ APT_PACKAGES="libc6-dev-i386 gcc-multilib gcc-8 gcc-8-multilib" $(MAKE) apt-install
+
+gpp6install: apt-add-repo
+ APT_PACKAGES="libc6-dev-i386 g++-multilib gcc-6 g++-6 g++-6-multilib" $(MAKE) apt-install
+
+clang38install:
+ APT_PACKAGES="clang-3.8" $(MAKE) apt-install
+
+# Ubuntu 14.04 ships a too-old lz4
+lz4install:
+ [ -e lz4 ] || git clone https://github.com/lz4/lz4 && sudo $(MAKE) -C lz4 install
+
+endif
+
+
+CMAKE_PARAMS = -DZSTD_BUILD_CONTRIB:BOOL=ON -DZSTD_BUILD_STATIC:BOOL=ON -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_ZLIB_SUPPORT:BOOL=ON -DZSTD_LZMA_SUPPORT:BOOL=ON -DCMAKE_BUILD_TYPE=Release
+
+ifneq (,$(filter MSYS%,$(shell uname)))
+HOST_OS = MSYS
+CMAKE_PARAMS = -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -DZSTD_MULTITHREAD_SUPPORT:BOOL=OFF -DZSTD_BUILD_STATIC:BOOL=ON -DZSTD_BUILD_TESTS:BOOL=ON
+endif
+
+#------------------------------------------------------------------------
+# target specific tests
+#------------------------------------------------------------------------
+ifneq (,$(filter $(HOST_OS),MSYS POSIX))
+.PHONY: cmakebuild c89build gnu90build c99build gnu99build c11build bmix64build bmix32build bmi32build staticAnalyze
+cmakebuild:
+ cmake --version
+ $(RM) -r $(BUILDIR)/cmake/build
+ mkdir $(BUILDIR)/cmake/build
+ cd $(BUILDIR)/cmake/build; cmake -DCMAKE_INSTALL_PREFIX:PATH=~/install_test_dir $(CMAKE_PARAMS) ..
+ $(MAKE) -C $(BUILDIR)/cmake/build -j4;
+ $(MAKE) -C $(BUILDIR)/cmake/build install;
+ $(MAKE) -C $(BUILDIR)/cmake/build uninstall;
+ cd $(BUILDIR)/cmake/build; ctest -V -L Medium
+
+c89build: clean
+ $(CC) -v
+ CFLAGS="-std=c89 -Werror" $(MAKE) allmost # will fail, due to missing support for `long long`
+
+gnu90build: clean
+ $(CC) -v
+ CFLAGS="-std=gnu90 -Werror" $(MAKE) allmost
+
+c99build: clean
+ $(CC) -v
+ CFLAGS="-std=c99 -Werror" $(MAKE) allmost
+
+gnu99build: clean
+ $(CC) -v
+ CFLAGS="-std=gnu99 -Werror" $(MAKE) allmost
+
+c11build: clean
+ $(CC) -v
+ CFLAGS="-std=c11 -Werror" $(MAKE) allmost
+
+bmix64build: clean
+ $(CC) -v
+ CFLAGS="-O3 -mbmi -Werror" $(MAKE) -C $(TESTDIR) test
+
+bmix32build: clean
+ $(CC) -v
+ CFLAGS="-O3 -mbmi -mx32 -Werror" $(MAKE) -C $(TESTDIR) test
+
+bmi32build: clean
+ $(CC) -v
+ CFLAGS="-O3 -mbmi -m32 -Werror" $(MAKE) -C $(TESTDIR) test
+
+# static analyzer test uses clang's scan-build
+# does not analyze zlibWrapper, due to detected issues in zlib source code
+staticAnalyze: SCANBUILD ?= scan-build
+staticAnalyze:
+ $(CC) -v
+ CC=$(CC) CPPFLAGS=-g $(SCANBUILD) --status-bugs -v $(MAKE) allzstd examples contrib
+endif
diff --git a/dependencies/zstd-1.5.0/README.md b/dependencies/zstd-1.5.0/README.md
new file mode 100644
index 0000000..dcca766
--- /dev/null
+++ b/dependencies/zstd-1.5.0/README.md
@@ -0,0 +1,199 @@
+
` header for the first line
+- comments of type `/*=` and `/**=` mean: use a `
` header and show also all functions until first empty line
+- comments of type `/*X` where `X` is different from above-mentioned are ignored
+
+Moreover:
+- `ZSTDLIB_API` is removed to improve readability
+- `typedef` are detected and included even if uncommented
+- comments of type `/**<` and `/*!<` are detected and only function declaration is highlighted (bold)
+
+
+#### Usage
+
+The program requires 3 parameters:
+```
+gen_html [zstd_version] [input_file] [output_html]
+```
+
+To compile program and generate zstd manual we have used:
+```
+make
+./gen_html.exe 1.1.1 ../../lib/zstd.h zstd_manual.html
+```
diff --git a/dependencies/zstd-1.5.0/contrib/gen_html/gen-zstd-manual.sh b/dependencies/zstd-1.5.0/contrib/gen_html/gen-zstd-manual.sh
new file mode 100755
index 0000000..57a8b6e
--- /dev/null
+++ b/dependencies/zstd-1.5.0/contrib/gen_html/gen-zstd-manual.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+LIBVER_MAJOR_SCRIPT=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ../../lib/zstd.h`
+LIBVER_MINOR_SCRIPT=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ../../lib/zstd.h`
+LIBVER_PATCH_SCRIPT=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < ../../lib/zstd.h`
+LIBVER_SCRIPT=$LIBVER_MAJOR_SCRIPT.$LIBVER_MINOR_SCRIPT.$LIBVER_PATCH_SCRIPT
+
+echo ZSTD_VERSION=$LIBVER_SCRIPT
+./gen_html $LIBVER_SCRIPT ../../lib/zstd.h ./zstd_manual.html
diff --git a/dependencies/zstd-1.5.0/contrib/gen_html/gen_html.cpp b/dependencies/zstd-1.5.0/contrib/gen_html/gen_html.cpp
new file mode 100644
index 0000000..90d5b21
--- /dev/null
+++ b/dependencies/zstd-1.5.0/contrib/gen_html/gen_html.cpp
@@ -0,0 +1,224 @@
+/*
+ * Copyright (c) 2016-present, Przemyslaw Skibinski, Facebook, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under both the BSD-style license (found in the
+ * LICENSE file in the root directory of this source tree) and the GPLv2 (found
+ * in the COPYING file in the root directory of this source tree).
+ */
+
+#include
+#include
+#include
+#include
+using namespace std;
+
+
+/* trim string at the beginning and at the end */
+void trim(string& s, string characters)
+{
+ size_t p = s.find_first_not_of(characters);
+ s.erase(0, p);
+
+ p = s.find_last_not_of(characters);
+ if (string::npos != p)
+ s.erase(p+1);
+}
+
+
+/* trim C++ style comments */
+void trim_comments(string &s)
+{
+ size_t spos, epos;
+
+ spos = s.find("/*");
+ epos = s.find("*/");
+ s = s.substr(spos+3, epos-(spos+3));
+}
+
+
+/* get lines until a given terminator */
+vector get_lines(vector& input, int& linenum, string terminator)
+{
+ vector out;
+ string line;
+ size_t epos;
+
+ while ((size_t)linenum < input.size()) {
+ line = input[linenum];
+
+ if (terminator.empty() && line.empty()) { linenum--; break; }
+
+ epos = line.find(terminator);
+ if (!terminator.empty() && epos!=string::npos) {
+ out.push_back(line);
+ break;
+ }
+ out.push_back(line);
+ linenum++;
+ }
+ return out;
+}
+
+
+/* print line with ZSTDLIB_API removed and C++ comments not bold */
+void print_line(stringstream &sout, string line)
+{
+ size_t spos;
+
+ if (line.substr(0,12) == "ZSTDLIB_API ") line = line.substr(12);
+ spos = line.find("/*");
+ if (spos!=string::npos) {
+ sout << line.substr(0, spos);
+ sout << "
" << endl;
+ continue;
+ }
+
+ /* comments of type /**< and /*!< are detected and only function declaration is highlighted (bold) */
+ if ((line.find("/**<")!=string::npos || line.find("/*!<")!=string::npos) && line.find("*/")!=string::npos) {
+ sout << "
";
+ print_line(sout, line);
+ sout << "
" << endl;
+ continue;
+ }
+
+ spos = line.find("/**=");
+ if (spos==string::npos) {
+ spos = line.find("/*!");
+ if (spos==string::npos)
+ spos = line.find("/**");
+ if (spos==string::npos)
+ spos = line.find("/*-");
+ if (spos==string::npos)
+ spos = line.find("/*=");
+ if (spos==string::npos)
+ continue;
+ exclam = line[spos+2];
+ }
+ else exclam = '=';
+
+ comments = get_lines(input, linenum, "*/");
+ if (!comments.empty()) comments[0] = line.substr(spos+3);
+ if (!comments.empty()) comments[comments.size()-1] = comments[comments.size()-1].substr(0, comments[comments.size()-1].find("*/"));
+ for (l=0; l";
+ for (l=0; l
";
+ for (l=0; l " << endl << endl;
+ } else if (exclam == '=') { /* comments of type /*= and /**= mean: use a
header and show also all functions until first empty line */
+ trim(comments[0], " ");
+ sout << "
" << comments[0] << "
";
+ for (l=1; l
";
+ lines = get_lines(input, ++linenum, "");
+ for (l=0; l
" << endl;
+ } else { /* comments of type /** and /*- mean: this is a comment; use a
header for the first line */
+ if (comments.empty()) continue;
+
+ trim(comments[0], " ");
+ sout << "
" << comments[0] << "
";
+ chapters.push_back(comments[0]);
+ chapter++;
+
+ for (l=1; l 1)
+ sout << "