pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/archivers
Module Name: pkgsrc
Committed By: adam
Date: Mon Apr 28 10:31:35 UTC 2025
Modified Files:
pkgsrc/archivers/bsdtar: Makefile
pkgsrc/archivers/libarchive: Makefile Makefile.common
pkgsrc/archivers/libarchive/files: CMakeLists.txt Makefile.am
Makefile.in NEWS config.h.in configure configure.ac
pkgsrc/archivers/libarchive/files/build: version
pkgsrc/archivers/libarchive/files/build/cmake: config.h.in
pkgsrc/archivers/libarchive/files/cat/test: CMakeLists.txt
pkgsrc/archivers/libarchive/files/cpio: cpio.c cpio_windows.c
pkgsrc/archivers/libarchive/files/cpio/test: CMakeLists.txt
test_format_newc.c test_option_c.c
pkgsrc/archivers/libarchive/files/doc/html: archive_entry.3.html
archive_entry_acl.3.html archive_entry_linkify.3.html
archive_entry_misc.3.html archive_entry_paths.3.html
archive_entry_perms.3.html archive_entry_stat.3.html
archive_entry_time.3.html archive_read.3.html
archive_read_add_passphrase.3.html archive_read_data.3.html
archive_read_disk.3.html archive_read_extract.3.html
archive_read_filter.3.html archive_read_format.3.html
archive_read_free.3.html archive_read_header.3.html
archive_read_new.3.html archive_read_open.3.html
archive_read_set_options.3.html archive_util.3.html
archive_write.3.html archive_write_blocksize.3.html
archive_write_data.3.html archive_write_disk.3.html
archive_write_filter.3.html archive_write_finish_entry.3.html
archive_write_format.3.html archive_write_free.3.html
archive_write_header.3.html archive_write_new.3.html
archive_write_open.3.html archive_write_set_options.3.html
archive_write_set_passphrase.3.html bsdcpio.1.html bsdtar.1.html
cpio.5.html libarchive-formats.5.html libarchive.3.html
libarchive_changes.3.html libarchive_internals.3.html mtree.5.html
tar.5.html
pkgsrc/archivers/libarchive/files/doc/man: bsdtar.1
pkgsrc/archivers/libarchive/files/doc/pdf: 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 bsdcpio.1.pdf bsdtar.1.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
pkgsrc/archivers/libarchive/files/doc/text: bsdtar.1.txt
pkgsrc/archivers/libarchive/files/doc/wiki: ManPageBsdtar1.wiki
pkgsrc/archivers/libarchive/files/libarchive: archive.h
archive_digest.c archive_entry.h archive_platform.h archive_ppmd7.c
archive_ppmd_private.h archive_read_append_filter.c
archive_read_disk_entry_from_file.c archive_read_open_file.c
archive_read_open_filename.c archive_read_support_filter_lz4.c
archive_read_support_format_7zip.c
archive_read_support_format_by_code.c
archive_read_support_format_iso9660.c
archive_read_support_format_rar.c
archive_read_support_format_rar5.c
archive_read_support_format_tar.c archive_read_support_format_xar.c
archive_read_support_format_zip.c archive_string.c
archive_write_add_filter_b64encode.c
archive_write_add_filter_uuencode.c archive_write_disk_posix.c
archive_write_disk_windows.c archive_write_open_filename.c
archive_write_set_format_iso9660.c archive_write_set_format_mtree.c
archive_write_set_format_zip.c config_freebsd.h
pkgsrc/archivers/libarchive/files/libarchive/test: CMakeLists.txt
list.h test_acl_pax.c test_acl_platform_nfs4.c
test_acl_platform_posix1e.c test_acl_posix1e.c
test_compat_solaris_tar_acl.c test_open_file.c
test_read_format_7zip.c test_read_format_gtar_sparse.c
test_read_format_rar5.c test_read_position.c test_sparse_basic.c
test_write_disk_perms.c test_write_format_tar_sparse.c
pkgsrc/archivers/libarchive/files/libarchive_fe: passphrase.c
pkgsrc/archivers/libarchive/files/tar: bsdtar.1 bsdtar.c subst.c util.c
pkgsrc/archivers/libarchive/files/tar/test: CMakeLists.txt list.h
test_option_s.c test_stdio.c
pkgsrc/archivers/libarchive/files/test_utils: test_main.c
pkgsrc/archivers/libarchive/files/unzip: bsdunzip.c
Removed Files:
pkgsrc/archivers/libarchive/files/tar/test: test_option_P.c
Log Message:
bsdtar libarchive: updated to 3.7.9
3.7.9
Important bugfixes:
a regression in libarchive 3.7.8 regarding GNU sparse entries was fixed
3.7.8
Security fixes:
tar reader: Handle truncation in the middle of a GNU long linkname
unzip: fix null pointer dereference
tar reader: fix unchecked return value in list_item_verbose()
Important bugfixes:
7zip reader: add SPARC
tar reader: Ignore ustar size when pax size is present
tar writer: Fix bug when -s/a/b/ used more than once with b flag
cpio: Fix a Y2038 bug on Windows
libarchive: Handle ARCHIVE_FILTER_LZOP in archive_read_append_filter
libarchive: Adding missing seeker function to archive_read_open_FILE()
To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 pkgsrc/archivers/bsdtar/Makefile
cvs rdiff -u -r1.55 -r1.56 pkgsrc/archivers/libarchive/Makefile
cvs rdiff -u -r1.19 -r1.20 pkgsrc/archivers/libarchive/Makefile.common
cvs rdiff -u -r1.14 -r1.15 pkgsrc/archivers/libarchive/files/CMakeLists.txt
cvs rdiff -u -r1.17 -r1.18 pkgsrc/archivers/libarchive/files/Makefile.am
cvs rdiff -u -r1.19 -r1.20 pkgsrc/archivers/libarchive/files/Makefile.in \
pkgsrc/archivers/libarchive/files/config.h.in
cvs rdiff -u -r1.18 -r1.19 pkgsrc/archivers/libarchive/files/NEWS
cvs rdiff -u -r1.27 -r1.28 pkgsrc/archivers/libarchive/files/configure
cvs rdiff -u -r1.26 -r1.27 pkgsrc/archivers/libarchive/files/configure.ac
cvs rdiff -u -r1.13 -r1.14 pkgsrc/archivers/libarchive/files/build/version
cvs rdiff -u -r1.13 -r1.14 \
pkgsrc/archivers/libarchive/files/build/cmake/config.h.in
cvs rdiff -u -r1.3 -r1.4 \
pkgsrc/archivers/libarchive/files/cat/test/CMakeLists.txt
cvs rdiff -u -r1.14 -r1.15 pkgsrc/archivers/libarchive/files/cpio/cpio.c
cvs rdiff -u -r1.5 -r1.6 \
pkgsrc/archivers/libarchive/files/cpio/cpio_windows.c
cvs rdiff -u -r1.8 -r1.9 \
pkgsrc/archivers/libarchive/files/cpio/test/CMakeLists.txt
cvs rdiff -u -r1.9 -r1.10 \
pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c
cvs rdiff -u -r1.10 -r1.11 \
pkgsrc/archivers/libarchive/files/cpio/test/test_option_c.c
cvs rdiff -u -r1.13 -r1.14 \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html \
pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html \
pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html \
pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html \
pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html \
pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html \
pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html \
pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html \
pkgsrc/archivers/libarchive/files/doc/html/tar.5.html
cvs rdiff -u -r1.12 -r1.13 \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html \
pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html
cvs rdiff -u -r1.7 -r1.8 \
pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html
cvs rdiff -u -r1.9 -r1.10 \
pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html \
pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html
cvs rdiff -u -r1.14 -r1.15 pkgsrc/archivers/libarchive/files/doc/man/bsdtar.1
cvs rdiff -u -r1.13 -r1.14 \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_disk.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_util.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_disk.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/bsdcpio.1.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/bsdtar.1.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/cpio.5.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/libarchive-formats.5.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/libarchive.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/libarchive_internals.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/mtree.5.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/tar.5.pdf
cvs rdiff -u -r1.12 -r1.13 \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_acl.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_linkify.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_paths.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_perms.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_stat.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_time.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_data.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_extract.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_filter.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_format.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_free.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_header.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_new.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_open.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_set_options.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_blocksize.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_data.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_filter.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_finish_entry.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_format.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_free.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_header.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_new.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_open.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_options.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/libarchive_changes.3.pdf
cvs rdiff -u -r1.7 -r1.8 \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_misc.3.pdf
cvs rdiff -u -r1.9 -r1.10 \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_add_passphrase.3.pdf \
pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_passphrase.3.pdf
cvs rdiff -u -r1.12 -r1.13 \
pkgsrc/archivers/libarchive/files/doc/text/bsdtar.1.txt
cvs rdiff -u -r1.11 -r1.12 \
pkgsrc/archivers/libarchive/files/doc/wiki/ManPageBsdtar1.wiki
cvs rdiff -u -r1.19 -r1.20 \
pkgsrc/archivers/libarchive/files/libarchive/archive.h
cvs rdiff -u -r1.3 -r1.4 \
pkgsrc/archivers/libarchive/files/libarchive/archive_digest.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd_private.h
cvs rdiff -u -r1.15 -r1.16 \
pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h \
pkgsrc/archivers/libarchive/files/libarchive/archive_platform.h \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c
cvs rdiff -u -r1.6 -r1.7 \
pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd7.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c
cvs rdiff -u -r1.8 -r1.9 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_open_filename.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c
cvs rdiff -u -r1.17 -r1.18 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_entry_from_file.c
cvs rdiff -u -r1.9 -r1.10 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c
cvs rdiff -u -r1.10 -r1.11 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c \
pkgsrc/archivers/libarchive/files/libarchive/config_freebsd.h
cvs rdiff -u -r1.5 -r1.6 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c
cvs rdiff -u -r1.11 -r1.12 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c
cvs rdiff -u -r1.4 -r1.5 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_by_code.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c
cvs rdiff -u -r1.12 -r1.13 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c
cvs rdiff -u -r1.16 -r1.17 \
pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c
cvs rdiff -u -r1.13 -r1.14 \
pkgsrc/archivers/libarchive/files/libarchive/archive_string.c
cvs rdiff -u -r1.14 -r1.15 \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c
cvs rdiff -u -r1.7 -r1.8 \
pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c
cvs rdiff -u -r1.13 -r1.14 \
pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt
cvs rdiff -u -r1.15 -r1.16 \
pkgsrc/archivers/libarchive/files/libarchive/test/list.h
cvs rdiff -u -r1.6 -r1.7 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_pax.c
cvs rdiff -u -r1.8 -r1.9 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_nfs4.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c
cvs rdiff -u -r1.5 -r1.6 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_posix1e.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_read_position.c
cvs rdiff -u -r1.3 -r1.4 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_posix1e.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_open_file.c
cvs rdiff -u -r1.4 -r1.5 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_compat_solaris_tar_acl.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_write_format_tar_sparse.c
cvs rdiff -u -r1.7 -r1.8 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c \
pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_gtar_sparse.c
cvs rdiff -u -r1.9 -r1.10 \
pkgsrc/archivers/libarchive/files/libarchive/test/test_sparse_basic.c
cvs rdiff -u -r1.8 -r1.9 \
pkgsrc/archivers/libarchive/files/libarchive_fe/passphrase.c
cvs rdiff -u -r1.15 -r1.16 pkgsrc/archivers/libarchive/files/tar/bsdtar.1 \
pkgsrc/archivers/libarchive/files/tar/bsdtar.c
cvs rdiff -u -r1.9 -r1.10 pkgsrc/archivers/libarchive/files/tar/subst.c
cvs rdiff -u -r1.11 -r1.12 pkgsrc/archivers/libarchive/files/tar/util.c
cvs rdiff -u -r1.11 -r1.12 \
pkgsrc/archivers/libarchive/files/tar/test/CMakeLists.txt
cvs rdiff -u -r1.10 -r1.11 pkgsrc/archivers/libarchive/files/tar/test/list.h
cvs rdiff -u -r1.1.1.1 -r0 \
pkgsrc/archivers/libarchive/files/tar/test/test_option_P.c
cvs rdiff -u -r1.7 -r1.8 \
pkgsrc/archivers/libarchive/files/tar/test/test_option_s.c \
pkgsrc/archivers/libarchive/files/tar/test/test_stdio.c
cvs rdiff -u -r1.8 -r1.9 \
pkgsrc/archivers/libarchive/files/test_utils/test_main.c
cvs rdiff -u -r1.6 -r1.7 pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/archivers/bsdtar/Makefile
diff -u pkgsrc/archivers/bsdtar/Makefile:1.34 pkgsrc/archivers/bsdtar/Makefile:1.35
--- pkgsrc/archivers/bsdtar/Makefile:1.34 Tue Feb 18 15:08:07 2025
+++ pkgsrc/archivers/bsdtar/Makefile Mon Apr 28 10:31:32 2025
@@ -1,10 +1,9 @@
-# $NetBSD: Makefile,v 1.34 2025/02/18 15:08:07 wiz Exp $
+# $NetBSD: Makefile,v 1.35 2025/04/28 10:31:32 adam Exp $
.include "../../archivers/libarchive/Makefile.common"
.include "../../mk/bsd.prefs.mk"
PKGNAME= ${DISTNAME:S/libarchive/bsdtar/}
-PKGREVISION= 1
COMMENT= Fast multi-format tape archiver
# Explicitly do not depend on libtool as this can be used
Index: pkgsrc/archivers/libarchive/Makefile
diff -u pkgsrc/archivers/libarchive/Makefile:1.55 pkgsrc/archivers/libarchive/Makefile:1.56
--- pkgsrc/archivers/libarchive/Makefile:1.55 Tue Feb 18 15:08:52 2025
+++ pkgsrc/archivers/libarchive/Makefile Mon Apr 28 10:31:33 2025
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.55 2025/02/18 15:08:52 wiz Exp $
+# $NetBSD: Makefile,v 1.56 2025/04/28 10:31:33 adam Exp $
.include "Makefile.common"
-PKGREVISION= 1
COMMENT= Library to read/create different archive formats
USE_LIBTOOL= yes
Index: pkgsrc/archivers/libarchive/Makefile.common
diff -u pkgsrc/archivers/libarchive/Makefile.common:1.19 pkgsrc/archivers/libarchive/Makefile.common:1.20
--- pkgsrc/archivers/libarchive/Makefile.common:1.19 Sat Oct 19 05:39:53 2024
+++ pkgsrc/archivers/libarchive/Makefile.common Mon Apr 28 10:31:33 2025
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile.common,v 1.19 2024/10/19 05:39:53 adam Exp $
+# $NetBSD: Makefile.common,v 1.20 2025/04/28 10:31:33 adam Exp $
# used by archivers/bsdtar/Makefile
# used by archivers/libarchive/Makefile
-DISTNAME= libarchive-3.7.7
+DISTNAME= libarchive-3.7.9
CATEGORIES= archivers
MASTER_SITES= https://www.libarchive.org/downloads/
DISTFILES= # empty
Index: pkgsrc/archivers/libarchive/files/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/CMakeLists.txt:1.14 pkgsrc/archivers/libarchive/files/CMakeLists.txt:1.15
--- pkgsrc/archivers/libarchive/files/CMakeLists.txt:1.14 Sat Oct 19 05:39:53 2024
+++ pkgsrc/archivers/libarchive/files/CMakeLists.txt Mon Apr 28 10:31:33 2025
@@ -1,19 +1,6 @@
#
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
-if(APPLE AND CMAKE_VERSION VERSION_LESS "3.17.0")
- message(WARNING "CMake>=3.17.0 required to make the generated shared library have the same Mach-O headers as autotools")
-endif()
+cmake_minimum_required(VERSION 3.17 FATAL_ERROR)
-if(POLICY CMP0065)
- cmake_policy(SET CMP0065 NEW) #3.4 don't use `-rdynamic` with executables
-endif()
-if(POLICY CMP0074)
- cmake_policy(SET CMP0074 NEW) #3.12.0 `find_package()`` uses ``<PackageName>_ROOT`` variables.
-endif()
-if(POLICY CMP0075)
- cmake_policy(SET CMP0075 NEW) #3.12.0 `check_include_file()`` and friends use ``CMAKE_REQUIRED_LIBRARIES``.
-endif()
-#
PROJECT(libarchive C)
#
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake")
@@ -293,18 +280,6 @@ IF(WIN32)
SET(NTDDI_VERSION 0x06000100)
SET(_WIN32_WINNT 0x0600)
SET(WINVER 0x0600)
- ELSEIF(WINDOWS_VERSION STREQUAL "VISTA")
- SET(NTDDI_VERSION 0x06000000)
- SET(_WIN32_WINNT 0x0600)
- SET(WINVER 0x0600)
- ELSEIF(WINDOWS_VERSION STREQUAL "WS03")
- SET(NTDDI_VERSION 0x05020000)
- SET(_WIN32_WINNT 0x0502)
- SET(WINVER 0x0502)
- ELSEIF(WINDOWS_VERSION STREQUAL "WINXP")
- SET(NTDDI_VERSION 0x05010000)
- SET(_WIN32_WINNT 0x0501)
- SET(WINVER 0x0501)
ELSE(WINDOWS_VERSION STREQUAL "WIN10")
# Default to Windows Server 2003 API if we don't recognize the specifier
SET(NTDDI_VERSION 0x05020000)
@@ -1524,6 +1499,8 @@ CHECK_FUNCTION_EXISTS_GLIBC(strnlen HAVE
CHECK_FUNCTION_EXISTS_GLIBC(strrchr HAVE_STRRCHR)
CHECK_FUNCTION_EXISTS_GLIBC(symlink HAVE_SYMLINK)
CHECK_FUNCTION_EXISTS_GLIBC(sysconf HAVE_SYSCONF)
+CHECK_FUNCTION_EXISTS_GLIBC(tcgetattr HAVE_TCGETATTR)
+CHECK_FUNCTION_EXISTS_GLIBC(tcsetattr HAVE_TCSETATTR)
CHECK_FUNCTION_EXISTS_GLIBC(timegm HAVE_TIMEGM)
CHECK_FUNCTION_EXISTS_GLIBC(tzset HAVE_TZSET)
CHECK_FUNCTION_EXISTS_GLIBC(unlinkat HAVE_UNLINKAT)
@@ -1533,9 +1510,9 @@ CHECK_FUNCTION_EXISTS_GLIBC(utimes HAVE_
CHECK_FUNCTION_EXISTS_GLIBC(utimensat HAVE_UTIMENSAT)
CHECK_FUNCTION_EXISTS_GLIBC(vfork HAVE_VFORK)
CHECK_FUNCTION_EXISTS_GLIBC(wcrtomb HAVE_WCRTOMB)
-CHECK_FUNCTION_EXISTS_GLIBC(wcscmp HAVE_WCSCMP)
-CHECK_FUNCTION_EXISTS_GLIBC(wcscpy HAVE_WCSCPY)
-CHECK_FUNCTION_EXISTS_GLIBC(wcslen HAVE_WCSLEN)
+check_symbol_exists(wcscmp wchar.h HAVE_WCSCMP)
+check_symbol_exists(wcscpy wchar.h HAVE_WCSCPY)
+check_symbol_exists(wcslen wchar.h HAVE_WCSLEN)
CHECK_FUNCTION_EXISTS_GLIBC(wctomb HAVE_WCTOMB)
CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64)
CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE)
@@ -2195,11 +2172,6 @@ IF(MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
ENDIF(MSVC)
-IF(APPLE)
- # CC_MD5_Init() functions are deprecated on macOS 10.15, but we want to use them
- ADD_DEFINITIONS(-Wno-deprecated-declarations)
-ENDIF(APPLE)
-
OPTION(DONT_FAIL_ON_CRC_ERROR "Ignore CRC errors during parsing (For fuzzing)" OFF)
IF(DONT_FAIL_ON_CRC_ERROR)
ADD_DEFINITIONS(-DDONT_FAIL_ON_CRC_ERROR=1)
Index: pkgsrc/archivers/libarchive/files/Makefile.am
diff -u pkgsrc/archivers/libarchive/files/Makefile.am:1.17 pkgsrc/archivers/libarchive/files/Makefile.am:1.18
--- pkgsrc/archivers/libarchive/files/Makefile.am:1.17 Sat Oct 19 05:39:53 2024
+++ pkgsrc/archivers/libarchive/files/Makefile.am Mon Apr 28 10:31:33 2025
@@ -411,6 +411,7 @@ libarchive_test_SOURCES= \
libarchive/test/test_compat_bzip2.c \
libarchive/test/test_compat_cpio.c \
libarchive/test/test_compat_gtar.c \
+ libarchive/test/test_compat_gtar_large.c \
libarchive/test/test_compat_gzip.c \
libarchive/test/test_compat_lz4.c \
libarchive/test/test_compat_lzip.c \
@@ -489,6 +490,7 @@ libarchive_test_SOURCES= \
libarchive/test/test_read_format_gtar_gz.c \
libarchive/test/test_read_format_gtar_lzma.c \
libarchive/test/test_read_format_gtar_sparse.c \
+ libarchive/test/test_read_format_gtar_sparse_length.c \
libarchive/test/test_read_format_gtar_sparse_skip_entry.c \
libarchive/test/test_read_format_huge_rpm.c \
libarchive/test/test_read_format_iso_Z.c \
@@ -787,6 +789,7 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_read_format_7zip_copy_2.7z.uu \
libarchive/test/test_read_format_7zip_deflate.7z.uu \
libarchive/test/test_read_format_7zip_deflate_arm64.7z.uu \
+ libarchive/test/test_read_format_7zip_deflate_powerpc.7z.uu \
libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu \
libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu \
libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu \
@@ -803,6 +806,7 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_read_format_7zip_lzma2.7z.uu \
libarchive/test/test_read_format_7zip_lzma2_arm64.7z.uu \
libarchive/test/test_read_format_7zip_lzma2_arm.7z.uu \
+ libarchive/test/test_read_format_7zip_lzma2_sparc.7z.uu \
libarchive/test/test_read_format_7zip_malformed.7z.uu \
libarchive/test/test_read_format_7zip_malformed2.7z.uu \
libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu \
@@ -813,6 +817,7 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_read_format_7zip_zstd_arm.7z.uu \
libarchive/test/test_read_format_7zip_zstd_bcj.7z.uu \
libarchive/test/test_read_format_7zip_zstd_nobcj.7z.uu \
+ libarchive/test/test_read_format_7zip_zstd_sparc.7z.uu \
libarchive/test/test_read_format_7zip_zstd.7z.uu \
libarchive/test/test_read_format_ar.ar.uu \
libarchive/test/test_read_format_cab_1.cab.uu \
@@ -837,6 +842,7 @@ libarchive_test_EXTRA_DIST=\
libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu \
libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu \
libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu \
+ libarchive/test/test_read_format_gtar_sparse_length.tar.Z.uu \
libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu \
libarchive/test/test_read_format_huge_rpm.rpm.uu \
libarchive/test/test_read_format_iso.iso.Z.uu \
@@ -1123,13 +1129,14 @@ bsdtar_test_SOURCES= \
tar/test/test_format_newc.c \
tar/test/test_help.c \
tar/test/test_leading_slash.c \
+ tar/test/test_list_item.c \
tar/test/test_missing_file.c \
tar/test/test_option_C_mtree.c \
tar/test/test_option_C_upper.c \
tar/test/test_option_H_upper.c \
tar/test/test_option_L_upper.c \
tar/test/test_option_O_upper.c \
- tar/test/test_option_P.c \
+ tar/test/test_option_P_upper.c \
tar/test/test_option_T_upper.c \
tar/test/test_option_U_upper.c \
tar/test/test_option_X_upper.c \
@@ -1208,6 +1215,7 @@ bsdtar_test_EXTRA_DIST= \
tar/test/test_extract.tar.lzo.uu \
tar/test/test_extract.tar.xz.uu \
tar/test/test_leading_slash.tar.uu \
+ tar/test/test_list_item.tar.uu \
tar/test/test_option_keep_newer_files.tar.Z.uu \
tar/test/test_option_passphrase.zip.uu \
tar/test/test_option_s.tar.Z.uu \
@@ -1493,6 +1501,7 @@ bsdunzip_SOURCES= \
unzip/bsdunzip_platform.h \
unzip/cmdline.c \
unzip/la_getline.c \
+ unzip/la_getline.h \
unzip/la_queue.h
if INC_WINDOWS_FILES
Index: pkgsrc/archivers/libarchive/files/Makefile.in
diff -u pkgsrc/archivers/libarchive/files/Makefile.in:1.19 pkgsrc/archivers/libarchive/files/Makefile.in:1.20
--- pkgsrc/archivers/libarchive/files/Makefile.in:1.19 Sat Oct 19 05:39:53 2024
+++ pkgsrc/archivers/libarchive/files/Makefile.in Mon Apr 28 10:31:33 2025
@@ -611,13 +611,14 @@ am_bsdtar_test_OBJECTS = $(am__objects_1
tar/test/bsdtar_test-test_format_newc.$(OBJEXT) \
tar/test/bsdtar_test-test_help.$(OBJEXT) \
tar/test/bsdtar_test-test_leading_slash.$(OBJEXT) \
+ tar/test/bsdtar_test-test_list_item.$(OBJEXT) \
tar/test/bsdtar_test-test_missing_file.$(OBJEXT) \
tar/test/bsdtar_test-test_option_C_mtree.$(OBJEXT) \
tar/test/bsdtar_test-test_option_C_upper.$(OBJEXT) \
tar/test/bsdtar_test-test_option_H_upper.$(OBJEXT) \
tar/test/bsdtar_test-test_option_L_upper.$(OBJEXT) \
tar/test/bsdtar_test-test_option_O_upper.$(OBJEXT) \
- tar/test/bsdtar_test-test_option_P.$(OBJEXT) \
+ tar/test/bsdtar_test-test_option_P_upper.$(OBJEXT) \
tar/test/bsdtar_test-test_option_T_upper.$(OBJEXT) \
tar/test/bsdtar_test-test_option_U_upper.$(OBJEXT) \
tar/test/bsdtar_test-test_option_X_upper.$(OBJEXT) \
@@ -892,6 +893,7 @@ am__libarchive_test_SOURCES_DIST = libar
libarchive/test/test_compat_bzip2.c \
libarchive/test/test_compat_cpio.c \
libarchive/test/test_compat_gtar.c \
+ libarchive/test/test_compat_gtar_large.c \
libarchive/test/test_compat_gzip.c \
libarchive/test/test_compat_lz4.c \
libarchive/test/test_compat_lzip.c \
@@ -970,6 +972,7 @@ am__libarchive_test_SOURCES_DIST = libar
libarchive/test/test_read_format_gtar_gz.c \
libarchive/test/test_read_format_gtar_lzma.c \
libarchive/test/test_read_format_gtar_sparse.c \
+ libarchive/test/test_read_format_gtar_sparse_length.c \
libarchive/test/test_read_format_gtar_sparse_skip_entry.c \
libarchive/test/test_read_format_huge_rpm.c \
libarchive/test/test_read_format_iso_Z.c \
@@ -1321,6 +1324,7 @@ am_libarchive_test_OBJECTS = $(am__objec
libarchive/test/test-test_compat_bzip2.$(OBJEXT) \
libarchive/test/test-test_compat_cpio.$(OBJEXT) \
libarchive/test/test-test_compat_gtar.$(OBJEXT) \
+ libarchive/test/test-test_compat_gtar_large.$(OBJEXT) \
libarchive/test/test-test_compat_gzip.$(OBJEXT) \
libarchive/test/test-test_compat_lz4.$(OBJEXT) \
libarchive/test/test-test_compat_lzip.$(OBJEXT) \
@@ -1399,6 +1403,7 @@ am_libarchive_test_OBJECTS = $(am__objec
libarchive/test/test-test_read_format_gtar_gz.$(OBJEXT) \
libarchive/test/test-test_read_format_gtar_lzma.$(OBJEXT) \
libarchive/test/test-test_read_format_gtar_sparse.$(OBJEXT) \
+ libarchive/test/test-test_read_format_gtar_sparse_length.$(OBJEXT) \
libarchive/test/test-test_read_format_gtar_sparse_skip_entry.$(OBJEXT) \
libarchive/test/test-test_read_format_huge_rpm.$(OBJEXT) \
libarchive/test/test-test_read_format_iso_Z.$(OBJEXT) \
@@ -1966,6 +1971,7 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po \
libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po \
libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po \
+ libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Po \
libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po \
libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po \
libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po \
@@ -2044,6 +2050,7 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po \
+ libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_huge_rpm.Po \
libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po \
@@ -2239,13 +2246,14 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_help.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po \
+ tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po \
- tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Po \
+ tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po \
tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po \
@@ -2655,6 +2663,8 @@ LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+LZMA_PC_CFLAGS = @LZMA_PC_CFLAGS@
+LZMA_PC_LIBS = @LZMA_PC_LIBS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -3064,6 +3074,7 @@ libarchive_test_SOURCES = \
libarchive/test/test_compat_bzip2.c \
libarchive/test/test_compat_cpio.c \
libarchive/test/test_compat_gtar.c \
+ libarchive/test/test_compat_gtar_large.c \
libarchive/test/test_compat_gzip.c \
libarchive/test/test_compat_lz4.c \
libarchive/test/test_compat_lzip.c \
@@ -3142,6 +3153,7 @@ libarchive_test_SOURCES = \
libarchive/test/test_read_format_gtar_gz.c \
libarchive/test/test_read_format_gtar_lzma.c \
libarchive/test/test_read_format_gtar_sparse.c \
+ libarchive/test/test_read_format_gtar_sparse_length.c \
libarchive/test/test_read_format_gtar_sparse_skip_entry.c \
libarchive/test/test_read_format_huge_rpm.c \
libarchive/test/test_read_format_iso_Z.c \
@@ -3431,6 +3443,7 @@ libarchive_test_EXTRA_DIST = \
libarchive/test/test_read_format_7zip_copy_2.7z.uu \
libarchive/test/test_read_format_7zip_deflate.7z.uu \
libarchive/test/test_read_format_7zip_deflate_arm64.7z.uu \
+ libarchive/test/test_read_format_7zip_deflate_powerpc.7z.uu \
libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu \
libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu \
libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu \
@@ -3447,6 +3460,7 @@ libarchive_test_EXTRA_DIST = \
libarchive/test/test_read_format_7zip_lzma2.7z.uu \
libarchive/test/test_read_format_7zip_lzma2_arm64.7z.uu \
libarchive/test/test_read_format_7zip_lzma2_arm.7z.uu \
+ libarchive/test/test_read_format_7zip_lzma2_sparc.7z.uu \
libarchive/test/test_read_format_7zip_malformed.7z.uu \
libarchive/test/test_read_format_7zip_malformed2.7z.uu \
libarchive/test/test_read_format_7zip_packinfo_digests.7z.uu \
@@ -3457,6 +3471,7 @@ libarchive_test_EXTRA_DIST = \
libarchive/test/test_read_format_7zip_zstd_arm.7z.uu \
libarchive/test/test_read_format_7zip_zstd_bcj.7z.uu \
libarchive/test/test_read_format_7zip_zstd_nobcj.7z.uu \
+ libarchive/test/test_read_format_7zip_zstd_sparc.7z.uu \
libarchive/test/test_read_format_7zip_zstd.7z.uu \
libarchive/test/test_read_format_ar.ar.uu \
libarchive/test/test_read_format_cab_1.cab.uu \
@@ -3481,6 +3496,7 @@ libarchive_test_EXTRA_DIST = \
libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu \
libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu \
libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu \
+ libarchive/test/test_read_format_gtar_sparse_length.tar.Z.uu \
libarchive/test/test_read_format_gtar_sparse_skip_entry.tar.Z.uu \
libarchive/test/test_read_format_huge_rpm.rpm.uu \
libarchive/test/test_read_format_iso.iso.Z.uu \
@@ -3742,13 +3758,14 @@ bsdtar_test_SOURCES = \
tar/test/test_format_newc.c \
tar/test/test_help.c \
tar/test/test_leading_slash.c \
+ tar/test/test_list_item.c \
tar/test/test_missing_file.c \
tar/test/test_option_C_mtree.c \
tar/test/test_option_C_upper.c \
tar/test/test_option_H_upper.c \
tar/test/test_option_L_upper.c \
tar/test/test_option_O_upper.c \
- tar/test/test_option_P.c \
+ tar/test/test_option_P_upper.c \
tar/test/test_option_T_upper.c \
tar/test/test_option_U_upper.c \
tar/test/test_option_X_upper.c \
@@ -3819,6 +3836,7 @@ bsdtar_test_EXTRA_DIST = \
tar/test/test_extract.tar.lzo.uu \
tar/test/test_extract.tar.xz.uu \
tar/test/test_leading_slash.tar.uu \
+ tar/test/test_list_item.tar.uu \
tar/test/test_option_keep_newer_files.tar.Z.uu \
tar/test/test_option_passphrase.zip.uu \
tar/test/test_option_s.tar.Z.uu \
@@ -4043,7 +4061,7 @@ bsdcat_test_EXTRA_DIST = \
#
bsdunzip_SOURCES = unzip/bsdunzip.c unzip/bsdunzip.h \
unzip/bsdunzip_platform.h unzip/cmdline.c unzip/la_getline.c \
- unzip/la_queue.h $(am__append_10)
+ unzip/la_getline.h unzip/la_queue.h $(am__append_10)
bsdunzip_DEPENDENCIES = libarchive.la libarchive_fe.la
@STATIC_BSDUNZIP_FALSE@bsdunzip_ldstatic =
@STATIC_BSDUNZIP_TRUE@bsdunzip_ldstatic = -static
@@ -4902,6 +4920,8 @@ tar/test/bsdtar_test-test_help.$(OBJEXT)
tar/test/$(DEPDIR)/$(am__dirstamp)
tar/test/bsdtar_test-test_leading_slash.$(OBJEXT): \
tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp)
+tar/test/bsdtar_test-test_list_item.$(OBJEXT): \
+ tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp)
tar/test/bsdtar_test-test_missing_file.$(OBJEXT): \
tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp)
tar/test/bsdtar_test-test_option_C_mtree.$(OBJEXT): \
@@ -4914,7 +4934,7 @@ tar/test/bsdtar_test-test_option_L_upper
tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp)
tar/test/bsdtar_test-test_option_O_upper.$(OBJEXT): \
tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp)
-tar/test/bsdtar_test-test_option_P.$(OBJEXT): \
+tar/test/bsdtar_test-test_option_P_upper.$(OBJEXT): \
tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp)
tar/test/bsdtar_test-test_option_T_upper.$(OBJEXT): \
tar/test/$(am__dirstamp) tar/test/$(DEPDIR)/$(am__dirstamp)
@@ -5617,6 +5637,9 @@ libarchive/test/test-test_compat_cpio.$(
libarchive/test/test-test_compat_gtar.$(OBJEXT): \
libarchive/test/$(am__dirstamp) \
libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_compat_gtar_large.$(OBJEXT): \
+ libarchive/test/$(am__dirstamp) \
+ libarchive/test/$(DEPDIR)/$(am__dirstamp)
libarchive/test/test-test_compat_gzip.$(OBJEXT): \
libarchive/test/$(am__dirstamp) \
libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -5851,6 +5874,9 @@ libarchive/test/test-test_read_format_gt
libarchive/test/test-test_read_format_gtar_sparse.$(OBJEXT): \
libarchive/test/$(am__dirstamp) \
libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_read_format_gtar_sparse_length.$(OBJEXT): \
+ libarchive/test/$(am__dirstamp) \
+ libarchive/test/$(DEPDIR)/$(am__dirstamp)
libarchive/test/test-test_read_format_gtar_sparse_skip_entry.$(OBJEXT): \
libarchive/test/$(am__dirstamp) \
libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -6762,6 +6788,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po@am__quote@ # am--include-marker
@@ -6840,6 +6867,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_huge_rpm.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po@am__quote@ # am--include-marker
@@ -7037,13 +7065,14 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_help.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po@am__quote@ # am--include-marker
@@ -8644,6 +8673,20 @@ tar/test/bsdtar_test-test_leading_slash.
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_leading_slash.obj
`if test -f 'tar/test/test_leading_slash.c'; then $(CYGPATH_W) 'tar/test/test_leading_slash.c'; else $(CYGPATH_W) '$(srcdir)/tar/test/test_leading_slash.c'; fi`
+tar/test/bsdtar_test-test_list_item.o: tar/test/test_list_item.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_list_item.o -MD -MP -MF
tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Tpo -c -o tar/test/bsdtar_test-test_list_item.o `test -f 'tar/test/test_list_item.c' || echo '$(srcdir)/'`tar/test/test_list_item.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tar/test/test_list_item.c' object='tar/test/bsdtar_test-test_list_item.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_list_item.o `test
-f 'tar/test/test_list_item.c' || echo '$(srcdir)/'`tar/test/test_list_item.c
+
+tar/test/bsdtar_test-test_list_item.obj: tar/test/test_list_item.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_list_item.obj -MD -MP -MF
tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Tpo -c -o tar/test/bsdtar_test-test_list_item.obj `if test -f 'tar/test/test_list_item.c'; then $(CYGPATH_W) 'tar/test/test_list_item.c'; else
$(CYGPATH_W) '$(srcdir)/tar/test/test_list_item.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tar/test/test_list_item.c' object='tar/test/bsdtar_test-test_list_item.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_list_item.obj `if
test -f 'tar/test/test_list_item.c'; then $(CYGPATH_W) 'tar/test/test_list_item.c'; else $(CYGPATH_W) '$(srcdir)/tar/test/test_list_item.c'; fi`
+
tar/test/bsdtar_test-test_missing_file.o: tar/test/test_missing_file.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_missing_file.o -MD -MP -MF
tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Tpo -c -o tar/test/bsdtar_test-test_missing_file.o `test -f 'tar/test/test_missing_file.c' || echo '$(srcdir)/'`tar/test/test_missing_file.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po
@@ -8728,19 +8771,19 @@ tar/test/bsdtar_test-test_option_O_upper
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
tar/test/bsdtar_test-test_option_O_upper.obj `if test -f 'tar/test/test_option_O_upper.c'; then $(CYGPATH_W) 'tar/test/test_option_O_upper.c'; else $(CYGPATH_W)
'$(srcdir)/tar/test/test_option_O_upper.c'; fi`
-tar/test/bsdtar_test-test_option_P.o: tar/test/test_option_P.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_option_P.o -MD -MP -MF
tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Tpo -c -o tar/test/bsdtar_test-test_option_P.o `test -f 'tar/test/test_option_P.c' || echo '$(srcdir)/'`tar/test/test_option_P.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tar/test/test_option_P.c' object='tar/test/bsdtar_test-test_option_P.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_option_P.o `test
-f 'tar/test/test_option_P.c' || echo '$(srcdir)/'`tar/test/test_option_P.c
-
-tar/test/bsdtar_test-test_option_P.obj: tar/test/test_option_P.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_option_P.obj -MD -MP -MF
tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Tpo -c -o tar/test/bsdtar_test-test_option_P.obj `if test -f 'tar/test/test_option_P.c'; then $(CYGPATH_W) 'tar/test/test_option_P.c'; else $(CYGPATH_W)
'$(srcdir)/tar/test/test_option_P.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tar/test/test_option_P.c' object='tar/test/bsdtar_test-test_option_P.obj' libtool=no @AMDEPBACKSLASH@
+tar/test/bsdtar_test-test_option_P_upper.o: tar/test/test_option_P_upper.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_option_P_upper.o -MD -MP -MF
tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Tpo -c -o tar/test/bsdtar_test-test_option_P_upper.o `test -f 'tar/test/test_option_P_upper.c' || echo '$(srcdir)/'`tar/test/test_option_P_upper.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tar/test/test_option_P_upper.c' object='tar/test/bsdtar_test-test_option_P_upper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_option_P_upper.o
`test -f 'tar/test/test_option_P_upper.c' || echo '$(srcdir)/'`tar/test/test_option_P_upper.c
+
+tar/test/bsdtar_test-test_option_P_upper.obj: tar/test/test_option_P_upper.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_option_P_upper.obj -MD -MP -MF
tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Tpo -c -o tar/test/bsdtar_test-test_option_P_upper.obj `if test -f 'tar/test/test_option_P_upper.c'; then $(CYGPATH_W)
'tar/test/test_option_P_upper.c'; else $(CYGPATH_W) '$(srcdir)/tar/test/test_option_P_upper.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Tpo tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tar/test/test_option_P_upper.c' object='tar/test/bsdtar_test-test_option_P_upper.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tar/test/bsdtar_test-test_option_P.obj `if
test -f 'tar/test/test_option_P.c'; then $(CYGPATH_W) 'tar/test/test_option_P.c'; else $(CYGPATH_W) '$(srcdir)/tar/test/test_option_P.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
tar/test/bsdtar_test-test_option_P_upper.obj `if test -f 'tar/test/test_option_P_upper.c'; then $(CYGPATH_W) 'tar/test/test_option_P_upper.c'; else $(CYGPATH_W)
'$(srcdir)/tar/test/test_option_P_upper.c'; fi`
tar/test/bsdtar_test-test_option_T_upper.o: tar/test/test_option_T_upper.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdtar_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tar/test/bsdtar_test-test_option_T_upper.o -MD -MP -MF
tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Tpo -c -o tar/test/bsdtar_test-test_option_T_upper.o `test -f 'tar/test/test_option_T_upper.c' || echo '$(srcdir)/'`tar/test/test_option_T_upper.c
@@ -12242,6 +12285,20 @@ libarchive/test/test-test_compat_gtar.ob
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_compat_gtar.obj `if test -f 'libarchive/test/test_compat_gtar.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gtar.c'; else $(CYGPATH_W)
'$(srcdir)/libarchive/test/test_compat_gtar.c'; fi`
+libarchive/test/test-test_compat_gtar_large.o: libarchive/test/test_compat_gtar_large.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_gtar_large.o -MD
-MP -MF libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Tpo -c -o libarchive/test/test-test_compat_gtar_large.o `test -f 'libarchive/test/test_compat_gtar_large.c' || echo
'$(srcdir)/'`libarchive/test/test_compat_gtar_large.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Tpo libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gtar_large.c' object='libarchive/test/test-test_compat_gtar_large.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_compat_gtar_large.o `test -f 'libarchive/test/test_compat_gtar_large.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gtar_large.c
+
+libarchive/test/test-test_compat_gtar_large.obj: libarchive/test/test_compat_gtar_large.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_gtar_large.obj -MD
-MP -MF libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Tpo -c -o libarchive/test/test-test_compat_gtar_large.obj `if test -f 'libarchive/test/test_compat_gtar_large.c'; then $(CYGPATH_W)
'libarchive/test/test_compat_gtar_large.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_compat_gtar_large.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Tpo libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_compat_gtar_large.c' object='libarchive/test/test-test_compat_gtar_large.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_compat_gtar_large.obj `if test -f 'libarchive/test/test_compat_gtar_large.c'; then $(CYGPATH_W) 'libarchive/test/test_compat_gtar_large.c'; else $(CYGPATH_W)
'$(srcdir)/libarchive/test/test_compat_gtar_large.c'; fi`
+
libarchive/test/test-test_compat_gzip.o: libarchive/test/test_compat_gzip.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_compat_gzip.o -MD -MP -MF
libarchive/test/$(DEPDIR)/test-test_compat_gzip.Tpo -c -o libarchive/test/test-test_compat_gzip.o `test -f 'libarchive/test/test_compat_gzip.c' || echo '$(srcdir)/'`libarchive/test/test_compat_gzip.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_compat_gzip.Tpo libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po
@@ -13334,6 +13391,20 @@ libarchive/test/test-test_read_format_gt
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_gtar_sparse.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_gtar_sparse.c'; else
$(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse.c'; fi`
+libarchive/test/test-test_read_format_gtar_sparse_length.o: libarchive/test/test_read_format_gtar_sparse_length.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT
libarchive/test/test-test_read_format_gtar_sparse_length.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Tpo -c -o
libarchive/test/test-test_read_format_gtar_sparse_length.o `test -f 'libarchive/test/test_read_format_gtar_sparse_length.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse_length.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse_length.c' object='libarchive/test/test-test_read_format_gtar_sparse_length.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_gtar_sparse_length.o `test -f 'libarchive/test/test_read_format_gtar_sparse_length.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse_length.c
+
+libarchive/test/test-test_read_format_gtar_sparse_length.obj: libarchive/test/test_read_format_gtar_sparse_length.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT
libarchive/test/test-test_read_format_gtar_sparse_length.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Tpo -c -o
libarchive/test/test-test_read_format_gtar_sparse_length.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse_length.c'; then $(CYGPATH_W)
'libarchive/test/test_read_format_gtar_sparse_length.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse_length.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libarchive/test/test_read_format_gtar_sparse_length.c' object='libarchive/test/test-test_read_format_gtar_sparse_length.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o
libarchive/test/test-test_read_format_gtar_sparse_length.obj `if test -f 'libarchive/test/test_read_format_gtar_sparse_length.c'; then $(CYGPATH_W)
'libarchive/test/test_read_format_gtar_sparse_length.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_gtar_sparse_length.c'; fi`
+
libarchive/test/test-test_read_format_gtar_sparse_skip_entry.o: libarchive/test/test_read_format_gtar_sparse_skip_entry.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT
libarchive/test/test-test_read_format_gtar_sparse_skip_entry.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Tpo -c -o
libarchive/test/test-test_read_format_gtar_sparse_skip_entry.o `test -f 'libarchive/test/test_read_format_gtar_sparse_skip_entry.c' || echo
'$(srcdir)/'`libarchive/test/test_read_format_gtar_sparse_skip_entry.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po
@@ -16756,6 +16827,7 @@ distclean: distclean-am
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po
+ -rm -f libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po
@@ -16834,6 +16906,7 @@ distclean: distclean-am
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po
+ -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_huge_rpm.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po
@@ -17031,13 +17104,14 @@ distclean: distclean-am
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_help.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po
+ -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po
- -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Po
+ -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po
@@ -17546,6 +17620,7 @@ maintainer-clean: maintainer-clean-am
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_bzip2.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_cpio.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_gtar.Po
+ -rm -f libarchive/test/$(DEPDIR)/test-test_compat_gtar_large.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_gzip.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_lz4.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_compat_lzip.Po
@@ -17624,6 +17699,7 @@ maintainer-clean: maintainer-clean-am
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_gz.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_lzma.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse.Po
+ -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_length.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_gtar_sparse_skip_entry.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_huge_rpm.Po
-rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po
@@ -17821,13 +17897,14 @@ maintainer-clean: maintainer-clean-am
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_format_newc.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_help.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_leading_slash.Po
+ -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_list_item.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_missing_file.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_C_mtree.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_C_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_H_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_L_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_O_upper.Po
- -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_P.Po
+ -rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_P_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_T_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_U_upper.Po
-rm -f tar/test/$(DEPDIR)/bsdtar_test-test_option_X_upper.Po
Index: pkgsrc/archivers/libarchive/files/config.h.in
diff -u pkgsrc/archivers/libarchive/files/config.h.in:1.19 pkgsrc/archivers/libarchive/files/config.h.in:1.20
--- pkgsrc/archivers/libarchive/files/config.h.in:1.19 Sun Sep 15 07:02:17 2024
+++ pkgsrc/archivers/libarchive/files/config.h.in Mon Apr 28 10:31:33 2025
@@ -655,7 +655,7 @@
/* Define to 1 if you have the `lz4' library (-llz4). */
#undef HAVE_LIBLZ4
-/* Define to 1 if you have the `lzma' library (-llzma). */
+/* Define to 1 if you have the `lzma' library. */
#undef HAVE_LIBLZMA
/* Define to 1 if you have the `lzo2' library (-llzo2). */
@@ -773,9 +773,6 @@
/* Define to 1 if you have the <lz4.h> header file. */
#undef HAVE_LZ4_H
-/* Define to 1 if you have the `LZMA_FILTER_ARM64' macro. */
-#undef HAVE_LZMA_FILTER_ARM64
-
/* Define to 1 if you have the <lzma.h> header file. */
#undef HAVE_LZMA_H
@@ -1157,6 +1154,12 @@
/* Define to 1 if you have the <sys/xattr.h> header file. */
#undef HAVE_SYS_XATTR_H
+/* Define to 1 if you have the `tcgetattr' function. */
+#undef HAVE_TCGETATTR
+
+/* Define to 1 if you have the `tcsetattr' function. */
+#undef HAVE_TCSETATTR
+
/* Define to 1 if you have the `timegm' function. */
#undef HAVE_TIMEGM
Index: pkgsrc/archivers/libarchive/files/NEWS
diff -u pkgsrc/archivers/libarchive/files/NEWS:1.18 pkgsrc/archivers/libarchive/files/NEWS:1.19
--- pkgsrc/archivers/libarchive/files/NEWS:1.18 Sat Oct 19 05:39:54 2024
+++ pkgsrc/archivers/libarchive/files/NEWS Mon Apr 28 10:31:33 2025
@@ -1,3 +1,7 @@
+Mar 30, 2025: libarchive 3.7.9 released
+
+Mar 20, 2025: libarchive 3.7.8 released
+
Oct 13, 2024: libarchive 3.7.7 released
Sep 23, 2024: libarchive 3.7.6 released
Index: pkgsrc/archivers/libarchive/files/configure
diff -u pkgsrc/archivers/libarchive/files/configure:1.27 pkgsrc/archivers/libarchive/files/configure:1.28
--- pkgsrc/archivers/libarchive/files/configure:1.27 Sat Oct 19 05:39:54 2024
+++ pkgsrc/archivers/libarchive/files/configure Mon Apr 28 10:31:33 2025
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libarchive 3.7.7.
+# Generated by GNU Autoconf 2.71 for libarchive 3.7.9.
#
# Report bugs to <libarchive-discuss%googlegroups.com@localhost>.
#
@@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libarchive'
PACKAGE_TARNAME='libarchive'
-PACKAGE_VERSION='3.7.7'
-PACKAGE_STRING='libarchive 3.7.7'
+PACKAGE_VERSION='3.7.9'
+PACKAGE_STRING='libarchive 3.7.9'
PACKAGE_BUGREPORT='libarchive-discuss%googlegroups.com@localhost'
PACKAGE_URL=''
@@ -676,6 +676,8 @@ LIBOBJS
DEAD_CODE_REMOVAL
LIBXML2_PC_LIBS
LIBXML2_PC_CFLAGS
+LZMA_PC_LIBS
+LZMA_PC_CFLAGS
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
@@ -885,6 +887,8 @@ LT_SYS_LIBRARY_PATH
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
+LZMA_PC_CFLAGS
+LZMA_PC_LIBS
LIBXML2_PC_CFLAGS
LIBXML2_PC_LIBS'
@@ -1435,7 +1439,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures libarchive 3.7.7 to adapt to many kinds of systems.
+\`configure' configures libarchive 3.7.9 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1506,7 +1510,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libarchive 3.7.7:";;
+ short | recursive ) echo "Configuration of libarchive 3.7.9:";;
esac
cat <<\_ACEOF
@@ -1610,6 +1614,10 @@ Some influential environment variables:
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
+ LZMA_PC_CFLAGS
+ C compiler flags for LZMA_PC, overriding pkg-config
+ LZMA_PC_LIBS
+ linker flags for LZMA_PC, overriding pkg-config
LIBXML2_PC_CFLAGS
C compiler flags for LIBXML2_PC, overriding pkg-config
LIBXML2_PC_LIBS
@@ -1682,7 +1690,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libarchive configure 3.7.7
+libarchive configure 3.7.9
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2476,7 +2484,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libarchive $as_me 3.7.7, which was
+It was created by libarchive $as_me 3.7.9, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3756,7 +3764,7 @@ fi
# Define the identity of the package.
PACKAGE='libarchive'
- VERSION='3.7.7'
+ VERSION='3.7.9'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -3929,7 +3937,7 @@ AM_BACKSLASH='\'
# Libtool interface version bumps on any API change, so increments
# whenever libarchive minor version does.
-ARCHIVE_MINOR=$(( (3007007 / 1000) % 1000 ))
+ARCHIVE_MINOR=$(( (3007009 / 1000) % 1000 ))
# Libarchive 2.7 == libtool interface 9 = 2 + 7
# Libarchive 2.8 == libtool interface 10 = 2 + 8
# Libarchive 2.9 == libtool interface 11 = 2 + 8
@@ -3937,7 +3945,7 @@ ARCHIVE_MINOR=$(( (3007007 / 1000) % 100
# Libarchive 3.1 == libtool interface 13
ARCHIVE_INTERFACE=`echo $((13 + ${ARCHIVE_MINOR}))`
# Libarchive revision is bumped on any source change === libtool revision
-ARCHIVE_REVISION=$(( 3007007 % 1000 ))
+ARCHIVE_REVISION=$(( 3007009 % 1000 ))
# Libarchive minor is bumped on any interface addition === libtool age
ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFACE:$ARCHIVE_REVISION:$ARCHIVE_MINOR
@@ -3946,33 +3954,33 @@ ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFA
printf "%s\n" "#define __LIBARCHIVE_CONFIG_H_INCLUDED 1" >>confdefs.h
-printf "%s\n" "#define LIBARCHIVE_VERSION_STRING \"3.7.7\"" >>confdefs.h
+printf "%s\n" "#define LIBARCHIVE_VERSION_STRING \"3.7.9\"" >>confdefs.h
-printf "%s\n" "#define LIBARCHIVE_VERSION_NUMBER \"3007007\"" >>confdefs.h
+printf "%s\n" "#define LIBARCHIVE_VERSION_NUMBER \"3007009\"" >>confdefs.h
-printf "%s\n" "#define BSDCPIO_VERSION_STRING \"3.7.7\"" >>confdefs.h
+printf "%s\n" "#define BSDCPIO_VERSION_STRING \"3.7.9\"" >>confdefs.h
-printf "%s\n" "#define BSDTAR_VERSION_STRING \"3.7.7\"" >>confdefs.h
+printf "%s\n" "#define BSDTAR_VERSION_STRING \"3.7.9\"" >>confdefs.h
-printf "%s\n" "#define BSDCAT_VERSION_STRING \"3.7.7\"" >>confdefs.h
+printf "%s\n" "#define BSDCAT_VERSION_STRING \"3.7.9\"" >>confdefs.h
-printf "%s\n" "#define BSDUNZIP_VERSION_STRING \"3.7.7\"" >>confdefs.h
+printf "%s\n" "#define BSDUNZIP_VERSION_STRING \"3.7.9\"" >>confdefs.h
# The shell variables here must be the same as the AC_SUBST() variables
# below, but the shell variable names apparently cannot be the same as
# the m4 macro names above. Why? Ask autoconf.
-BSDCPIO_VERSION_STRING=3.7.7
-BSDTAR_VERSION_STRING=3.7.7
-BSDCAT_VERSION_STRING=3.7.7
-BSDUNZIP_VERSION_STRING=3.7.7
-LIBARCHIVE_VERSION_STRING=3.7.7
-LIBARCHIVE_VERSION_NUMBER=3007007
+BSDCPIO_VERSION_STRING=3.7.9
+BSDTAR_VERSION_STRING=3.7.9
+BSDCAT_VERSION_STRING=3.7.9
+BSDUNZIP_VERSION_STRING=3.7.9
+LIBARCHIVE_VERSION_STRING=3.7.9
+LIBARCHIVE_VERSION_NUMBER=3007009
# Substitute the above version numbers into the various files below.
# Yes, I believe this is the fourth time we define what are essentially
@@ -16636,14 +16644,197 @@ fi
if test "x$with_lzma" != "xno"; then
- ac_fn_c_check_header_compile "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default"
-if test "x$ac_cv_header_lzma_h" = xyes
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKG_CONFIG+y}
then :
- printf "%s\n" "#define HAVE_LZMA_H 1" >>confdefs.h
+ printf %s "(cached) " >&6
+else $as_nop
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf "%s\n" "$PKG_CONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ PKG_CONFIG=""
+ fi
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lzma_stream_decoder in -llzma" >&5
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for liblzma" >&5
+printf %s "checking for liblzma... " >&6; }
+
+if test -n "$LZMA_PC_CFLAGS"; then
+ pkg_cv_LZMA_PC_CFLAGS="$LZMA_PC_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LZMA_PC_CFLAGS=`$PKG_CONFIG --cflags "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$LZMA_PC_LIBS"; then
+ pkg_cv_LZMA_PC_LIBS="$LZMA_PC_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"liblzma\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "liblzma") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LZMA_PC_LIBS=`$PKG_CONFIG --libs "liblzma" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LZMA_PC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "liblzma" 2>&1`
+ else
+ LZMA_PC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "liblzma" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LZMA_PC_PKG_ERRORS" >&5
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lzma_stream_decoder in -llzma" >&5
printf %s "checking for lzma_stream_decoder in -llzma... " >&6; }
if test ${ac_cv_lib_lzma_lzma_stream_decoder+y}
then :
@@ -16686,51 +16877,83 @@ then :
fi
- # Some pre-release (but widely distributed) versions of liblzma
- # included a disabled version of lzma_stream_encoder_mt that
- # fools a naive AC_CHECK_LIB or AC_CHECK_FUNC, so we need
- # to do something more complex here:
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we have multithread support in lzma" >&5
-printf %s "checking whether we have multithread support in lzma... " >&6; }
-if test ${ac_cv_lzma_has_mt+y}
+
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lzma_stream_decoder in -llzma" >&5
+printf %s "checking for lzma_stream_decoder in -llzma... " >&6; }
+if test ${ac_cv_lib_lzma_lzma_stream_decoder+y}
then :
printf %s "(cached) " >&6
else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-llzma $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <lzma.h>
- #if LZMA_VERSION < 50020000
- #error unsupported
- #endif
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char lzma_stream_decoder ();
int
main (void)
{
-int ignored __attribute__((unused)); ignored = lzma_stream_encoder_mt(0, 0);
+return lzma_stream_decoder ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
- ac_cv_lzma_has_mt=yes
+ ac_cv_lib_lzma_lzma_stream_decoder=yes
else $as_nop
- ac_cv_lzma_has_mt=no
+ ac_cv_lib_lzma_lzma_stream_decoder=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lzma_has_mt" >&5
-printf "%s\n" "$ac_cv_lzma_has_mt" >&6; }
- if test "x$ac_cv_lzma_has_mt" != xno; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lzma_lzma_stream_decoder" >&5
+printf "%s\n" "$ac_cv_lib_lzma_lzma_stream_decoder" >&6; }
+if test "x$ac_cv_lib_lzma_lzma_stream_decoder" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBLZMA 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LZMA_STREAM_ENCODER_MT 1" >>confdefs.h
+ LIBS="-llzma $LIBS"
+
+fi
+
+
+else
+ LZMA_PC_CFLAGS=$pkg_cv_LZMA_PC_CFLAGS
+ LZMA_PC_LIBS=$pkg_cv_LZMA_PC_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+ CPPFLAGS="${CPPFLAGS} ${LZMA_PC_CFLAGS}"
+ LIBS="${LIBS} ${LZMA_PC_LIBS}"
+
+printf "%s\n" "#define HAVE_LIBLZMA 1" >>confdefs.h
- fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we have ARM64 filter support in lzma" >&5
-printf %s "checking whether we have ARM64 filter support in lzma... " >&6; }
-if test ${ac_cv_lzma_has_arm64+y}
+fi
+ ac_fn_c_check_header_compile "$LINENO" "lzma.h" "ac_cv_header_lzma_h" "$ac_includes_default"
+if test "x$ac_cv_header_lzma_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LZMA_H 1" >>confdefs.h
+
+fi
+
+
+ # Some pre-release (but widely distributed) versions of liblzma
+ # included a disabled version of lzma_stream_encoder_mt that
+ # fools a naive AC_CHECK_LIB or AC_CHECK_FUNC, so we need
+ # to do something more complex here:
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we have multithread support in lzma" >&5
+printf %s "checking whether we have multithread support in lzma... " >&6; }
+if test ${ac_cv_lzma_has_mt+y}
then :
printf %s "(cached) " >&6
else $as_nop
@@ -16738,31 +16961,31 @@ else $as_nop
/* end confdefs.h. */
#include <lzma.h>
- #ifndef LZMA_FILTER_ARM64
+ #if LZMA_VERSION < 50020000
#error unsupported
#endif
int
main (void)
{
-
+int ignored __attribute__((unused)); ignored = lzma_stream_encoder_mt(0, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
- ac_cv_lzma_has_arm64=yes
+ ac_cv_lzma_has_mt=yes
else $as_nop
- ac_cv_lzma_has_arm64=no
+ ac_cv_lzma_has_mt=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lzma_has_arm64" >&5
-printf "%s\n" "$ac_cv_lzma_has_arm64" >&6; }
- if test "x$ac_cv_lzma_has_arm64" != xno; then
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lzma_has_mt" >&5
+printf "%s\n" "$ac_cv_lzma_has_mt" >&6; }
+ if test "x$ac_cv_lzma_has_mt" != xno; then
-printf "%s\n" "#define HAVE_LZMA_FILTER_ARM64 1" >>confdefs.h
+printf "%s\n" "#define HAVE_LZMA_STREAM_ENCODER_MT 1" >>confdefs.h
fi
fi
@@ -19792,6 +20015,19 @@ then :
fi
+ac_fn_c_check_func "$LINENO" "tcgetattr" "ac_cv_func_tcgetattr"
+if test "x$ac_cv_func_tcgetattr" = xyes
+then :
+ printf "%s\n" "#define HAVE_TCGETATTR 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "tcsetattr" "ac_cv_func_tcsetattr"
+if test "x$ac_cv_func_tcsetattr" = xyes
+then :
+ printf "%s\n" "#define HAVE_TCSETATTR 1" >>confdefs.h
+
+fi
+
ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm"
if test "x$ac_cv_func_timegm" = xyes
then :
@@ -24247,7 +24483,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libarchive $as_me 3.7.7, which was
+This file was extended by libarchive $as_me 3.7.9, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -24315,7 +24551,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-libarchive config.status 3.7.7
+libarchive config.status 3.7.9
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Index: pkgsrc/archivers/libarchive/files/configure.ac
diff -u pkgsrc/archivers/libarchive/files/configure.ac:1.26 pkgsrc/archivers/libarchive/files/configure.ac:1.27
--- pkgsrc/archivers/libarchive/files/configure.ac:1.26 Sat Oct 19 05:39:54 2024
+++ pkgsrc/archivers/libarchive/files/configure.ac Mon Apr 28 10:31:33 2025
@@ -4,8 +4,8 @@ dnl First, define all of the version num
dnl In particular, this allows the version macro to be used in AC_INIT
dnl These first two version numbers are updated automatically on each release.
-m4_define([LIBARCHIVE_VERSION_S],[3.7.7])
-m4_define([LIBARCHIVE_VERSION_N],[3007007])
+m4_define([LIBARCHIVE_VERSION_S],[3.7.9])
+m4_define([LIBARCHIVE_VERSION_N],[3007009])
dnl bsdtar and bsdcpio versioning tracks libarchive
m4_define([BSDTAR_VERSION_S],LIBARCHIVE_VERSION_S())
@@ -489,8 +489,16 @@ AC_ARG_WITH([lzma],
AS_HELP_STRING([--without-lzma], [Don't build support for xz through lzma]))
if test "x$with_lzma" != "xno"; then
+ PKG_PROG_PKG_CONFIG
+ PKG_CHECK_MODULES(LZMA_PC, [liblzma], [
+ CPPFLAGS="${CPPFLAGS} ${LZMA_PC_CFLAGS}"
+ LIBS="${LIBS} ${LZMA_PC_LIBS}"
+ AC_DEFINE(HAVE_LIBLZMA, [1], [Define to 1 if you have the `lzma' library.])
+ ], [
+ AC_CHECK_LIB(lzma,lzma_stream_decoder)
+ ])
AC_CHECK_HEADERS([lzma.h])
- AC_CHECK_LIB(lzma,lzma_stream_decoder)
+
# Some pre-release (but widely distributed) versions of liblzma
# included a disabled version of lzma_stream_encoder_mt that
# fools a naive AC_CHECK_LIB or AC_CHECK_FUNC, so we need
@@ -508,19 +516,6 @@ if test "x$with_lzma" != "xno"; then
if test "x$ac_cv_lzma_has_mt" != xno; then
AC_DEFINE([HAVE_LZMA_STREAM_ENCODER_MT], [1], [Define to 1 if you have the `lzma_stream_encoder_mt' function.])
fi
-
- AC_CACHE_CHECK(
- [whether we have ARM64 filter support in lzma],
- ac_cv_lzma_has_arm64,
- [AC_LINK_IFELSE([
- AC_LANG_PROGRAM([[#include <lzma.h>]
- [#ifndef LZMA_FILTER_ARM64]
- [#error unsupported]
- [#endif]])],
- [ac_cv_lzma_has_arm64=yes], [ac_cv_lzma_has_arm64=no])])
- if test "x$ac_cv_lzma_has_arm64" != xno; then
- AC_DEFINE([HAVE_LZMA_FILTER_ARM64], [1], [Define to 1 if you have the `LZMA_FILTER_ARM64' macro.])
- fi
fi
AC_ARG_WITH([lzo2],
@@ -825,6 +820,7 @@ AC_CHECK_FUNCS([readpassphrase])
AC_CHECK_FUNCS([select setenv setlocale sigaction statfs statvfs])
AC_CHECK_FUNCS([strchr strdup strerror strncpy_s strnlen strrchr symlink])
AC_CHECK_FUNCS([sysconf])
+AC_CHECK_FUNCS([tcgetattr tcsetattr])
AC_CHECK_FUNCS([timegm tzset unlinkat unsetenv utime utimensat utimes vfork])
AC_CHECK_FUNCS([wcrtomb wcscmp wcscpy wcslen wctomb wmemcmp wmemcpy wmemmove])
AC_CHECK_FUNCS([_fseeki64 _get_timezone])
Index: pkgsrc/archivers/libarchive/files/build/version
diff -u pkgsrc/archivers/libarchive/files/build/version:1.13 pkgsrc/archivers/libarchive/files/build/version:1.14
--- pkgsrc/archivers/libarchive/files/build/version:1.13 Sat Oct 19 05:39:54 2024
+++ pkgsrc/archivers/libarchive/files/build/version Mon Apr 28 10:31:33 2025
@@ -1 +1 @@
-3007007
+3007009
Index: pkgsrc/archivers/libarchive/files/build/cmake/config.h.in
diff -u pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.13 pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.14
--- pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.13 Sun Sep 15 07:02:17 2024
+++ pkgsrc/archivers/libarchive/files/build/cmake/config.h.in Mon Apr 28 10:31:33 2025
@@ -735,9 +735,6 @@ typedef uint64_t uintmax_t;
/* Define to 1 if you have the `lzma' library (-llzma). */
#cmakedefine HAVE_LIBLZMA 1
-/* Define to 1 if you have the `lzmadec' library (-llzmadec). */
-#cmakedefine HAVE_LIBLZMADEC 1
-
/* Define to 1 if you have the `lzo2' library (-llzo2). */
#cmakedefine HAVE_LIBLZO2 1
@@ -847,9 +844,6 @@ typedef uint64_t uintmax_t;
/* Define to 1 if you have the <lz4.h> header file. */
#cmakedefine HAVE_LZ4_H 1
-/* Define to 1 if you have the <lzmadec.h> header file. */
-#cmakedefine HAVE_LZMADEC_H 1
-
/* Define to 1 if you have the <lzma.h> header file. */
#cmakedefine HAVE_LZMA_H 1
@@ -1172,6 +1166,12 @@ typedef uint64_t uintmax_t;
/* Define to 1 if you have the <sys/xattr.h> header file. */
#cmakedefine HAVE_SYS_XATTR_H 1
+/* Define to 1 if you have the `tcgetattr' function. */
+#cmakedefine HAVE_TCGETATTR 1
+
+/* Define to 1 if you have the `tcsetattr' function. */
+#cmakedefine HAVE_TCSETATTR 1
+
/* Define to 1 if you have the `timegm' function. */
#cmakedefine HAVE_TIMEGM 1
Index: pkgsrc/archivers/libarchive/files/cat/test/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/cat/test/CMakeLists.txt:1.3 pkgsrc/archivers/libarchive/files/cat/test/CMakeLists.txt:1.4
--- pkgsrc/archivers/libarchive/files/cat/test/CMakeLists.txt:1.3 Sat Oct 19 05:39:54 2024
+++ pkgsrc/archivers/libarchive/files/cat/test/CMakeLists.txt Mon Apr 28 10:31:33 2025
@@ -64,7 +64,9 @@ IF(ENABLE_CAT AND ENABLE_TEST)
COMMAND bsdcat_test -vv
-p $<TARGET_FILE:bsdcat>
-r ${CMAKE_CURRENT_SOURCE_DIR}
+ -s
${_testname})
+ SET_TESTS_PROPERTIES(bsdcat_${_testname} PROPERTIES SKIP_RETURN_CODE 2)
ENDMACRO (DEFINE_TEST _testname)
INCLUDE(${CMAKE_CURRENT_BINARY_DIR}/list.h)
Index: pkgsrc/archivers/libarchive/files/cpio/cpio.c
diff -u pkgsrc/archivers/libarchive/files/cpio/cpio.c:1.14 pkgsrc/archivers/libarchive/files/cpio/cpio.c:1.15
--- pkgsrc/archivers/libarchive/files/cpio/cpio.c:1.14 Sat Oct 19 05:39:54 2024
+++ pkgsrc/archivers/libarchive/files/cpio/cpio.c Mon Apr 28 10:31:33 2025
@@ -1206,7 +1206,7 @@ list_item_verbose(struct cpio *cpio, str
else
strcpy(date, "invalid mtime");
- fprintf(out, "%s%3d %-8s %-8s %8s %12s %s",
+ fprintf(out, "%s%3u %-8s %-8s %8s %12s %s",
archive_entry_strmode(entry),
archive_entry_nlink(entry),
uname, gname, size, date,
Index: pkgsrc/archivers/libarchive/files/cpio/cpio_windows.c
diff -u pkgsrc/archivers/libarchive/files/cpio/cpio_windows.c:1.5 pkgsrc/archivers/libarchive/files/cpio/cpio_windows.c:1.6
--- pkgsrc/archivers/libarchive/files/cpio/cpio_windows.c:1.5 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/cpio/cpio_windows.c Mon Apr 28 10:31:33 2025
@@ -171,7 +171,7 @@ cpio_CreateFile(const char *path, DWORD
return (handle);
}
-#define WINTIME(sec, usec) ((Int32x32To64(sec, 10000000) + EPOC_TIME) + (usec * 10))
+#define WINTIME(sec, usec) (((sec * 10000000LL) + EPOC_TIME) + (usec * 10))
static int
__hutimes(HANDLE handle, const struct __timeval *times)
{
Index: pkgsrc/archivers/libarchive/files/cpio/test/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/cpio/test/CMakeLists.txt:1.8 pkgsrc/archivers/libarchive/files/cpio/test/CMakeLists.txt:1.9
--- pkgsrc/archivers/libarchive/files/cpio/test/CMakeLists.txt:1.8 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/cpio/test/CMakeLists.txt Mon Apr 28 10:31:33 2025
@@ -97,7 +97,9 @@ IF(ENABLE_CPIO AND ENABLE_TEST)
COMMAND bsdcpio_test -vv
-p $<TARGET_FILE:bsdcpio>
-r ${CMAKE_CURRENT_SOURCE_DIR}
+ -s
${_testname})
+ SET_TESTS_PROPERTIES(bsdcpio_${_testname} PROPERTIES SKIP_RETURN_CODE 2)
ENDMACRO (DEFINE_TEST _testname)
INCLUDE(${CMAKE_CURRENT_BINARY_DIR}/list.h)
Index: pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c
diff -u pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.9 pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.10
--- pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.9 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c Mon Apr 28 10:31:33 2025
@@ -189,10 +189,10 @@ DEFINE_TEST(test_format_newc)
gid = from_hex(e + 30, 8); /* gid */
assertEqualMem(e + 38, "00000003", 8); /* nlink */
t = from_hex(e + 46, 8); /* mtime */
- failure("t=%#08jx now=%#08jx=%jd", (intmax_t)t, (intmax_t)now,
+ failure("t=%#08jx now=%#08jx=%jd", (uintmax_t)t, (uintmax_t)now,
(intmax_t)now);
assert(t <= now); /* File wasn't created in future. */
- failure("t=%#08jx now - 2=%#08jx=%jd", (intmax_t)t, (intmax_t)now - 2,
+ failure("t=%#08jx now - 2=%#08jx=%jd", (uintmax_t)t, (uintmax_t)now - 2,
(intmax_t)now - 2);
assert(t >= now - 2); /* File was created w/in last 2 secs. */
failure("newc format stores body only with last appearance of a link\n"
@@ -230,7 +230,7 @@ DEFINE_TEST(test_format_newc)
assertEqualMem(e + 38, "00000001", 8); /* nlink */
t2 = from_hex(e + 46, 8); /* mtime */
failure("First entry created at t=%#08jx this entry created"
- " at t2=%#08jx", (intmax_t)t, (intmax_t)t2);
+ " at t2=%#08jx", (uintmax_t)t, (uintmax_t)t2);
assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */
assertEqualMem(e + 54, "00000005", 8); /* File size */
fs = (uint64_t)from_hex(e + 54, 8);
@@ -266,7 +266,7 @@ DEFINE_TEST(test_format_newc)
#endif
t2 = from_hex(e + 46, 8); /* mtime */
failure("First entry created at t=%#08jx this entry created at"
- "t2=%#08jx", (intmax_t)t, (intmax_t)t2);
+ "t2=%#08jx", (uintmax_t)t, (uintmax_t)t2);
assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */
assertEqualMem(e + 54, "00000000", 8); /* File size */
fs = (uint64_t)from_hex(e + 54, 8);
@@ -300,7 +300,7 @@ DEFINE_TEST(test_format_newc)
assertEqualMem(e + 38, "00000003", 8); /* nlink */
t2 = from_hex(e + 46, 8); /* mtime */
failure("First entry created at t=%#08jx this entry created at"
- "t2=%#08jx", (intmax_t)t, (intmax_t)t2);
+ "t2=%#08jx", (uintmax_t)t, (uintmax_t)t2);
assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */
assertEqualInt(10, from_hex(e + 54, 8)); /* File size */
fs = (uint64_t)from_hex(e + 54, 8);
Index: pkgsrc/archivers/libarchive/files/cpio/test/test_option_c.c
diff -u pkgsrc/archivers/libarchive/files/cpio/test/test_option_c.c:1.10 pkgsrc/archivers/libarchive/files/cpio/test/test_option_c.c:1.11
--- pkgsrc/archivers/libarchive/files/cpio/test/test_option_c.c:1.10 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/cpio/test/test_option_c.c Mon Apr 28 10:31:33 2025
@@ -18,7 +18,7 @@ is_octal(const char *p, size_t l)
return (1);
}
-static long long int
+static unsigned long long int
from_octal(const char *p, size_t l)
{
long long int r = 0;
@@ -117,7 +117,7 @@ DEFINE_TEST(test_option_c)
gid = (int)from_octal(e + 30, 6);
assertEqualMem(e + 36, "000001", 6); /* nlink */
failure("file entries should not have rdev set (dev field was 0%o)",
- dev);
+ (unsigned int)dev);
assertEqualMem(e + 42, "000000", 6); /* rdev */
t = from_octal(e + 48, 11); /* mtime */
assert(t <= now); /* File wasn't created in future. */
@@ -133,7 +133,7 @@ DEFINE_TEST(test_option_c)
assert(is_octal(e, 76)); /* Entire header is octal digits. */
assertEqualMem(e + 0, "070707", 6); /* Magic */
assertEqualInt(dev, from_octal(e + 6, 6)); /* dev */
- assert(ino != from_octal(e + 12, 6)); /* ino */
+ assert(ino != (int)from_octal(e + 12, 6)); /* ino */
#if !defined(_WIN32) || defined(__CYGWIN__)
/* On Windows, symbolic link and group members bits and
* others bits do not work. */
@@ -163,7 +163,7 @@ DEFINE_TEST(test_option_c)
assertEqualInt(dev, from_octal(e + 6, 6));
/* Ino must be different from first entry. */
assert(is_octal(e + 12, 6)); /* ino */
- assert(ino != from_octal(e + 12, 6));
+ assert(ino != (int)from_octal(e + 12, 6));
#if defined(_WIN32) && !defined(__CYGWIN__)
/* Group members bits and others bits do not work. */
assertEqualMem(e + 18, "040777", 6); /* Mode */
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.13 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:11 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:39 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:11 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:39 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@@ -49,20 +49,21 @@ tar</b> {<b>-t </b>| <b>-x</b>
<p style="margin-left:9%;"><b>tar</b> creates and
manipulates streaming archive files. This implementation can
-extract from tar, pax, cpio, zip, jar, ar, xar, rpm, 7-zip,
-and ISO 9660 cdrom images and can create tar, pax, cpio, ar,
-zip, 7-zip, and shar archives.</p>
+extract from tar, pax, cpio, zip, jar, ar, xar, rar, rpm,
+7-zip, and ISO 9660 cdrom images and can create tar, pax,
+cpio, ar, zip, 7-zip, and shar archives.</p>
<p style="margin-left:9%; margin-top: 1em">The first
synopsis form shows a “bundled” option word.
This usage is provided for compatibility with historical
-implementations. See COMPATIBILITY below for details.</p>
+implementations. See “COMPATIBILITY” below for
+details.</p>
<p style="margin-left:9%; margin-top: 1em">The other
synopsis forms show the preferred usage. The first option to
<b>tar</b> is a mode indicator from the following list:</p>
-<p><b>-c</b></p>
+<p style="margin-top: 1em"><b>-c</b></p>
<p style="margin-left:19%; margin-top: 1em">Create a new
archive containing the specified items. The long option form
@@ -124,27 +125,28 @@ modes.</p>
specified archive is opened and the entries in it will be
appended to the current archive. As a simple example,</p>
-<p style="margin-left:27%;"><b>tar -c -f</b> <i>-
-newfile</i> <b>@</b><i>original.tar</i></p>
+<p style="margin-left:27%; margin-top: 1em"><b>tar -c
+-f</b> <i>- newfile</i> <b>@</b><i>original.tar</i></p>
-<p style="margin-left:19%;">writes a new archive to
-standard output containing a file <i>newfile</i> and all of
-the entries from <i>original.tar</i>. In contrast,</p>
-
-<p style="margin-left:27%;"><b>tar -c -f</b> <i>- newfile
-original.tar</i></p>
-
-<p style="margin-left:19%;">creates a new archive with only
-two entries. Similarly,</p>
-
-<p style="margin-left:27%;"><b>tar -czf</b> <i>-</i>
-<b>--format pax @</b><i>-</i></p>
-
-<p style="margin-left:19%;">reads an archive from standard
-input (whose format will be determined automatically) and
-converts it into a gzip-compressed pax-format archive on
-stdout. In this way, <b>tar</b> can be used to convert
-archives from one format to another.</p>
+<p style="margin-left:19%; margin-top: 1em">writes a new
+archive to standard output containing a file <i>newfile</i>
+and all of the entries from <i>original.tar</i>. In
+contrast,</p>
+
+<p style="margin-left:27%; margin-top: 1em"><b>tar -c
+-f</b> <i>- newfile original.tar</i></p>
+
+<p style="margin-left:19%; margin-top: 1em">creates a new
+archive with only two entries. Similarly,</p>
+
+<p style="margin-left:27%; margin-top: 1em"><b>tar -czf</b>
+<i>-</i> <b>--format pax @</b><i>-</i></p>
+
+<p style="margin-left:19%; margin-top: 1em">reads an
+archive from standard input (whose format will be determined
+automatically) and converts it into a gzip-compressed
+pax-format archive on stdout. In this way, <b>tar</b> can be
+used to convert archives from one format to another.</p>
<p style="margin-top: 1em"><b>-a</b>,
<b>--auto-compress</b></p>
@@ -153,38 +155,38 @@ archives from one format to another.</p>
suffix to decide a set of the format and the compressions.
As a simple example,</p>
-<p style="margin-left:27%;"><b>tar -a -cf</b>
-<i>archive.tgz source.c source.h</i></p>
+<p style="margin-left:27%; margin-top: 1em"><b>tar -a
+-cf</b> <i>archive.tgz source.c source.h</i></p>
-<p style="margin-left:19%;">creates a new archive with
-restricted pax format and gzip compression,</p>
+<p style="margin-left:19%; margin-top: 1em">creates a new
+archive with restricted pax format and gzip compression,</p>
-<p style="margin-left:27%;"><b>tar -a -cf</b>
-<i>archive.tar.bz2.uu source.c source.h</i></p>
+<p style="margin-left:27%; margin-top: 1em"><b>tar -a
+-cf</b> <i>archive.tar.bz2.uu source.c source.h</i></p>
-<p style="margin-left:19%;">creates a new archive with
-restricted pax format and bzip2 compression and uuencode
-compression,</p>
+<p style="margin-left:19%; margin-top: 1em">creates a new
+archive with restricted pax format and bzip2 compression and
+uuencode compression,</p>
-<p style="margin-left:27%;"><b>tar -a -cf</b>
-<i>archive.zip source.c source.h</i></p>
+<p style="margin-left:27%; margin-top: 1em"><b>tar -a
+-cf</b> <i>archive.zip source.c source.h</i></p>
-<p style="margin-left:19%;">creates a new archive with zip
-format,</p>
+<p style="margin-left:19%; margin-top: 1em">creates a new
+archive with zip format,</p>
-<p style="margin-left:27%;"><b>tar -a -jcf</b>
-<i>archive.tgz source.c source.h</i></p>
+<p style="margin-left:27%; margin-top: 1em"><b>tar -a
+-jcf</b> <i>archive.tgz source.c source.h</i></p>
-<p style="margin-left:19%;">ignores the “-j”
-option, and creates a new archive with restricted pax format
-and gzip compression,</p>
+<p style="margin-left:19%; margin-top: 1em">ignores the
+“-j” option, and creates a new archive with
+restricted pax format and gzip compression,</p>
-<p style="margin-left:27%;"><b>tar -a -jcf</b>
-<i>archive.xxx source.c source.h</i></p>
+<p style="margin-left:27%; margin-top: 1em"><b>tar -a
+-jcf</b> <i>archive.xxx source.c source.h</i></p>
-<p style="margin-left:19%;">if it is unknown suffix or no
-suffix, creates a new archive with restricted pax format and
-bzip2 compression.</p>
+<p style="margin-left:19%; margin-top: 1em">if it is
+unknown suffix or no suffix, creates a new archive with
+restricted pax format and bzip2 compression.</p>
<p style="margin-top: 1em"><b>--acls</b></p>
@@ -353,11 +355,12 @@ all entries are processed by default. Th
option is especially useful when filtering archives. For
example, the command</p>
-<p style="margin-left:27%;"><b>tar -c -f</b> <i>new.tar</i>
-<b>--include=’*foo*’ @</b><i>old.tgz</i></p>
+<p style="margin-left:27%; margin-top: 1em"><b>tar -c
+-f</b> <i>new.tar</i> <b>--include=’*foo*’
+@</b><i>old.tgz</i></p>
-<p style="margin-left:19%;">creates a new archive
-<i>new.tar</i> containing only the entries from
+<p style="margin-left:19%; margin-top: 1em">creates a new
+archive <i>new.tar</i> containing only the entries from
<i>old.tgz</i> containing the string ‘foo’.</p>
<p style="margin-top: 1em"><b>-J</b>, <b>--xz</b></p>
@@ -463,8 +466,10 @@ file attributes using <i>copyfile</i>(3)
format. This is the reverse of <b>--no-mac-metadata</b>. and
the default behavior in c, r, and u modes or if <b>tar</b>
is run in x mode as root. Currently supported only for pax
-formats (including "pax restricted", the default
-tar format for bsdtar.)</p>
+formats (</p>
+
+<p>including pax restricted, the default tar format for
+<b>bsdtar</b> )</p>
<p style="margin-top: 1em"><b>-n</b>, <b>--norecurse</b>,
<b>--no-recursion</b></p>
@@ -655,7 +660,7 @@ modules that handle particular formats t
formats will behave. Each option has one of the following
forms:</p>
-<p><i>key=value</i></p>
+<p style="margin-top: 1em"><i>key=value</i></p>
<p style="margin-left:29%;">The key will be set to the
specified value in every module that supports it. Modules
@@ -688,7 +693,7 @@ extract and list modes in
<p style="margin-left:19%; margin-top: 1em">Examples of
supported options:</p>
-<p><b>iso9660:joliet</b></p>
+<p style="margin-top: 1em"><b>iso9660:joliet</b></p>
<p style="margin-left:29%;">Support Joliet extensions. This
is enabled by default, use <b>!joliet</b> or
@@ -878,8 +883,9 @@ contents of the first concatenated archi
This option is comparable to the <b>-i</b>,
<b>--ignore-zeros</b> option of GNU tar.</p>
-<p style="margin-left:19%;">If a provided option is not
-supported by any module, that is a fatal error.</p>
+<p style="margin-left:19%; margin-top: 1em">If a provided
+option is not supported by any module, that is a fatal
+error.</p>
<p style="margin-top: 1em"><b>-P</b>,
<b>--absolute-paths</b></p>
@@ -1033,8 +1039,8 @@ before creating them. This can be a mino
optimization if most files already exist, but can make
things slower if most files do not already exist. This flag
also causes <b>tar</b> to remove intervening directory
-symlinks instead of reporting an error. See the SECURITY
-section below for more details.</p>
+symlinks instead of reporting an error. See the
+“SECURITY” section below for more details.</p>
<p style="margin-top: 1em"><b>--uid</b> <i>id</i></p>
@@ -1175,37 +1181,40 @@ occurs.</p>
archive called <i>file.tar.gz</i> that contains two files
<i>source.c</i> and <i>source.h</i>:</p>
-<p style="margin-left:17%;"><b>tar -czf</b> <i>file.tar.gz
-source.c source.h</i></p>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -czf</b>
+<i>file.tar.gz source.c source.h</i></p>
<p style="margin-left:9%; margin-top: 1em">To view a
detailed table of contents for this archive:</p>
-<p style="margin-left:17%;"><b>tar -tvf</b>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -tvf</b>
<i>file.tar.gz</i></p>
<p style="margin-left:9%; margin-top: 1em">To extract all
entries from the archive on the default tape drive:</p>
-<p style="margin-left:17%;"><b>tar -x</b></p>
+<p style="margin-left:17%; margin-top: 1em"><b>tar
+-x</b></p>
<p style="margin-left:9%; margin-top: 1em">To examine the
contents of an ISO 9660 cdrom image:</p>
-<p style="margin-left:17%;"><b>tar -tf</b>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -tf</b>
<i>image.iso</i></p>
<p style="margin-left:9%; margin-top: 1em">To move file
hierarchies, invoke <b>tar</b> as</p>
-<p style="margin-left:17%;"><b>tar -cf</b> <i>-</i>
-<b>-C</b> <i>srcdir .</i> | <b>tar -xpf</b> <i>-</i>
-<b>-C</b> <i>destdir</i></p>
-
-<p style="margin-left:9%;">or more traditionally</p>
-
-<p style="margin-left:17%;"><b>cd srcdir ; tar -cf</b> <i>-
-.</i> | (<i>cd destdir ;</i> <b>tar -xpf</b> <i>-</i>)</p>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -cf</b>
+<i>-</i> <b>-C</b> <i>srcdir .</i> | <b>tar -xpf</b>
+<i>-</i> <b>-C</b> <i>destdir</i></p>
+
+<p style="margin-left:9%; margin-top: 1em">or more
+traditionally</p>
+
+<p style="margin-left:17%; margin-top: 1em"><b>cd srcdir ;
+tar -cf</b> <i>- .</i> | (<i>cd destdir ;</i> <b>tar
+-xpf</b> <i>-</i>)</p>
<p style="margin-left:9%; margin-top: 1em">In create mode,
the list of files and directories to be archived can also
@@ -1214,17 +1223,17 @@ include directory change instructions of
<b>@</b><i>archive-file</i>. For example, the command
line</p>
-<p style="margin-left:17%;"><b>tar -c -f</b> <i>new.tar
-foo1</i> <b>@</b><i>old.tgz</i> <b>-C</b><i>/tmp
-foo2</i></p>
-
-<p style="margin-left:9%;">will create a new archive
-<i>new.tar</i>. <b>tar</b> will read the file <i>foo1</i>
-from the current directory and add it to the output archive.
-It will then read each entry from <i>old.tgz</i> and add
-those entries to the output archive. Finally, it will switch
-to the <i>/tmp</i> directory and add <i>foo2</i> to the
-output archive.</p>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -c
+-f</b> <i>new.tar foo1</i> <b>@</b><i>old.tgz</i>
+<b>-C</b><i>/tmp foo2</i></p>
+
+<p style="margin-left:9%; margin-top: 1em">will create a
+new archive <i>new.tar</i>. <b>tar</b> will read the file
+<i>foo1</i> from the current directory and add it to the
+output archive. It will then read each entry from
+<i>old.tgz</i> and add those entries to the output archive.
+Finally, it will switch to the <i>/tmp</i> directory and add
+<i>foo2</i> to the output archive.</p>
<p style="margin-left:9%; margin-top: 1em">An input file in
<i>mtree</i>(5) format can be used to create an output
@@ -1251,19 +1260,21 @@ details of archive generation or reading
can generate mtree output which only contains <b>type</b>,
<b>time</b>, and <b>uid</b> keywords:</p>
-<p style="margin-left:17%;"><b>tar -cf</b> <i>file.tar</i>
-<b>--format=mtree
+<p style="margin-left:17%; margin-top: 1em"><b>tar -cf</b>
+<i>file.tar</i> <b>--format=mtree
--options=’!all,type,time,uid’</b>
<i>dir</i></p>
-<p style="margin-left:9%;">or you can set the compression
-level used by gzip or xz compression:</p>
+<p style="margin-left:9%; margin-top: 1em">or you can set
+the compression level used by gzip or xz compression:</p>
-<p style="margin-left:17%;"><b>tar -czf</b> <i>file.tar</i>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -czf</b>
+<i>file.tar</i>
<b>--options=’compression-level=9’</b>.</p>
-<p style="margin-left:9%;">For more details, see the
-explanation of the <b>archive_read_set_options</b>() and
+<p style="margin-left:9%; margin-top: 1em">For more
+details, see the explanation of the
+<b>archive_read_set_options</b>() and
<b>archive_write_set_options</b>() API calls that are
described in <i>archive_read</i>(3) and
<i>archive_write</i>(3).</p>
@@ -1278,15 +1289,15 @@ follow as separate words. The order of t
match the order of the corresponding characters in the
bundled command word. For example,</p>
-<p style="margin-left:17%;"><b>tar tbf 32</b>
-<i>file.tar</i></p>
+<p style="margin-left:17%; margin-top: 1em"><b>tar tbf
+32</b> <i>file.tar</i></p>
-<p style="margin-left:9%;">specifies three flags <b>t</b>,
-<b>b</b>, and <b>f</b>. The <b>b</b> and <b>f</b> flags both
-require arguments, so there must be two additional items on
-the command line. The <i>32</i> is the argument to the
-<b>b</b> flag, and <i>file.tar</i> is the argument to the
-<b>f</b> flag.</p>
+<p style="margin-left:9%; margin-top: 1em">specifies three
+flags <b>t</b>, <b>b</b>, and <b>f</b>. The <b>b</b> and
+<b>f</b> flags both require arguments, so there must be two
+additional items on the command line. The <i>32</i> is the
+argument to the <b>b</b> flag, and <i>file.tar</i> is the
+argument to the <b>f</b> flag.</p>
<p style="margin-left:9%; margin-top: 1em">The mode options
c, r, t, u, and x and the options b, f, l, m, o, v, and w
@@ -1345,22 +1356,24 @@ be unconditionally removed. If neither <
<b>-P</b> is specified, <b>tar</b> will refuse to extract
the entry.</p>
-<p style="margin-left:9%;">To protect yourself, you should
-be wary of any archives that come from untrusted sources.
-You should examine the contents of an archive with</p>
+<p style="margin-left:9%; margin-top: 1em">To protect
+yourself, you should be wary of any archives that come from
+untrusted sources. You should examine the contents of an
+archive with</p>
-<p style="margin-left:17%;"><b>tar -tf</b>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -tf</b>
<i>filename</i></p>
-<p style="margin-left:9%;">before extraction. You should
-use the <b>-k</b> option to ensure that <b>tar</b> will not
-overwrite any existing files or the <b>-U</b> option to
-remove any pre-existing files. You should generally not
-extract archives while running with super-user privileges.
-Note that the <b>-P</b> option to <b>tar</b> disables the
-security checks above and allows you to extract an archive
-while preserving any absolute pathnames, <i>..</i>
-components, or symlinks to other directories.</p>
+<p style="margin-left:9%; margin-top: 1em">before
+extraction. You should use the <b>-k</b> option to ensure
+that <b>tar</b> will not overwrite any existing files or the
+<b>-U</b> option to remove any pre-existing files. You
+should generally not extract archives while running with
+super-user privileges. Note that the <b>-P</b> option to
+<b>tar</b> disables the security checks above and allows you
+to extract an archive while preserving any absolute
+pathnames, <i>..</i> components, or symlinks to other
+directories.</p>
<p style="margin-top: 1em"><b>SEE ALSO</b></p>
@@ -1432,13 +1445,14 @@ and decompression is implemented interna
insignificant differences between the compressed output
generated by</p>
-<p style="margin-left:17%;"><b>tar -czf</b> <i>-
-file</i></p>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -czf</b>
+<i>- file</i></p>
-<p style="margin-left:9%;">and that generated by</p>
+<p style="margin-left:9%; margin-top: 1em">and that
+generated by</p>
-<p style="margin-left:17%;"><b>tar -cf</b> <i>- file</i> |
-<b>gzip</b></p>
+<p style="margin-left:17%; margin-top: 1em"><b>tar -cf</b>
+<i>- file</i> | <b>gzip</b></p>
<p style="margin-left:9%; margin-top: 1em">The default
should be to read and write archives to the standard I/O
@@ -1468,9 +1482,9 @@ any support for multi-volume archives.</
<p style="margin-left:9%; margin-top: 1em">Converting
between dissimilar archive formats (such as tar and cpio)
using the <b>@</b><i>-</i> convention can cause hard link
-information to be lost. (This is a consequence of the
+information to be lost. This is a consequence of the
incompatible ways that different archive formats store
-hardlink information.) Debian April 23, 2024
+hardlink information. Debian April 23, 2024
<i>TAR</i>(1)</p>
<hr>
</body>
Index: pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:11 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/tar.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.13 pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.14
--- pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.13 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/tar.5.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:11 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.12 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.12 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.12 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:09 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:37 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.12 pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.13
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.12 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.7 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.8
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.7 Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.9 pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.10
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.9 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:08 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:36 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.9 pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.10
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.9 Sat Oct 19 05:39:56 2024
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html Mon Apr 28 10:31:33 2025
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
-<!-- CreationDate: Sun Oct 13 08:12:10 2024 -->
+<!-- CreationDate: Sun Mar 30 20:07:38 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Index: pkgsrc/archivers/libarchive/files/doc/man/bsdtar.1
diff -u pkgsrc/archivers/libarchive/files/doc/man/bsdtar.1:1.14 pkgsrc/archivers/libarchive/files/doc/man/bsdtar.1:1.15
--- pkgsrc/archivers/libarchive/files/doc/man/bsdtar.1:1.14 Tue Apr 30 06:05:18 2024
+++ pkgsrc/archivers/libarchive/files/doc/man/bsdtar.1 Mon Apr 28 10:31:34 2025
@@ -30,19 +30,22 @@
\fB\%tar\fP
creates and manipulates streaming archive files.
This implementation can extract from tar, pax, cpio, zip, jar, ar, xar,
-rpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax, cpio, ar, zip,
-7-zip, and shar archives.
+rar, rpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax,
+cpio, ar, zip, 7-zip, and shar archives.
.PP
The first synopsis form shows a
``bundled''
option word.
This usage is provided for compatibility with historical implementations.
-See COMPATIBILITY below for details.
+See
+.B COMPATIBILITY
+below for details.
.PP
The other synopsis forms show the preferred usage.
The first option to
\fB\%tar\fP
is a mode indicator from the following list:
+.PP
.RS 5
.TP
\fB\-c\fP
@@ -114,22 +117,28 @@ all operating modes.
The specified archive is opened and the entries
in it will be appended to the current archive.
As a simple example,
+.PP
.RS 4
\fB\%tar\fP \fB\-c\fP \fB\-f\fP \fI-\fP \fInewfile\fP \fB@\fP \fIoriginal.tar\fP
.RE
+.PP
writes a new archive to standard output containing a file
\fInewfile\fP
and all of the entries from
\fIoriginal.tar\fP.
In contrast,
+.PP
.RS 4
\fB\%tar\fP \fB\-c\fP \fB\-f\fP \fI-\fP \fInewfile\fP \fIoriginal.tar\fP
.RE
+.PP
creates a new archive with only two entries.
Similarly,
+.PP
.RS 4
\fB\%tar\fP \fB\-czf\fP \fI-\fP \fB\-Fl\fP format \fBpax\fP \fB@\fP \fI-\fP
.RE
+.PP
reads an archive from standard input (whose format will be determined
automatically) and converts it into a gzip-compressed
pax-format archive on stdout.
@@ -142,29 +151,39 @@ can be used to convert archives from one
Use the archive suffix to decide a set of the format and
the compressions.
As a simple example,
+.PP
.RS 4
\fB\%tar\fP \fB\-a\fP \fB\-cf\fP \fIarchive.tgz\fP source.c source.h
.RE
+.PP
creates a new archive with restricted pax format and gzip compression,
+.PP
.RS 4
\fB\%tar\fP \fB\-a\fP \fB\-cf\fP \fIarchive.tar.bz2.uu\fP source.c source.h
.RE
+.PP
creates a new archive with restricted pax format and bzip2 compression
and uuencode compression,
+.PP
.RS 4
\fB\%tar\fP \fB\-a\fP \fB\-cf\fP \fIarchive.zip\fP source.c source.h
.RE
+.PP
creates a new archive with zip format,
+.PP
.RS 4
\fB\%tar\fP \fB\-a\fP \fB\-jcf\fP \fIarchive.tgz\fP source.c source.h
.RE
+.PP
ignores the
``-j''
option, and creates a new archive with restricted pax format
and gzip compression,
+.PP
.RS 4
\fB\%tar\fP \fB\-a\fP \fB\-jcf\fP \fIarchive.xxx\fP source.c source.h
.RE
+.PP
if it is unknown suffix or no suffix, creates a new archive with
restricted pax format and bzip2 compression.
.TP
@@ -338,9 +357,11 @@ The
\fB\-Fl\fP include
option is especially useful when filtering archives.
For example, the command
+.PP
.RS 4
\fB\%tar\fP \fB\-c\fP \fB\-f\fP \fInew.tar\fP \fB\-Fl\fP include='*foo*' \fB@\fP \fIold.tgz\fP
.RE
+.PP
creates a new archive
\fInew.tar\fP
containing only the entries from
@@ -451,7 +472,8 @@ and the default behavior in c, r, and u
\fB\%tar\fP
is run in x mode as root.
Currently supported only for pax formats
-(including "pax restricted", the default tar format for bsdtar.)
+Po including pax restricted, the default tar format for
+\fB\%bsdtar\fP Pc
.TP
\fB\-n\fP, \fB\-Fl\fP norecurse, \fB\-Fl\fP no-recursion
Do not operate recursively on the content of directories.
@@ -640,6 +662,7 @@ keywords and values.
These are passed to the modules that handle particular
formats to control how those formats will behave.
Each option has one of the following forms:
+.PP
.RS 5
.TP
\fIkey=value\fP
@@ -667,6 +690,7 @@ and for extract and list modes in
\fBarchive_read_set_options\fP(3).
.PP
Examples of supported options:
+.PP
.RS 5
.TP
\fBiso9660:joliet\fP
@@ -915,6 +939,7 @@ This option is comparable to the
\fB\-i\fP, \fB\-Fl\fP ignore-zeros
option of GNU tar.
.RE
+.PP
If a provided option is not supported by any module, that
is a fatal error.
.TP
@@ -1101,7 +1126,9 @@ This flag also causes
\fB\%tar\fP
to remove intervening directory symlinks instead of
reporting an error.
-See the SECURITY section below for more details.
+See the
+.B SECURITY
+section below for more details.
.TP
\fB\-Fl\fP uid \fIid\fP
Use the provided user id number and ignore the user
@@ -1259,23 +1286,27 @@ that contains two files
\fIsource.c\fP
and
\fIsource.h\fP:
+.PP
.RS 4
\fB\%tar\fP \fB\-czf\fP \fIfile.tar.gz\fP \fIsource.c\fP \fIsource.h\fP
.RE
.PP
To view a detailed table of contents for this
archive:
+.PP
.RS 4
\fB\%tar\fP \fB\-tvf\fP \fIfile.tar.gz\fP
.RE
.PP
To extract all entries from the archive on
the default tape drive:
+.PP
.RS 4
\fB\%tar\fP \fB\-x\fP
.RE
.PP
To examine the contents of an ISO 9660 cdrom image:
+.PP
.RS 4
\fB\%tar\fP \fB\-tf\fP \fIimage.iso\fP
.RE
@@ -1283,10 +1314,13 @@ To examine the contents of an ISO 9660 c
To move file hierarchies, invoke
\fB\%tar\fP
as
+.PP
.RS 4
\fB\%tar\fP \fB\-cf\fP \fI-\fP \fB\-C\fP \fIsrcdir\fP \&. | \fB\%tar\fP \fB\-xpf\fP \fI-\fP \fB\-C\fP \fIdestdir\fP
.RE
+.PP
or more traditionally
+.PP
.RS 4
cd srcdir \&; \fB\%tar\fP \fB\-cf\fP \fI-\fP \&. | (cd destdir \&; \fB\%tar\fP \fB\-xpf\fP \fI-\fP)
.RE
@@ -1297,9 +1331,11 @@ can also include directory change instru
and archive inclusions of the form
\fB@\fP \fIarchive-file\fP.
For example, the command line
+.PP
.RS 4
\fB\%tar\fP \fB\-c\fP \fB\-f\fP \fInew.tar\fP \fIfoo1\fP \fB@\fP \fIold.tgz\fP \fB-C\fP \fI/tmp\fP \fIfoo2\fP
.RE
+.PP
will create a new archive
\fInew.tar\fP.
\fB\%tar\fP
@@ -1348,13 +1384,17 @@ For example, you can generate mtree outp
and
\fBuid\fP
keywords:
+.PP
.RS 4
\fB\%tar\fP \fB\-cf\fP \fIfile.tar\fP \fB\-Fl\fP format=mtree \fB\-Fl\fP options='!all,type,time,uid' \fIdir\fP
.RE
+.PP
or you can set the compression level used by gzip or xz compression:
+.PP
.RS 4
\fB\%tar\fP \fB\-czf\fP \fIfile.tar\fP \fB\-Fl\fP options='compression-level=9'.
.RE
+.PP
For more details, see the explanation of the
\fB\%archive_read_set_options\fP()
and
@@ -1373,9 +1413,11 @@ 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,
+.PP
.RS 4
\fB\%tar\fP \fBtbf\fP 32 \fIfile.tar\fP
.RE
+.PP
specifies three flags
\fBt\fP,
\fBb\fP,
@@ -1474,12 +1516,15 @@ is specified,
\fB\%tar\fP
will refuse to extract the entry.
.RE
+.PP
To protect yourself, you should be wary of any archives that
come from untrusted sources.
You should examine the contents of an archive with
+.PP
.RS 4
\fB\%tar\fP \fB\-tf\fP \fIfilename\fP
.RE
+.PP
before extraction.
You should use the
\fB\-k\fP
@@ -1533,7 +1578,7 @@ command appeared in Seventh Edition Unix
There have been numerous other implementations,
many of which extended the file format.
John Gilmore's
-\fB\%pdtar\fP
+.B 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
@@ -1587,10 +1632,13 @@ although they still extract it correctly
The compression and decompression is implemented internally, so
there may be insignificant differences between the compressed output
generated by
+.PP
.RS 4
\fB\%tar\fP \fB\-czf\fP \fI-\fP file
.RE
+.PP
and that generated by
+.PP
.RS 4
\fB\%tar\fP \fB\-cf\fP \fI-\fP file | \fB\%gzip\fP
.RE
@@ -1637,5 +1685,5 @@ There is not yet any support for multi-v
Converting between dissimilar archive formats (such as tar and cpio) using the
\fB@\fP \fI-\fP
convention can cause hard link information to be lost.
-(This is a consequence of the incompatible ways that different archive
-formats store hardlink information.)
+This is a consequence of the incompatible ways that different archive
+formats store hardlink information.
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_disk.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_util.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_disk.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/bsdcpio.1.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/bsdtar.1.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/cpio.5.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/libarchive-formats.5.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/libarchive.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/libarchive_internals.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/mtree.5.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/tar.5.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_acl.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_linkify.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_paths.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_perms.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_stat.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_time.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_data.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_extract.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_filter.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_format.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_free.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_header.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_new.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_open.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_set_options.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_blocksize.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_data.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_filter.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_finish_entry.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_format.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_free.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_header.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_new.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_open.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_options.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/libarchive_changes.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_misc.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_add_passphrase.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_passphrase.3.pdf
Binary files are different
Index: pkgsrc/archivers/libarchive/files/doc/text/bsdtar.1.txt
diff -u pkgsrc/archivers/libarchive/files/doc/text/bsdtar.1.txt:1.12 pkgsrc/archivers/libarchive/files/doc/text/bsdtar.1.txt:1.13
--- pkgsrc/archivers/libarchive/files/doc/text/bsdtar.1.txt:1.12 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/doc/text/bsdtar.1.txt Mon Apr 28 10:31:34 2025
@@ -11,16 +11,17 @@
1mDESCRIPTION0m
1mtar 22mcreates and manipulates streaming archive files. This implementa‐
- tion can extract from tar, pax, cpio, zip, jar, ar, xar, rpm, 7-zip,
- and ISO 9660 cdrom images and can create tar, pax, cpio, ar, zip,
- 7-zip, and shar archives.
+ tion can extract from tar, pax, cpio, zip, jar, ar, xar, rar, rpm,
+ 7-zip, 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 COM‐
- PATIBILITY below for details.
+ provided for compatibility with historical implementations. See
+ “COMPATIBILITY” below for details.
The other synopsis forms show the preferred usage. The first option to
1mtar 22mis a mode indicator from the following list:
+
1m-c 22mCreate a new archive containing the specified items. The long
option form is 1m--create22m.
1m-r 22mLike 1m-c22m, but new entries are appended to the archive. Note
@@ -56,12 +57,18 @@
(c and r modes only) The specified archive is opened and the
entries in it will be appended to the current archive. As a
simple example,
+
1mtar -c -f 4m22m-24m 4mnewfile24m 1m@4m22moriginal.tar0m
+
writes a new archive to standard output containing a file
4mnewfile24m and all of the entries from 4moriginal.tar24m. In contrast,
+
1mtar -c -f 4m22m-24m 4mnewfile24m 4moriginal.tar0m
+
creates a new archive with only two entries. Similarly,
+
1mtar -czf 4m22m-24m 1m--format pax @4m22m-0m
+
reads an archive from standard input (whose format will be de‐
termined automatically) and converts it into a gzip-compressed
pax-format archive on stdout. In this way, 1mtar 22mcan be used to
@@ -70,18 +77,28 @@
1m-a22m, 1m--auto-compress0m
(c mode only) Use the archive suffix to decide a set of the
format and the compressions. As a simple example,
+
1mtar -a -cf 4m22marchive.tgz24m 4msource.c24m 4msource.h0m
+
creates a new archive with restricted pax format and gzip com‐
pression,
+
1mtar -a -cf 4m22marchive.tar.bz2.uu24m 4msource.c24m 4msource.h0m
+
creates a new archive with restricted pax format and bzip2 com‐
pression and uuencode compression,
+
1mtar -a -cf 4m22marchive.zip24m 4msource.c24m 4msource.h0m
+
creates a new archive with zip format,
+
1mtar -a -jcf 4m22marchive.tgz24m 4msource.c24m 4msource.h0m
+
ignores the “-j” option, and creates a new archive with re‐
stricted pax format and gzip compression,
+
1mtar -a -jcf 4m22marchive.xxx24m 4msource.c24m 4msource.h0m
+
if it is unknown suffix or no suffix, creates a new archive
with restricted pax format and bzip2 compression.
@@ -191,7 +208,9 @@
specified, all entries are processed by default. The 1m--include0m
option is especially useful when filtering archives. For exam‐
ple, the command
+
1mtar -c -f 4m22mnew.tar24m 1m--include='*foo*' @4m22mold.tgz0m
+
creates a new archive 4mnew.tar24m containing only the entries from
4mold.tgz24m containing the string ‘foo’.
@@ -263,14 +282,14 @@
4mcopyfile24m(3) in AppleDouble format. This is the reverse of
1m--no-mac-metadata22m. and the default behavior in c, r, and u
modes or if 1mtar 22mis run in x mode as root. Currently supported
- only for pax formats (including "pax restricted", the default
- tar format for bsdtar.)
+ only for pax formats (including pax restricted, the default tar
+ format for 1mbsdtar22m)
1m-n22m, 1m--norecurse22m, 1m--no-recursion0m
Do not operate recursively on the content of directories.
1m--newer 4m22mdate0m
- (c, r, u modes only) Only include files and directories newer
+ (c, r, u modes only) Only include files and directories newer
than the specified date. This compares ctime entries.
1m--newer-mtime 4m22mdate0m
@@ -278,92 +297,92 @@
tries instead of ctime entries.
1m--newer-than 4m22mfile0m
- (c, r, u modes only) Only include files and directories newer
+ (c, r, u modes only) Only include files and directories newer
than the specified file. This compares ctime entries.
1m--newer-mtime-than 4m22mfile0m
- (c, r, u modes only) Like 1m--newer-than22m, except it compares
+ (c, r, u modes only) Like 1m--newer-than22m, except it compares
mtime entries instead of ctime entries.
1m--nodump0m
- (c and r modes only) Honor the nodump file flag by skipping
+ (c and r modes only) Honor the nodump file flag by skipping
this file.
1m--nopreserveHFSCompression0m
- (x mode only) Mac OS X specific (v10.6 or later). Do not com‐
- press extracted regular files which were compressed with HFS+
- compression before archived. By default, compress the regular
+ (x mode only) Mac OS X specific (v10.6 or later). Do not com‐
+ press extracted regular files which were compressed with HFS+
+ compression before archived. By default, compress the regular
files again with HFS+ compression.
1m--null 22m(use with 1m-I 22mor 1m-T22m) 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 1m-print0 22moption to 4mfind24m(1).
1m--no-acls0m
- (c, r, u, x modes only) Do not archive or extract POSIX.1e or
- NFSv4 ACLs. This is the reverse of 1m--acls 22mand the default be‐
- havior if 1mtar 22mis run as non-root in x mode (on Mac OS X as any
+ (c, r, u, x modes only) Do not archive or extract POSIX.1e or
+ NFSv4 ACLs. This is the reverse of 1m--acls 22mand the default be‐
+ havior if 1mtar 22mis run as non-root in x mode (on Mac OS X as any
user in c, r, u and x modes).
1m--no-fflags0m
- (c, r, u, x modes only) Do not archive or extract file attrib‐
- utes or file flags. This is the reverse of 1m--fflags 22mand the
+ (c, r, u, x modes only) Do not archive or extract file attrib‐
+ utes or file flags. This is the reverse of 1m--fflags 22mand the
default behavior if 1mtar 22mis run as non-root in x mode.
1m--no-mac-metadata0m
- (x mode only) Mac OS X specific. Do not archive or extract
- ACLs and extended file attributes using 4mcopyfile24m(3) in Apple‐
+ (x mode only) Mac OS X specific. Do not archive or extract
+ ACLs and extended file attributes using 4mcopyfile24m(3) in Apple‐
Double format. This is the reverse of 1m--mac-metadata22m. and the
default behavior if 1mtar 22mis run as non-root in x mode.
1m--no-read-sparse0m
- (c, r, u modes only) Do not read sparse file information from
+ (c, r, u modes only) Do not read sparse file information from
disk. This is the reverse of 1m--read-sparse22m.
1m--no-safe-writes0m
- (x mode only) Do not create temporary files and use 4mrename24m(2)
- to replace the original ones. This is the reverse of
+ (x mode only) Do not create temporary files and use 4mrename24m(2)
+ to replace the original ones. This is the reverse of
1m--safe-writes22m.
1m--no-same-owner0m
- (x mode only) Do not extract owner and group IDs. This is the
- reverse of 1m--same-owner 22mand the default behavior if 1mtar 22mis run
+ (x mode only) Do not extract owner and group IDs. This is the
+ reverse of 1m--same-owner 22mand the default behavior if 1mtar 22mis run
as non-root.
1m--no-same-permissions0m
- (x mode only) Do not extract full permissions (SGID, SUID,
- sticky bit, file attributes or file flags, extended file at‐
- tributes and ACLs). This is the reverse of 1m-p 22mand the default
+ (x mode only) Do not extract full permissions (SGID, SUID,
+ sticky bit, file attributes or file flags, extended file at‐
+ tributes and ACLs). This is the reverse of 1m-p 22mand the default
behavior if 1mtar 22mis run as non-root.
1m--no-xattrs0m
(c, r, u, x modes only) Do not archive or extract extended file
- attributes. This is the reverse of 1m--xattrs 22mand the default
+ attributes. This is the reverse of 1m--xattrs 22mand the default
behavior if 1mtar 22mis run as non-root in x mode.
1m--numeric-owner0m
- This is equivalent to 1m--uname 22m"" 1m--gname 22m"". On extract, it
+ This is equivalent to 1m--uname 22m"" 1m--gname 22m"". On extract, it
causes user and group names in the archive to be ignored in fa‐
- vor of the numeric user and group ids. On create, it causes
+ vor of the numeric user and group ids. On create, it causes
user and group names to not be stored in the archive.
1m-O22m, 1m--to-stdout0m
- (x, t modes only) In extract (-x) mode, files will be written
- to standard out rather than being extracted to disk. In list
- (-t) mode, the file listing will be written to stderr rather
+ (x, t modes only) In extract (-x) mode, files will be written
+ to standard out rather than being extracted to disk. In list
+ (-t) mode, the file listing will be written to stderr rather
than the usual stdout.
1m-o 22m(x mode) Use the user and group of the user running the program
rather than those specified in the archive. Note that this has
- no significance unless 1m-p 22mis specified, and the program is be‐
- ing run by the root user. In this case, the file modes and
- flags from the archive will be restored, but ACLs or owner in‐
+ no significance unless 1m-p 22mis specified, and the program is be‐
+ ing run by the root user. In this case, the file modes and
+ flags from the archive will be restored, but ACLs or owner in‐
formation in the archive will be discarded.
1m-o 22m(c, r, u mode) A synonym for 1m--format 4m22mustar0m
1m--older 4m22mdate0m
- (c, r, u modes only) Only include files and directories older
+ (c, r, u modes only) Only include files and directories older
than the specified date. This compares ctime entries.
1m--older-mtime 4m22mdate0m
@@ -371,11 +390,11 @@
tries instead of ctime entries.
1m--older-than 4m22mfile0m
- (c, r, u modes only) Only include files and directories older
+ (c, r, u modes only) Only include files and directories older
than the specified file. This compares ctime entries.
1m--older-mtime-than 4m22mfile0m
- (c, r, u modes only) Like 1m--older-than22m, except it compares
+ (c, r, u modes only) Like 1m--older-than22m, except it compares
mtime entries instead of ctime entries.
1m--one-file-system0m
@@ -383,48 +402,50 @@
1m--options 4m22moptions0m
Select optional behaviors for particular modules. The argument
- is a text string containing comma-separated keywords and val‐
- ues. These are passed to the modules that handle particular
- formats to control how those formats will behave. Each option
+ is a text string containing comma-separated keywords and val‐
+ ues. These are passed to the modules that handle particular
+ formats to control how those formats will behave. Each option
has one of the following forms:
+
4mkey=value0m
- The key will be set to the specified value in every
- module that supports it. Modules that do not support
+ The key will be set to the specified value in every
+ module that supports it. Modules that do not support
this key will ignore it.
- 4mkey24m The key will be enabled in every module that supports
+ 4mkey24m The key will be enabled in every module that supports
it. This is equivalent to 4mkey24m1m=122m.
- 4m!key24m The key will be disabled in every module that supports
+ 4m!key24m The key will be disabled in every module that supports
it.
4mmodule:key=value24m, 4mmodule:key24m, 4mmodule:!key0m
- As above, but the corresponding key and value will be
+ As above, but the corresponding key and value will be
provided only to modules whose name matches 4mmodule24m.
- The complete list of supported modules and keys for create and
+ The complete list of supported modules and keys for create and
append modes is in 4marchive_write_set_options24m(3) and for extract
and list modes in 4marchive_read_set_options24m(3).
Examples of supported options:
+
1miso9660:joliet0m
Support Joliet extensions. This is enabled by default,
use 1m!joliet 22mor 1miso9660:!joliet 22mto disable.
1miso9660:rockridge0m
- Support Rock Ridge extensions. This is enabled by de‐
+ Support Rock Ridge extensions. This is enabled by de‐
fault, use 1m!rockridge 22mor 1miso9660:!rockridge 22mto disable.
1mgzip:compression-level0m
- A decimal integer from 1 to 9 specifying the gzip com‐
+ A decimal integer from 1 to 9 specifying the gzip com‐
pression level.
1mgzip:timestamp0m
- Store timestamp. This is enabled by default, use
+ Store timestamp. This is enabled by default, use
1m!timestamp 22mor 1mgzip:!timestamp 22mto disable.
1mlrzip:compression22m=4mtype0m
- Use 4mtype24m as compression method. Supported values are
- bzip2, gzip, lzo (ultra fast), and zpaq (best, ex‐
+ Use 4mtype24m as compression method. Supported values are
+ bzip2, gzip, lzo (ultra fast), and zpaq (best, ex‐
tremely slow).
1mlrzip:compression-level0m
A decimal integer from 1 to 9 specifying the lrzip com‐
pression level.
1mlz4:compression-level0m
- A decimal integer from 1 to 9 specifying the lzop com‐
+ A decimal integer from 1 to 9 specifying the lzop com‐
pression level.
1mlz4:stream-checksum0m
Enable stream checksum. This is by default, use
@@ -432,10 +453,10 @@
1mlz4:block-checksum0m
Enable block checksum (Disabled by default).
1mlz4:block-size0m
- A decimal integer from 4 to 7 specifying the lz4 com‐
+ A decimal integer from 4 to 7 specifying the lz4 com‐
pression block size (7 is set by default).
1mlz4:block-dependence0m
- Use the previous block of the block being compressed
+ Use the previous block of the block being compressed
for a compression dictionary to improve compression ra‐
tio.
1mzstd:compression-level22m=4mN0m
@@ -443,100 +464,101 @@
level. Supported values depend on the library version,
common values are from 1 to 22.
1mzstd:threads22m=4mN0m
- Specify the number of worker threads to use, or 0 to
- use as many threads as there are CPU cores in the sys‐
+ Specify the number of worker threads to use, or 0 to
+ use as many threads as there are CPU cores in the sys‐
tem.
1mzstd:frame-per-file0m
- Start a new compression frame at the beginning of each
+ Start a new compression frame at the beginning of each
file in the archive.
1mzstd:min-frame-in22m=4mN0m
In combination with 1mzstd:frame-per-file22m, do not start a
- new compression frame unless the uncompressed size of
- the current frame is at least 4mN24m bytes. The number may
- be followed by 1mk / kB22m, 1mM / MB22m, or 1mG / GB 22mto indicate
+ new compression frame unless the uncompressed size of
+ the current frame is at least 4mN24m bytes. The number may
+ be followed by 1mk / kB22m, 1mM / MB22m, or 1mG / GB 22mto indicate
kilobytes, megabytes or gigabytes respectively.
1mzstd:min-frame-out22m=4mN24m, 1mzstd:min-frame-size22m=4mN0m
In combination with 1mzstd:frame-per-file22m, do not start a
new compression frame unless the compressed size of the
- current frame is at least 4mN24m bytes. The number may be
+ current frame is at least 4mN24m bytes. The number may be
followed by 1mk / kB22m, 1mM / MB22m, or 1mG / GB 22mto indicate kilo‐
bytes, megabytes or gigabytes respectively.
1mzstd:max-frame-in22m=4mN24m, 1mzstd:max-frame-size22m=4mN0m
Start a new compression frame as soon as possible after
- the uncompressed size of the current frame exceeds 4mN0m
- bytes. The number may be followed by 1mk / kB22m, 1mM / MB22m,
+ the uncompressed size of the current frame exceeds 4mN0m
+ bytes. The number may be followed by 1mk / kB22m, 1mM / MB22m,
or 1mG / GB 22mto indicate kilobytes, megabytes or gigabytes
respectively. Values less than 1,024 will be rejected.
1mzstd:max-frame-out22m=4mN0m
Start a new compression frame as soon as possible after
- the compressed size of the current frame exceeds 4mN0m
- bytes. The number may be followed by 1mk / kB22m, 1mM / MB22m,
+ the compressed size of the current frame exceeds 4mN0m
+ bytes. The number may be followed by 1mk / kB22m, 1mM / MB22m,
or 1mG / GB 22mto indicate kilobytes, megabytes or gigabytes
respectively. Values less than 1,024 will be rejected.
1mlzop:compression-level0m
- A decimal integer from 1 to 9 specifying the lzop com‐
+ A decimal integer from 1 to 9 specifying the lzop com‐
pression level.
1mxz:compression-level0m
- A decimal integer from 0 to 9 specifying the xz com‐
+ A decimal integer from 0 to 9 specifying the xz com‐
pression level.
1mxz:threads0m
- Specify the number of worker threads to use. Setting
- threads to a special value 0 makes 4mxz24m(1) use as many
+ Specify the number of worker threads to use. Setting
+ threads to a special value 0 makes 4mxz24m(1) use as many
threads as there are CPU cores on the system.
1mmtree:4m22mkeyword0m
- The mtree writer module allows you to specify which
- mtree keywords will be included in the output. Sup‐
- ported keywords include: 1mcksum22m, 1mdevice22m, 1mflags22m, 1mgid22m,
- 1mgname22m, 1mindent22m, 1mlink22m, 1mmd522m, 1mmode22m, 1mnlink22m, 1mrmd16022m, 1msha122m,
- 1msha25622m, 1msha38422m, 1msha51222m, 1msize22m, 1mtime22m, 1muid22m, 1muname22m. The
- default is equivalent to: “device, flags, gid, gname,
+ The mtree writer module allows you to specify which
+ mtree keywords will be included in the output. Sup‐
+ ported keywords include: 1mcksum22m, 1mdevice22m, 1mflags22m, 1mgid22m,
+ 1mgname22m, 1mindent22m, 1mlink22m, 1mmd522m, 1mmode22m, 1mnlink22m, 1mrmd16022m, 1msha122m,
+ 1msha25622m, 1msha38422m, 1msha51222m, 1msize22m, 1mtime22m, 1muid22m, 1muname22m. The
+ default is equivalent to: “device, flags, gid, gname,
link, mode, nlink, size, time, type, uid, uname”.
1mmtree:all0m
- Enables all of the above keywords. You can also use
+ Enables all of the above keywords. You can also use
1mmtree:!all 22mto disable all keywords.
1mmtree:use-set0m
Enable generation of 1m/set 22mlines in the output.
1mmtree:indent0m
- Produce human-readable output by indenting options and
+ Produce human-readable output by indenting options and
splitting lines to fit into 80 columns.
1mzip:compression22m=4mtype0m
- Use 4mtype24m as compression method. Supported values are
+ Use 4mtype24m as compression method. Supported values are
store (uncompressed) and deflate (gzip algorithm).
1mzip:encryption0m
Enable encryption using traditional zip encryption.
1mzip:encryption22m=4mtype0m
- Use 4mtype24m as encryption type. Supported values are
- zipcrypt (traditional zip encryption), aes128 (WinZip
- AES-128 encryption) and aes256 (WinZip AES-256 encryp‐
+ Use 4mtype24m as encryption type. Supported values are
+ zipcrypt (traditional zip encryption), aes128 (WinZip
+ AES-128 encryption) and aes256 (WinZip AES-256 encryp‐
tion).
1mread_concatenated_archives0m
- Ignore zeroed blocks in the archive, which occurs when
- multiple tar archives have been concatenated together.
- Without this option, only the contents of the first
- concatenated archive would be read. This option is
+ Ignore zeroed blocks in the archive, which occurs when
+ multiple tar archives have been concatenated together.
+ Without this option, only the contents of the first
+ concatenated archive would be read. This option is
comparable to the 1m-i22m, 1m--ignore-zeros 22moption of GNU tar.
- If a provided option is not supported by any module, that is a
+
+ If a provided option is not supported by any module, that is a
fatal error.
1m-P22m, 1m--absolute-paths0m
Preserve pathnames. By default, absolute pathnames (those that
- begin with a / character) have the leading slash removed both
- when creating archives and extracting from them. Also, 1mtar0m
- will refuse to extract archive entries whose pathnames contain
- 4m..24m or whose target directory would be altered by a symlink.
+ begin with a / character) have the leading slash removed both
+ when creating archives and extracting from them. Also, 1mtar0m
+ will refuse to extract archive entries whose pathnames contain
+ 4m..24m or whose target directory would be altered by a symlink.
This option suppresses these behaviors.
1m-p22m, 1m--insecure22m, 1m--preserve-permissions0m
- (x mode only) Preserve file permissions. Attempt to restore
- the full permissions, including file modes, file attributes or
- file flags, extended file attributes and ACLs, if available,
- for each item extracted from the archive. This is the reverse
+ (x mode only) Preserve file permissions. Attempt to restore
+ the full permissions, including file modes, file attributes or
+ file flags, extended file attributes and ACLs, if available,
+ for each item extracted from the archive. This is the reverse
of 1m--no-same-permissions 22mand the default if 1mtar 22mis being run as
- root. It can be partially overridden by also specifying
+ root. It can be partially overridden by also specifying
1m--no-acls22m, 1m--no-fflags22m, 1m--no-mac-metadata 22mor 1m--no-xattrs22m.
1m--passphrase 4m22mpassphrase0m
- The 4mpassphrase24m is used to extract or create an encrypted
+ The 4mpassphrase24m is used to extract or create an encrypted
archive. Currently, zip is the only supported format that sup‐
ports encryption. You shouldn't use this option unless you re‐
alize how insecure use of this option is.
@@ -545,82 +567,82 @@
(c, r, u mode only) Synonym for 1m--format 4m22mpax0m
1m-q22m, 1m--fast-read0m
- (x and t mode only) Extract or list only the first archive en‐
- try 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 con‐
- vention, later entries overwrite earlier entries. This option
+ (x and t mode only) Extract or list only the first archive en‐
+ try 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 con‐
+ vention, later entries overwrite earlier entries. This option
is provided as a performance optimization.
1m--read-sparse0m
- (c, r, u modes only) Read sparse file information from disk.
- This is the reverse of 1m--no-read-sparse 22mand the default behav‐
+ (c, r, u modes only) Read sparse file information from disk.
+ This is the reverse of 1m--no-read-sparse 22mand the default behav‐
ior.
- 1m-S 22m(x mode only) Extract files as sparse files. For every block
- on disk, check first if it contains only NULL bytes and seek
- over it otherwise. This works similar to the conv=sparse op‐
+ 1m-S 22m(x mode only) Extract files as sparse files. For every block
+ on disk, check first if it contains only NULL bytes and seek
+ over it otherwise. This works similar to the conv=sparse op‐
tion of dd.
1m-s 4m22mpattern0m
- Modify file or archive member names according to 4mpattern24m. The
- pattern has the format 4m/old/new/24m[bghHprRsS] where 4mold24m is a ba‐
- sic regular expression, 4mnew24m is the replacement string of the
- matched part, and the optional trailing letters modify how the
- replacement is handled. If 4mold24m is not matched, the pattern is
+ Modify file or archive member names according to 4mpattern24m. The
+ pattern has the format 4m/old/new/24m[bghHprRsS] where 4mold24m is a ba‐
+ sic regular expression, 4mnew24m is the replacement string of the
+ matched part, and the optional trailing letters modify how the
+ replacement is handled. If 4mold24m is not matched, the pattern is
skipped. Within 4mnew24m, ~ is substituted with the match, \1 to \9
- with the content of the corresponding captured group. The op‐
+ with the content of the corresponding captured group. The op‐
tional trailing 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 symbolic links. The optional trailing p specifies
+ the matched part and stop on the first unmatched pattern. The
+ optional trailing s specifies that the pattern applies to the
+ value of symbolic links. The optional trailing p specifies
that after a successful substitution the original path name and
the new path name should be printed to standard error. The op‐
- tional trailing b specifies that the substitution should be
+ tional trailing b specifies that the substitution should be
matched from the beginning of the string rather than from right
- after the position at which the previous matching substitution
- ended. Optional trailing H, R, or S characters suppress sub‐
- stitutions for hardlink targets, regular filenames, or symlink
+ after the position at which the previous matching substitution
+ ended. Optional trailing H, R, or S characters suppress sub‐
+ stitutions for hardlink targets, regular filenames, or symlink
targets, respectively. Optional trailing h, r, or s characters
- enable substitutions for hardlink targets, regular filenames,
+ enable substitutions for hardlink targets, regular filenames,
or symlink targets, respectively. The default is 4mhrs24m which ap‐
- plies substitutions to all names. In particular, it is never
+ plies substitutions to all names. In particular, it is never
necessary to specify h, r, or s.
1m--safe-writes0m
(x mode only) Extract files atomically. By default 1mtar 22munlinks
- the original file with the same name as the extracted file (if
+ the original file with the same name as the extracted file (if
it exists), and then creates it immediately under the same name
- and writes to it. For a short period of time, applications
- trying to access the file might not find it, or see incomplete
- results. If 1m--safe-writes 22mis enabled, 1mtar 22mfirst creates a
+ and writes to it. For a short period of time, applications
+ trying to access the file might not find it, or see incomplete
+ results. If 1m--safe-writes 22mis enabled, 1mtar 22mfirst creates a
unique temporary file, then writes the new contents to the tem‐
- porary file, and finally renames the temporary file to its fi‐
- nal name atomically using 4mrename24m(2). This guarantees that an
- application accessing the file, will either see the old con‐
+ porary file, and finally renames the temporary file to its fi‐
+ nal name atomically using 4mrename24m(2). This guarantees that an
+ application accessing the file, will either see the old con‐
tents or the new contents at all times.
1m--same-owner0m
(x mode only) Extract owner and group IDs. This is the reverse
- of 1m--no-same-owner 22mand the default behavior if 1mtar 22mis run as
+ of 1m--no-same-owner 22mand the default behavior if 1mtar 22mis run as
root.
1m--strip-components 4m22mcount0m
- Remove the specified number of leading path elements. Path‐
- names with fewer elements will be silently skipped. Note that
- the pathname is edited after checking inclusion/exclusion pat‐
+ Remove the specified number of leading path elements. Path‐
+ names with fewer elements will be silently skipped. Note that
+ the pathname is edited after checking inclusion/exclusion pat‐
terns but before security checks.
1m-T 4m22mfilename24m, 1m--files-from 4m22mfilename0m
In x or t mode, 1mtar 22mwill read the list of names to be extracted
- from 4mfilename24m. In c mode, 1mtar 22mwill read names to be archived
- from 4mfilename24m. 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 new‐
- lines unless 1m--null 22mis specified. Note that 1m--null 22malso dis‐
+ from 4mfilename24m. In c mode, 1mtar 22mwill read names to be archived
+ from 4mfilename24m. 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 new‐
+ lines unless 1m--null 22mis specified. Note that 1m--null 22malso dis‐
ables the special handling of lines containing “-C”. Note: If
- you are generating lists of files using 4mfind24m(1), you probably
+ you are generating lists of files using 4mfind24m(1), you probably
want to use 1m-n 22mas well.
1m--totals0m
@@ -630,40 +652,40 @@
1m-U22m, 1m--unlink22m, 1m--unlink-first0m
(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 1mtar 22mto remove intervening directory sym‐
- links instead of reporting an error. See the SECURITY section
- below for more details.
+ can make things slower if most files do not already exist.
+ This flag also causes 1mtar 22mto remove intervening directory sym‐
+ links instead of reporting an error. See the “SECURITY” sec‐
+ tion below for more details.
1m--uid 4m22mid0m
- Use the provided user id number and ignore the user name from
- the archive. On create, if 1m--uname 22mis not also specified, the
+ Use the provided user id number and ignore the user name from
+ the archive. On create, if 1m--uname 22mis not also specified, the
user name will be set to match the user id.
1m--uname 4m22mname0m
- Use the provided user name. On extract, this overrides the
- user name in the archive; if the provided user name does not
- exist on the system, it will be ignored and the user id (from
+ Use the provided user name. On extract, this overrides the
+ user name in the archive; if the provided user name does not
+ exist on the system, it will be ignored and the user id (from
the archive or from the 1m--uid 22moption) will be used instead. On
- create, this sets the user name that will be stored in the
+ create, this sets the user name that will be stored in the
archive; the name is not verified against the system user data‐
base.
1m--use-compress-program 4m22mprogram0m
- Pipe the input (in x or t mode) or the output (in c mode)
- through 4mprogram24m instead of using the builtin compression sup‐
+ Pipe the input (in x or t mode) or the output (in c mode)
+ through 4mprogram24m instead of using the builtin compression sup‐
port.
1m--owner 4m22mname24m[:4muid24m]
- Use the provided user, if 4muid24m is not provided, 4mname24m can be ei‐
+ Use the provided user, if 4muid24m is not provided, 4mname24m can be ei‐
ther an username or numeric id. See the 1m--uname 22moption for de‐
tails.
1m-v22m, 1m--verbose0m
- Produce verbose output. In create and extract modes, 1mtar 22mwill
- list each file name as it is read from or written to the
+ Produce verbose output. In create and extract modes, 1mtar 22mwill
+ list each file name as it is read from or written to the
archive. In list mode, 1mtar 22mwill produce output similar to that
- of 4mls24m(1). An additional 1m-v 22moption will also provide ls-like
+ of 4mls24m(1). An additional 1m-v 22moption will also provide ls-like
details in create and extract mode.
1m--version0m
@@ -674,30 +696,30 @@
1m-X 4m22mfilename24m, 1m--exclude-from 4m22mfilename0m
Read a list of exclusion patterns from the specified file. See
- 1m--exclude 22mfor more information about the handling of exclu‐
+ 1m--exclude 22mfor more information about the handling of exclu‐
sions.
1m--xattrs0m
- (c, r, u, x modes only) Archive or extract extended file at‐
- tributes. This is the reverse of 1m--no-xattrs 22mand the default
- behavior in c, r, and u modes or if 1mtar 22mis run in x mode as
+ (c, r, u, x modes only) Archive or extract extended file at‐
+ tributes. This is the reverse of 1m--no-xattrs 22mand the default
+ behavior in c, r, and u modes or if 1mtar 22mis run in x mode as
root.
1m-y 22m(c mode only) Compress the resulting archive with 4mbzip224m(1). In
- extract or list modes, this option is ignored. Note that this
- 1mtar 22mimplementation recognizes bzip2 compression automatically
+ extract or list modes, this option is ignored. Note that this
+ 1mtar 22mimplementation recognizes bzip2 compression automatically
when reading archives.
1m-Z22m, 1m--compress22m, 1m--uncompress0m
- (c mode only) Compress the resulting archive with 4mcompress24m(1).
- In extract or list modes, this option is ignored. Note that
- this 1mtar 22mimplementation recognizes compress compression auto‐
+ (c mode only) Compress the resulting archive with 4mcompress24m(1).
+ In extract or list modes, this option is ignored. Note that
+ this 1mtar 22mimplementation recognizes compress compression auto‐
matically when reading archives.
1m-z22m, 1m--gunzip22m, 1m--gzip0m
- (c mode only) Compress the resulting archive with 4mgzip24m(1). In
- extract or list modes, this option is ignored. Note that this
- 1mtar 22mimplementation recognizes gzip compression automatically
+ (c mode only) Compress the resulting archive with 4mgzip24m(1). In
+ extract or list modes, this option is ignored. Note that this
+ 1mtar 22mimplementation recognizes gzip compression automatically
when reading archives.
1mENVIRONMENT0m
@@ -713,47 +735,56 @@
LANG The locale to use. See 4menviron24m(7) for more information.
- TAPE The default device. The 1m-f 22moption overrides this. Please see
+ TAPE The default device. The 1m-f 22moption overrides this. Please see
the description of the 1m-f 22moption above for more details.
- TZ The timezone to use when displaying dates. See 4menviron24m(7) for
+ TZ The timezone to use when displaying dates. See 4menviron24m(7) for
more information.
1mEXIT STATUS0m
The 1mtar 22mutility exits 0 on success, and >0 if an error occurs.
1mEXAMPLES0m
- The following creates a new archive called 4mfile.tar.gz24m that contains
+ The following creates a new archive called 4mfile.tar.gz24m that contains
two files 4msource.c24m and 4msource.h24m:
+
1mtar -czf 4m22mfile.tar.gz24m 4msource.c24m 4msource.h0m
To view a detailed table of contents for this archive:
+
1mtar -tvf 4m22mfile.tar.gz0m
To extract all entries from the archive on the default tape drive:
+
1mtar -x0m
To examine the contents of an ISO 9660 cdrom image:
+
1mtar -tf 4m22mimage.iso0m
To move file hierarchies, invoke 1mtar 22mas
+
1mtar -cf 4m22m-24m 1m-C 4m22msrcdir24m 4m.24m | 1mtar -xpf 4m22m-24m 1m-C 4m22mdestdir0m
+
or more traditionally
+
1mcd srcdir ; tar -cf 4m22m-24m 4m.24m | (4mcd24m 4mdestdir24m 4m;24m 1mtar -xpf 4m22m-24m)
- In create mode, the list of files and directories to be archived can
- also include directory change instructions of the form 1m-C4m22mfoo/baz24m and
+ In create mode, the list of files and directories to be archived can
+ also include directory change instructions of the form 1m-C4m22mfoo/baz24m and
archive inclusions of the form 1m@4m22marchive-file24m. For example, the command
line
+
1mtar -c -f 4m22mnew.tar24m 4mfoo124m 1m@4m22mold.tgz24m 1m-C4m22m/tmp24m 4mfoo20m
- will create a new archive 4mnew.tar24m. 1mtar 22mwill read the file 4mfoo124m from
- the current directory and add it to the output archive. It will then
- read each entry from 4mold.tgz24m and add those entries to the output
+
+ will create a new archive 4mnew.tar24m. 1mtar 22mwill read the file 4mfoo124m from
+ the current directory and add it to the output archive. It will then
+ read each entry from 4mold.tgz24m and add those entries to the output
archive. Finally, it will switch to the 4m/tmp24m directory and add 4mfoo224m to
the output archive.
- An input file in 4mmtree24m(5) format can be used to create an output
- archive with arbitrary ownership, permissions, or names that differ
+ An input file in 4mmtree24m(5) format can be used to create an output
+ archive with arbitrary ownership, permissions, or names that differ
from existing data on disk:
$ cat input.mtree
@@ -762,81 +793,90 @@
usr/bin/ls uid=0 gid=0 mode=0755 type=file content=myls
$ tar -cvf output.tar @input.mtree
- The 1m--newer 22mand 1m--newer-mtime 22mswitches accept a variety of common date
+ The 1m--newer 22mand 1m--newer-mtime 22mswitches 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”.
- The 1m--options 22margument can be used to control various details of
- archive generation or reading. For example, you can generate mtree
+ The 1m--options 22margument can be used to control various details of
+ archive generation or reading. For example, you can generate mtree
output which only contains 1mtype22m, 1mtime22m, and 1muid 22mkeywords:
- 1mtar -cf 4m22mfile.tar24m 1m--format=mtree --options='!all,type,time,uid'0m
+
+ 1mtar -cf 4m22mfile.tar24m 1m--format=mtree --options='!all,type,time,uid'0m
4mdir0m
+
or you can set the compression level used by gzip or xz compression:
+
1mtar -czf 4m22mfile.tar24m 1m--options='compression-level=9'22m.
+
For more details, see the explanation of the 1marchive_read_set_options22m()
- and 1marchive_write_set_options22m() API calls that are described in
+ and 1marchive_write_set_options22m() API calls that are described in
4marchive_read24m(3) and 4marchive_write24m(3).
1mCOMPATIBILITY0m
- The bundled-arguments format is supported for compatibility with his‐
+ The bundled-arguments format is supported for compatibility with his‐
toric implementations. It consists of an initial word (with no leading
- - character) in which each character indicates an option. Arguments
- follow as separate words. The order of the arguments must match the
+ - character) 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,
+
1mtar tbf 32 4m22mfile.tar0m
- specifies three flags 1mt22m, 1mb22m, and 1mf22m. The 1mb 22mand 1mf 22mflags both require ar‐
- guments, so there must be two additional items on the command line.
- The 4m3224m is the argument to the 1mb 22mflag, and 4mfile.tar24m is the argument to
+
+ specifies three flags 1mt22m, 1mb22m, and 1mf22m. The 1mb 22mand 1mf 22mflags both require ar‐
+ guments, so there must be two additional items on the command line.
+ The 4m3224m is the argument to the 1mb 22mflag, and 4mfile.tar24m is the argument to
the 1mf 22mflag.
- The mode options c, r, t, u, and x and the options b, f, l, m, o, v,
+ The mode options c, r, t, u, and x and the options b, f, l, m, o, v,
and w comply with SUSv2.
- For maximum portability, scripts that invoke 1mtar 22mshould use the bun‐
- dled-argument format above, should limit themselves to the 1mc22m, 1mt22m, and 1mx0m
+ For maximum portability, scripts that invoke 1mtar 22mshould use the bun‐
+ dled-argument format above, should limit themselves to the 1mc22m, 1mt22m, and 1mx0m
modes, and the 1mb22m, 1mf22m, 1mm22m, 1mv22m, and 1mw 22moptions.
- Additional long options are provided to improve compatibility with
+ Additional long options are provided to improve compatibility with
other tar implementations.
1mSECURITY0m
- Certain security issues are common to many archiving programs, includ‐
- ing 1mtar22m. In particular, carefully-crafted archives can request that
- 1mtar 22mextract files to locations outside of the target directory. This
- can potentially be used to cause unwitting users to overwrite files
+ Certain security issues are common to many archiving programs, includ‐
+ ing 1mtar22m. In particular, carefully-crafted archives can request that
+ 1mtar 22mextract 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 superuser, any file on the system can potentially be overwritten.
- There are three ways this can happen. Although 1mtar 22mhas mechanisms to
- protect against each one, savvy users should be aware of the implica‐
+ the superuser, any file on the system can potentially be overwritten.
+ There are three ways this can happen. Although 1mtar 22mhas mechanisms to
+ protect against each one, savvy users should be aware of the implica‐
tions:
- 1m• 22mArchive entries can have absolute pathnames. By default, 1mtar0m
+ 1m• 22mArchive entries can have absolute pathnames. By default, 1mtar0m
removes the leading 4m/24m character from filenames before restoring
them to guard against this problem.
- 1m• 22mArchive entries can have pathnames that include 4m..24m components.
+ 1m• 22mArchive entries can have pathnames that include 4m..24m components.
By default, 1mtar 22mwill not extract files containing 4m..24m components
in their pathname.
- 1m• 22mArchive 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 directory. To guard against this, 1mtar 22mchecks each ex‐
+ 1m• 22mArchive 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 directory. To guard against this, 1mtar 22mchecks each ex‐
tracted path for symlinks. If the final path element is a sym‐
- link, it will be removed and replaced with the archive entry.
- If 1m-U 22mis specified, any intermediate symlink will also be un‐
- conditionally removed. If neither 1m-U 22mnor 1m-P 22mis specified, 1mtar0m
+ link, it will be removed and replaced with the archive entry.
+ If 1m-U 22mis specified, any intermediate symlink will also be un‐
+ conditionally removed. If neither 1m-U 22mnor 1m-P 22mis specified, 1mtar0m
will refuse to extract the entry.
- To protect yourself, you should be wary of any archives that come from
+
+ To protect yourself, you should be wary of any archives that come from
untrusted sources. You should examine the contents of an archive with
+
1mtar -tf 4m22mfilename0m
- before extraction. You should use the 1m-k 22moption to ensure that 1mtar0m
- will not overwrite any existing files or the 1m-U 22moption to remove any
- pre-existing files. You should generally not extract archives while
- running with super-user privileges. Note that the 1m-P 22moption to 1mtar0m
+
+ before extraction. You should use the 1m-k 22moption to ensure that 1mtar0m
+ will not overwrite any existing files or the 1m-U 22moption to remove any
+ pre-existing files. You should generally not extract archives while
+ running with super-user privileges. Note that the 1m-P 22moption to 1mtar0m
disables the security checks above and allows you to extract an archive
- while preserving any absolute pathnames, 4m..24m components, or symlinks to
+ while preserving any absolute pathnames, 4m..24m components, or symlinks to
other directories.
1mSEE ALSO0m
@@ -844,73 +884,76 @@
4mlibarchive24m(3), 4mlibarchive-formats24m(5), 4mtar24m(5)
1mSTANDARDS0m
- 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
+ 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 spec‐
ification for pax.
- The ustar and pax interchange file formats are defined by IEEE Std
+ The ustar and pax interchange file formats are defined by IEEE Std
1003.1-2001 (“POSIX.1”) for the pax command.
1mHISTORY0m
- A 1mtar 22mcommand appeared in Seventh Edition Unix, which was released in
+ A 1mtar 22mcommand 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 1mpdtar 22mpublic-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
+ 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 4mlibarchive24m(3) li‐
+ This is a complete re-implementation based on the 4mlibarchive24m(3) li‐
brary. It was first released with FreeBSD 5.4 in May, 2005.
1mBUGS0m
This program follows ISO/IEC 9945-1:1996 (“POSIX.1”) for the definition
- of the 1m-l 22moption. Note that GNU tar prior to version 1.15 treated 1m-l0m
+ of the 1m-l 22moption. Note that GNU tar prior to version 1.15 treated 1m-l0m
as a synonym for the 1m--one-file-system 22moption.
The 1m-C 4m22mdir24m option may differ from historic implementations.
- All archive output is written in correctly-sized blocks, even if the
- output is being compressed. Whether or not the last output block is
+ All archive output is written in correctly-sized blocks, even if the
+ output is being compressed. Whether or not the last output block is
padded to a full block size varies depending on the format and the out‐
- put 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 compressors, including 4mgzip24m(1) and 4mbzip224m(1), complain
- about the null padding when decompressing an archive created by 1mtar22m,
+ put 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 compressors, including 4mgzip24m(1) and 4mbzip224m(1), complain
+ about the null padding when decompressing an archive created by 1mtar22m,
although they still extract it correctly.
- The compression and decompression is implemented internally, so there
- may be insignificant differences between the compressed output gener‐
+ The compression and decompression is implemented internally, so there
+ may be insignificant differences between the compressed output gener‐
ated by
+
1mtar -czf 4m22m-24m 4mfile0m
+
and that generated by
+
1mtar -cf 4m22m-24m 4mfile24m | 1mgzip0m
- The default should be to read and write archives to the standard I/O
+ The default should be to read and write archives to the standard I/O
paths, but tradition (and POSIX) dictates otherwise.
- The 1mr 22mand 1mu 22mmodes require that the archive be uncompressed and located
+ The 1mr 22mand 1mu 22mmodes require that the archive be uncompressed and located
in a regular file on disk. Other archives can be modified using 1mc 22mmode
with the 4m@archive-file24m extension.
- To archive a file called 4m@foo24m or 4m-foo24m you must specify it as 4m./@foo24m or
+ To archive a file called 4m@foo24m or 4m-foo24m you must specify it as 4m./@foo24m or
4m./-foo24m, respectively.
- In create mode, a leading 4m./24m is always removed. A leading 4m/24m is
+ In create mode, a leading 4m./24m is always removed. A leading 4m/24m is
stripped unless the 1m-P 22moption is specified.
- There needs to be better support for file selection on both create and
+ There needs to be better support for file selection on both create and
extract.
There is not yet any support for multi-volume archives.
- Converting between dissimilar archive formats (such as tar and cpio)
- using the 1m@4m22m-24m 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)
+ using the 1m@4m22m-24m convention can cause hard link information to be lost.
+ This is a consequence of the incompatible ways that different archive
+ formats store hardlink information.
Debian April 23, 2024 4mTAR24m(1)
Index: pkgsrc/archivers/libarchive/files/doc/wiki/ManPageBsdtar1.wiki
diff -u pkgsrc/archivers/libarchive/files/doc/wiki/ManPageBsdtar1.wiki:1.11 pkgsrc/archivers/libarchive/files/doc/wiki/ManPageBsdtar1.wiki:1.12
--- pkgsrc/archivers/libarchive/files/doc/wiki/ManPageBsdtar1.wiki:1.11 Tue Apr 30 06:05:19 2024
+++ pkgsrc/archivers/libarchive/files/doc/wiki/ManPageBsdtar1.wiki Mon Apr 28 10:31:34 2025
@@ -27,19 +27,22 @@ TAR(1) manual page
'''tar'''
creates and manipulates streaming archive files.
This implementation can extract from tar, pax, cpio, zip, jar, ar, xar,
-rpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax, cpio, ar, zip,
-7-zip, and shar archives.
+rar, rpm, 7-zip, 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.
+See
+.B COMPATIBILITY
+below for details.
The other synopsis forms show the preferred usage.
The first option to
'''tar'''
is a mode indicator from the following list:
+
<dl>
<dt>-c</dt><dd>
Create a new archive containing the specified items.
@@ -104,22 +107,28 @@ all operating modes.
The specified archive is opened and the entries
in it will be appended to the current archive.
As a simple example,
+
```text
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,
+
```text
tar -c -f - newfile original.tar
```
+
creates a new archive with only two entries.
Similarly,
+
```text
tar -czf - --format pax @-
```
+
reads an archive from standard input (whose format will be determined
automatically) and converts it into a gzip-compressed
pax-format archive on stdout.
@@ -131,29 +140,39 @@ can be used to convert archives from one
Use the archive suffix to decide a set of the format and
the compressions.
As a simple example,
+
```text
tar -a -cf archive.tgz source.c source.h
```
+
creates a new archive with restricted pax format and gzip compression,
+
```text
tar -a -cf archive.tar.bz2.uu source.c source.h
```
+
creates a new archive with restricted pax format and bzip2 compression
and uuencode compression,
+
```text
tar -a -cf archive.zip source.c source.h
```
+
creates a new archive with zip format,
+
```text
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,
+
```text
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.
</dd><dt>--acls</dt><dd>
@@ -306,9 +325,11 @@ The
--include
option is especially useful when filtering archives.
For example, the command
+
```text
tar -c -f new.tar --include='*foo*' @old.tgz
```
+
creates a new archive
''new.tar''
containing only the entries from
@@ -406,7 +427,8 @@ and the default behavior in c, r, and u
'''tar'''
is run in x mode as root.
Currently supported only for pax formats
-(including "pax restricted", the default tar format for bsdtar.)
+Po including pax restricted, the default tar format for
+'''bsdtar''' Pc
</dd><dt>-n, --norecurse, --no-recursion</dt><dd>
Do not operate recursively on the content of directories.
</dd><dt>--newer ''date''</dt><dd>
@@ -569,6 +591,7 @@ keywords and values.
These are passed to the modules that handle particular
formats to control how those formats will behave.
Each option has one of the following forms:
+
<dl>
<dt>''key=value''</dt><dd>
The key will be set to the specified value in every module that supports it.
@@ -592,6 +615,7 @@ and for extract and list modes in
[[ManPageArchiveReadSetOptions3]].
Examples of supported options:
+
<dl>
<dt>'''iso9660:joliet'''</dt><dd>
Support Joliet extensions.
@@ -811,6 +835,7 @@ This option is comparable to the
-i, --ignore-zeros
option of GNU tar.
</dd></dl>
+
If a provided option is not supported by any module, that
is a fatal error.
</dd><dt>-P, --absolute-paths</dt><dd>
@@ -983,7 +1008,9 @@ This flag also causes
'''tar'''
to remove intervening directory symlinks instead of
reporting an error.
-See the SECURITY section below for more details.
+See the
+.B SECURITY
+section below for more details.
</dd><dt>--uid ''id''</dt><dd>
Use the provided user id number and ignore the user
name from the archive.
@@ -1121,23 +1148,27 @@ that contains two files
''source.c''
and
''source.h'':
+
```text
tar -czf file.tar.gz source.c source.h
```
To view a detailed table of contents for this
archive:
+
```text
tar -tvf file.tar.gz
```
To extract all entries from the archive on
the default tape drive:
+
```text
tar -x
```
To examine the contents of an ISO 9660 cdrom image:
+
```text
tar -tf image.iso
```
@@ -1145,10 +1176,13 @@ tar -tf image.iso
To move file hierarchies, invoke
'''tar'''
as
+
```text
tar -cf - -C srcdir . | tar -xpf - -C destdir
```
+
or more traditionally
+
```text
cd srcdir ; tar -cf - . | (cd destdir ; tar -xpf -)
```
@@ -1159,9 +1193,11 @@ can also include directory change instru
and archive inclusions of the form
'''@'''''archive-file''.
For example, the command line
+
```text
tar -c -f new.tar foo1 @old.tgz -C/tmp foo2
```
+
will create a new archive
''new.tar''.
'''tar'''
@@ -1209,13 +1245,17 @@ For example, you can generate mtree outp
and
'''uid'''
keywords:
+
```text
tar -cf file.tar --format=mtree --options='!all,type,time,uid' dir
```
+
or you can set the compression level used by gzip or xz compression:
+
```text
tar -czf file.tar --options='compression-level=9'.
```
+
For more details, see the explanation of the
'''archive_read_set_options'''()
and
@@ -1233,9 +1273,11 @@ 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,
+
```text
tar tbf 32 file.tar
```
+
specifies three flags
'''t''',
'''b''',
@@ -1333,12 +1375,15 @@ is specified,
'''tar'''
will refuse to extract the entry.
</li></ul>
+
To protect yourself, you should be wary of any archives that
come from untrusted sources.
You should examine the contents of an archive with
+
```text
tar -tf filename
```
+
before extraction.
You should use the
-k
@@ -1389,7 +1434,7 @@ command appeared in Seventh Edition Unix
There have been numerous other implementations,
many of which extended the file format.
John Gilmore's
-'''pdtar'''
+.B 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
@@ -1442,10 +1487,13 @@ although they still extract it correctly
The compression and decompression is implemented internally, so
there may be insignificant differences between the compressed output
generated by
+
```text
tar -czf - file
```
+
and that generated by
+
```text
tar -cf - file | gzip
```
@@ -1492,5 +1540,5 @@ There is not yet any support for multi-v
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.)
+This is a consequence of the incompatible ways that different archive
+formats store hardlink information.
Index: pkgsrc/archivers/libarchive/files/libarchive/archive.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.19 pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.20
--- pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.19 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive.h Mon Apr 28 10:31:34 2025
@@ -34,7 +34,7 @@
* assert that ARCHIVE_VERSION_NUMBER >= 2012108.
*/
/* Note: Compiler will complain if this does not match archive_entry.h! */
-#define ARCHIVE_VERSION_NUMBER 3007007
+#define ARCHIVE_VERSION_NUMBER 3007009
#include <sys/stat.h>
#include <stddef.h> /* for wchar_t */
@@ -132,7 +132,7 @@ typedef ssize_t la_ssize_t;
#define __LA_PRINTF(fmtarg, firstvararg) /* nothing */
#endif
-#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 1
+#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
# define __LA_DEPRECATED __attribute__((deprecated))
#else
# define __LA_DEPRECATED
@@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(vo
/*
* Textual name/version of the library, useful for version displays.
*/
-#define ARCHIVE_VERSION_ONLY_STRING "3.7.7"
+#define ARCHIVE_VERSION_ONLY_STRING "3.7.9"
#define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING
__LA_DECL const char * archive_version_string(void);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_digest.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_digest.c:1.3 pkgsrc/archivers/libarchive/files/libarchive/archive_digest.c:1.4
--- pkgsrc/archivers/libarchive/files/libarchive/archive_digest.c:1.3 Thu Jan 18 18:00:17 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_digest.c Mon Apr 28 10:31:34 2025
@@ -196,6 +196,13 @@ __archive_md5final(archive_md5_ctx *ctx,
#elif defined(ARCHIVE_CRYPTO_MD5_LIBSYSTEM)
+// These functions are available in macOS 10.4 and later, but deprecated from 10.15 onwards.
+// We need to continue supporting this feature regardless, so suppress the warnings.
+#if defined(__clang__)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
+
static int
__archive_md5init(archive_md5_ctx *ctx)
{
@@ -218,6 +225,10 @@ __archive_md5final(archive_md5_ctx *ctx,
return (ARCHIVE_OK);
}
+#if defined(__clang__)
+#pragma clang diagnostic pop
+#endif
+
#elif defined(ARCHIVE_CRYPTO_MD5_MBEDTLS)
static int
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd_private.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd_private.h:1.3 pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd_private.h:1.4
--- pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd_private.h:1.3 Tue May 26 09:16:42 2020
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd_private.h Mon Apr 28 10:31:34 2025
@@ -109,8 +109,12 @@ typedef struct
Byte Count; /* Count to next change of Shift */
} CPpmd_See;
-#define Ppmd_See_Update(p) if ((p)->Shift < PPMD_PERIOD_BITS && --(p)->Count == 0) \
- { (p)->Summ <<= 1; (p)->Count = (Byte)(3 << (p)->Shift++); }
+#define Ppmd_See_Update(p) do { \
+ if ((p)->Shift < PPMD_PERIOD_BITS && --(p)->Count == 0) { \
+ (p)->Summ <<= 1; \
+ (p)->Count = (Byte)(3 << (p)->Shift++); \
+ } \
+} while (0)
typedef struct
{
@@ -144,8 +148,12 @@ typedef
#endif
CPpmd_Byte_Ref;
-#define PPMD_SetAllBitsIn256Bytes(p) \
- { unsigned j; for (j = 0; j < 256 / sizeof(p[0]); j += 8) { \
- p[j+7] = p[j+6] = p[j+5] = p[j+4] = p[j+3] = p[j+2] = p[j+1] = p[j+0] = ~(size_t)0; }}
+#define PPMD_SetAllBitsIn256Bytes(p) do { \
+ unsigned j; \
+ for (j = 0; j < 256 / sizeof(p[0]); j += 8) { \
+ p[j+7] = p[j+6] = p[j+5] = p[j+4] = \
+ p[j+3] = p[j+2] = p[j+1] = p[j+0] = ~(size_t)0; \
+ } \
+} while (0)
#endif
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.15 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h Mon Apr 28 10:31:34 2025
@@ -28,7 +28,7 @@
#define ARCHIVE_ENTRY_H_INCLUDED
/* Note: Compiler will complain if this does not match archive.h! */
-#define ARCHIVE_VERSION_NUMBER 3007007
+#define ARCHIVE_VERSION_NUMBER 3007009
/*
* Note: archive_entry.h is for use outside of libarchive; the
@@ -127,7 +127,8 @@ typedef ssize_t la_ssize_t;
# define __LA_DECL
#endif
-#if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 1
+#if defined(__GNUC__) && (__GNUC__ > 3 || \
+ (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
# define __LA_DEPRECATED __attribute__((deprecated))
#else
# define __LA_DEPRECATED
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_platform.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_platform.h:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_platform.h:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_platform.h:1.15 Fri Apr 12 15:39:50 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_platform.h Mon Apr 28 10:31:34 2025
@@ -61,6 +61,11 @@
# endif
#endif
+/* For cygwin, to avoid missing LONG, ULONG, PUCHAR, ... definitions */
+#ifdef __CYGWIN__
+#include <windef.h>
+#endif
+
/* It should be possible to get rid of this by extending the feature-test
* macros to cover Windows API functions, probably along with non-trivial
* refactoring of code to find structures that sit more cleanly on top of
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c:1.15 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c Mon Apr 28 10:31:34 2025
@@ -1429,7 +1429,7 @@ archive_read_format_iso9660_read_header(
* information first, then store all file bodies. */
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
"Ignoring out-of-order file @%jx (%s) %jd < %jd",
- (intmax_t)file->number,
+ (uintmax_t)file->number,
iso9660->pathname.s,
(intmax_t)file->offset,
(intmax_t)iso9660->current_position);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c:1.15 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c Mon Apr 28 10:31:34 2025
@@ -129,7 +129,11 @@ struct tar {
int64_t entry_offset;
int64_t entry_padding;
int64_t entry_bytes_unconsumed;
- int64_t realsize;
+ int64_t disk_size;
+ int64_t GNU_sparse_realsize;
+ int64_t GNU_sparse_size;
+ int64_t SCHILY_sparse_realsize;
+ int64_t pax_size;
struct sparse_block *sparse_list;
struct sparse_block *sparse_last;
int64_t sparse_offset;
@@ -138,6 +142,7 @@ struct tar {
int sparse_gnu_minor;
char sparse_gnu_attributes_seen;
char filetype;
+ char size_fields; /* Bits defined below */
struct archive_string localname;
struct archive_string_conv *opt_sconv;
@@ -148,9 +153,15 @@ struct tar {
int compat_2x;
int process_mac_extensions;
int read_concatenated_archives;
- int realsize_override;
};
+/* Track which size fields were present in the headers */
+#define TAR_SIZE_PAX_SIZE 1
+#define TAR_SIZE_GNU_SPARSE_REALSIZE 2
+#define TAR_SIZE_GNU_SPARSE_SIZE 4
+#define TAR_SIZE_SCHILY_SPARSE_REALSIZE 8
+
+
static int archive_block_is_null(const char *p);
static char *base64_decode(const char *, size_t, size_t *);
static int gnu_add_sparse_entry(struct archive_read *, struct tar *,
@@ -529,8 +540,7 @@ archive_read_format_tar_read_header(stru
tar = (struct tar *)(a->format->data);
tar->entry_offset = 0;
gnu_clear_sparse_list(tar);
- tar->realsize = -1; /* Mark this as "unset" */
- tar->realsize_override = 0;
+ tar->size_fields = 0; /* We don't have any size info yet */
/* Setup default string conversion. */
tar->sconv = tar->opt_sconv;
@@ -622,7 +632,7 @@ archive_read_format_tar_read_data(struct
tar->entry_padding = 0;
*buff = NULL;
*size = 0;
- *offset = tar->realsize;
+ *offset = tar->disk_size;
return (ARCHIVE_EOF);
}
@@ -750,7 +760,7 @@ tar_read_header(struct archive_read *a,
* if there's no regular header, then this is
* a premature EOF. */
archive_set_error(&a->archive, EINVAL,
- "Damaged tar archive");
+ "Damaged tar archive (end-of-archive within a sequence of headers)");
return (ARCHIVE_FATAL);
} else {
return (ARCHIVE_EOF);
@@ -760,7 +770,7 @@ tar_read_header(struct archive_read *a,
archive_set_error(&a->archive,
ARCHIVE_ERRNO_FILE_FORMAT,
"Truncated tar archive"
- " detected while reading next heaader");
+ " detected while reading next header");
return (ARCHIVE_FATAL);
}
*unconsumed += 512;
@@ -787,7 +797,8 @@ tar_read_header(struct archive_read *a,
/* This is NOT a null block, so it must be a valid header. */
if (!checksum(a, h)) {
tar_flush_unconsumed(a, unconsumed);
- archive_set_error(&a->archive, EINVAL, "Damaged tar archive");
+ archive_set_error(&a->archive, EINVAL,
+ "Damaged tar archive (bad header checksum)");
/* If we've read some critical information (pax headers, etc)
* and _then_ see a bad header, we can't really recover. */
if (eof_fatal) {
@@ -1038,7 +1049,7 @@ header_Solaris_ACL(struct archive_read *
struct archive_string acl_text;
size_t size;
int err, acl_type;
- int64_t type;
+ uint64_t type;
char *acl, *p;
header = (const struct archive_entry_header_ustar *)h;
@@ -1075,7 +1086,7 @@ header_Solaris_ACL(struct archive_read *
}
p++;
}
- switch ((int)type & ~0777777) {
+ switch (type & ~0777777) {
case 01000000:
/* POSIX.1e ACL */
acl_type = ARCHIVE_ENTRY_ACL_TYPE_ACCESS;
@@ -1086,8 +1097,8 @@ header_Solaris_ACL(struct archive_read *
break;
default:
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
- "Malformed Solaris ACL attribute (unsupported type %o)",
- (int)type);
+ "Malformed Solaris ACL attribute (unsupported type %"
+ PRIo64 ")", type);
archive_string_free(&acl_text);
return (ARCHIVE_WARN);
}
@@ -1145,7 +1156,9 @@ header_gnu_longlink(struct archive_read
struct archive_string linkpath;
archive_string_init(&linkpath);
err = read_body_to_string(a, tar, &linkpath, h, unconsumed);
- archive_entry_set_link(entry, linkpath.s);
+ if (err == ARCHIVE_OK) {
+ archive_entry_set_link(entry, linkpath.s);
+ }
archive_string_free(&linkpath);
return (err);
}
@@ -1287,6 +1300,11 @@ read_body_to_string(struct archive_read
* allows header_old_tar and header_ustar
* to handle filenames differently, while still putting most of the
* common parsing into one place.
+ *
+ * This is called _after_ ustar, GNU tar, Schily, etc, special
+ * fields have already been parsed into the `tar` structure.
+ * So we can make final decisions here about how to reconcile
+ * size, mode, etc, information.
*/
static int
header_common(struct archive_read *a, struct tar *tar,
@@ -1308,34 +1326,73 @@ header_common(struct archive_read *a, st
archive_entry_set_perm(entry,
(mode_t)tar_atol(header->mode, sizeof(header->mode)));
}
+
+ /* Set uid, gid, mtime if not already set */
if (!archive_entry_uid_is_set(entry)) {
archive_entry_set_uid(entry, tar_atol(header->uid, sizeof(header->uid)));
}
if (!archive_entry_gid_is_set(entry)) {
archive_entry_set_gid(entry, tar_atol(header->gid, sizeof(header->gid)));
}
+ if (!archive_entry_mtime_is_set(entry)) {
+ archive_entry_set_mtime(entry, tar_atol(header->mtime, sizeof(header->mtime)), 0);
+ }
- tar->entry_bytes_remaining = tar_atol(header->size, sizeof(header->size));
+ /* Reconcile the size info. */
+ /* First, how big is the file on disk? */
+ if ((tar->size_fields & TAR_SIZE_GNU_SPARSE_REALSIZE) != 0) {
+ /* GNU sparse format 1.0 uses `GNU.sparse.realsize`
+ * to hold the size of the file on disk. */
+ tar->disk_size = tar->GNU_sparse_realsize;
+ } else if ((tar->size_fields & TAR_SIZE_GNU_SPARSE_SIZE) != 0
+ && (tar->sparse_gnu_major == 0)) {
+ /* GNU sparse format 0.0 and 0.1 use `GNU.sparse.size`
+ * to hold the size of the file on disk. */
+ tar->disk_size = tar->GNU_sparse_size;
+ } else if ((tar->size_fields & TAR_SIZE_SCHILY_SPARSE_REALSIZE) != 0) {
+ tar->disk_size = tar->SCHILY_sparse_realsize;
+ } else if ((tar->size_fields & TAR_SIZE_PAX_SIZE) != 0) {
+ tar->disk_size = tar->pax_size;
+ } else {
+ /* There wasn't a suitable pax header, so use the ustar info */
+ tar->disk_size = tar_atol(header->size, sizeof(header->size));
+ }
+
+ if (tar->disk_size < 0) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
+ "Tar entry has negative file size");
+ return (ARCHIVE_FATAL);
+ } else if (tar->disk_size > entry_limit) {
+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
+ "Tar entry size overflow");
+ return (ARCHIVE_FATAL);
+ } else {
+ archive_entry_set_size(entry, tar->disk_size);
+ }
+
+ /* Second, how big is the data in the archive? */
+ if ((tar->size_fields & TAR_SIZE_GNU_SPARSE_SIZE) != 0
+ && (tar->sparse_gnu_major == 1)) {
+ /* GNU sparse format 1.0 uses `GNU.sparse.size`
+ * to hold the size of the data in the archive. */
+ tar->entry_bytes_remaining = tar->GNU_sparse_size;
+ } else if ((tar->size_fields & TAR_SIZE_PAX_SIZE) != 0) {
+ tar->entry_bytes_remaining = tar->pax_size;
+ } else {
+ tar->entry_bytes_remaining
+ = tar_atol(header->size, sizeof(header->size));
+ }
if (tar->entry_bytes_remaining < 0) {
tar->entry_bytes_remaining = 0;
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
- "Tar entry has negative size");
+ "Tar entry has negative size");
return (ARCHIVE_FATAL);
- }
- if (tar->entry_bytes_remaining > entry_limit) {
+ } else if (tar->entry_bytes_remaining > entry_limit) {
tar->entry_bytes_remaining = 0;
archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
- "Tar entry size overflow");
+ "Tar entry size overflow");
return (ARCHIVE_FATAL);
}
- if (!tar->realsize_override) {
- tar->realsize = tar->entry_bytes_remaining;
- }
- archive_entry_set_size(entry, tar->realsize);
-
- if (!archive_entry_mtime_is_set(entry)) {
- archive_entry_set_mtime(entry, tar_atol(header->mtime, sizeof(header->mtime)), 0);
- }
/* Handle the tar type flag appropriately. */
tar->filetype = header->typeflag[0];
@@ -2289,10 +2346,13 @@ pax_attribute(struct archive_read *a, st
}
else if (key_length == 4 && memcmp(key, "size", 4) == 0) {
/* GNU.sparse.size */
+ /* This is either the size of stored entry OR the size of data on disk,
+ * depending on which GNU sparse format version is in use.
+ * Since pax attributes can be in any order, we may not actually
+ * know at this point how to interpret this. */
if ((err = pax_attribute_read_number(a, value_length, &t)) == ARCHIVE_OK) {
- tar->realsize = t;
- archive_entry_set_size(entry, tar->realsize);
- tar->realsize_override = 1;
+ tar->GNU_sparse_size = t;
+ tar->size_fields |= TAR_SIZE_GNU_SPARSE_SIZE;
}
return (err);
}
@@ -2360,11 +2420,10 @@ pax_attribute(struct archive_read *a, st
return (err);
}
else if (key_length == 8 && memcmp(key, "realsize", 8) == 0) {
- /* GNU.sparse.realsize */
+ /* GNU.sparse.realsize = size of file on disk */
if ((err = pax_attribute_read_number(a, value_length, &t)) == ARCHIVE_OK) {
- tar->realsize = t;
- archive_entry_set_size(entry, tar->realsize);
- tar->realsize_override = 1;
+ tar->GNU_sparse_realsize = t;
+ tar->size_fields |= TAR_SIZE_GNU_SPARSE_REALSIZE;
}
return (err);
}
@@ -2545,12 +2604,12 @@ pax_attribute(struct archive_read *a, st
}
else if (key_length == 8 && memcmp(key, "realsize", 8) == 0) {
if ((err = pax_attribute_read_number(a, value_length, &t)) == ARCHIVE_OK) {
- tar->realsize = t;
- tar->realsize_override = 1;
- archive_entry_set_size(entry, tar->realsize);
+ tar->SCHILY_sparse_realsize = t;
+ tar->size_fields |= TAR_SIZE_SCHILY_SPARSE_REALSIZE;
}
return (err);
}
+ /* TODO: Is there a SCHILY.sparse.size similar to GNU.sparse.size ? */
else if (key_length > 6 && memcmp(key, "xattr.", 6) == 0) {
key_length -= 6;
key += 6;
@@ -2717,19 +2776,8 @@ pax_attribute(struct archive_read *a, st
if (key_length == 4 && memcmp(key, "size", 4) == 0) {
/* "size" is the size of the data in the entry. */
if ((err = pax_attribute_read_number(a, value_length, &t)) == ARCHIVE_OK) {
- tar->entry_bytes_remaining = t;
- /*
- * The "size" pax header keyword always overrides the
- * "size" field in the tar header.
- * GNU.sparse.realsize, GNU.sparse.size and
- * SCHILY.realsize override this value.
- */
- if (!tar->realsize_override) {
- archive_entry_set_size(entry,
- tar->entry_bytes_remaining);
- tar->realsize
- = tar->entry_bytes_remaining;
- }
+ tar->pax_size = t;
+ tar->size_fields |= TAR_SIZE_PAX_SIZE;
}
else if (t == INT64_MAX) {
/* Note: pax_attr_read_number returns INT64_MAX on overflow or < 0 */
@@ -2841,11 +2889,6 @@ header_gnutar(struct archive_read *a, st
* filename is stored as in old-style archives.
*/
- /* Grab fields common to all tar variants. */
- err = header_common(a, tar, entry, h);
- if (err == ARCHIVE_FATAL)
- return (err);
-
/* Copy filename over (to ensure null termination). */
header = (const struct archive_entry_header_gnutar *)h;
const char *existing_pathname = archive_entry_pathname(entry);
@@ -2894,8 +2937,6 @@ header_gnutar(struct archive_read *a, st
archive_entry_set_rdev(entry, 0);
}
- tar->entry_padding = 0x1ff & (-tar->entry_bytes_remaining);
-
/* Grab GNU-specific fields. */
if (!archive_entry_atime_is_set(entry)) {
t = tar_atol(header->atime, sizeof(header->atime));
@@ -2909,10 +2950,10 @@ header_gnutar(struct archive_read *a, st
}
if (header->realsize[0] != 0) {
- tar->realsize
+ /* Treat as a synonym for the pax GNU.sparse.realsize attr */
+ tar->GNU_sparse_realsize
= tar_atol(header->realsize, sizeof(header->realsize));
- archive_entry_set_size(entry, tar->realsize);
- tar->realsize_override = 1;
+ tar->size_fields |= TAR_SIZE_GNU_SPARSE_REALSIZE;
}
if (header->sparse[0].offset[0] != 0) {
@@ -2925,6 +2966,13 @@ header_gnutar(struct archive_read *a, st
}
}
+ /* Grab fields common to all tar variants. */
+ err = header_common(a, tar, entry, h);
+ if (err == ARCHIVE_FATAL)
+ return (err);
+
+ tar->entry_padding = 0x1ff & (-tar->entry_bytes_remaining);
+
return (err);
}
@@ -3104,8 +3152,7 @@ gnu_sparse_01_parse(struct archive_read
* it's not possible to support both variants. This code supports
* the later variant at the expense of not supporting the former.
*
- * This variant also replaced GNU.sparse.size with GNU.sparse.realsize
- * and introduced the GNU.sparse.major/GNU.sparse.minor attributes.
+ * This variant also introduced the GNU.sparse.major/GNU.sparse.minor attributes.
*/
/*
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd7.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd7.c:1.6 pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd7.c:1.7
--- pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd7.c:1.6 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd7.c Mon Apr 28 10:31:34 2025
@@ -287,9 +287,14 @@ static void *AllocUnits(CPpmd7 *p, unsig
return AllocUnitsRare(p, indx);
}
-#define MyMem12Cpy(dest, src, num) \
- { UInt32 *d = (UInt32 *)dest; const UInt32 *s = (const UInt32 *)src; UInt32 n = num; \
- do { d[0] = s[0]; d[1] = s[1]; d[2] = s[2]; s += 3; d += 3; } while(--n); }
+#define MyMem12Cpy(dest, src, num) do { \
+ UInt32 *d = (UInt32 *)dest; \
+ const UInt32 *s = (const UInt32 *)src; \
+ UInt32 n = num; \
+ do { \
+ d[0] = s[0]; d[1] = s[1]; d[2] = s[2]; s += 3; d += 3; \
+ } while(--n); \
+} while (0)
static void *ShrinkUnits(CPpmd7 *p, void *oldPtr, unsigned oldNU, unsigned newNU)
{
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c:1.6 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c:1.7
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c:1.6 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c Mon Apr 28 10:31:34 2025
@@ -691,7 +691,8 @@ static int run_filter(struct archive_rea
default:
archive_set_error(&a->archive,
ARCHIVE_ERRNO_FILE_FORMAT,
- "Unsupported filter type: 0x%x", flt->type);
+ "Unsupported filter type: 0x%x",
+ (unsigned int)flt->type);
return ARCHIVE_FATAL;
}
@@ -1293,7 +1294,7 @@ static int parse_file_extra_hash(struct
*extra_data_size -= hash_size;
} else {
archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Unsupported hash type (0x%x)", (int) hash_type);
+ "Unsupported hash type (0x%jx)", (uintmax_t)hash_type);
return ARCHIVE_FATAL;
}
@@ -1896,7 +1897,8 @@ static int process_head_file(struct arch
} else {
/* Unknown host OS */
archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Unsupported Host OS: 0x%x", (int) host_os);
+ "Unsupported Host OS: 0x%jx",
+ (uintmax_t)host_os);
return ARCHIVE_FATAL;
}
@@ -2104,8 +2106,8 @@ static int process_head_main(struct arch
default:
archive_set_error(&a->archive,
ARCHIVE_ERRNO_FILE_FORMAT,
- "Unsupported extra type (0x%x)",
- (int) extra_field_id);
+ "Unsupported extra type (0x%jx)",
+ (uintmax_t)extra_field_id);
return ARCHIVE_FATAL;
}
@@ -3983,7 +3985,7 @@ static int do_unpack(struct archive_read
archive_set_error(&a->archive,
ARCHIVE_ERRNO_FILE_FORMAT,
"Compression method not supported: 0x%x",
- rar->cstate.method);
+ (unsigned int)rar->cstate.method);
return ARCHIVE_FATAL;
}
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c:1.6 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c:1.7
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c:1.6 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c Mon Apr 28 10:31:34 2025
@@ -166,7 +166,7 @@ archive_filter_b64encode_open(struct arc
}
archive_string_sprintf(&state->encoded_buff, "begin-base64 %o %s\n",
- state->mode, state->name.s);
+ (unsigned int)state->mode, state->name.s);
f->data = state;
return (0);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c:1.8 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c Mon Apr 28 10:31:34 2025
@@ -96,6 +96,10 @@ archive_read_append_filter(struct archiv
strcpy(str, "lzip");
r1 = archive_read_support_filter_lzip(_a);
break;
+ case ARCHIVE_FILTER_LZOP:
+ strcpy(str, "lzop");
+ r1 = archive_read_support_filter_lzop(_a);
+ break;
case ARCHIVE_FILTER_LRZIP:
strcpy(str, "lrzip");
r1 = archive_read_support_filter_lrzip(_a);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_open_filename.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_open_filename.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/archive_write_open_filename.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_open_filename.c:1.8 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_open_filename.c Mon Apr 28 10:31:34 2025
@@ -118,7 +118,7 @@ open_filename(struct archive *a, int mbs
(const char *)filename);
else
archive_set_error(a, ARCHIVE_ERRNO_MISC,
- "Can't convert '%S' to MBS",
+ "Can't convert '%ls' to MBS",
(const wchar_t *)filename);
return (ARCHIVE_FAILED);
}
@@ -170,7 +170,7 @@ file_open(struct archive *a, void *clien
else {
archive_mstring_get_wcs(a, &mine->filename, &wcs);
archive_set_error(a, errno,
- "Can't convert '%S' to MBS", wcs);
+ "Can't convert '%ls' to MBS", wcs);
}
return (ARCHIVE_FATAL);
}
@@ -181,7 +181,7 @@ file_open(struct archive *a, void *clien
if (mbs != NULL)
archive_set_error(a, errno, "Failed to open '%s'", mbs);
else
- archive_set_error(a, errno, "Failed to open '%S'", wcs);
+ archive_set_error(a, errno, "Failed to open '%ls'", wcs);
return (ARCHIVE_FATAL);
}
@@ -189,7 +189,7 @@ file_open(struct archive *a, void *clien
if (mbs != NULL)
archive_set_error(a, errno, "Couldn't stat '%s'", mbs);
else
- archive_set_error(a, errno, "Couldn't stat '%S'", wcs);
+ archive_set_error(a, errno, "Couldn't stat '%ls'", wcs);
return (ARCHIVE_FATAL);
}
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c:1.8 Fri Apr 12 15:39:52 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c Mon Apr 28 10:31:34 2025
@@ -54,7 +54,7 @@ struct attr_counter {
int count;
};
-struct att_counter_set {
+struct attr_counter_set {
struct attr_counter *uid_list;
struct attr_counter *gid_list;
struct attr_counter *mode_list;
@@ -141,7 +141,7 @@ struct mtree_writer {
unsigned long fflags_set;
unsigned long fflags_clear;
} set;
- struct att_counter_set acs;
+ struct attr_counter_set acs;
int classic;
int depth;
@@ -437,7 +437,7 @@ write_global(struct mtree_writer *mtree)
{
struct archive_string setstr;
struct archive_string unsetstr;
- struct att_counter_set *acs;
+ struct attr_counter_set *acs;
int keys, oldkeys, effkeys;
archive_string_init(&setstr);
@@ -638,7 +638,7 @@ static int
attr_counter_set_collect(struct mtree_writer *mtree, struct mtree_entry *me)
{
struct attr_counter *ac, *last;
- struct att_counter_set *acs = &mtree->acs;
+ struct attr_counter_set *acs = &mtree->acs;
int keys = mtree->keys;
if (keys & (F_UNAME | F_UID)) {
@@ -714,7 +714,7 @@ attr_counter_set_collect(struct mtree_wr
static void
attr_counter_set_free(struct mtree_writer *mtree)
{
- struct att_counter_set *acs = &mtree->acs;
+ struct attr_counter_set *acs = &mtree->acs;
attr_counter_free(&acs->uid_list);
attr_counter_free(&acs->gid_list);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_entry_from_file.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_entry_from_file.c:1.17 pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_entry_from_file.c:1.18
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_entry_from_file.c:1.17 Sun Sep 15 07:02:21 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_entry_from_file.c Mon Apr 28 10:31:34 2025
@@ -888,7 +888,7 @@ setup_sparse_fiemap(struct archive_read_
count = (sizeof(buff) - sizeof(*fm))/sizeof(*fe);
fm = (struct fiemap *)buff;
fm->fm_start = 0;
- fm->fm_length = ~0ULL;;
+ fm->fm_length = ~0ULL;
fm->fm_flags = FIEMAP_FLAG_SYNC;
fm->fm_extent_count = count;
do_fiemap = 1;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c:1.9 pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c:1.9 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c Mon Apr 28 10:31:34 2025
@@ -56,9 +56,10 @@ struct read_FILE_data {
char can_skip;
};
-static int file_close(struct archive *, void *);
-static ssize_t file_read(struct archive *, void *, const void **buff);
-static int64_t file_skip(struct archive *, void *, int64_t request);
+static int FILE_close(struct archive *, void *);
+static ssize_t FILE_read(struct archive *, void *, const void **buff);
+static int64_t FILE_seek(struct archive *, void *, int64_t, int);
+static int64_t FILE_skip(struct archive *, void *, int64_t);
int
archive_read_open_FILE(struct archive *a, FILE *f)
@@ -69,7 +70,7 @@ archive_read_open_FILE(struct archive *a
void *b;
archive_clear_error(a);
- mine = malloc(sizeof(*mine));
+ mine = calloc(1, sizeof(*mine));
b = malloc(block_size);
if (mine == NULL || b == NULL) {
archive_set_error(a, ENOMEM, "No memory");
@@ -90,22 +91,22 @@ archive_read_open_FILE(struct archive *a
archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino);
/* Enable the seek optimization only for regular files. */
mine->can_skip = 1;
- } else
- mine->can_skip = 0;
+ }
#if defined(__CYGWIN__) || defined(_WIN32)
setmode(fileno(mine->f), O_BINARY);
#endif
- archive_read_set_read_callback(a, file_read);
- archive_read_set_skip_callback(a, file_skip);
- archive_read_set_close_callback(a, file_close);
+ archive_read_set_read_callback(a, FILE_read);
+ archive_read_set_skip_callback(a, FILE_skip);
+ archive_read_set_seek_callback(a, FILE_seek);
+ archive_read_set_close_callback(a, FILE_close);
archive_read_set_callback_data(a, mine);
return (archive_read_open1(a));
}
static ssize_t
-file_read(struct archive *a, void *client_data, const void **buff)
+FILE_read(struct archive *a, void *client_data, const void **buff)
{
struct read_FILE_data *mine = (struct read_FILE_data *)client_data;
size_t bytes_read;
@@ -119,13 +120,13 @@ file_read(struct archive *a, void *clien
}
static int64_t
-file_skip(struct archive *a, void *client_data, int64_t request)
+FILE_skip(struct archive *a, void *client_data, int64_t request)
{
struct read_FILE_data *mine = (struct read_FILE_data *)client_data;
-#if HAVE_FSEEKO
- off_t skip = (off_t)request;
-#elif HAVE__FSEEKI64
+#if HAVE__FSEEKI64
int64_t skip = request;
+#elif HAVE_FSEEKO
+ off_t skip = (off_t)request;
#else
long skip = (long)request;
#endif
@@ -167,8 +168,57 @@ file_skip(struct archive *a, void *clien
return (request);
}
+/*
+ * TODO: Store the offset and use it in the read callback.
+ */
+static int64_t
+FILE_seek(struct archive *a, void *client_data, int64_t request, int whence)
+{
+ struct read_FILE_data *mine = (struct read_FILE_data *)client_data;
+#if HAVE__FSEEKI64
+ int64_t skip = request;
+#elif HAVE_FSEEKO
+ off_t skip = (off_t)request;
+#else
+ long skip = (long)request;
+#endif
+ int skip_bits = sizeof(skip) * 8 - 1;
+ (void)a; /* UNUSED */
+
+ /* If request is too big for a long or an off_t, reduce it. */
+ if (sizeof(request) > sizeof(skip)) {
+ int64_t max_skip =
+ (((int64_t)1 << (skip_bits - 1)) - 1) * 2 + 1;
+ if (request > max_skip)
+ skip = max_skip;
+ }
+
+#ifdef __ANDROID__
+ /* Newer Android versions have fseeko...to meditate. */
+ int64_t ret = lseek(fileno(mine->f), skip, whence);
+ if (ret >= 0) {
+ return ret;
+ }
+#elif HAVE__FSEEKI64
+ if (_fseeki64(mine->f, skip, whence) == 0) {
+ return _ftelli64(mine->f);
+ }
+#elif HAVE_FSEEKO
+ if (fseeko(mine->f, skip, whence) == 0) {
+ return ftello(mine->f);
+ }
+#else
+ if (fseek(mine->f, skip, whence) == 0) {
+ return ftell(mine->f);
+ }
+#endif
+ /* If we arrive here, the input is corrupted or truncated so fail. */
+ archive_set_error(a, errno, "Error seeking in FILE* pointer");
+ return (ARCHIVE_FATAL);
+}
+
static int
-file_close(struct archive *a, void *client_data)
+FILE_close(struct archive *a, void *client_data)
{
struct read_FILE_data *mine = (struct read_FILE_data *)client_data;
@@ -176,4 +226,4 @@ file_close(struct archive *a, void *clie
free(mine->buffer);
free(mine);
return (ARCHIVE_OK);
-}
+}
\ No newline at end of file
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.9 pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.9 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c Mon Apr 28 10:31:34 2025
@@ -2606,7 +2606,7 @@ set_times(struct archive_write_disk *a,
time_t ctime_sec, long ctime_nanos)
{
#define EPOC_TIME ARCHIVE_LITERAL_ULL(116444736000000000)
-#define WINTIME(sec, nsec) ((Int32x32To64(sec, 10000000) + EPOC_TIME)\
+#define WINTIME(sec, nsec) (((sec * 10000000LL) + EPOC_TIME)\
+ ((nsec)/100))
HANDLE hw = 0;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c:1.10 pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c:1.10 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_filename.c Mon Apr 28 10:31:34 2025
@@ -303,7 +303,7 @@ file_open(struct archive *a, void *clien
}
if (fd < 0) {
archive_set_error(a, errno,
- "Failed to open '%S'", wfilename);
+ "Failed to open '%ls'", wfilename);
return (ARCHIVE_FATAL);
}
#else
@@ -315,7 +315,7 @@ file_open(struct archive *a, void *clien
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'",
+ archive_set_error(a, errno, "Can't stat '%ls'",
wfilename);
else
#endif
@@ -447,7 +447,7 @@ file_read(struct archive *a, void *clien
"Error reading '%s'", mine->filename.m);
else
archive_set_error(a, errno,
- "Error reading '%S'", mine->filename.w);
+ "Error reading '%ls'", mine->filename.w);
}
return (bytes_read);
}
@@ -509,7 +509,7 @@ file_skip_lseek(struct archive *a, void
archive_set_error(a, errno, "Error seeking in '%s'",
mine->filename.m);
else
- archive_set_error(a, errno, "Error seeking in '%S'",
+ archive_set_error(a, errno, "Error seeking in '%ls'",
mine->filename.w);
return (-1);
}
@@ -555,7 +555,7 @@ file_seek(struct archive *a, void *clien
archive_set_error(a, errno, "Error seeking in '%s'",
mine->filename.m);
else
- archive_set_error(a, errno, "Error seeking in '%S'",
+ archive_set_error(a, errno, "Error seeking in '%ls'",
mine->filename.w);
return (ARCHIVE_FATAL);
}
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c:1.10 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c:1.10 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c Mon Apr 28 10:31:34 2025
@@ -529,7 +529,7 @@ archive_write_zip_header(struct archive_
__archive_write_entry_filetype_unsupported(
&a->archive, entry, "zip");
return ARCHIVE_FAILED;
- };
+ }
/* If we're not using Zip64, reject large files. */
if (zip->flags & ZIP_FLAG_AVOID_ZIP64) {
Index: pkgsrc/archivers/libarchive/files/libarchive/config_freebsd.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/config_freebsd.h:1.10 pkgsrc/archivers/libarchive/files/libarchive/config_freebsd.h:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/config_freebsd.h:1.10 Sun Sep 15 07:02:21 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/config_freebsd.h Mon Apr 28 10:31:34 2025
@@ -210,6 +210,8 @@
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_UTSNAME_H 1
#define HAVE_SYS_WAIT_H 1
+#define HAVE_TCGETATTR 1
+#define HAVE_TCSETATTR 1
#define HAVE_TIMEGM 1
#define HAVE_TIME_H 1
#define HAVE_TZSET 1
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c:1.5 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c:1.6
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c:1.5 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c Mon Apr 28 10:31:34 2025
@@ -323,7 +323,6 @@ lz4_filter_read(struct archive_read_filt
archive_set_error(&self->archive->archive,
ARCHIVE_ERRNO_MISC, "Program error.");
return (ARCHIVE_FATAL);
- break;
}
while (state->stage == SELECT_STREAM) {
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c:1.11 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c:1.12
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c:1.11 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c Mon Apr 28 10:31:34 2025
@@ -28,6 +28,9 @@
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
@@ -435,6 +438,8 @@ static void arm_Init(struct _7zip *);
static size_t arm_Convert(struct _7zip *, uint8_t *, size_t);
static size_t arm64_Convert(struct _7zip *, uint8_t *, size_t);
static ssize_t Bcj2_Decode(struct _7zip *, uint8_t *, size_t);
+static size_t sparc_Convert(struct _7zip *, uint8_t *, size_t);
+static size_t powerpc_Convert(struct _7zip *, uint8_t *, size_t);
int
@@ -770,7 +775,7 @@ archive_read_format_7zip_read_header(str
/* allocate for ",rdonly,hidden,system" */
fflags_text = malloc(22 * sizeof(*fflags_text));
if (fflags_text != NULL) {
- ptr = fflags_text;
+ ptr = fflags_text;
if (zip_entry->attr & FILE_ATTRIBUTE_READONLY) {
strcpy(ptr, ",rdonly");
ptr = ptr + 7;
@@ -1109,7 +1114,9 @@ init_decompression(struct archive_read *
if (coder2->codec != _7Z_X86 &&
coder2->codec != _7Z_X86_BCJ2 &&
coder2->codec != _7Z_ARM &&
- coder2->codec != _7Z_ARM64) {
+ coder2->codec != _7Z_ARM64 &&
+ coder2->codec != _7Z_POWERPC &&
+ coder2->codec != _7Z_SPARC) {
archive_set_error(&a->archive,
ARCHIVE_ERRNO_MISC,
"Unsupported filter %lx for %lx",
@@ -1708,6 +1715,10 @@ decompress(struct archive_read *a, struc
*outbytes = arm_Convert(zip, buff, *outbytes);
} else if (zip->codec2 == _7Z_ARM64) {
*outbytes = arm64_Convert(zip, buff, *outbytes);
+ } else if (zip->codec2 == _7Z_SPARC) {
+ *outbytes = sparc_Convert(zip, buff, *outbytes);
+ } else if (zip->codec2 == _7Z_POWERPC) {
+ *outbytes = powerpc_Convert(zip, buff, *outbytes);
}
}
@@ -4007,6 +4018,121 @@ arm64_Convert(struct _7zip *zip, uint8_t
return i;
}
+static size_t
+sparc_Convert(struct _7zip *zip, uint8_t *buf, size_t size)
+{
+ // This function was adapted from
+ // static size_t bcj_sparc(struct xz_dec_bcj *s, uint8_t *buf, size_t size)
+ // in https://git.tukaani.org/xz-embedded.git
+
+ /*
+ * Branch/Call/Jump (BCJ) filter decoders
+ *
+ * Authors: Lasse Collin <lasse.collin%tukaani.org@localhost>
+ * Igor Pavlov <https://7-zip.org/>
+ *
+ * Copyright (C) The XZ Embedded authors and contributors
+ *
+ * Permission to use, copy, modify, and/or distribute this
+ * software for any purpose with or without fee is hereby granted.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+ size_t i;
+ uint32_t instr;
+
+ size &= ~(size_t)3;
+
+ for (i = 0; i < size; i += 4) {
+ instr = (uint32_t)(buf[i] << 24)
+ | ((uint32_t)buf[i+1] << 16)
+ | ((uint32_t)buf[i+2] << 8)
+ | (uint32_t)buf[i+3];
+
+ if ((instr >> 22) == 0x100 || (instr >> 22) == 0x1FF) {
+ instr <<= 2;
+ instr -= zip->bcj_ip + (uint32_t)i;
+ instr >>= 2;
+ instr = ((uint32_t)0x40000000 - (instr & 0x400000))
+ | 0x40000000 | (instr & 0x3FFFFF);
+
+ buf[i] = (uint8_t)(instr >> 24);
+ buf[i+1] = (uint8_t)(instr >> 16);
+ buf[i+2] = (uint8_t)(instr >> 8);
+ buf[i+3] = (uint8_t)instr;
+ }
+ }
+
+ zip->bcj_ip += (uint32_t)i;
+
+ return i;
+}
+
+static size_t
+powerpc_Convert(struct _7zip *zip, uint8_t *buf, size_t size)
+{
+ // This function was adapted from
+ // static size_t powerpc_code(void *simple, uint32_t now_pos, bool is_encoder, uint8_t *buffer, size_t size)
+ // in https://git.tukaani.org/xz.git
+
+ /*
+ * Filter for PowerPC (big endian) binaries
+ *
+ * Authors: Igor Pavlov
+ * Lasse Collin
+ *
+ * Copyright (C) The XZ Utils authors and contributors
+ *
+ * Permission to use, copy, modify, and/or distribute this
+ * software for any purpose with or without fee is hereby granted.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+ size &= ~(size_t)3;
+
+ size_t i;
+ for (i = 0; i < size; i += 4) {
+ // PowerPC branch 6(48) 24(Offset) 1(Abs) 1(Link)
+ if ((buf[i] >> 2) == 0x12
+ && ((buf[i + 3] & 3) == 1)) {
+
+ const uint32_t src
+ = (((uint32_t)(buf[i + 0]) & 3) << 24)
+ | ((uint32_t)(buf[i + 1]) << 16)
+ | ((uint32_t)(buf[i + 2]) << 8)
+ | ((uint32_t)(buf[i + 3]) & ~UINT32_C(3));
+
+ uint32_t dest = src - (zip->bcj_ip + (uint32_t)(i));
+
+ buf[i + 0] = 0x48 | ((dest >> 24) & 0x03);
+ buf[i + 1] = (dest >> 16);
+ buf[i + 2] = (dest >> 8);
+ buf[i + 3] &= 0x03;
+ buf[i + 3] |= dest;
+ }
+ }
+
+ zip->bcj_ip += (uint32_t)i;
+
+ return i;
+}
+
/*
* Brought from LZMA SDK.
*
@@ -4029,8 +4155,17 @@ arm64_Convert(struct _7zip *zip, uint8_t
#define RC_READ_BYTE (*buffer++)
#define RC_TEST { if (buffer == bufferLim) return SZ_ERROR_DATA; }
-#define RC_INIT2 zip->bcj2_code = 0; zip->bcj2_range = 0xFFFFFFFF; \
- { int ii; for (ii = 0; ii < 5; ii++) { RC_TEST; zip->bcj2_code = (zip->bcj2_code << 8) | RC_READ_BYTE; }}
+#define RC_INIT2 do { \
+ zip->bcj2_code = 0; \
+ zip->bcj2_range = 0xFFFFFFFF; \
+ { \
+ int ii; \
+ for (ii = 0; ii < 5; ii++) { \
+ RC_TEST; \
+ zip->bcj2_code = (zip->bcj2_code << 8) | RC_READ_BYTE; \
+ } \
+ } \
+} while (0)
#define NORMALIZE if (zip->bcj2_range < kTopValue) { RC_TEST; zip->bcj2_range <<= 8; zip->bcj2_code = (zip->bcj2_code << 8) | RC_READ_BYTE; }
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_by_code.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_by_code.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_by_code.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_by_code.c:1.4 Fri Apr 12 15:39:51 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_by_code.c Mon Apr 28 10:31:34 2025
@@ -41,49 +41,34 @@ archive_read_support_format_by_code(stru
switch (format_code & ARCHIVE_FORMAT_BASE_MASK) {
case ARCHIVE_FORMAT_7ZIP:
return archive_read_support_format_7zip(a);
- break;
case ARCHIVE_FORMAT_AR:
return archive_read_support_format_ar(a);
- break;
case ARCHIVE_FORMAT_CAB:
return archive_read_support_format_cab(a);
- break;
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;
case ARCHIVE_FORMAT_LHA:
return archive_read_support_format_lha(a);
- break;
case ARCHIVE_FORMAT_MTREE:
return archive_read_support_format_mtree(a);
- break;
case ARCHIVE_FORMAT_RAR:
return archive_read_support_format_rar(a);
- break;
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;
case ARCHIVE_FORMAT_ZIP:
return archive_read_support_format_zip(a);
- break;
}
archive_set_error(a, ARCHIVE_ERRNO_PROGRAMMER,
"Invalid format code specified");
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c:1.4 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c Mon Apr 28 10:31:34 2025
@@ -155,7 +155,7 @@ archive_filter_uuencode_open(struct arch
}
archive_string_sprintf(&state->encoded_buff, "begin %o %s\n",
- state->mode, state->name.s);
+ (unsigned int)state->mode, state->name.s);
f->data = state;
return (0);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c:1.12 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c:1.13
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c:1.12 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c Mon Apr 28 10:31:34 2025
@@ -475,7 +475,7 @@ static inline uint32_t vm_read_32(struct
((rar_br_has(br, (n)) || rar_br_fillup(a, br)) || rar_br_has(br, (n)))
/* Notify how many bits we consumed. */
#define rar_br_consume(br, n) ((br)->cache_avail -= (n))
-#define rar_br_consume_unalined_bits(br) ((br)->cache_avail &= ~7)
+#define rar_br_consume_unaligned_bits(br) ((br)->cache_avail &= ~7)
static const uint32_t cache_masks[] = {
0x00000000, 0x00000001, 0x00000003, 0x00000007,
@@ -2276,7 +2276,7 @@ parse_codes(struct archive_read *a)
free_codes(a);
/* Skip to the next byte */
- rar_br_consume_unalined_bits(br);
+ rar_br_consume_unaligned_bits(br);
/* PPMd block flag */
if (!rar_br_read_ahead(a, br, 1))
@@ -2803,7 +2803,7 @@ make_table(struct archive_read *a, struc
else
code->tablesize = code->maxlength;
- code->table = calloc(1U << code->tablesize, sizeof(*code->table));
+ code->table = calloc(((size_t)1U) << code->tablesize, sizeof(*code->table));
return make_table_recurse(a, code, 0, code->table, 0, code->tablesize);
}
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c:1.12 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c:1.13
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c:1.12 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c Mon Apr 28 10:31:34 2025
@@ -1745,15 +1745,6 @@ decompression_cleanup(struct archive_rea
#if defined(HAVE_LZMA_H) && defined(HAVE_LIBLZMA)
if (xar->lzstream_valid)
lzma_end(&(xar->lzstream));
-#elif defined(HAVE_LZMA_H) && defined(HAVE_LIBLZMA)
- if (xar->lzstream_valid) {
- if (lzmadec_end(&(xar->lzstream)) != LZMADEC_OK) {
- archive_set_error(&a->archive,
- ARCHIVE_ERRNO_MISC,
- "Failed to clean up lzmadec decompressor");
- r = ARCHIVE_FATAL;
- }
- }
#endif
return (r);
}
@@ -2070,7 +2061,7 @@ xml_start(struct archive_read *a, const
if (xar->file->link > 0)
if (add_link(a, xar, xar->file) != ARCHIVE_OK) {
return (ARCHIVE_FATAL);
- };
+ }
}
}
}
@@ -2851,7 +2842,6 @@ xml_data(void *userData, const char *s,
xar->file->has |= HAS_XATTR;
archive_strncpy(&(xar->xattr->fstype), s, len);
break;
- break;
case FILE_ACL_DEFAULT:
case FILE_ACL_ACCESS:
case FILE_ACL_APPLEEXTENDED:
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c:1.16 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c:1.17
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c:1.16 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c Mon Apr 28 10:31:34 2025
@@ -2134,15 +2134,15 @@ zipx_ppmd8_init(struct archive_read *a,
if(order < 2 || restore_method > 2) {
archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
- "Invalid parameter set in PPMd8 stream (order=%" PRId32 ", "
- "restore=%" PRId32 ")", order, restore_method);
+ "Invalid parameter set in PPMd8 stream (order=%" PRIu32 ", "
+ "restore=%" PRIu32 ")", 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: %" PRId32 " bytes",
+ "Unable to allocate memory for PPMd8 stream: %" PRIu32 " bytes",
mem << 20);
return (ARCHIVE_FATAL);
}
@@ -3168,7 +3168,6 @@ archive_read_format_zip_read_data(struct
/* We can't decompress this entry, but we will
* be able to skip() it and try the next entry. */
return (ARCHIVE_FAILED);
- break;
}
if (r != ARCHIVE_OK)
return (r);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_string.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.13 pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.14
--- pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.13 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_string.c Mon Apr 28 10:31:34 2025
@@ -154,7 +154,6 @@ static int archive_wstring_append_from_m
struct archive_string_conv *);
static int archive_string_append_from_wcs_in_codepage(struct archive_string *,
const wchar_t *, size_t, struct archive_string_conv *);
-static int is_big_endian(void);
static int strncat_in_codepage(struct archive_string *, const void *,
size_t, struct archive_string_conv *);
static int win_strncat_from_utf16be(struct archive_string *, const void *,
@@ -199,6 +198,29 @@ static int archive_string_normalize_D(st
static int archive_string_append_unicode(struct archive_string *,
const void *, size_t, struct archive_string_conv *);
+#if defined __LITTLE_ENDIAN__
+ #define IS_BIG_ENDIAN 0
+#elif defined __BIG_ENDIAN__
+ #define IS_BIG_ENDIAN 1
+#elif defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ #define IS_BIG_ENDIAN 0
+#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
+ #define IS_BIG_ENDIAN 1
+#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || defined(_M_ARM64))
+ #define IS_BIG_ENDIAN 0
+#else
+// Detect endianness at runtime.
+static int
+is_big_endian(void)
+{
+ uint16_t d = 1;
+
+ return (archive_be16dec(&d) == 1);
+}
+
+#define IS_BIG_ENDIAN is_big_endian()
+#endif
+
static struct archive_string *
archive_string_append(struct archive_string *as, const char *p, size_t s)
{
@@ -485,7 +507,7 @@ archive_wstring_append_from_mbs_in_codep
struct archive_string u16;
int saved_flag = sc->flag;/* save current flag. */
- if (is_big_endian())
+ if (IS_BIG_ENDIAN)
sc->flag |= SCONV_TO_UTF16BE;
else
sc->flag |= SCONV_TO_UTF16LE;
@@ -504,7 +526,7 @@ archive_wstring_append_from_mbs_in_codep
count = (int)mbsnbytes(s, length);
}
u16.s = (char *)dest->s;
- u16.length = dest->length << 1;;
+ u16.length = dest->length << 1;
u16.buffer_length = dest->buffer_length;
if (sc->flag & SCONV_NORMALIZATION_C)
ret = archive_string_normalize_C(&u16, s, count, sc);
@@ -523,14 +545,14 @@ archive_wstring_append_from_mbs_in_codep
dest->length + count + 1))
return (-1);
wmemcpy(dest->s + dest->length, (const wchar_t *)s, count);
- if ((sc->flag & SCONV_FROM_UTF16BE) && !is_big_endian()) {
+ if ((sc->flag & SCONV_FROM_UTF16BE) && !IS_BIG_ENDIAN) {
uint16_t *u16 = (uint16_t *)(dest->s + dest->length);
int b;
for (b = 0; b < count; b++) {
uint16_t val = archive_le16dec(u16+b);
archive_be16enc(u16+b, val);
}
- } else if ((sc->flag & SCONV_FROM_UTF16LE) && is_big_endian()) {
+ } else if ((sc->flag & SCONV_FROM_UTF16LE) && IS_BIG_ENDIAN) {
uint16_t *u16 = (uint16_t *)(dest->s + dest->length);
int b;
for (b = 0; b < count; b++) {
@@ -3538,7 +3560,7 @@ win_strncat_from_utf16(struct archive_st
archive_string_init(&tmp);
if (be) {
- if (is_big_endian()) {
+ if (IS_BIG_ENDIAN) {
u16 = _p;
} else {
if (archive_string_ensure(&tmp, bytes+2) == NULL)
@@ -3551,7 +3573,7 @@ win_strncat_from_utf16(struct archive_st
u16 = tmp.s;
}
} else {
- if (!is_big_endian()) {
+ if (!IS_BIG_ENDIAN) {
u16 = _p;
} else {
if (archive_string_ensure(&tmp, bytes+2) == NULL)
@@ -3605,14 +3627,6 @@ win_strncat_from_utf16le(struct archive_
return (win_strncat_from_utf16(as, _p, bytes, sc, 0));
}
-static int
-is_big_endian(void)
-{
- uint16_t d = 1;
-
- return (archive_be16dec(&d) == 1);
-}
-
/*
* Convert a current locale string to UTF-16BE/LE and copy the result.
* Return -1 if conversion fails.
@@ -3673,7 +3687,7 @@ win_strncat_to_utf16(struct archive_stri
if (count == 0)
return (-1);
- if (is_big_endian()) {
+ if (IS_BIG_ENDIAN) {
if (!bigendian) {
while (count > 0) {
uint16_t v = archive_be16dec(u16);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.14 pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.15
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.14 Sun Mar 30 09:56:54 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c Mon Apr 28 10:31:34 2025
@@ -3607,7 +3607,7 @@ set_time_tru64(int fd, int mode, const c
tstamp.atime.tv_sec = atime;
tstamp.mtime.tv_sec = mtime;
tstamp.ctime.tv_sec = ctime;
-#if defined (__hpux) && defined (__ia64)
+#if defined (__hpux) && ( defined (__ia64) || defined (__hppa) )
tstamp.atime.tv_nsec = atime_nsec;
tstamp.mtime.tv_nsec = mtime_nsec;
tstamp.ctime.tv_nsec = ctime_nsec;
@@ -3790,7 +3790,7 @@ set_mode(struct archive_write_disk *a, i
* permissions on symlinks, so a failure here has no
* impact.
*/
- if (lchmod(a->name, mode) != 0) {
+ if (lchmod(a->name, (mode_t)mode) != 0) {
switch (errno) {
case ENOTSUP:
case ENOSYS:
@@ -3805,7 +3805,8 @@ set_mode(struct archive_write_disk *a, i
break;
default:
archive_set_error(&a->archive, errno,
- "Can't set permissions to 0%o", (int)mode);
+ "Can't set permissions to 0%o",
+ (unsigned int)mode);
r = ARCHIVE_WARN;
}
}
@@ -3819,16 +3820,16 @@ set_mode(struct archive_write_disk *a, i
*/
#ifdef HAVE_FCHMOD
if (a->fd >= 0)
- r2 = fchmod(a->fd, mode);
+ r2 = fchmod(a->fd, (mode_t)mode);
else
#endif
/* If this platform lacks fchmod(), then
* we'll just use chmod(). */
- r2 = chmod(a->name, mode);
+ r2 = chmod(a->name, (mode_t)mode);
if (r2 != 0) {
archive_set_error(&a->archive, errno,
- "Can't set permissions to 0%o", (int)mode);
+ "Can't set permissions to 0%o", (unsigned int)mode);
r = ARCHIVE_WARN;
}
}
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c:1.7 Sun Sep 15 07:02:21 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c Mon Apr 28 10:31:34 2025
@@ -911,7 +911,7 @@ static int iso9660_finish_entry(struct a
static int iso9660_close(struct archive_write *);
static int iso9660_free(struct archive_write *);
-static void get_system_identitier(char *, size_t);
+static void get_system_identifier(char *, size_t);
static void set_str(unsigned char *, const char *, size_t, char,
const char *);
static inline int joliet_allowed_char(unsigned char, unsigned char);
@@ -2166,7 +2166,7 @@ iso9660_free(struct archive_write *a)
* Get the System Identifier
*/
static void
-get_system_identitier(char *system_id, size_t size)
+get_system_identifier(char *system_id, size_t size)
{
#if defined(HAVE_SYS_UTSNAME_H)
struct utsname u;
@@ -3872,7 +3872,7 @@ write_VD(struct archive_write *a, struct
/* Unused Field */
set_unused_field_bp(bp, 8, 8);
/* System Identifier */
- get_system_identitier(identifier, sizeof(identifier));
+ get_system_identifier(identifier, sizeof(identifier));
r = set_str_a_characters_bp(a, bp, 9, 40, identifier, vdc);
if (r != ARCHIVE_OK)
return (r);
@@ -4037,7 +4037,7 @@ set_option_info(struct archive_string *i
case KEY_HEX:
d = va_arg(ap, int);
archive_string_sprintf(info, "%c%s=%x",
- prefix, key, d);
+ prefix, key, (unsigned int)d);
break;
}
va_end(ap);
Index: pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.13 pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.14
--- pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.13 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt Mon Apr 28 10:31:34 2025
@@ -55,6 +55,7 @@ IF(ENABLE_TEST)
test_compat_bzip2.c
test_compat_cpio.c
test_compat_gtar.c
+ test_compat_gtar_large.c
test_compat_gzip.c
test_compat_lz4.c
test_compat_lzip.c
@@ -133,6 +134,7 @@ IF(ENABLE_TEST)
test_read_format_gtar_gz.c
test_read_format_gtar_lzma.c
test_read_format_gtar_sparse.c
+ test_read_format_gtar_sparse_length.c
test_read_format_gtar_sparse_skip_entry.c
test_read_format_huge_rpm.c
test_read_format_iso_Z.c
@@ -327,7 +329,9 @@ IF(ENABLE_TEST)
NAME libarchive_${_testname}
COMMAND libarchive_test -vv
-r ${CMAKE_CURRENT_SOURCE_DIR}
+ -s
${_testname})
+ SET_TESTS_PROPERTIES(libarchive_${_testname} PROPERTIES SKIP_RETURN_CODE 2)
ENDMACRO (DEFINE_TEST _testname)
INCLUDE(${CMAKE_CURRENT_BINARY_DIR}/list.h)
Index: pkgsrc/archivers/libarchive/files/libarchive/test/list.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.15 pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.15 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/list.h Mon Apr 28 10:31:34 2025
@@ -1,4 +1,4 @@
-DEFINE_TEST(test_7zip_filename_encoding_UTF16_win)
+DEFINE_TEST(test_7zip_filename_encoding_UTF16_win)
DEFINE_TEST(test_acl_nfs4)
DEFINE_TEST(test_acl_pax_posix1e)
DEFINE_TEST(test_acl_pax_nfs4)
@@ -118,6 +118,7 @@ DEFINE_TEST(test_bad_fd)
DEFINE_TEST(test_compat_bzip2)
DEFINE_TEST(test_compat_cpio)
DEFINE_TEST(test_compat_gtar)
+DEFINE_TEST(test_compat_gtar_large)
DEFINE_TEST(test_compat_gzip)
DEFINE_TEST(test_compat_lz4)
DEFINE_TEST(test_compat_lzip)
@@ -222,6 +223,9 @@ DEFINE_TEST(test_read_format_7zip_lzma2_
DEFINE_TEST(test_read_format_7zip_deflate_arm64)
DEFINE_TEST(test_read_format_7zip_win_attrib)
DEFINE_TEST(test_read_format_7zip_extract_second)
+DEFINE_TEST(test_read_format_7zip_lzma2_sparc)
+DEFINE_TEST(test_read_format_7zip_zstd_sparc)
+DEFINE_TEST(test_read_format_7zip_deflate_powerpc)
DEFINE_TEST(test_read_format_7zip_encryption_data)
DEFINE_TEST(test_read_format_7zip_encryption_header)
DEFINE_TEST(test_read_format_7zip_encryption_partially)
@@ -275,6 +279,7 @@ DEFINE_TEST(test_read_format_gtar_filena
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_length)
DEFINE_TEST(test_read_format_gtar_sparse_skip_entry)
DEFINE_TEST(test_read_format_huge_rpm)
DEFINE_TEST(test_read_format_iso_Z)
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_pax.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_pax.c:1.6 pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_pax.c:1.7
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_pax.c:1.6 Fri Apr 12 15:39:53 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_pax.c Mon Apr 28 10:31:34 2025
@@ -287,7 +287,7 @@ DEFINE_TEST(test_acl_pax_posix1e)
failure("Basic ACLs shouldn't be stored as extended ACLs");
assert(0 == archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS));
failure("Basic ACLs should set mode to 0142, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0142);
/* Second item has a few ACLs */
@@ -297,7 +297,7 @@ DEFINE_TEST(test_acl_pax_posix1e)
assertEntryCompareAcls(ae, acls1, sizeof(acls1)/sizeof(acls1[0]),
ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0142);
failure("Basic ACLs should set mode to 0142, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0142);
/* Third item has pretty extensive ACLs */
@@ -307,7 +307,7 @@ DEFINE_TEST(test_acl_pax_posix1e)
assertEntryCompareAcls(ae, acls2, sizeof(acls2)/sizeof(acls2[0]),
ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0543);
failure("Basic ACLs should set mode to 0543, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0543);
/* Fourth item has no ACLs */
@@ -315,7 +315,7 @@ DEFINE_TEST(test_acl_pax_posix1e)
failure("Basic ACLs shouldn't be stored as extended ACLs");
assert(0 == archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS));
failure("Basic ACLs should set mode to 0142, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0142);
/* Close the archive. */
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_nfs4.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_nfs4.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_nfs4.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_nfs4.c:1.8 Fri Apr 12 15:39:53 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_nfs4.c Mon Apr 28 10:31:34 2025
@@ -772,7 +772,8 @@ compare_acls(
failure(" ACL entry %d missing from %s: "
"type=%#010x,permset=%#010x,tag=%d,qual=%d,name=``%s''\n",
marker[i], filename,
- myacls[marker[i]].type, myacls[marker[i]].permset,
+ (unsigned int)myacls[marker[i]].type,
+ (unsigned int)myacls[marker[i]].permset,
myacls[marker[i]].tag, myacls[marker[i]].qual,
myacls[marker[i]].name);
assert(0); /* Record this as a failure. */
@@ -824,7 +825,7 @@ compare_entry_acls(struct archive_entry
failure("ACL entry on file that shouldn't be there: "
"type=%#010x,permset=%#010x,tag=%d,qual=%d",
- type,permset,tag,qual);
+ (unsigned int)type, (unsigned int)permset, tag, qual);
assert(matched == 1);
}
@@ -833,7 +834,8 @@ compare_entry_acls(struct archive_entry
failure(" ACL entry %d missing from %s: "
"type=%#010x,permset=%#010x,tag=%d,qual=%d,name=``%s''\n",
marker[i], filename,
- myacls[marker[i]].type, myacls[marker[i]].permset,
+ (unsigned int)myacls[marker[i]].type,
+ (unsigned int)myacls[marker[i]].permset,
myacls[marker[i]].tag, myacls[marker[i]].qual,
myacls[marker[i]].name);
assert(0); /* Record this as a failure. */
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c:1.8 Fri Apr 12 15:39:56 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_write_disk_perms.c Mon Apr 28 10:31:34 2025
@@ -216,7 +216,7 @@ DEFINE_TEST(test_write_disk_perms)
/* Check original owner. */
assertEqualInt(0, stat("dir_owner", &st));
- failure("dir_owner: st.st_uid=%d", st.st_uid);
+ failure("dir_owner: st.st_uid=%jd", (intmax_t)st.st_uid);
assertEqualInt(st.st_uid, original_uid);
/* Shouldn't try to edit the owner when no overwrite option is set. */
assert((ae = archive_entry_new()) != NULL);
@@ -230,7 +230,7 @@ DEFINE_TEST(test_write_disk_perms)
assertEqualIntA(a, ARCHIVE_OK, archive_write_finish_entry(a));
/* Make sure they're unchanged. */
assertEqualInt(0, stat("dir_owner", &st));
- failure("dir_owner: st.st_uid=%d", st.st_uid);
+ failure("dir_owner: st.st_uid=%jd", (intmax_t)st.st_uid);
assertEqualInt(st.st_uid, original_uid);
/* Write a regular file with SUID bit, but don't use _EXTRACT_PERM. */
@@ -475,8 +475,8 @@ DEFINE_TEST(test_write_disk_perms)
assertEqualInt(0, stat("file_bad_owner", &st));
failure("file_bad_owner: st.st_mode=%o", st.st_mode);
assertEqualInt(st.st_mode & 07777, 0744);
- failure("file_bad_owner: st.st_uid=%d getuid()=%d",
- st.st_uid, getuid());
+ failure("file_bad_owner: st.st_uid=%jd getuid()=%jd",
+ (intmax_t)st.st_uid, (intmax_t)getuid());
/* The entry had getuid()+1, but because we're
* not root, we should not have been able to set that. */
assertEqualInt(st.st_uid, getuid());
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_posix1e.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_posix1e.c:1.5 pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_posix1e.c:1.6
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_posix1e.c:1.5 Fri Apr 12 15:39:53 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_platform_posix1e.c Mon Apr 28 10:31:34 2025
@@ -274,7 +274,8 @@ compare_acls(
for (i = 0; i < n; ++i) {
failure(" ACL entry missing from file: "
"type=%#010x,permset=%#010x,tag=%d,qual=%d,name=``%s''\n",
- myacls[marker[i]].type, myacls[marker[i]].permset,
+ (unsigned int)myacls[marker[i]].type,
+ (unsigned int)myacls[marker[i]].permset,
myacls[marker[i]].tag, myacls[marker[i]].qual,
myacls[marker[i]].name);
assert(0); /* Record this as a failure. */
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c:1.5 pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c:1.6
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c:1.5 Sun Sep 15 07:02:22 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c Mon Apr 28 10:31:34 2025
@@ -1150,7 +1150,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
assertEqualString("system", archive_entry_fflags_text(ae));
archive_entry_fflags(ae, &set, &clear);
#if defined(__FreeBSD__)
- flag = UF_SYSTEM;;
+ flag = UF_SYSTEM;
#elif defined(_WIN32) && !defined(CYGWIN)
flag = FILE_ATTRIBUTE_SYSTEM;
#endif
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_read_position.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_read_position.c:1.5 pkgsrc/archivers/libarchive/files/libarchive/test/test_read_position.c:1.6
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_read_position.c:1.5 Fri Apr 12 15:39:55 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_read_position.c Mon Apr 28 10:31:34 2025
@@ -27,7 +27,7 @@
static unsigned char nulls[1000];
static unsigned char tmp[1000];
static unsigned char buff[10000];
-size_t data_sizes[] = {0, 5, 511, 512, 513};
+static size_t data_sizes[] = {0, 5, 511, 512, 513};
static void verify_read_positions(struct archive *a);
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_posix1e.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_posix1e.c:1.3 pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_posix1e.c:1.4
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_posix1e.c:1.3 Fri Apr 12 15:39:53 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_acl_posix1e.c Mon Apr 28 10:31:34 2025
@@ -119,7 +119,7 @@ DEFINE_TEST(test_acl_posix1e)
failure("Basic ACLs shouldn't be stored as extended ACLs");
assert(0 == archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS));
failure("Basic ACLs should set mode to 0142, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0142);
/* With any extended ACL entry, we should read back a full set. */
@@ -136,7 +136,7 @@ DEFINE_TEST(test_acl_posix1e)
assertEntryCompareAcls(ae, acls1, sizeof(acls1)/sizeof(acls1[0]),
ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0142);
failure("Basic ACLs should set mode to 0142, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0142);
@@ -146,7 +146,7 @@ DEFINE_TEST(test_acl_posix1e)
assertEntryCompareAcls(ae, acls2, sizeof(acls2)/sizeof(acls2[0]),
ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0543);
failure("Basic ACLs should set mode to 0543, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0543);
/*
@@ -157,7 +157,7 @@ DEFINE_TEST(test_acl_posix1e)
failure("Basic ACLs shouldn't be stored as extended ACLs");
assert(0 == archive_entry_acl_reset(ae, ARCHIVE_ENTRY_ACL_TYPE_ACCESS));
failure("Basic ACLs should set mode to 0142, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0142);
/*
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_open_file.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_open_file.c:1.3 pkgsrc/archivers/libarchive/files/libarchive/test/test_open_file.c:1.4
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_open_file.c:1.3 Fri Apr 12 15:39:54 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_open_file.c Mon Apr 28 10:31:34 2025
@@ -31,14 +31,14 @@ DEFINE_TEST(test_open_file)
struct archive *a;
FILE *f;
- f = fopen("test.tar", "wb");
+ f = fopen("test.7z", "wb");
assert(f != NULL);
if (f == NULL)
return;
/* Write an archive through this FILE *. */
assert((a = archive_write_new()) != NULL);
- assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_7zip(a));
assertEqualIntA(a, ARCHIVE_OK, archive_write_add_filter_none(a));
assertEqualIntA(a, ARCHIVE_OK, archive_write_open_FILE(a, f));
@@ -70,9 +70,10 @@ DEFINE_TEST(test_open_file)
fclose(f);
/*
- * Now, read the data back.
+ * Now, read the data back. 7z requiring seeking, that also
+ * tests that the seeking support works.
*/
- f = fopen("test.tar", "rb");
+ f = fopen("test.7z", "rb");
assert(f != NULL);
if (f == NULL)
return;
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_compat_solaris_tar_acl.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_compat_solaris_tar_acl.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/test/test_compat_solaris_tar_acl.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_compat_solaris_tar_acl.c:1.4 Fri Apr 12 15:39:53 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_compat_solaris_tar_acl.c Mon Apr 28 10:31:34 2025
@@ -229,7 +229,7 @@ DEFINE_TEST(test_compat_solaris_tar_acl)
assertEntryCompareAcls(ae, acls0, sizeof(acls0)/sizeof(acls0[0]),
ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0644);
failure("Basic ACLs should set mode to 0644, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0644);
/* Second item has default and access ACLs */
@@ -239,7 +239,7 @@ DEFINE_TEST(test_compat_solaris_tar_acl)
assertEntryCompareAcls(ae, acls1, sizeof(acls1)/sizeof(acls1[0]),
ARCHIVE_ENTRY_ACL_TYPE_ACCESS, 0750);
failure("Basic ACLs should set mode to 0750, not %04o",
- archive_entry_mode(ae)&0777);
+ (unsigned int)archive_entry_mode(ae)&0777);
assert((archive_entry_mode(ae) & 0777) == 0750);
assertEqualInt(6, archive_entry_acl_reset(ae,
ARCHIVE_ENTRY_ACL_TYPE_DEFAULT));
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_write_format_tar_sparse.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_write_format_tar_sparse.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/test/test_write_format_tar_sparse.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_write_format_tar_sparse.c:1.4 Fri Apr 12 15:39:56 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_write_format_tar_sparse.c Mon Apr 28 10:31:34 2025
@@ -38,7 +38,7 @@ test_1(void)
char *buff2;
size_t buff2_size = 0x13000;
char buff3[1024];
- long i;
+ unsigned long i;
assert((buff2 = malloc(buff2_size)) != NULL);
/* Repeat the following for a variety of odd blocksizes. */
@@ -181,7 +181,7 @@ test_2(void)
char *buff2;
size_t buff2_size = 0x11000;
char buff3[1024];
- long i;
+ unsigned long i;
assert((buff2 = malloc(buff2_size)) != NULL);
/* Create a new archive in memory. */
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c:1.7 Sun Sep 15 07:02:21 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_7zip.c Mon Apr 28 10:31:34 2025
@@ -24,6 +24,10 @@
*/
#include "test.h"
+#if HAVE_LZMA_H
+#include <lzma.h>
+#endif
+
#if defined(_WIN32) && !defined(__CYGWIN__)
#define close _close
#define open _open
@@ -929,6 +933,10 @@ DEFINE_TEST(test_read_format_7zip_zstd)
if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) {
skipping(
"7zip:zstd decoding is not supported on this platform");
+ } else if (ARCHIVE_OK != archive_read_support_filter_xz(a)) {
+ // The directory header entries in the test file uses lzma.
+ skipping(
+ "7zip:lzma decoding is not supported on this platform");
} else {
test_extract_all_files_zstd("test_read_format_7zip_zstd.7z");
}
@@ -946,6 +954,10 @@ DEFINE_TEST(test_read_format_7zip_zstd_s
if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) {
skipping(
"7zip:zstd decoding is not supported on this platform");
+ } else if (ARCHIVE_OK != archive_read_support_filter_xz(a)) {
+ // The directory header entries in the test file uses lzma.
+ skipping(
+ "7zip:lzma decoding is not supported on this platform");
} else {
test_extract_all_files_zstd("test_read_format_7zip_solid_zstd.7z");
}
@@ -1150,7 +1162,7 @@ test_arm64_filter(const char *refname)
DEFINE_TEST(test_read_format_7zip_lzma2_arm64)
{
-#ifdef HAVE_LZMA_FILTER_ARM64
+#ifdef LZMA_FILTER_ARM64
struct archive *a;
assert((a = archive_read_new()) != NULL);
@@ -1301,3 +1313,133 @@ DEFINE_TEST(test_read_format_7zip_extrac
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
+
+static void
+test_sparc_filter(const char *refname)
+{
+ struct archive *a;
+ struct archive_entry *ae;
+ size_t expected_entry_size = 1053016;
+ char *buff = malloc(expected_entry_size);
+ uint32_t computed_crc = 0;
+ uint32_t expected_crc = 0x6b5b364d;
+
+ assert((a = archive_read_new()) != NULL);
+
+ extract_reference_file(refname);
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_filename(a, refname, 10240));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualInt((AE_IFREG | 0775), archive_entry_mode(ae));
+ assertEqualString("hw-sparc64", archive_entry_pathname(ae));
+ assertEqualInt(expected_entry_size, archive_entry_size(ae));
+ assertEqualInt(expected_entry_size, archive_read_data(a, buff, expected_entry_size));
+
+ computed_crc = crc32(computed_crc, buff, expected_entry_size);
+ assertEqualInt(computed_crc, expected_crc);
+
+ assertEqualInt(1, archive_file_count(a));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+
+ free(buff);
+}
+
+DEFINE_TEST(test_read_format_7zip_lzma2_sparc)
+{
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+
+ if (ARCHIVE_OK != archive_read_support_filter_lzma(a)) {
+ skipping(
+ "7zip:lzma decoding is not supported on this platform");
+ } else {
+ test_sparc_filter("test_read_format_7zip_lzma2_sparc.7z");
+ }
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
+
+DEFINE_TEST(test_read_format_7zip_zstd_sparc)
+{
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+
+ if (ARCHIVE_OK != archive_read_support_filter_zstd(a)) {
+ skipping(
+ "7zip:zstd decoding is not supported on this platform");
+ } else {
+ test_sparc_filter("test_read_format_7zip_zstd_sparc.7z");
+ }
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
+
+static void
+test_powerpc_filter(const char *refname)
+{
+ struct archive *a;
+ struct archive_entry *ae;
+ size_t expected_entry_size = 68340;
+ char *buff = malloc(expected_entry_size);
+ uint32_t computed_crc = 0;
+ uint32_t expected_crc = 0x71fb03c9;
+
+ assert((a = archive_read_new()) != NULL);
+
+ extract_reference_file(refname);
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+ assert((a = archive_read_new()) != NULL);
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
+
+ assertEqualIntA(a, ARCHIVE_OK,
+ archive_read_open_filename(a, refname, 10240));
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualInt((AE_IFREG | 0775), archive_entry_mode(ae));
+ assertEqualString("hw-powerpc", archive_entry_pathname(ae));
+ assertEqualInt(expected_entry_size, archive_entry_size(ae));
+ assertEqualInt(expected_entry_size, archive_read_data(a, buff, expected_entry_size));
+
+ computed_crc = crc32(computed_crc, buff, expected_entry_size);
+ assertEqualInt(computed_crc, expected_crc);
+
+ assertEqualInt(1, archive_file_count(a));
+
+ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
+
+ assertEqualInt(ARCHIVE_OK, archive_read_close(a));
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+
+ free(buff);
+}
+
+DEFINE_TEST(test_read_format_7zip_deflate_powerpc)
+{
+ struct archive *a;
+
+ assert((a = archive_read_new()) != NULL);
+
+ if (ARCHIVE_OK != archive_read_support_filter_gzip(a)) {
+ skipping(
+ "7zip:deflate decoding is not supported on this platform");
+ } else {
+ test_powerpc_filter("test_read_format_7zip_deflate_powerpc.7z");
+ }
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_gtar_sparse.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_gtar_sparse.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_gtar_sparse.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_gtar_sparse.c:1.7 Fri Apr 12 15:39:54 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_gtar_sparse.c Mon Apr 28 10:31:34 2025
@@ -30,13 +30,13 @@ struct contents {
const char *d;
};
-struct contents archive_contents_sparse[] = {
+static struct contents archive_contents_sparse[] = {
{ 1000000, 1, "a" },
{ 2000000, 1, "a" },
{ 3145728, 0, NULL }
};
-struct contents archive_contents_sparse2[] = {
+static struct contents archive_contents_sparse2[] = {
{ 1000000, 1, "a" },
{ 2000000, 1, "a" },
{ 3000000, 1, "a" },
@@ -139,7 +139,7 @@ struct contents archive_contents_sparse2
{ 99000001, 0, NULL }
};
-struct contents archive_contents_nonsparse[] = {
+static struct contents archive_contents_nonsparse[] = {
{ 0, 1, "a" },
{ 1, 0, NULL }
};
@@ -159,7 +159,7 @@ struct contents archive_contents_nonspar
* * contains a single byte 'a'
*/
-struct archive_contents {
+static struct archive_contents {
const char *filename;
struct contents *contents;
} files[] = {
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_sparse_basic.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_sparse_basic.c:1.9 pkgsrc/archivers/libarchive/files/libarchive/test/test_sparse_basic.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_sparse_basic.c:1.9 Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_sparse_basic.c Mon Apr 28 10:31:34 2025
@@ -198,7 +198,7 @@ is_sparse_supported_fiemap(const char *p
return (0);
fm = (struct fiemap *)buff;
fm->fm_start = 0;
- fm->fm_length = ~0ULL;;
+ fm->fm_length = ~0ULL;
fm->fm_flags = FIEMAP_FLAG_SYNC;
fm->fm_extent_count = (sizeof(buff) - sizeof(*fm))/
sizeof(struct fiemap_extent);
Index: pkgsrc/archivers/libarchive/files/libarchive_fe/passphrase.c
diff -u pkgsrc/archivers/libarchive/files/libarchive_fe/passphrase.c:1.8 pkgsrc/archivers/libarchive/files/libarchive_fe/passphrase.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive_fe/passphrase.c:1.8 Tue Apr 30 06:05:20 2024
+++ pkgsrc/archivers/libarchive/files/libarchive_fe/passphrase.c Mon Apr 28 10:31:34 2025
@@ -119,7 +119,7 @@ readpassphrase(const char *prompt, char
return (buf);
}
-#else /* _WIN32 && !__CYGWIN__ */
+#elif defined(HAVE_TCGETATTR) && defined(HAVE_TCSETATTR)
#include <assert.h>
#include <ctype.h>
@@ -314,7 +314,13 @@ restart:
errno = save_errno;
return(nr == -1 ? NULL : buf);
}
-#endif /* _WIN32 && !__CYGWIN__ */
+#else
+static char *
+readpassphrase(const char *prompt, char *buf, size_t bufsiz, int flags)
+{
+ return (NULL);
+}
+#endif
#endif /* HAVE_READPASSPHRASE */
char *
Index: pkgsrc/archivers/libarchive/files/tar/bsdtar.1
diff -u pkgsrc/archivers/libarchive/files/tar/bsdtar.1:1.15 pkgsrc/archivers/libarchive/files/tar/bsdtar.1:1.16
--- pkgsrc/archivers/libarchive/files/tar/bsdtar.1:1.15 Sat Oct 19 05:40:00 2024
+++ pkgsrc/archivers/libarchive/files/tar/bsdtar.1 Mon Apr 28 10:31:35 2025
@@ -32,19 +32,22 @@
.Nm
creates and manipulates streaming archive files.
This implementation can extract from tar, pax, cpio, zip, jar, ar, xar,
-rpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax, cpio, ar, zip,
-7-zip, and shar archives.
+rar, rpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax,
+cpio, ar, zip, 7-zip, and shar archives.
.Pp
The first synopsis form shows a
.Dq bundled
option word.
This usage is provided for compatibility with historical implementations.
-See COMPATIBILITY below for details.
+See
+.Sx COMPATIBILITY
+below for details.
.Pp
The other synopsis forms show the preferred usage.
The first option to
.Nm
is a mode indicator from the following list:
+.Pp
.Bl -tag -compact -width indent
.It Fl c
Create a new archive containing the specified items.
@@ -109,16 +112,22 @@ all operating modes.
The specified archive is opened and the entries
in it will be appended to the current archive.
As a simple example,
+.Pp
.Dl Nm Fl c Fl f Pa - Pa newfile Cm @ Ns Pa original.tar
+.Pp
writes a new archive to standard output containing a file
.Pa newfile
and all of the entries from
.Pa original.tar .
In contrast,
+.Pp
.Dl Nm Fl c Fl f Pa - Pa newfile Pa original.tar
+.Pp
creates a new archive with only two entries.
Similarly,
+.Pp
.Dl Nm Fl czf Pa - Fl Fl format Cm pax Cm @ Ns Pa -
+.Pp
reads an archive from standard input (whose format will be determined
automatically) and converts it into a gzip-compressed
pax-format archive on stdout.
@@ -130,19 +139,29 @@ can be used to convert archives from one
Use the archive suffix to decide a set of the format and
the compressions.
As a simple example,
+.Pp
.Dl Nm Fl a Fl cf Pa archive.tgz source.c source.h
+.Pp
creates a new archive with restricted pax format and gzip compression,
+.Pp
.Dl Nm Fl a Fl cf Pa archive.tar.bz2.uu source.c source.h
+.Pp
creates a new archive with restricted pax format and bzip2 compression
and uuencode compression,
+.Pp
.Dl Nm Fl a Fl cf Pa archive.zip source.c source.h
+.Pp
creates a new archive with zip format,
+.Pp
.Dl Nm Fl a Fl jcf Pa archive.tgz source.c source.h
+.Pp
ignores the
.Dq -j
option, and creates a new archive with restricted pax format
and gzip compression,
+.Pp
.Dl Nm Fl a Fl jcf Pa archive.xxx source.c source.h
+.Pp
if it is unknown suffix or no suffix, creates a new archive with
restricted pax format and bzip2 compression.
.It Fl Fl acls
@@ -295,7 +314,9 @@ The
.Fl Fl include
option is especially useful when filtering archives.
For example, the command
+.Pp
.Dl Nm Fl c Fl f Pa new.tar Fl Fl include='*foo*' Cm @ Ns Pa old.tgz
+.Pp
creates a new archive
.Pa new.tar
containing only the entries from
@@ -393,7 +414,8 @@ and the default behavior in c, r, and u
.Nm
is run in x mode as root.
Currently supported only for pax formats
-(including "pax restricted", the default tar format for bsdtar.)
+.Po including "pax restricted", the default tar format for
+.Nm bsdtar Pc
.It Fl n , Fl Fl norecurse , Fl Fl no-recursion
Do not operate recursively on the content of directories.
.It Fl Fl newer Ar date
@@ -556,6 +578,7 @@ keywords and values.
These are passed to the modules that handle particular
formats to control how those formats will behave.
Each option has one of the following forms:
+.Pp
.Bl -tag -compact -width indent
.It Ar key=value
The key will be set to the specified value in every module that supports it.
@@ -579,6 +602,7 @@ and for extract and list modes in
.Xr archive_read_set_options 3 .
.Pp
Examples of supported options:
+.Pp
.Bl -tag -compact -width indent
.It Cm iso9660:joliet
Support Joliet extensions.
@@ -738,6 +762,7 @@ This option is comparable to the
.Fl i , Fl Fl ignore-zeros
option of GNU tar.
.El
+.Pp
If a provided option is not supported by any module, that
is a fatal error.
.It Fl P , Fl Fl absolute-paths
@@ -910,7 +935,9 @@ This flag also causes
.Nm
to remove intervening directory symlinks instead of
reporting an error.
-See the SECURITY section below for more details.
+See the
+.Sx SECURITY
+section below for more details.
.It Fl Fl uid Ar id
Use the provided user id number and ignore the user
name from the archive.
@@ -1048,24 +1075,31 @@ that contains two files
.Ar source.c
and
.Ar source.h :
+.Pp
.Dl Nm Fl czf Pa file.tar.gz Pa source.c Pa source.h
.Pp
To view a detailed table of contents for this
archive:
+.Pp
.Dl Nm Fl tvf Pa file.tar.gz
.Pp
To extract all entries from the archive on
the default tape drive:
+.Pp
.Dl Nm Fl x
.Pp
To examine the contents of an ISO 9660 cdrom image:
+.Pp
.Dl Nm Fl tf Pa image.iso
.Pp
To move file hierarchies, invoke
.Nm
as
+.Pp
.Dl Nm Fl cf Pa - Fl C Pa srcdir \&. | Nm Fl xpf Pa - Fl C Pa destdir
+.Pp
or more traditionally
+.Pp
.Dl cd srcdir \&; Nm Fl cf Pa - \&. | ( cd destdir \&; Nm Fl xpf Pa - )
.Pp
In create mode, the list of files and directories to be archived
@@ -1074,7 +1108,9 @@ can also include directory change instru
and archive inclusions of the form
.Cm @ Ns Pa archive-file .
For example, the command line
+.Pp
.Dl Nm Fl c Fl f Pa new.tar Pa foo1 Cm @ Ns Pa old.tgz Cm -C Ns Pa /tmp Pa foo2
+.Pp
will create a new archive
.Pa new.tar .
.Nm
@@ -1122,9 +1158,13 @@ For example, you can generate mtree outp
and
.Cm uid
keywords:
+.Pp
.Dl Nm Fl cf Pa file.tar Fl Fl format=mtree Fl Fl options='!all,type,time,uid' Pa dir
+.Pp
or you can set the compression level used by gzip or xz compression:
+.Pp
.Dl Nm Fl czf Pa file.tar Fl Fl options='compression-level=9' .
+.Pp
For more details, see the explanation of the
.Fn archive_read_set_options
and
@@ -1142,7 +1182,9 @@ 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,
+.Pp
.Dl Nm Cm tbf 32 Pa file.tar
+.Pp
specifies three flags
.Cm t ,
.Cm b ,
@@ -1240,10 +1282,13 @@ is specified,
.Nm
will refuse to extract the entry.
.El
+.Pp
To protect yourself, you should be wary of any archives that
come from untrusted sources.
You should examine the contents of an archive with
+.Pp
.Dl Nm Fl tf Pa filename
+.Pp
before extraction.
You should use the
.Fl k
@@ -1294,7 +1339,7 @@ command appeared in Seventh Edition Unix
There have been numerous other implementations,
many of which extended the file format.
John Gilmore's
-.Nm pdtar
+.Sy 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
@@ -1347,8 +1392,11 @@ although they still extract it correctly
The compression and decompression is implemented internally, so
there may be insignificant differences between the compressed output
generated by
+.Pp
.Dl Nm Fl czf Pa - file
+.Pp
and that generated by
+.Pp
.Dl Nm Fl cf Pa - file | Nm gzip
.Pp
The default should be to read and write archives to the standard I/O paths,
@@ -1393,5 +1441,5 @@ There is not yet any support for multi-v
Converting between dissimilar archive formats (such as tar and cpio) using the
.Cm @ Ns Pa -
convention can cause hard link information to be lost.
-(This is a consequence of the incompatible ways that different archive
-formats store hardlink information.)
+This is a consequence of the incompatible ways that different archive
+formats store hardlink information.
Index: pkgsrc/archivers/libarchive/files/tar/bsdtar.c
diff -u pkgsrc/archivers/libarchive/files/tar/bsdtar.c:1.15 pkgsrc/archivers/libarchive/files/tar/bsdtar.c:1.16
--- pkgsrc/archivers/libarchive/files/tar/bsdtar.c:1.15 Sat Oct 19 05:40:00 2024
+++ pkgsrc/archivers/libarchive/files/tar/bsdtar.c Mon Apr 28 10:31:35 2025
@@ -7,6 +7,9 @@
#include "bsdtar_platform.h"
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
@@ -331,7 +334,7 @@ main(int argc, char **argv)
if (archive_match_exclude_pattern(
bsdtar->matching, bsdtar->argument) != ARCHIVE_OK)
lafe_errc(1, 0,
- "Couldn't exclude %s\n", bsdtar->argument);
+ "Couldn't exclude %s", bsdtar->argument);
break;
case OPTION_EXCLUDE_VCS: /* GNU tar */
for(t=0; vcs_files[t]; t++) {
@@ -339,7 +342,7 @@ main(int argc, char **argv)
bsdtar->matching,
vcs_files[t]) != ARCHIVE_OK)
lafe_errc(1, 0, "Couldn't "
- "exclude %s\n", vcs_files[t]);
+ "exclude %s", vcs_files[t]);
}
break;
case OPTION_FFLAGS:
Index: pkgsrc/archivers/libarchive/files/tar/subst.c
diff -u pkgsrc/archivers/libarchive/files/tar/subst.c:1.9 pkgsrc/archivers/libarchive/files/tar/subst.c:1.10
--- pkgsrc/archivers/libarchive/files/tar/subst.c:1.9 Sat Oct 19 05:40:00 2024
+++ pkgsrc/archivers/libarchive/files/tar/subst.c Mon Apr 28 10:31:35 2025
@@ -229,6 +229,7 @@ apply_substitution(struct bsdtar *bsdtar
if (rule->from_begin && *result) {
realloc_strcat(result, name);
+ if (buffer) buffer[0] = 0;
realloc_strcat(&buffer, *result);
name = buffer;
(*result)[0] = 0;
Index: pkgsrc/archivers/libarchive/files/tar/util.c
diff -u pkgsrc/archivers/libarchive/files/tar/util.c:1.11 pkgsrc/archivers/libarchive/files/tar/util.c:1.12
--- pkgsrc/archivers/libarchive/files/tar/util.c:1.11 Sat Oct 19 05:40:00 2024
+++ pkgsrc/archivers/libarchive/files/tar/util.c Mon Apr 28 10:31:35 2025
@@ -202,7 +202,8 @@ bsdtar_expand_char(char *buff, size_t bu
case '\v': buff[i++] = 'v'; break;
case '\\': buff[i++] = '\\'; break;
default:
- snprintf(buff + i, buffsize - i, "%03o", 0xFF & (int)c);
+ snprintf(buff + i, buffsize - i, "%03o",
+ 0xFF & (unsigned int)c);
i += 3;
}
}
@@ -328,7 +329,7 @@ do_chdir(struct bsdtar *bsdtar)
return;
if (chdir(bsdtar->pending_chdir) != 0) {
- lafe_errc(1, 0, "could not chdir to '%s'\n",
+ lafe_errc(1, 0, "could not chdir to '%s'",
bsdtar->pending_chdir);
}
free(bsdtar->pending_chdir);
@@ -684,7 +685,7 @@ list_item_verbose(struct bsdtar *bsdtar,
}
if (!now)
time(&now);
- fprintf(out, "%s %d ",
+ fprintf(out, "%s %u ",
archive_entry_strmode(entry),
archive_entry_nlink(entry));
@@ -748,7 +749,10 @@ list_item_verbose(struct bsdtar *bsdtar,
#else
ltime = localtime(&tim);
#endif
- strftime(tmp, sizeof(tmp), fmt, ltime);
+ if (ltime)
+ strftime(tmp, sizeof(tmp), fmt, ltime);
+ else
+ sprintf(tmp, "-- -- ----");
fprintf(out, " %s ", tmp);
safe_fprintf(out, "%s", archive_entry_pathname(entry));
Index: pkgsrc/archivers/libarchive/files/tar/test/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/tar/test/CMakeLists.txt:1.11 pkgsrc/archivers/libarchive/files/tar/test/CMakeLists.txt:1.12
--- pkgsrc/archivers/libarchive/files/tar/test/CMakeLists.txt:1.11 Sat Oct 19 05:40:00 2024
+++ pkgsrc/archivers/libarchive/files/tar/test/CMakeLists.txt Mon Apr 28 10:31:35 2025
@@ -29,13 +29,14 @@ IF(ENABLE_TAR AND ENABLE_TEST)
test_format_newc.c
test_help.c
test_leading_slash.c
+ test_list_item.c
test_missing_file.c
test_option_C_upper.c
test_option_C_mtree.c
test_option_H_upper.c
test_option_L_upper.c
test_option_O_upper.c
- test_option_P.c
+ test_option_P_upper.c
test_option_T_upper.c
test_option_U_upper.c
test_option_X_upper.c
@@ -115,7 +116,9 @@ IF(ENABLE_TAR AND ENABLE_TEST)
COMMAND bsdtar_test -vv
-p $<TARGET_FILE:bsdtar>
-r ${CMAKE_CURRENT_SOURCE_DIR}
+ -s
${_testname})
+ SET_TESTS_PROPERTIES(bsdtar_${_testname} PROPERTIES SKIP_RETURN_CODE 2)
ENDMACRO (DEFINE_TEST _testname)
INCLUDE(${CMAKE_CURRENT_BINARY_DIR}/list.h)
Index: pkgsrc/archivers/libarchive/files/tar/test/list.h
diff -u pkgsrc/archivers/libarchive/files/tar/test/list.h:1.10 pkgsrc/archivers/libarchive/files/tar/test/list.h:1.11
--- pkgsrc/archivers/libarchive/files/tar/test/list.h:1.10 Sat Oct 19 05:40:00 2024
+++ pkgsrc/archivers/libarchive/files/tar/test/list.h Mon Apr 28 10:31:35 2025
@@ -16,6 +16,7 @@ DEFINE_TEST(test_extract_tar_zstd)
DEFINE_TEST(test_format_newc)
DEFINE_TEST(test_help)
DEFINE_TEST(test_leading_slash)
+DEFINE_TEST(test_list_item)
DEFINE_TEST(test_missing_file)
DEFINE_TEST(test_option_C_mtree)
DEFINE_TEST(test_option_C_upper)
Index: pkgsrc/archivers/libarchive/files/tar/test/test_option_s.c
diff -u pkgsrc/archivers/libarchive/files/tar/test/test_option_s.c:1.7 pkgsrc/archivers/libarchive/files/tar/test/test_option_s.c:1.8
--- pkgsrc/archivers/libarchive/files/tar/test/test_option_s.c:1.7 Sat Oct 19 05:40:01 2024
+++ pkgsrc/archivers/libarchive/files/tar/test/test_option_s.c Mon Apr 28 10:31:35 2025
@@ -70,7 +70,7 @@ DEFINE_TEST(test_option_s)
assertFileContents("bar", 3, "test4/in/d1/baz");
/*
- * Test 4b: Multiple substitutions behavior with option b).
+ * Test 4b: Multiple substitutions behavior with option b.
*/
assertMakeDir("test4b", 0755);
systemf("%s -cf test4b.tar in/d1/foo in/d1/bar",
@@ -81,6 +81,18 @@ DEFINE_TEST(test_option_s)
assertFileContents("bar", 3, "test4b/in/d1/baz");
/*
+ * Test 4bb: Multiple substitutions with option b
+ * (libarchive/libarchive#2414 GitHub issue regression test).
+ */
+ assertMakeDir("test4bb", 0755);
+ systemf("%s -cf test4bb.tar in/d1/foo in/d1/bar",
+ testprog);
+ systemf("%s -xf test4bb.tar -s /oo/ar/ -s }ar}az}b -s :az:end:b -C test4bb",
+ testprog);
+ assertFileContents("foo", 3, "test4bb/in/d1/fend");
+ assertFileContents("bar", 3, "test4bb/in/d1/bend");
+
+ /*
* Test 5: Name-switching substitutions when extracting archive.
*/
assertMakeDir("test5", 0755);
Index: pkgsrc/archivers/libarchive/files/tar/test/test_stdio.c
diff -u pkgsrc/archivers/libarchive/files/tar/test/test_stdio.c:1.7 pkgsrc/archivers/libarchive/files/tar/test/test_stdio.c:1.8
--- pkgsrc/archivers/libarchive/files/tar/test/test_stdio.c:1.7 Sat Oct 19 05:40:01 2024
+++ pkgsrc/archivers/libarchive/files/tar/test/test_stdio.c Mon Apr 28 10:31:35 2025
@@ -6,6 +6,28 @@
*/
#include "test.h"
+/*
+ * This data would fit onto one line, but it's easier to understand when it's
+ * on mulitple lines (and thus matches the output files).
+ */
+static const char *cvf_err =
+"a f\n"
+"a l\n";
+
+static const char *tf_out =
+"f\n"
+"l\n";
+
+static const char *xvf_err =
+"x f\n"
+"x l\n";
+
+/*
+ * This string should appear in the verbose listing regardless of platform,
+ * locale, username, or groupname.
+ */
+static const char * tvf_contains = "l link to f";
+
DEFINE_TEST(test_stdio)
{
FILE *filelist;
@@ -47,35 +69,43 @@ DEFINE_TEST(test_stdio)
failure("'cv' writes filenames to stderr, nothing to stdout (SUSv2)\n"
"Note that GNU tar writes the file list to stdout by default.");
assertEmptyFile("cvf.out");
- /* TODO: Verify cvf.err has file list in SUSv2-prescribed format. */
+ assertTextFileContents(cvf_err, "cvf.err");
/* 'cvf -' should generate file list on stderr, archive on stdout. */
r = systemf("%s cvf - f l >cvf-.out 2>cvf-.err", testprog);
assertEqualInt(r, 0);
failure("cvf - should write archive to stdout");
- /* TODO: Verify cvf-.out has archive. */
failure("cvf - should write file list to stderr (SUSv2)");
- /* TODO: Verify cvf-.err has verbose file list. */
+ assertEqualFile("cvf.err", "cvf-.err");
+ /* Check that stdout from 'cvf -' was a valid archive. */
+ r = systemf("%s tf cvf-.out >cvf-tf.out 2>cvf-tf.err", testprog);
+ assertEqualInt(r, 0);
+ assertEmptyFile("cvf-tf.err");
+ assertTextFileContents(tf_out, "cvf-tf.out");
/* 'tf' should generate file list on stdout, empty stderr. */
r = systemf("%s tf archive >tf.out 2>tf.err", testprog);
assertEqualInt(r, 0);
assertEmptyFile("tf.err");
failure("'t' mode should write results to stdout");
- /* TODO: Verify tf.out has file list. */
+ assertTextFileContents(tf_out, "tf.out");
/* 'tvf' should generate file list on stdout, empty stderr. */
r = systemf("%s tvf archive >tvf.out 2>tvf.err", testprog);
assertEqualInt(r, 0);
assertEmptyFile("tvf.err");
failure("'tv' mode should write results to stdout");
- /* TODO: Verify tvf.out has file list. */
+ /* Check that it contains a string only found in the verbose listing. */
+ p = slurpfile(&s, "%s", "tvf.out");
+ assert(strstr(p, tvf_contains) != NULL);
+ free(p);
/* 'tvf -' uses stdin, file list on stdout, empty stderr. */
r = systemf("%s tvf - < archive >tvf-.out 2>tvf-.err", testprog);
assertEqualInt(r, 0);
assertEmptyFile("tvf-.err");
- /* TODO: Verify tvf-.out has file list. */
+ failure("'tvf-' mode should write the same results as 'tvf'");
+ assertEqualFile("tvf.out", "tvf-.out");
/* Basic 'xf' should generate no output on stdout or stderr. */
r = systemf("%s xf archive >xf.out 2>xf.err", testprog);
@@ -87,7 +117,7 @@ DEFINE_TEST(test_stdio)
r = systemf("%s xvf archive >xvf.out 2>xvf.err", testprog);
assertEqualInt(r, 0);
assertEmptyFile("xvf.out");
- /* TODO: Verify xvf.err */
+ assertTextFileContents(xvf_err, "xvf.err");
/* 'xvOf' should generate list on stderr, file contents on stdout. */
r = systemf("%s xvOf archive >xvOf.out 2>xvOf.err", testprog);
@@ -96,12 +126,12 @@ DEFINE_TEST(test_stdio)
p = slurpfile(&s, "xvOf.out");
assertEqualInt((int)s, 3);
assertEqualMem(p, "abc", 3);
- /* TODO: Verify xvf.err */
+ assertEqualFile("xvf.err", "xvOf.err");
free(p);
/* 'xvf -' should generate list on stderr, empty stdout. */
r = systemf("%s xvf - < archive >xvf-.out 2>xvf-.err", testprog);
assertEqualInt(r, 0);
assertEmptyFile("xvf-.out");
- /* TODO: Verify xvf-.err */
+ assertEqualFile("xvf.err", "xvf-.err");
}
Index: pkgsrc/archivers/libarchive/files/test_utils/test_main.c
diff -u pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.8 pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.9
--- pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.8 Sat Oct 19 05:40:01 2024
+++ pkgsrc/archivers/libarchive/files/test_utils/test_main.c Mon Apr 28 10:31:35 2025
@@ -370,6 +370,8 @@ invalid_parameter_handler(const wchar_t
static int dump_on_failure = 0;
/* Default is to remove temp dirs and log data for successful tests. */
static int keep_temp_files = 0;
+/* Default is to only return a failure code (1) if there were test failures. If enabled, exit with code 2 if there were no failures, but some tests were skipped. */
+static int fail_if_tests_skipped = 0;
/* Default is to run the specified tests once and report errors. */
static int until_failure = 0;
/* Default is to just report pass/fail for each test. */
@@ -609,9 +611,10 @@ int
assertion_chmod(const char *file, int line, const char *pathname, int mode)
{
assertion_count(file, line);
- if (chmod(pathname, mode) == 0)
+ if (chmod(pathname, (mode_t)mode) == 0)
return (1);
- failure_start(file, line, "chmod(\"%s\", %4.o)", pathname, mode);
+ failure_start(file, line, "chmod(\"%s\", %4.o)", pathname,
+ (unsigned int)mode);
failure_finish(NULL);
return (0);
@@ -626,8 +629,10 @@ assertion_equal_int(const char *file, in
if (v1 == v2)
return (1);
failure_start(file, line, "%s != %s", e1, e2);
- logprintf(" %s=%lld (0x%llx, 0%llo)\n", e1, v1, v1, v1);
- logprintf(" %s=%lld (0x%llx, 0%llo)\n", e2, v2, v2, v2);
+ logprintf(" %s=%lld (0x%llx, 0%llo)\n", e1, v1,
+ (unsigned long long)v1, (unsigned long long)v1);
+ logprintf(" %s=%lld (0x%llx, 0%llo)\n", e2, v2,
+ (unsigned long long)v2, (unsigned long long)v2);
failure_finish(extra);
return (0);
}
@@ -755,7 +760,7 @@ static void strdump(const char *e, const
case '\r': logprintf("\\r"); break;
default:
if (c >= 32 && c < 127)
- logprintf("%c", c);
+ logprintf("%c", (int)c);
else
logprintf("\\x%02X", c);
}
@@ -829,7 +834,7 @@ wcsdump(const char *e, const wchar_t *w)
while (*w != L'\0') {
unsigned int c = *w++;
if (c >= 32 && c < 127)
- logprintf("%c", c);
+ logprintf("%c", (int)c);
else if (c < 256)
logprintf("\\x%02X", c);
else if (c < 0x10000)
@@ -896,7 +901,7 @@ hexdump(const char *p, const char *ref,
for (j = 0; j < 16 && i + j < l; j++) {
if (ref != NULL && p[i + j] != ref[i + j])
sep = '_';
- logprintf("%c%02x", sep, 0xff & (int)p[i+j]);
+ logprintf("%c%02x", sep, 0xff & (unsigned int)p[i+j]);
if (ref != NULL && p[i + j] == ref[i + j])
sep = ' ';
}
@@ -1600,7 +1605,7 @@ assertion_file_mode(const char *file, in
if (r == 0 && mode == expected_mode)
return (1);
failure_start(file, line, "File %s has mode %o, expected %o",
- pathname, mode, expected_mode);
+ pathname, (unsigned int)mode, (unsigned int)expected_mode);
#endif
failure_finish(NULL);
return (0);
@@ -1710,8 +1715,8 @@ assertion_is_dir(const char *file, int l
/* TODO: Can we do better here? */
if (mode >= 0 && (mode_t)mode != (st.st_mode & 07777)) {
failure_start(file, line, "Dir %s has wrong mode", pathname);
- logprintf(" Expected: 0%3o\n", mode);
- logprintf(" Found: 0%3o\n", st.st_mode & 07777);
+ logprintf(" Expected: 0%3o\n", (unsigned int)mode);
+ logprintf(" Found: 0%3o\n", (unsigned int)st.st_mode & 07777);
failure_finish(NULL);
return (0);
}
@@ -1743,8 +1748,8 @@ assertion_is_reg(const char *file, int l
/* TODO: Can we do better here? */
if (mode >= 0 && (mode_t)mode != (st.st_mode & 07777)) {
failure_start(file, line, "File %s has wrong mode", pathname);
- logprintf(" Expected: 0%3o\n", mode);
- logprintf(" Found: 0%3o\n", st.st_mode & 07777);
+ logprintf(" Expected: 0%3o\n", (unsigned int)mode);
+ logprintf(" Found: 0%3o\n", (unsigned int)st.st_mode & 07777);
failure_finish(NULL);
return (0);
}
@@ -1945,8 +1950,8 @@ assertion_make_dir(const char *file, int
if (0 == _mkdir(dirname))
return (1);
#else
- if (0 == mkdir(dirname, mode)) {
- if (0 == chmod(dirname, mode)) {
+ if (0 == mkdir(dirname, (mode_t)mode)) {
+ if (0 == chmod(dirname, (mode_t)mode)) {
assertion_file_mode(file, line, dirname, mode);
return (1);
}
@@ -2000,9 +2005,9 @@ assertion_make_file(const char *file, in
return (0);
}
#ifdef HAVE_FCHMOD
- if (0 != fchmod(fd, mode))
+ if (0 != fchmod(fd, (mode_t)mode))
#else
- if (0 != chmod(path, mode))
+ if (0 != chmod(path, (mode_t)mode))
#endif
{
failure_start(file, line, "Could not chmod %s", path);
@@ -2091,7 +2096,7 @@ assertion_umask(const char *file, int li
assertion_count(file, line);
(void)file; /* UNUSED */
(void)line; /* UNUSED */
- umask(mask);
+ umask((mode_t)mask);
return (1);
}
@@ -2103,7 +2108,7 @@ assertion_utimes(const char *file, int l
int r;
#if defined(_WIN32) && !defined(__CYGWIN__)
-#define WINTIME(sec, nsec) ((Int32x32To64(sec, 10000000) + EPOC_TIME)\
+#define WINTIME(sec, nsec) (((sec * 10000000LL) + EPOC_TIME)\
+ (((nsec)/1000)*10))
HANDLE h;
ULARGE_INTEGER wintm;
@@ -3317,7 +3322,8 @@ assertion_entry_set_acls(const char *fil
ret = 1;
failure_start(file, line, "type=%#010x, "
"permset=%#010x, tag=%d, qual=%d name=%s",
- acls[i].type, acls[i].permset, acls[i].tag,
+ (unsigned int)acls[i].type,
+ (unsigned int)acls[i].permset, acls[i].tag,
acls[i].qual, acls[i].name);
failure_finish(NULL);
}
@@ -3411,8 +3417,9 @@ assertion_entry_compare_acls(const char
}
if ((permset << 6) != (mode & 0700)) {
failure_start(file, line, "USER_OBJ permset "
- "(%02o) != user mode (%02o)", permset,
- 07 & (mode >> 6));
+ "(%02o) != user mode (%02o)",
+ (unsigned int)permset,
+ (unsigned int)(07 & (mode >> 6)));
failure_finish(NULL);
ret = 1;
}
@@ -3426,8 +3433,9 @@ assertion_entry_compare_acls(const char
}
if ((permset << 3) != (mode & 0070)) {
failure_start(file, line, "GROUP_OBJ permset "
- "(%02o) != group mode (%02o)", permset,
- 07 & (mode >> 3));
+ "(%02o) != group mode (%02o)",
+ (unsigned int)permset,
+ (unsigned int)(07 & (mode >> 3)));
failure_finish(NULL);
ret = 1;
}
@@ -3441,15 +3449,17 @@ assertion_entry_compare_acls(const char
}
if ((permset << 0) != (mode & 0007)) {
failure_start(file, line, "OTHER permset "
- "(%02o) != other mode (%02o)", permset,
- mode & 07);
+ "(%02o) != other mode (%02o)",
+ (unsigned int)permset,
+ (unsigned int)mode & 07);
failure_finish(NULL);
ret = 1;
}
} else if (matched != 1) {
failure_start(file, line, "Could not find match for "
"ACL (type=%#010x,permset=%#010x,tag=%d,qual=%d,"
- "name=``%s'')", type, permset, tag, qual, name);
+ "name=``%s'')", (unsigned int)type,
+ (unsigned int)permset, tag, qual, name);
failure_finish(NULL);
ret = 1;
}
@@ -3462,14 +3472,16 @@ assertion_entry_compare_acls(const char
if ((want_type & ARCHIVE_ENTRY_ACL_TYPE_ACCESS) != 0 &&
(mode_t)(mode & 0777) != (archive_entry_mode(ae) & 0777)) {
failure_start(file, line, "Mode (%02o) and entry mode (%02o) "
- "mismatch", mode, archive_entry_mode(ae));
+ "mismatch", (unsigned int)mode,
+ (unsigned int)archive_entry_mode(ae));
failure_finish(NULL);
ret = 1;
}
if (n != 0) {
failure_start(file, line, "Could not find match for ACL "
"(type=%#010x,permset=%#010x,tag=%d,qual=%d,name=``%s'')",
- acls[marker[0]].type, acls[marker[0]].permset,
+ (unsigned int)acls[marker[0]].type,
+ (unsigned int)acls[marker[0]].permset,
acls[marker[0]].tag, acls[marker[0]].qual,
acls[marker[0]].name);
failure_finish(NULL);
@@ -3526,7 +3538,7 @@ test_summarize(int failed, int skips_num
fflush(stdout);
break;
case VERBOSITY_PASSFAIL:
- printf(failed ? "FAIL\n" : skips_num ? "ok (S)\n" : "ok\n");
+ printf(failed ? "FAIL\n" : skips_num ? "skipped\n" : "ok\n");
break;
}
@@ -3534,7 +3546,7 @@ test_summarize(int failed, int skips_num
for (i = 0; i < sizeof(failed_lines)/sizeof(failed_lines[0]); i++) {
if (failed_lines[i].count > 1 && !failed_lines[i].skip)
- logprintf("%s:%d: Summary: Failed %d times\n",
+ logprintf("%s:%u: Summary: Failed %d times\n",
failed_filename, i, failed_lines[i].count);
}
/* Clear the failure history for the next file. */
@@ -3556,7 +3568,7 @@ test_run(int i, const char *tmpdir)
char logfilename[64];
int failures_before = failures;
int skips_before = skips;
- int oldumask;
+ mode_t oldumask;
switch (verbosity) {
case VERBOSITY_SUMMARY_ONLY: /* No per-test reports at all */
@@ -3672,7 +3684,8 @@ usage(const char *program)
printf(" -q Quiet.\n");
printf(" -r <dir> Path to dir containing reference files.\n");
printf(" Default: Current directory.\n");
- printf(" -u Keep running specifies tests until one fails.\n");
+ printf(" -s Exit with code 2 if any tests were skipped.\n");
+ printf(" -u Keep running specified tests until one fails.\n");
printf(" -v Verbose.\n");
printf("Available tests:\n");
for (i = 0; i < limit; i++)
@@ -4065,6 +4078,9 @@ main(int argc, char **argv)
case 'r':
refdir = option_arg;
break;
+ case 's':
+ fail_if_tests_skipped = 1;
+ break;
case 'u':
until_failure++;
break;
@@ -4118,6 +4134,19 @@ main(int argc, char **argv)
strncat(testprg, "\"", testprg_len);
testprog = testprg;
}
+
+ /* Sanity check: reject a relative path for refdir. */
+ if (refdir != NULL) {
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ /* TODO: probably use PathIsRelative() from <shlwapi.h>. */
+#else
+ if (refdir[0] != '/') {
+ fprintf(stderr,
+ "ERROR: Cannot use relative path for refdir\n");
+ exit(1);
+ }
+#endif
+ }
#endif
#if !defined(_WIN32) && defined(SIGPIPE)
@@ -4263,5 +4292,9 @@ finish:
assertChdir("..");
rmdir(tmpdir);
- return (tests_failed ? 1 : 0);
+ if (tests_failed) return 1;
+
+ if (fail_if_tests_skipped == 1 && skips > 0) return 2;
+
+ return 0;
}
Index: pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c
diff -u pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.6 pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.7
--- pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.6 Sat Oct 19 05:40:01 2024
+++ pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c Mon Apr 28 10:31:35 2025
@@ -9,6 +9,7 @@
#include "bsdunzip_platform.h"
#include "la_queue.h"
+#include "la_getline.h"
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
@@ -355,7 +356,7 @@ make_dir(const char *path, int mode)
*/
(void)unlink(path);
}
- if (mkdir(path, mode) != 0 && errno != EEXIST)
+ if (mkdir(path, (mode_t)mode) != 0 && errno != EEXIST)
error("mkdir('%s')", path);
}
@@ -699,7 +700,7 @@ recheck:
error("symlink('%s')", *path);
info(" extracting: %s -> %s\n", *path, linkname);
#ifdef HAVE_LCHMOD
- if (lchmod(*path, mode) != 0)
+ if (lchmod(*path, (mode_t)mode) != 0)
warning("Cannot set mode for '%s'", *path);
#endif
/* set access and modification time */
@@ -875,6 +876,7 @@ list(struct archive *a, struct archive_e
char buf[20];
time_t mtime;
struct tm *tm;
+ const char *pathname;
mtime = archive_entry_mtime(e);
tm = localtime(&mtime);
@@ -883,22 +885,25 @@ list(struct archive *a, struct archive_e
else
strftime(buf, sizeof(buf), "%m-%d-%g %R", tm);
+ pathname = archive_entry_pathname(e);
+ if (!pathname)
+ pathname = "";
if (!zipinfo_mode) {
if (v_opt == 1) {
printf(" %8ju %s %s\n",
(uintmax_t)archive_entry_size(e),
- buf, archive_entry_pathname(e));
+ buf, pathname);
} else if (v_opt == 2) {
printf("%8ju Stored %7ju 0%% %s %08x %s\n",
(uintmax_t)archive_entry_size(e),
(uintmax_t)archive_entry_size(e),
buf,
0U,
- archive_entry_pathname(e));
+ pathname);
}
} else {
if (Z1_opt)
- printf("%s\n",archive_entry_pathname(e));
+ printf("%s\n", pathname);
}
ac(archive_read_data_skip(a));
}
Home |
Main Index |
Thread Index |
Old Index