pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/archivers/libarchive



Module Name:    pkgsrc
Committed By:   adam
Date:           Wed Apr 15 08:46:36 UTC 2026

Modified Files:
        pkgsrc/archivers/libarchive: Makefile.common
        pkgsrc/archivers/libarchive/files: CMakeLists.txt Makefile.am
            Makefile.in NEWS README.md configure configure.ac
        pkgsrc/archivers/libarchive/files/build: version
        pkgsrc/archivers/libarchive/files/build/cmake: config.h.in
        pkgsrc/archivers/libarchive/files/contrib: untar.c
        pkgsrc/archivers/libarchive/files/contrib/android: Android.mk
        pkgsrc/archivers/libarchive/files/cpio: CMakeLists.txt cmdline.c cpio.c
            cpio.h
        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/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/libarchive: archive.h
            archive_check_magic.c archive_entry.h archive_options.c
            archive_pathmatch.c archive_ppmd8_private.h archive_read.c
            archive_read_append_filter.c archive_read_disk_posix.c
            archive_read_disk_windows.c archive_read_support_filter_grzip.c
            archive_read_support_filter_lz4.c
            archive_read_support_filter_lzop.c
            archive_read_support_format_7zip.c
            archive_read_support_format_cab.c
            archive_read_support_format_cpio.c
            archive_read_support_format_iso9660.c
            archive_read_support_format_lha.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.c
            archive_write_add_filter_b64encode.c
            archive_write_add_filter_bzip2.c archive_write_add_filter_gzip.c
            archive_write_add_filter_lrzip.c archive_write_add_filter_lz4.c
            archive_write_add_filter_lzop.c archive_write_add_filter_uuencode.c
            archive_write_add_filter_xz.c archive_write_add_filter_zstd.c
            archive_write_disk_posix.c archive_write_disk_windows.c
            archive_write_set_format_7zip.c
            archive_write_set_format_cpio_newc.c
            archive_write_set_format_iso9660.c archive_write_set_format_mtree.c
            archive_write_set_format_pax.c archive_write_set_format_xar.c
            archive_write_set_format_zip.c
        pkgsrc/archivers/libarchive/files/libarchive/test: CMakeLists.txt
            list.h test_archive_pathmatch.c test_read_set_format.c
        pkgsrc/archivers/libarchive/files/tar: bsdtar.c read.c util.c write.c
        pkgsrc/archivers/libarchive/files/unzip: bsdunzip.c
Removed Files:
        pkgsrc/archivers/libarchive/files/unzip: la_getline.c la_getline.h

Log Message:
libarchive: updated to 3.8.7

Libarchive 3.8.7 is a security and bugfix release.

Notable fixes:

CAB: fix NULL pointer dereference during skip
CAB: Fix Heap OOB Write in CAB LZX decoder
cpio: various fixes and improvements
contrib/untar: fix out-of-bounds read
iso9660: fix undefined behavior
iso9660: fix posibble heap buffer overflow on 32-bit systems
libarchive: fix handling of option failures
libarchive: do not continue with truncated numbers
libarchive: lzop and grzip filter support
RAR: fix LZSS window size mismatch after PPMd block


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 pkgsrc/archivers/libarchive/Makefile.common
cvs rdiff -u -r1.20 -r1.21 pkgsrc/archivers/libarchive/files/CMakeLists.txt
cvs rdiff -u -r1.24 -r1.25 pkgsrc/archivers/libarchive/files/Makefile.am
cvs rdiff -u -r1.26 -r1.27 pkgsrc/archivers/libarchive/files/Makefile.in \
    pkgsrc/archivers/libarchive/files/NEWS
cvs rdiff -u -r1.8 -r1.9 pkgsrc/archivers/libarchive/files/README.md
cvs rdiff -u -r1.35 -r1.36 pkgsrc/archivers/libarchive/files/configure
cvs rdiff -u -r1.34 -r1.35 pkgsrc/archivers/libarchive/files/configure.ac
cvs rdiff -u -r1.21 -r1.22 pkgsrc/archivers/libarchive/files/build/version
cvs rdiff -u -r1.17 -r1.18 \
    pkgsrc/archivers/libarchive/files/build/cmake/config.h.in
cvs rdiff -u -r1.5 -r1.6 pkgsrc/archivers/libarchive/files/contrib/untar.c
cvs rdiff -u -r1.6 -r1.7 \
    pkgsrc/archivers/libarchive/files/contrib/android/Android.mk
cvs rdiff -u -r1.6 -r1.7 \
    pkgsrc/archivers/libarchive/files/cpio/CMakeLists.txt
cvs rdiff -u -r1.13 -r1.14 pkgsrc/archivers/libarchive/files/cpio/cmdline.c
cvs rdiff -u -r1.17 -r1.18 pkgsrc/archivers/libarchive/files/cpio/cpio.c
cvs rdiff -u -r1.11 -r1.12 pkgsrc/archivers/libarchive/files/cpio/cpio.h
cvs rdiff -u -r1.21 -r1.22 \
    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.20 -r1.21 \
    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.15 -r1.16 \
    pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html
cvs rdiff -u -r1.17 -r1.18 \
    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.21 -r1.22 \
    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.20 -r1.21 \
    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.15 -r1.16 \
    pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_misc.3.pdf
cvs rdiff -u -r1.17 -r1.18 \
    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.27 -r1.28 \
    pkgsrc/archivers/libarchive/files/libarchive/archive.h
cvs rdiff -u -r1.8 -r1.9 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_check_magic.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_bzip2.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_gzip.c
cvs rdiff -u -r1.23 -r1.24 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h
cvs rdiff -u -r1.5 -r1.6 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_options.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c
cvs rdiff -u -r1.4 -r1.5 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_pathmatch.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lz4.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lzop.c
cvs rdiff -u -r1.2 -r1.3 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd8_private.h
cvs rdiff -u -r1.17 -r1.18 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c
cvs rdiff -u -r1.9 -r1.10 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_xz.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c
cvs rdiff -u -r1.15 -r1.16 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_posix.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cpio.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_pax.c
cvs rdiff -u -r1.14 -r1.15 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c
cvs rdiff -u -r1.3 -r1.4 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_grzip.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lrzip.c
cvs rdiff -u -r1.7 -r1.8 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lzop.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_zstd.c
cvs rdiff -u -r1.16 -r1.17 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c
cvs rdiff -u -r1.11 -r1.12 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_7zip.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_xar.c
cvs rdiff -u -r1.10 -r1.11 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_cpio_newc.c
cvs rdiff -u -r1.20 -r1.21 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c
cvs rdiff -u -r1.19 -r1.20 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_string.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c
cvs rdiff -u -r1.13 -r1.14 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c
cvs rdiff -u -r1.12 -r1.13 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c
cvs rdiff -u -r1.19 -r1.20 \
    pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt
cvs rdiff -u -r1.22 -r1.23 \
    pkgsrc/archivers/libarchive/files/libarchive/test/list.h
cvs rdiff -u -r1.4 -r1.5 \
    pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_pathmatch.c \
    pkgsrc/archivers/libarchive/files/libarchive/test/test_read_set_format.c
cvs rdiff -u -r1.18 -r1.19 pkgsrc/archivers/libarchive/files/tar/bsdtar.c \
    pkgsrc/archivers/libarchive/files/tar/write.c
cvs rdiff -u -r1.10 -r1.11 pkgsrc/archivers/libarchive/files/tar/read.c
cvs rdiff -u -r1.15 -r1.16 pkgsrc/archivers/libarchive/files/tar/util.c
cvs rdiff -u -r1.11 -r1.12 pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c
cvs rdiff -u -r1.3 -r0 pkgsrc/archivers/libarchive/files/unzip/la_getline.c
cvs rdiff -u -r1.1.1.1 -r0 \
    pkgsrc/archivers/libarchive/files/unzip/la_getline.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/archivers/libarchive/Makefile.common
diff -u pkgsrc/archivers/libarchive/Makefile.common:1.27 pkgsrc/archivers/libarchive/Makefile.common:1.28
--- pkgsrc/archivers/libarchive/Makefile.common:1.27    Thu Mar 26 11:20:04 2026
+++ pkgsrc/archivers/libarchive/Makefile.common Wed Apr 15 08:46:32 2026
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile.common,v 1.27 2026/03/26 11:20:04 adam Exp $
+# $NetBSD: Makefile.common,v 1.28 2026/04/15 08:46:32 adam Exp $
 # used by archivers/bsdtar/Makefile
 # used by archivers/libarchive/Makefile
 
-DISTNAME=      libarchive-3.8.6
+DISTNAME=      libarchive-3.8.7
 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.20 pkgsrc/archivers/libarchive/files/CMakeLists.txt:1.21
--- pkgsrc/archivers/libarchive/files/CMakeLists.txt:1.20       Tue Jan  6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/CMakeLists.txt    Wed Apr 15 08:46:32 2026
@@ -747,6 +747,7 @@ LA_CHECK_INCLUDE_FILE("signal.h" HAVE_SI
 LA_CHECK_INCLUDE_FILE("spawn.h" HAVE_SPAWN_H)
 LA_CHECK_INCLUDE_FILE("stdarg.h" HAVE_STDARG_H)
 LA_CHECK_INCLUDE_FILE("stdint.h" HAVE_STDINT_H)
+LA_CHECK_INCLUDE_FILE("stdio.h" HAVE_STDIO_H)
 LA_CHECK_INCLUDE_FILE("stdlib.h" HAVE_STDLIB_H)
 LA_CHECK_INCLUDE_FILE("string.h" HAVE_STRING_H)
 LA_CHECK_INCLUDE_FILE("strings.h" HAVE_STRINGS_H)

Index: pkgsrc/archivers/libarchive/files/Makefile.am
diff -u pkgsrc/archivers/libarchive/files/Makefile.am:1.24 pkgsrc/archivers/libarchive/files/Makefile.am:1.25
--- pkgsrc/archivers/libarchive/files/Makefile.am:1.24  Thu Mar 26 11:20:04 2026
+++ pkgsrc/archivers/libarchive/files/Makefile.am       Wed Apr 15 08:46:32 2026
@@ -475,6 +475,7 @@ libarchive_test_SOURCES= \
        libarchive/test/test_read_format_ar.c \
        libarchive/test/test_read_format_cab.c \
        libarchive/test/test_read_format_cab_filename.c \
+       libarchive/test/test_read_format_cab_lzx_oob.c \
        libarchive/test/test_read_format_cpio_afio.c \
        libarchive/test/test_read_format_cpio_bin.c \
        libarchive/test/test_read_format_cpio_bin_Z.c \
@@ -512,6 +513,7 @@ libarchive_test_SOURCES= \
        libarchive/test/test_read_format_isorr_new_bz2.c \
        libarchive/test/test_read_format_isorr_rr_moved.c \
        libarchive/test/test_read_format_isozisofs_bz2.c \
+       libarchive/test/test_read_format_iso_zisofs_overflow.c \
        libarchive/test/test_read_format_lha.c \
        libarchive/test/test_read_format_lha_bugfix_0.c \
        libarchive/test/test_read_format_lha_filename.c \
@@ -590,6 +592,7 @@ libarchive_test_SOURCES= \
        libarchive/test/test_tar_large.c \
        libarchive/test/test_ustar_filenames.c \
        libarchive/test/test_ustar_filename_encoding.c \
+       libarchive/test/test_v7tar_filename_encoding.c \
        libarchive/test/test_warn_missing_hardlink_target.c \
        libarchive/test/test_write_disk.c \
        libarchive/test/test_write_disk_appledouble.c \
@@ -851,6 +854,7 @@ libarchive_test_EXTRA_DIST=\
        libarchive/test/test_read_format_cab_2.cab.uu \
        libarchive/test/test_read_format_cab_3.cab.uu \
        libarchive/test/test_read_format_cab_filename_cp932.cab.uu \
+       libarchive/test/test_read_format_cab_lzx_oob.cab.uu \
        libarchive/test/test_read_format_cpio_bin_be.cpio.uu \
        libarchive/test/test_read_format_cpio_bin_le.cpio.uu \
        libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu \
@@ -887,6 +891,7 @@ libarchive_test_EXTRA_DIST=\
        libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu \
        libarchive/test/test_read_format_iso_xorriso.iso.Z.uu \
        libarchive/test/test_read_format_iso_zisofs.iso.Z.uu \
+       libarchive/test/test_read_format_iso_zisofs_overflow.iso.uu \
        libarchive/test/test_read_format_lha_bugfix_0.lzh.uu \
        libarchive/test/test_read_format_lha_filename_cp932.lzh.uu \
        libarchive/test/test_read_format_lha_filename_utf16.lzh.uu \
@@ -1089,11 +1094,13 @@ libarchive_test_EXTRA_DIST=\
 #
 noinst_HEADERS+= \
        libarchive_fe/lafe_err.h \
+       libarchive_fe/lafe_getline.h \
        libarchive_fe/lafe_platform.h \
        libarchive_fe/line_reader.h \
        libarchive_fe/passphrase.h
 libarchive_fe_la_SOURCES= \
        libarchive_fe/lafe_err.c \
+       libarchive_fe/lafe_getline.c \
        libarchive_fe/line_reader.c \
        libarchive_fe/passphrase.c
 
@@ -1557,12 +1564,10 @@ bsdcat_test_EXTRA_DIST= \
 noinst_HEADERS+= \
        unzip/bsdunzip.h \
        unzip/bsdunzip_platform.h \
-       unzip/la_getline.h \
        unzip/la_queue.h
 bsdunzip_SOURCES= \
        unzip/bsdunzip.c \
-       unzip/cmdline.c \
-       unzip/la_getline.c
+       unzip/cmdline.c
 
 if INC_WINDOWS_FILES
 noinst_HEADERS+=

Index: pkgsrc/archivers/libarchive/files/Makefile.in
diff -u pkgsrc/archivers/libarchive/files/Makefile.in:1.26 pkgsrc/archivers/libarchive/files/Makefile.in:1.27
--- pkgsrc/archivers/libarchive/files/Makefile.in:1.26  Thu Mar 26 11:20:04 2026
+++ pkgsrc/archivers/libarchive/files/Makefile.in       Wed Apr 15 08:46:32 2026
@@ -465,6 +465,7 @@ libarchive_la_LINK = $(LIBTOOL) $(AM_V_l
        $(libarchive_la_LDFLAGS) $(LDFLAGS) -o $@
 libarchive_fe_la_LIBADD =
 am_libarchive_fe_la_OBJECTS = libarchive_fe/la-lafe_err.lo \
+       libarchive_fe/la-lafe_getline.lo \
        libarchive_fe/la-line_reader.lo libarchive_fe/la-passphrase.lo
 libarchive_fe_la_OBJECTS = $(am_libarchive_fe_la_OBJECTS)
 am__objects_7 =
@@ -654,8 +655,7 @@ am_bsdtar_test_OBJECTS = $(am__objects_1
 bsdtar_test_OBJECTS = $(am_bsdtar_test_OBJECTS)
 bsdtar_test_LDADD = $(LDADD)
 am_bsdunzip_OBJECTS = unzip/bsdunzip-bsdunzip.$(OBJEXT) \
-       unzip/bsdunzip-cmdline.$(OBJEXT) \
-       unzip/bsdunzip-la_getline.$(OBJEXT) $(am__objects_7)
+       unzip/bsdunzip-cmdline.$(OBJEXT) $(am__objects_7)
 bsdunzip_OBJECTS = $(am_bsdunzip_OBJECTS)
 bsdunzip_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -910,6 +910,7 @@ am__libarchive_test_SOURCES_DIST = libar
        libarchive/test/test_read_format_ar.c \
        libarchive/test/test_read_format_cab.c \
        libarchive/test/test_read_format_cab_filename.c \
+       libarchive/test/test_read_format_cab_lzx_oob.c \
        libarchive/test/test_read_format_cpio_afio.c \
        libarchive/test/test_read_format_cpio_bin.c \
        libarchive/test/test_read_format_cpio_bin_Z.c \
@@ -947,6 +948,7 @@ am__libarchive_test_SOURCES_DIST = libar
        libarchive/test/test_read_format_isorr_new_bz2.c \
        libarchive/test/test_read_format_isorr_rr_moved.c \
        libarchive/test/test_read_format_isozisofs_bz2.c \
+       libarchive/test/test_read_format_iso_zisofs_overflow.c \
        libarchive/test/test_read_format_lha.c \
        libarchive/test/test_read_format_lha_bugfix_0.c \
        libarchive/test/test_read_format_lha_filename.c \
@@ -1025,6 +1027,7 @@ am__libarchive_test_SOURCES_DIST = libar
        libarchive/test/test_tar_large.c \
        libarchive/test/test_ustar_filenames.c \
        libarchive/test/test_ustar_filename_encoding.c \
+       libarchive/test/test_v7tar_filename_encoding.c \
        libarchive/test/test_warn_missing_hardlink_target.c \
        libarchive/test/test_write_disk.c \
        libarchive/test/test_write_disk_appledouble.c \
@@ -1356,6 +1359,7 @@ am_libarchive_test_OBJECTS = $(am__objec
        libarchive/test/test-test_read_format_ar.$(OBJEXT) \
        libarchive/test/test-test_read_format_cab.$(OBJEXT) \
        libarchive/test/test-test_read_format_cab_filename.$(OBJEXT) \
+       libarchive/test/test-test_read_format_cab_lzx_oob.$(OBJEXT) \
        libarchive/test/test-test_read_format_cpio_afio.$(OBJEXT) \
        libarchive/test/test-test_read_format_cpio_bin.$(OBJEXT) \
        libarchive/test/test-test_read_format_cpio_bin_Z.$(OBJEXT) \
@@ -1393,6 +1397,7 @@ am_libarchive_test_OBJECTS = $(am__objec
        libarchive/test/test-test_read_format_isorr_new_bz2.$(OBJEXT) \
        libarchive/test/test-test_read_format_isorr_rr_moved.$(OBJEXT) \
        libarchive/test/test-test_read_format_isozisofs_bz2.$(OBJEXT) \
+       libarchive/test/test-test_read_format_iso_zisofs_overflow.$(OBJEXT) \
        libarchive/test/test-test_read_format_lha.$(OBJEXT) \
        libarchive/test/test-test_read_format_lha_bugfix_0.$(OBJEXT) \
        libarchive/test/test-test_read_format_lha_filename.$(OBJEXT) \
@@ -1471,6 +1476,7 @@ am_libarchive_test_OBJECTS = $(am__objec
        libarchive/test/test-test_tar_large.$(OBJEXT) \
        libarchive/test/test-test_ustar_filenames.$(OBJEXT) \
        libarchive/test/test-test_ustar_filename_encoding.$(OBJEXT) \
+       libarchive/test/test-test_v7tar_filename_encoding.$(OBJEXT) \
        libarchive/test/test-test_warn_missing_hardlink_target.$(OBJEXT) \
        libarchive/test/test-test_write_disk.$(OBJEXT) \
        libarchive/test/test-test_write_disk_appledouble.$(OBJEXT) \
@@ -2019,6 +2025,7 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
        libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po \
+       libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po \
@@ -2047,6 +2054,7 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
        libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po \
+       libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po \
@@ -2134,6 +2142,7 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
        libarchive/test/$(DEPDIR)/test-test_tar_large.Po \
        libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po \
        libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po \
+       libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Po \
        libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po \
        libarchive/test/$(DEPDIR)/test-test_write_disk.Po \
        libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po \
@@ -2223,6 +2232,7 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
        libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po \
        libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po \
        libarchive_fe/$(DEPDIR)/la-lafe_err.Plo \
+       libarchive_fe/$(DEPDIR)/la-lafe_getline.Plo \
        libarchive_fe/$(DEPDIR)/la-line_reader.Plo \
        libarchive_fe/$(DEPDIR)/la-passphrase.Plo \
        tar/$(DEPDIR)/bsdtar-bsdtar.Po \
@@ -2315,7 +2325,6 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
        test_utils/$(DEPDIR)/libarchive_test-test_utils.Po \
        unzip/$(DEPDIR)/bsdunzip-bsdunzip.Po \
        unzip/$(DEPDIR)/bsdunzip-cmdline.Po \
-       unzip/$(DEPDIR)/bsdunzip-la_getline.Po \
        unzip/test/$(DEPDIR)/bsdunzip_test-test_0.Po \
        unzip/test/$(DEPDIR)/bsdunzip_test-test_C.Po \
        unzip/test/$(DEPDIR)/bsdunzip_test-test_I.Po \
@@ -2411,13 +2420,13 @@ am__noinst_HEADERS_DIST = libarchive/arc
        libarchive/archive_blake2.h libarchive/archive_blake2_impl.h \
        test_utils/test_common.h test_utils/test_utils.h \
        libarchive/test/test.h libarchive_fe/lafe_err.h \
-       libarchive_fe/lafe_platform.h libarchive_fe/line_reader.h \
-       libarchive_fe/passphrase.h tar/bsdtar.h tar/bsdtar_platform.h \
-       tar/bsdtar_windows.h tar/test/test.h cpio/cpio.h \
-       cpio/cpio_platform.h cpio/cpio_windows.h cpio/test/test.h \
-       cat/bsdcat.h cat/bsdcat_platform.h cat/test/test.h \
-       unzip/bsdunzip.h unzip/bsdunzip_platform.h unzip/la_getline.h \
-       unzip/la_queue.h unzip/test/test.h
+       libarchive_fe/lafe_getline.h libarchive_fe/lafe_platform.h \
+       libarchive_fe/line_reader.h libarchive_fe/passphrase.h \
+       tar/bsdtar.h tar/bsdtar_platform.h tar/bsdtar_windows.h \
+       tar/test/test.h cpio/cpio.h cpio/cpio_platform.h \
+       cpio/cpio_windows.h cpio/test/test.h cat/bsdcat.h \
+       cat/bsdcat_platform.h cat/test/test.h unzip/bsdunzip.h \
+       unzip/bsdunzip_platform.h unzip/la_queue.h unzip/test/test.h
 HEADERS = $(include_HEADERS) $(noinst_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
        config.h.in
@@ -2947,14 +2956,14 @@ noinst_HEADERS = libarchive/archive_acl_
        libarchive/filter_fork.h $(am__append_1) $(am__append_3) \
        test_utils/test_common.h test_utils/test_utils.h \
        libarchive/test/test.h libarchive_fe/lafe_err.h \
-       libarchive_fe/lafe_platform.h libarchive_fe/line_reader.h \
-       libarchive_fe/passphrase.h tar/bsdtar.h tar/bsdtar_platform.h \
-       $(am__append_9) tar/test/test.h cpio/cpio.h \
-       cpio/cpio_platform.h $(am__append_11) cpio/test/test.h \
-       cat/bsdcat.h cat/bsdcat_platform.h $(am__append_13) \
-       cat/test/test.h unzip/bsdunzip.h unzip/bsdunzip_platform.h \
-       unzip/la_getline.h unzip/la_queue.h $(am__append_15) \
-       unzip/test/test.h
+       libarchive_fe/lafe_getline.h libarchive_fe/lafe_platform.h \
+       libarchive_fe/line_reader.h libarchive_fe/passphrase.h \
+       tar/bsdtar.h tar/bsdtar_platform.h $(am__append_9) \
+       tar/test/test.h cpio/cpio.h cpio/cpio_platform.h \
+       $(am__append_11) cpio/test/test.h cat/bsdcat.h \
+       cat/bsdcat_platform.h $(am__append_13) cat/test/test.h \
+       unzip/bsdunzip.h unzip/bsdunzip_platform.h unzip/la_queue.h \
+       $(am__append_15) unzip/test/test.h
 libarchive_la_SOURCES = libarchive/archive_acl.c \
        libarchive/archive_check_magic.c libarchive/archive_cmdline.c \
        libarchive/archive_cryptor.c libarchive/archive_digest.c \
@@ -3242,6 +3251,7 @@ libarchive_test_SOURCES = \
        libarchive/test/test_read_format_ar.c \
        libarchive/test/test_read_format_cab.c \
        libarchive/test/test_read_format_cab_filename.c \
+       libarchive/test/test_read_format_cab_lzx_oob.c \
        libarchive/test/test_read_format_cpio_afio.c \
        libarchive/test/test_read_format_cpio_bin.c \
        libarchive/test/test_read_format_cpio_bin_Z.c \
@@ -3279,6 +3289,7 @@ libarchive_test_SOURCES = \
        libarchive/test/test_read_format_isorr_new_bz2.c \
        libarchive/test/test_read_format_isorr_rr_moved.c \
        libarchive/test/test_read_format_isozisofs_bz2.c \
+       libarchive/test/test_read_format_iso_zisofs_overflow.c \
        libarchive/test/test_read_format_lha.c \
        libarchive/test/test_read_format_lha_bugfix_0.c \
        libarchive/test/test_read_format_lha_filename.c \
@@ -3357,6 +3368,7 @@ libarchive_test_SOURCES = \
        libarchive/test/test_tar_large.c \
        libarchive/test/test_ustar_filenames.c \
        libarchive/test/test_ustar_filename_encoding.c \
+       libarchive/test/test_v7tar_filename_encoding.c \
        libarchive/test/test_warn_missing_hardlink_target.c \
        libarchive/test/test_write_disk.c \
        libarchive/test/test_write_disk_appledouble.c \
@@ -3610,6 +3622,7 @@ libarchive_test_EXTRA_DIST = \
        libarchive/test/test_read_format_cab_2.cab.uu \
        libarchive/test/test_read_format_cab_3.cab.uu \
        libarchive/test/test_read_format_cab_filename_cp932.cab.uu \
+       libarchive/test/test_read_format_cab_lzx_oob.cab.uu \
        libarchive/test/test_read_format_cpio_bin_be.cpio.uu \
        libarchive/test/test_read_format_cpio_bin_le.cpio.uu \
        libarchive/test/test_read_format_cpio_filename_cp866.cpio.uu \
@@ -3646,6 +3659,7 @@ libarchive_test_EXTRA_DIST = \
        libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu \
        libarchive/test/test_read_format_iso_xorriso.iso.Z.uu \
        libarchive/test/test_read_format_iso_zisofs.iso.Z.uu \
+       libarchive/test/test_read_format_iso_zisofs_overflow.iso.uu \
        libarchive/test/test_read_format_lha_bugfix_0.lzh.uu \
        libarchive/test/test_read_format_lha_filename_cp932.lzh.uu \
        libarchive/test/test_read_format_lha_filename_utf16.lzh.uu \
@@ -3845,6 +3859,7 @@ libarchive_test_EXTRA_DIST = \
 
 libarchive_fe_la_SOURCES = \
        libarchive_fe/lafe_err.c \
+       libarchive_fe/lafe_getline.c \
        libarchive_fe/line_reader.c \
        libarchive_fe/passphrase.c
 
@@ -4163,8 +4178,7 @@ bsdcat_test_EXTRA_DIST = \
        cat/test/test_expand.xz.uu \
        cat/test/CMakeLists.txt
 
-bsdunzip_SOURCES = unzip/bsdunzip.c unzip/cmdline.c unzip/la_getline.c \
-       $(am__append_16)
+bsdunzip_SOURCES = unzip/bsdunzip.c unzip/cmdline.c $(am__append_16)
 bsdunzip_DEPENDENCIES = libarchive.la libarchive_fe.la
 @STATIC_BSDUNZIP_FALSE@bsdunzip_ldstatic = 
 @STATIC_BSDUNZIP_TRUE@bsdunzip_ldstatic = -static
@@ -4721,6 +4735,8 @@ libarchive_fe/$(DEPDIR)/$(am__dirstamp):
        @: >>libarchive_fe/$(DEPDIR)/$(am__dirstamp)
 libarchive_fe/la-lafe_err.lo: libarchive_fe/$(am__dirstamp) \
        libarchive_fe/$(DEPDIR)/$(am__dirstamp)
+libarchive_fe/la-lafe_getline.lo: libarchive_fe/$(am__dirstamp) \
+       libarchive_fe/$(DEPDIR)/$(am__dirstamp)
 libarchive_fe/la-line_reader.lo: libarchive_fe/$(am__dirstamp) \
        libarchive_fe/$(DEPDIR)/$(am__dirstamp)
 libarchive_fe/la-passphrase.lo: libarchive_fe/$(am__dirstamp) \
@@ -5128,8 +5144,6 @@ unzip/bsdunzip-bsdunzip.$(OBJEXT): unzip
        unzip/$(DEPDIR)/$(am__dirstamp)
 unzip/bsdunzip-cmdline.$(OBJEXT): unzip/$(am__dirstamp) \
        unzip/$(DEPDIR)/$(am__dirstamp)
-unzip/bsdunzip-la_getline.$(OBJEXT): unzip/$(am__dirstamp) \
-       unzip/$(DEPDIR)/$(am__dirstamp)
 
 bsdunzip$(EXEEXT): $(bsdunzip_OBJECTS) $(bsdunzip_DEPENDENCIES) $(EXTRA_bsdunzip_DEPENDENCIES) 
        @rm -f bsdunzip$(EXEEXT)
@@ -5907,6 +5921,9 @@ libarchive/test/test-test_read_format_ca
 libarchive/test/test-test_read_format_cab_filename.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_read_format_cab_lzx_oob.$(OBJEXT):  \
+       libarchive/test/$(am__dirstamp) \
+       libarchive/test/$(DEPDIR)/$(am__dirstamp)
 libarchive/test/test-test_read_format_cpio_afio.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -6018,6 +6035,9 @@ libarchive/test/test-test_read_format_is
 libarchive/test/test-test_read_format_isozisofs_bz2.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_read_format_iso_zisofs_overflow.$(OBJEXT):  \
+       libarchive/test/$(am__dirstamp) \
+       libarchive/test/$(DEPDIR)/$(am__dirstamp)
 libarchive/test/test-test_read_format_lha.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -6252,6 +6272,9 @@ libarchive/test/test-test_ustar_filename
 libarchive/test/test-test_ustar_filename_encoding.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_v7tar_filename_encoding.$(OBJEXT):  \
+       libarchive/test/$(am__dirstamp) \
+       libarchive/test/$(DEPDIR)/$(am__dirstamp)
 libarchive/test/test-test_warn_missing_hardlink_target.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -6984,6 +7007,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po@am__quote@ # am--include-marker
@@ -7012,6 +7036,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po@am__quote@ # am--include-marker
@@ -7099,6 +7124,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_tar_large.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po@am__quote@ # am--include-marker
@@ -7188,6 +7214,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/la-lafe_err.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/la-lafe_getline.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/la-line_reader.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive_fe/$(DEPDIR)/la-passphrase.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@tar/$(DEPDIR)/bsdtar-bsdtar.Po@am__quote@ # am--include-marker
@@ -7282,7 +7309,6 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@test_utils/$(DEPDIR)/libarchive_test-test_utils.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@unzip/$(DEPDIR)/bsdunzip-bsdunzip.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@unzip/$(DEPDIR)/bsdunzip-cmdline.Po@am__quote@ # am--include-marker
-@AMDEP_TRUE@@am__include@ @am__quote@unzip/$(DEPDIR)/bsdunzip-la_getline.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@unzip/test/$(DEPDIR)/bsdunzip_test-test_0.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@unzip/test/$(DEPDIR)/bsdunzip_test-test_C.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@unzip/test/$(DEPDIR)/bsdunzip_test-test_I.Po@am__quote@ # am--include-marker
@@ -7342,6 +7368,13 @@ libarchive_fe/la-lafe_err.lo: libarchive
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive_fe/la-lafe_err.lo `test -f 'libarchive_fe/lafe_err.c' || echo '$(srcdir)/'`libarchive_fe/lafe_err.c
 
+libarchive_fe/la-lafe_getline.lo: libarchive_fe/lafe_getline.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) 
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive_fe/la-lafe_getline.lo -MD -MP -MF libarchive_fe/$(DEPDIR)/la-lafe_getline.Tpo -c -o libarchive_fe/la-lafe_getline.lo `test -f 
'libarchive_fe/lafe_getline.c' || echo '$(srcdir)/'`libarchive_fe/lafe_getline.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive_fe/$(DEPDIR)/la-lafe_getline.Tpo libarchive_fe/$(DEPDIR)/la-lafe_getline.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive_fe/lafe_getline.c' object='libarchive_fe/la-lafe_getline.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(libarchive_fe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libarchive_fe/la-lafe_getline.lo `test -f 'libarchive_fe/lafe_getline.c' || echo '$(srcdir)/'`libarchive_fe/lafe_getline.c
+
 libarchive_fe/la-line_reader.lo: libarchive_fe/line_reader.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_fe_la_CPPFLAGS) 
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive_fe/la-line_reader.lo -MD -MP -MF libarchive_fe/$(DEPDIR)/la-line_reader.Tpo -c -o libarchive_fe/la-line_reader.lo `test -f 
'libarchive_fe/line_reader.c' || echo '$(srcdir)/'`libarchive_fe/line_reader.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive_fe/$(DEPDIR)/la-line_reader.Tpo libarchive_fe/$(DEPDIR)/la-line_reader.Plo
@@ -9610,20 +9643,6 @@ unzip/bsdunzip-cmdline.obj: unzip/cmdlin
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdunzip_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unzip/bsdunzip-cmdline.obj `if test -f 
'unzip/cmdline.c'; then $(CYGPATH_W) 'unzip/cmdline.c'; else $(CYGPATH_W) '$(srcdir)/unzip/cmdline.c'; fi`
 
-unzip/bsdunzip-la_getline.o: unzip/la_getline.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdunzip_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unzip/bsdunzip-la_getline.o -MD -MP -MF 
unzip/$(DEPDIR)/bsdunzip-la_getline.Tpo -c -o unzip/bsdunzip-la_getline.o `test -f 'unzip/la_getline.c' || echo '$(srcdir)/'`unzip/la_getline.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) unzip/$(DEPDIR)/bsdunzip-la_getline.Tpo unzip/$(DEPDIR)/bsdunzip-la_getline.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unzip/la_getline.c' object='unzip/bsdunzip-la_getline.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) $(bsdunzip_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unzip/bsdunzip-la_getline.o `test -f 
'unzip/la_getline.c' || echo '$(srcdir)/'`unzip/la_getline.c
-
-unzip/bsdunzip-la_getline.obj: unzip/la_getline.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdunzip_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unzip/bsdunzip-la_getline.obj -MD -MP -MF 
unzip/$(DEPDIR)/bsdunzip-la_getline.Tpo -c -o unzip/bsdunzip-la_getline.obj `if test -f 'unzip/la_getline.c'; then $(CYGPATH_W) 'unzip/la_getline.c'; else $(CYGPATH_W) '$(srcdir)/unzip/la_getline.c'; 
fi`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) unzip/$(DEPDIR)/bsdunzip-la_getline.Tpo unzip/$(DEPDIR)/bsdunzip-la_getline.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unzip/la_getline.c' object='unzip/bsdunzip-la_getline.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) $(bsdunzip_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unzip/bsdunzip-la_getline.obj `if test -f 
'unzip/la_getline.c'; then $(CYGPATH_W) 'unzip/la_getline.c'; else $(CYGPATH_W) '$(srcdir)/unzip/la_getline.c'; fi`
-
 test_utils/bsdunzip_test-test_main.o: test_utils/test_main.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bsdunzip_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_utils/bsdunzip_test-test_main.o -MD -MP -MF 
test_utils/$(DEPDIR)/bsdunzip_test-test_main.Tpo -c -o test_utils/bsdunzip_test-test_main.o `test -f 'test_utils/test_main.c' || echo '$(srcdir)/'`test_utils/test_main.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) test_utils/$(DEPDIR)/bsdunzip_test-test_main.Tpo test_utils/$(DEPDIR)/bsdunzip_test-test_main.Po
@@ -13306,6 +13325,20 @@ libarchive/test/test-test_read_format_ca
 @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_cab_filename.obj `if test -f 'libarchive/test/test_read_format_cab_filename.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab_filename.c'; else 
$(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab_filename.c'; fi`
 
+libarchive/test/test-test_read_format_cab_lzx_oob.o: libarchive/test/test_read_format_cab_lzx_oob.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_cab_lzx_oob.o 
-MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Tpo -c -o libarchive/test/test-test_read_format_cab_lzx_oob.o `test -f 'libarchive/test/test_read_format_cab_lzx_oob.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_format_cab_lzx_oob.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_format_cab_lzx_oob.c' object='libarchive/test/test-test_read_format_cab_lzx_oob.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_cab_lzx_oob.o `test -f 'libarchive/test/test_read_format_cab_lzx_oob.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_cab_lzx_oob.c
+
+libarchive/test/test-test_read_format_cab_lzx_oob.obj: libarchive/test/test_read_format_cab_lzx_oob.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_cab_lzx_oob.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Tpo -c -o libarchive/test/test-test_read_format_cab_lzx_oob.obj `if test 
-f 'libarchive/test/test_read_format_cab_lzx_oob.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab_lzx_oob.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab_lzx_oob.c'; 
fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_format_cab_lzx_oob.c' object='libarchive/test/test-test_read_format_cab_lzx_oob.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_cab_lzx_oob.obj `if test -f 'libarchive/test/test_read_format_cab_lzx_oob.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_cab_lzx_oob.c'; else 
$(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_cab_lzx_oob.c'; fi`
+
 libarchive/test/test-test_read_format_cpio_afio.o: libarchive/test/test_read_format_cpio_afio.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_cpio_afio.o 
-MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Tpo -c -o libarchive/test/test-test_read_format_cpio_afio.o `test -f 'libarchive/test/test_read_format_cpio_afio.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_format_cpio_afio.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po
@@ -13824,6 +13857,20 @@ libarchive/test/test-test_read_format_is
 @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_isozisofs_bz2.obj `if test -f 'libarchive/test/test_read_format_isozisofs_bz2.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_isozisofs_bz2.c'; else 
$(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_isozisofs_bz2.c'; fi`
 
+libarchive/test/test-test_read_format_iso_zisofs_overflow.o: libarchive/test/test_read_format_iso_zisofs_overflow.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_iso_zisofs_overflow.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Tpo -c -o 
libarchive/test/test-test_read_format_iso_zisofs_overflow.o `test -f 'libarchive/test/test_read_format_iso_zisofs_overflow.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_format_iso_zisofs_overflow.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_format_iso_zisofs_overflow.c' object='libarchive/test/test-test_read_format_iso_zisofs_overflow.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_iso_zisofs_overflow.o `test -f 'libarchive/test/test_read_format_iso_zisofs_overflow.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_format_iso_zisofs_overflow.c
+
+libarchive/test/test-test_read_format_iso_zisofs_overflow.obj: libarchive/test/test_read_format_iso_zisofs_overflow.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_iso_zisofs_overflow.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Tpo -c -o 
libarchive/test/test-test_read_format_iso_zisofs_overflow.obj `if test -f 'libarchive/test/test_read_format_iso_zisofs_overflow.c'; then $(CYGPATH_W) 
'libarchive/test/test_read_format_iso_zisofs_overflow.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_zisofs_overflow.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_format_iso_zisofs_overflow.c' object='libarchive/test/test-test_read_format_iso_zisofs_overflow.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_iso_zisofs_overflow.obj `if test -f 'libarchive/test/test_read_format_iso_zisofs_overflow.c'; then $(CYGPATH_W) 
'libarchive/test/test_read_format_iso_zisofs_overflow.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_iso_zisofs_overflow.c'; fi`
+
 libarchive/test/test-test_read_format_lha.o: libarchive/test/test_read_format_lha.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_lha.o -MD -MP 
-MF libarchive/test/$(DEPDIR)/test-test_read_format_lha.Tpo -c -o libarchive/test/test-test_read_format_lha.o `test -f 'libarchive/test/test_read_format_lha.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_format_lha.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_lha.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_lha.Po
@@ -14916,6 +14963,20 @@ libarchive/test/test-test_ustar_filename
 @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_ustar_filename_encoding.obj `if test -f 'libarchive/test/test_ustar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_ustar_filename_encoding.c'; else 
$(CYGPATH_W) '$(srcdir)/libarchive/test/test_ustar_filename_encoding.c'; fi`
 
+libarchive/test/test-test_v7tar_filename_encoding.o: libarchive/test/test_v7tar_filename_encoding.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libarchive/test/test-test_v7tar_filename_encoding.o 
-MD -MP -MF libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Tpo -c -o libarchive/test/test-test_v7tar_filename_encoding.o `test -f 'libarchive/test/test_v7tar_filename_encoding.c' || echo 
'$(srcdir)/'`libarchive/test/test_v7tar_filename_encoding.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_v7tar_filename_encoding.c' object='libarchive/test/test-test_v7tar_filename_encoding.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_v7tar_filename_encoding.o `test -f 'libarchive/test/test_v7tar_filename_encoding.c' || echo '$(srcdir)/'`libarchive/test/test_v7tar_filename_encoding.c
+
+libarchive/test/test-test_v7tar_filename_encoding.obj: libarchive/test/test_v7tar_filename_encoding.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT 
libarchive/test/test-test_v7tar_filename_encoding.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Tpo -c -o libarchive/test/test-test_v7tar_filename_encoding.obj `if test 
-f 'libarchive/test/test_v7tar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_v7tar_filename_encoding.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_v7tar_filename_encoding.c'; 
fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Tpo libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_v7tar_filename_encoding.c' object='libarchive/test/test-test_v7tar_filename_encoding.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_v7tar_filename_encoding.obj `if test -f 'libarchive/test/test_v7tar_filename_encoding.c'; then $(CYGPATH_W) 'libarchive/test/test_v7tar_filename_encoding.c'; else 
$(CYGPATH_W) '$(srcdir)/libarchive/test/test_v7tar_filename_encoding.c'; fi`
+
 libarchive/test/test-test_warn_missing_hardlink_target.o: libarchive/test/test_warn_missing_hardlink_target.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT 
libarchive/test/test-test_warn_missing_hardlink_target.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Tpo -c -o 
libarchive/test/test-test_warn_missing_hardlink_target.o `test -f 'libarchive/test/test_warn_missing_hardlink_target.c' || echo '$(srcdir)/'`libarchive/test/test_warn_missing_hardlink_target.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Tpo libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po
@@ -17304,6 +17365,7 @@ distclean: distclean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po
@@ -17332,6 +17394,7 @@ distclean: distclean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po
@@ -17419,6 +17482,7 @@ distclean: distclean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_tar_large.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po
@@ -17508,6 +17572,7 @@ distclean: distclean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po
        -rm -f libarchive_fe/$(DEPDIR)/la-lafe_err.Plo
+       -rm -f libarchive_fe/$(DEPDIR)/la-lafe_getline.Plo
        -rm -f libarchive_fe/$(DEPDIR)/la-line_reader.Plo
        -rm -f libarchive_fe/$(DEPDIR)/la-passphrase.Plo
        -rm -f tar/$(DEPDIR)/bsdtar-bsdtar.Po
@@ -17602,7 +17667,6 @@ distclean: distclean-am
        -rm -f test_utils/$(DEPDIR)/libarchive_test-test_utils.Po
        -rm -f unzip/$(DEPDIR)/bsdunzip-bsdunzip.Po
        -rm -f unzip/$(DEPDIR)/bsdunzip-cmdline.Po
-       -rm -f unzip/$(DEPDIR)/bsdunzip-la_getline.Po
        -rm -f unzip/test/$(DEPDIR)/bsdunzip_test-test_0.Po
        -rm -f unzip/test/$(DEPDIR)/bsdunzip_test-test_C.Po
        -rm -f unzip/test/$(DEPDIR)/bsdunzip_test-test_I.Po
@@ -18115,6 +18179,7 @@ maintainer-clean: maintainer-clean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_ar.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab_filename.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cab_lzx_oob.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_afio.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_cpio_bin_Z.Po
@@ -18143,6 +18208,7 @@ maintainer-clean: maintainer-clean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_Z.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_multi_extent.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_xorriso.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_iso_zisofs_overflow.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_bz2.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_long.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_isojoliet_rr.Po
@@ -18230,6 +18296,7 @@ maintainer-clean: maintainer-clean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_tar_large.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_ustar_filename_encoding.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_ustar_filenames.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_v7tar_filename_encoding.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_warn_missing_hardlink_target.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_write_disk_appledouble.Po
@@ -18319,6 +18386,7 @@ maintainer-clean: maintainer-clean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_xattr_platform.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_zip_filename_encoding.Po
        -rm -f libarchive_fe/$(DEPDIR)/la-lafe_err.Plo
+       -rm -f libarchive_fe/$(DEPDIR)/la-lafe_getline.Plo
        -rm -f libarchive_fe/$(DEPDIR)/la-line_reader.Plo
        -rm -f libarchive_fe/$(DEPDIR)/la-passphrase.Plo
        -rm -f tar/$(DEPDIR)/bsdtar-bsdtar.Po
@@ -18413,7 +18481,6 @@ maintainer-clean: maintainer-clean-am
        -rm -f test_utils/$(DEPDIR)/libarchive_test-test_utils.Po
        -rm -f unzip/$(DEPDIR)/bsdunzip-bsdunzip.Po
        -rm -f unzip/$(DEPDIR)/bsdunzip-cmdline.Po
-       -rm -f unzip/$(DEPDIR)/bsdunzip-la_getline.Po
        -rm -f unzip/test/$(DEPDIR)/bsdunzip_test-test_0.Po
        -rm -f unzip/test/$(DEPDIR)/bsdunzip_test-test_C.Po
        -rm -f unzip/test/$(DEPDIR)/bsdunzip_test-test_I.Po
Index: pkgsrc/archivers/libarchive/files/NEWS
diff -u pkgsrc/archivers/libarchive/files/NEWS:1.26 pkgsrc/archivers/libarchive/files/NEWS:1.27
--- pkgsrc/archivers/libarchive/files/NEWS:1.26 Thu Mar 26 11:20:04 2026
+++ pkgsrc/archivers/libarchive/files/NEWS      Wed Apr 15 08:46:32 2026
@@ -1,3 +1,5 @@
+Apr 13, 2026: libarchive 3.8.7 released
+
 Mar 10, 2026: libarchive 3.8.6 released
 
 Jan 05, 2026: libarchive 3.8.5 released

Index: pkgsrc/archivers/libarchive/files/README.md
diff -u pkgsrc/archivers/libarchive/files/README.md:1.8 pkgsrc/archivers/libarchive/files/README.md:1.9
--- pkgsrc/archivers/libarchive/files/README.md:1.8     Tue Jan  6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/README.md Wed Apr 15 08:46:32 2026
@@ -37,10 +37,13 @@ The top-level directory contains the fol
 * **CMakeLists.txt** - input for "cmake" build tool, see INSTALL
 * **configure** - configuration script, see INSTALL for details.  If your copy of the source lacks a `configure` script, you can try to construct it by running the script in `build/autogen.sh` (or 
use `cmake`).
 
-The following files in the top-level directory are used by the 'configure' script:
+The following files in the top-level directory are related to the 'configure' script and are only needed by maintainers:
 
-* `Makefile.am`, `aclocal.m4`, `configure.ac` - used to build this distribution, only needed by maintainers
-* `Makefile.in`, `config.h.in` - templates used by configure script
+* `configure.ac` - used (by autoconf) to build the configure script and related files
+* `Makefile.am` - used (by automake) to generate Makefile.in
+* `aclocal.m4` - auto-generated file (created by aclocal) used to build the configure script
+* `Makefile.in` - auto-generated template (created by automake) used by the configure script to create Makefile
+* `config.h.in` - auto-generated template (created by autoheader) used by the configure script to create config.h
 
 ## Documentation
 

Index: pkgsrc/archivers/libarchive/files/configure
diff -u pkgsrc/archivers/libarchive/files/configure:1.35 pkgsrc/archivers/libarchive/files/configure:1.36
--- pkgsrc/archivers/libarchive/files/configure:1.35    Thu Mar 26 11:20:04 2026
+++ pkgsrc/archivers/libarchive/files/configure Wed Apr 15 08:46:32 2026
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for libarchive 3.8.6.
+# Generated by GNU Autoconf 2.72 for libarchive 3.8.7.
 #
 # Report bugs to <libarchive-discuss%googlegroups.com@localhost>.
 #
@@ -614,8 +614,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libarchive'
 PACKAGE_TARNAME='libarchive'
-PACKAGE_VERSION='3.8.6'
-PACKAGE_STRING='libarchive 3.8.6'
+PACKAGE_VERSION='3.8.7'
+PACKAGE_STRING='libarchive 3.8.7'
 PACKAGE_BUGREPORT='libarchive-discuss%googlegroups.com@localhost'
 PACKAGE_URL=''
 
@@ -1442,7 +1442,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.8.6 to adapt to many kinds of systems.
+'configure' configures libarchive 3.8.7 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1513,7 +1513,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libarchive 3.8.6:";;
+     short | recursive ) echo "Configuration of libarchive 3.8.7:";;
    esac
   cat <<\_ACEOF
 
@@ -1698,7 +1698,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libarchive configure 3.8.6
+libarchive configure 3.8.7
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2518,7 +2518,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.8.6, which was
+It was created by libarchive $as_me 3.8.7, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -4002,7 +4002,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libarchive'
- VERSION='3.8.6'
+ VERSION='3.8.7'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -4099,7 +4099,7 @@ AM_DEFAULT_VERBOSITY=0
 
 # Libtool interface version bumps on any API change, so increments
 # whenever libarchive minor version does.
-ARCHIVE_MINOR=$(( (3008006 / 1000) % 1000 ))
+ARCHIVE_MINOR=$(( (3008007 / 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 + 9
@@ -4107,7 +4107,7 @@ ARCHIVE_MINOR=$(( (3008006 / 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=$(( 3008006 % 1000 ))
+ARCHIVE_REVISION=$(( 3008007 % 1000 ))
 # Libarchive minor is bumped on any interface addition === libtool age
 ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFACE:$ARCHIVE_REVISION:$ARCHIVE_MINOR
 
@@ -4116,33 +4116,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.8.6\"" >>confdefs.h
+printf "%s\n" "#define LIBARCHIVE_VERSION_STRING \"3.8.7\"" >>confdefs.h
 
 
-printf "%s\n" "#define LIBARCHIVE_VERSION_NUMBER \"3008006\"" >>confdefs.h
+printf "%s\n" "#define LIBARCHIVE_VERSION_NUMBER \"3008007\"" >>confdefs.h
 
 
-printf "%s\n" "#define BSDCPIO_VERSION_STRING \"3.8.6\"" >>confdefs.h
+printf "%s\n" "#define BSDCPIO_VERSION_STRING \"3.8.7\"" >>confdefs.h
 
 
-printf "%s\n" "#define BSDTAR_VERSION_STRING \"3.8.6\"" >>confdefs.h
+printf "%s\n" "#define BSDTAR_VERSION_STRING \"3.8.7\"" >>confdefs.h
 
 
-printf "%s\n" "#define BSDCAT_VERSION_STRING \"3.8.6\"" >>confdefs.h
+printf "%s\n" "#define BSDCAT_VERSION_STRING \"3.8.7\"" >>confdefs.h
 
 
-printf "%s\n" "#define BSDUNZIP_VERSION_STRING \"3.8.6\"" >>confdefs.h
+printf "%s\n" "#define BSDUNZIP_VERSION_STRING \"3.8.7\"" >>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.8.6
-BSDTAR_VERSION_STRING=3.8.6
-BSDCAT_VERSION_STRING=3.8.6
-BSDUNZIP_VERSION_STRING=3.8.6
-LIBARCHIVE_VERSION_STRING=3.8.6
-LIBARCHIVE_VERSION_NUMBER=3008006
+BSDCPIO_VERSION_STRING=3.8.7
+BSDTAR_VERSION_STRING=3.8.7
+BSDCAT_VERSION_STRING=3.8.7
+BSDUNZIP_VERSION_STRING=3.8.7
+LIBARCHIVE_VERSION_STRING=3.8.7
+LIBARCHIVE_VERSION_NUMBER=3008007
 
 # Substitute the above version numbers into the various files below.
 # Yes, I believe this is the fourth time we define what are essentially
@@ -26364,7 +26364,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.8.6, which was
+This file was extended by libarchive $as_me 3.8.7, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26432,7 +26432,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.8.6
+libarchive config.status 3.8.7
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 

Index: pkgsrc/archivers/libarchive/files/configure.ac
diff -u pkgsrc/archivers/libarchive/files/configure.ac:1.34 pkgsrc/archivers/libarchive/files/configure.ac:1.35
--- pkgsrc/archivers/libarchive/files/configure.ac:1.34 Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/configure.ac      Wed Apr 15 08:46:33 2026
@@ -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.8.6])
-m4_define([LIBARCHIVE_VERSION_N],[3008006])
+m4_define([LIBARCHIVE_VERSION_S],[3.8.7])
+m4_define([LIBARCHIVE_VERSION_N],[3008007])
 
 dnl bsdtar and bsdcpio versioning tracks libarchive
 m4_define([BSDTAR_VERSION_S],LIBARCHIVE_VERSION_S())

Index: pkgsrc/archivers/libarchive/files/build/version
diff -u pkgsrc/archivers/libarchive/files/build/version:1.21 pkgsrc/archivers/libarchive/files/build/version:1.22
--- pkgsrc/archivers/libarchive/files/build/version:1.21        Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/build/version     Wed Apr 15 08:46:33 2026
@@ -1 +1 @@
-3008006
+3008007

Index: pkgsrc/archivers/libarchive/files/build/cmake/config.h.in
diff -u pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.17 pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.18
--- pkgsrc/archivers/libarchive/files/build/cmake/config.h.in:1.17      Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/build/cmake/config.h.in   Wed Apr 15 08:46:33 2026
@@ -1028,6 +1028,9 @@ typedef uint64_t uintmax_t;
 /* Define to 1 if you have the <stdint.h> header file. */
 #cmakedefine HAVE_STDINT_H 1
 
+/* Define to 1 if you have the <stdio.h> header file. */
+#cmakedefine HAVE_STDIO_H 1
+
 /* Define to 1 if you have the <stdlib.h> header file. */
 #cmakedefine HAVE_STDLIB_H 1
 

Index: pkgsrc/archivers/libarchive/files/contrib/untar.c
diff -u pkgsrc/archivers/libarchive/files/contrib/untar.c:1.5 pkgsrc/archivers/libarchive/files/contrib/untar.c:1.6
--- pkgsrc/archivers/libarchive/files/contrib/untar.c:1.5       Fri Apr 12 15:39:47 2024
+++ pkgsrc/archivers/libarchive/files/contrib/untar.c   Wed Apr 15 08:46:33 2026
@@ -60,11 +60,11 @@ parseoct(const char *p, size_t n)
 {
        unsigned long i = 0;
 
-       while ((*p < '0' || *p > '7') && n > 0) {
+       while (n > 0 && (*p < '0' || *p > '7')) {
                ++p;
                --n;
        }
-       while (*p >= '0' && *p <= '7' && n > 0) {
+       while (n > 0 && *p >= '0' && *p <= '7') {
                i *= 8;
                i += *p - '0';
                ++p;

Index: pkgsrc/archivers/libarchive/files/contrib/android/Android.mk
diff -u pkgsrc/archivers/libarchive/files/contrib/android/Android.mk:1.6 pkgsrc/archivers/libarchive/files/contrib/android/Android.mk:1.7
--- pkgsrc/archivers/libarchive/files/contrib/android/Android.mk:1.6    Tue Jan  6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/contrib/android/Android.mk        Wed Apr 15 08:46:33 2026
@@ -159,6 +159,7 @@ libarchive_host_src_files :=
 endif
 
 libarchive_fe_src_files :=  libarchive_fe/lafe_err.c \
+                                                       libarchive_fe/lafe_getline.c \
                                                        libarchive_fe/line_reader.c \
                                                        libarchive_fe/passphrase.c
 

Index: pkgsrc/archivers/libarchive/files/cpio/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/cpio/CMakeLists.txt:1.6 pkgsrc/archivers/libarchive/files/cpio/CMakeLists.txt:1.7
--- pkgsrc/archivers/libarchive/files/cpio/CMakeLists.txt:1.6   Sun Nov  2 08:52:12 2025
+++ pkgsrc/archivers/libarchive/files/cpio/CMakeLists.txt       Wed Apr 15 08:46:33 2026
@@ -15,6 +15,8 @@ IF(ENABLE_CPIO)
     cpio_platform.h
     ../libarchive_fe/lafe_err.c
     ../libarchive_fe/lafe_err.h
+    ../libarchive_fe/lafe_getline.c
+    ../libarchive_fe/lafe_getline.h
     ../libarchive_fe/lafe_platform.h
     ../libarchive_fe/line_reader.c
     ../libarchive_fe/line_reader.h

Index: pkgsrc/archivers/libarchive/files/cpio/cmdline.c
diff -u pkgsrc/archivers/libarchive/files/cpio/cmdline.c:1.13 pkgsrc/archivers/libarchive/files/cpio/cmdline.c:1.14
--- pkgsrc/archivers/libarchive/files/cpio/cmdline.c:1.13       Sun Nov  2 08:52:12 2025
+++ pkgsrc/archivers/libarchive/files/cpio/cmdline.c    Wed Apr 15 08:46:33 2026
@@ -11,6 +11,9 @@
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 #ifdef HAVE_GRP_H
 #include <grp.h>
 #endif
@@ -347,9 +350,10 @@ owner_parse(const char *spec, struct cpi
                                owner->gid = pwent->pw_gid;
                } else {
                        char *end;
+                       unsigned long val;
                        errno = 0;
-                       owner->uid = (int)strtoul(user, &end, 10);
-                       if (errno || *end != '\0') {
+                       val = strtoul(user, &end, 10);
+                       if (errno || *end != '\0' || val > (unsigned)INT_MAX) {
                                snprintf(errbuff, sizeof(errbuff),
                                    "Couldn't lookup user ``%s''", user);
                                errbuff[sizeof(errbuff) - 1] = '\0';
@@ -357,6 +361,7 @@ owner_parse(const char *spec, struct cpi
                                *errmsg = errbuff;
                                return (-1);
                        }
+                       owner->uid = (int)val;
                }
                free(user);
        }
@@ -373,15 +378,17 @@ owner_parse(const char *spec, struct cpi
                        }
                } else {
                        char *end;
+                       unsigned long val;
                        errno = 0;
-                       owner->gid = (int)strtoul(g, &end, 10);
-                       if (errno || *end != '\0') {
+                       val = strtoul(g, &end, 10);
+                       if (errno || *end != '\0' || val > (unsigned)INT_MAX) {
                                snprintf(errbuff, sizeof(errbuff),
                                    "Couldn't lookup group ``%s''", g);
                                errbuff[sizeof(errbuff) - 1] = '\0';
                                *errmsg = errbuff;
                                return (-1);
                        }
+                       owner->gid = (int)val;
                }
        }
        return (0);

Index: pkgsrc/archivers/libarchive/files/cpio/cpio.c
diff -u pkgsrc/archivers/libarchive/files/cpio/cpio.c:1.17 pkgsrc/archivers/libarchive/files/cpio/cpio.c:1.18
--- pkgsrc/archivers/libarchive/files/cpio/cpio.c:1.17  Tue Jan  6 11:55:21 2026
+++ pkgsrc/archivers/libarchive/files/cpio/cpio.c       Wed Apr 15 08:46:33 2026
@@ -8,6 +8,8 @@
 
 #include "cpio_platform.h"
 
+#include "lafe_getline.h"
+
 #include <sys/types.h>
 #include <archive.h>
 #include <archive_entry.h>
@@ -33,6 +35,9 @@
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
 #endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 #ifdef HAVE_PWD_H
 #include <pwd.h>
 #endif
@@ -83,7 +88,7 @@ struct name_cache {
 
 static int     extract_data(struct archive *, struct archive *);
 const char *   cpio_i64toa(int64_t);
-static const char *cpio_rename(const char *name);
+static void    cpio_rename(struct archive_entry *);
 static int     entry_to_archive(struct cpio *, struct archive_entry *);
 static int     file_to_archive(struct cpio *, const char *);
 static void    free_cache(struct name_cache *cache);
@@ -110,19 +115,16 @@ static void       passphrase_free(char *);
 int
 main(int argc, char *argv[])
 {
-       static char buff[16384];
        struct cpio _cpio; /* Allocated on stack. */
        struct cpio *cpio;
        struct cpio_owner owner;
        const char *errmsg;
        char *tptr;
-       int opt, t;
+       int opt;
+       long t;
 
        cpio = &_cpio;
        memset(cpio, 0, sizeof(*cpio));
-       cpio->buff = buff;
-       cpio->buff_size = sizeof(buff);
-
 
 #if defined(HAVE_SIGACTION)
        {
@@ -204,13 +206,13 @@ main(int argc, char *argv[])
                case 'C': /* NetBSD/OpenBSD */
                        errno = 0;
                        tptr = NULL;
-                       t = (int)strtol(cpio->argument, &tptr, 10);
-                       if (errno || t <= 0 || *(cpio->argument) == '\0' ||
+                       t = strtol(cpio->argument, &tptr, 10);
+                       if (errno || t <= 0 || t > INT_MAX || *(cpio->argument) == '\0' ||
                            tptr == NULL || *tptr != '\0') {
                                lafe_errc(1, 0, "Invalid blocksize: %s",
                                    cpio->argument);
                        }
-                       cpio->bytes_per_block = t;
+                       cpio->bytes_per_block = (int)t;
                        break;
                case 'c': /* POSIX 1997 */
                        cpio->format = "odc";
@@ -222,7 +224,7 @@ main(int argc, char *argv[])
                        if (archive_match_include_pattern_from_file(
                            cpio->matching, cpio->argument,
                            cpio->option_null) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(cpio->matching));
                        break;
                case 'F': /* NetBSD/OpenBSD/GNU cpio */
@@ -231,7 +233,7 @@ main(int argc, char *argv[])
                case 'f': /* POSIX 1997 */
                        if (archive_match_exclude_pattern(cpio->matching,
                            cpio->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(cpio->matching));
                        break;
                case OPTION_GRZIP:
@@ -247,7 +249,7 @@ main(int argc, char *argv[])
                        cpio->filename = cpio->argument;
                        break;
                case 'i': /* POSIX 1997 */
-                       if (cpio->mode != '\0')
+                       if (cpio->mode != '\0' && cpio->mode != opt)
                                lafe_errc(1, 0,
                                    "Cannot use both -i and -%c", cpio->mode);
                        cpio->mode = opt;
@@ -289,13 +291,13 @@ main(int argc, char *argv[])
                        cpio->filename = cpio->argument;
                        break;
                case 'o': /* POSIX 1997 */
-                       if (cpio->mode != '\0')
+                       if (cpio->mode != '\0' && cpio->mode != opt)
                                lafe_errc(1, 0,
                                    "Cannot use both -o and -%c", cpio->mode);
                        cpio->mode = opt;
                        break;
                case 'p': /* POSIX 1997 */
-                       if (cpio->mode != '\0')
+                       if (cpio->mode != '\0' && cpio->mode != opt)
                                lafe_errc(1, 0,
                                    "Cannot use both -p and -%c", cpio->mode);
                        cpio->mode = opt;
@@ -316,17 +318,21 @@ main(int argc, char *argv[])
                        if (owner_parse(cpio->argument, &owner, &errmsg) != 0) {
                                if (!errmsg)
                                        errmsg = "Error parsing owner";
-                               lafe_warnc(-1, "%s", errmsg);
+                               lafe_warnc(0, "%s", errmsg);
                                usage();
                        }
                        if (owner.uid != -1)
                                cpio->uid_override = owner.uid;
-                       if (owner.uname != NULL)
+                       if (owner.uname != NULL) {
+                               free(cpio->uname_override);
                                cpio->uname_override = owner.uname;
+                       }
                        if (owner.gid != -1)
                                cpio->gid_override = owner.gid;
-                       if (owner.gname != NULL)
+                       if (owner.gname != NULL) {
+                               free(cpio->gname_override);
                                cpio->gname_override = owner.gname;
+                       }
                        break;
                case 'r': /* POSIX 1997 */
                        cpio->option_rename = 1;
@@ -409,7 +415,7 @@ main(int argc, char *argv[])
                while (*cpio->argv != NULL) {
                        if (archive_match_include_pattern(cpio->matching,
                            *cpio->argv) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(cpio->matching));
                        --cpio->argc;
                        ++cpio->argv;
@@ -427,7 +433,7 @@ main(int argc, char *argv[])
                break;
        default:
                lafe_errc(1, 0,
-                   "Must specify at least one of -i, -o, or -p");
+                   "Must specify one of -i, -o, or -p");
        }
 
        archive_match_free(cpio->matching);
@@ -524,7 +530,7 @@ mode_out(struct cpio *cpio)
        int r;
 
        if (cpio->option_append)
-               lafe_errc(1, 0, "Append mode not yet supported.");
+               lafe_errc(1, 0, "Append mode not yet supported");
 
        cpio->archive_read_disk = archive_read_disk_new();
        if (cpio->archive_read_disk == NULL)
@@ -638,7 +644,7 @@ mode_out(struct cpio *cpio)
                int64_t blocks =
                        (archive_filter_bytes(cpio->archive, 0) + 511)
                        / 512;
-               fprintf(stderr, "%lu %s\n", (unsigned long)blocks,
+               fprintf(stderr, "%lld %s\n", (long long)blocks,
                    blocks == 1 ? "block" : "blocks");
        }
        archive_write_free(cpio->archive);
@@ -696,7 +702,6 @@ remove_leading_slash(const char *p)
 static int
 file_to_archive(struct cpio *cpio, const char *srcpath)
 {
-       const char *destpath;
        struct archive_entry *entry, *spare;
        size_t len;
        int r;
@@ -738,7 +743,6 @@ file_to_archive(struct cpio *cpio, const
         * pass mode or the name that will go into the archive in
         * output mode.
         */
-       destpath = srcpath;
        if (cpio->destdir) {
                len = cpio->destdir_len + strlen(srcpath) + 8;
                if (len >= cpio->pass_destpath_alloc) {
@@ -754,15 +758,17 @@ file_to_archive(struct cpio *cpio, const
                }
                strcpy(cpio->pass_destpath, cpio->destdir);
                strcat(cpio->pass_destpath, remove_leading_slash(srcpath));
-               destpath = cpio->pass_destpath;
+               archive_entry_set_pathname(entry, cpio->pass_destpath);
+       } else {
+               archive_entry_set_pathname(entry, srcpath);
        }
        if (cpio->option_rename)
-               destpath = cpio_rename(destpath);
-       if (destpath == NULL) {
+               cpio_rename(entry);
+
+       if (archive_entry_pathname(entry) == NULL) {
                archive_entry_free(entry);
                return (0);
        }
-       archive_entry_copy_pathname(entry, destpath);
 
        /*
         * If we're trying to preserve hardlinks, match them here.
@@ -791,7 +797,6 @@ entry_to_archive(struct cpio *cpio, stru
        const char *destpath = archive_entry_pathname(entry);
        const char *srcpath = archive_entry_sourcepath(entry);
        int fd = -1;
-       ssize_t bytes_read;
        int r;
 
        /* Print out the destination name to the user. */
@@ -869,21 +874,23 @@ entry_to_archive(struct cpio *cpio, stru
                exit(1);
 
        if (r >= ARCHIVE_WARN && archive_entry_size(entry) > 0 && fd >= 0) {
-               bytes_read = read(fd, cpio->buff, (unsigned)cpio->buff_size);
+               static char buff[16384];
+               ssize_t bytes_read;
+
+               bytes_read = read(fd, buff, sizeof(buff));
                while (bytes_read > 0) {
                        ssize_t bytes_write;
                        bytes_write = archive_write_data(cpio->archive,
-                           cpio->buff, bytes_read);
+                           buff, bytes_read);
                        if (bytes_write < 0)
                                lafe_errc(1, archive_errno(cpio->archive),
                                    "%s", archive_error_string(cpio->archive));
                        if (bytes_write < bytes_read) {
                                lafe_warnc(0,
                                    "Truncated write; file may have "
-                                   "grown while being archived.");
+                                   "grown while being archived");
                        }
-                       bytes_read = read(fd, cpio->buff,
-                           (unsigned)cpio->buff_size);
+                       bytes_read = read(fd, buff, sizeof(buff));
                }
        }
 
@@ -997,11 +1004,9 @@ mode_in(struct cpio *cpio)
                }
                if (archive_match_path_excluded(cpio->matching, entry))
                        continue;
-               if (cpio->option_rename) {
-                       destpath = cpio_rename(archive_entry_pathname(entry));
-                       archive_entry_set_pathname(entry, destpath);
-               } else
-                       destpath = archive_entry_pathname(entry);
+               if (cpio->option_rename)
+                       cpio_rename(entry);
+               destpath = archive_entry_pathname(entry);
                if (destpath == NULL)
                        continue;
                if (cpio->verbose)
@@ -1040,7 +1045,7 @@ mode_in(struct cpio *cpio)
        if (!cpio->quiet) {
                int64_t blocks = (archive_filter_bytes(a, 0) + 511)
                              / 512;
-               fprintf(stderr, "%lu %s\n", (unsigned long)blocks,
+               fprintf(stderr, "%lld %s\n", (long long)blocks,
                    blocks == 1 ? "block" : "blocks");
        }
        archive_read_free(a);
@@ -1125,7 +1130,7 @@ mode_list(struct cpio *cpio)
        if (!cpio->quiet) {
                int64_t blocks = (archive_filter_bytes(a, 0) + 511)
                              / 512;
-               fprintf(stderr, "%lu %s\n", (unsigned long)blocks,
+               fprintf(stderr, "%lld %s\n", (long long)blocks,
                    blocks == 1 ? "block" : "blocks");
        }
        archive_read_free(a);
@@ -1292,54 +1297,60 @@ mode_pass(struct cpio *cpio, const char 
  * that an input of '.' means the name should be unchanged.  GNU cpio
  * treats '.' as a literal new name.
  */
-static const char *
-cpio_rename(const char *name)
+void
+cpio_rename(struct archive_entry *entry)
 {
-       static char buff[1024];
+       char *buff = NULL, *p, *ret = NULL;
        FILE *t;
-       char *p, *ret;
+       size_t n = 0;
+       ssize_t r;
 #if defined(_WIN32) && !defined(__CYGWIN__)
        FILE *to;
 
        t = fopen("CONIN$", "r");
        if (t == NULL)
-               return (name);
+               return;
        to = fopen("CONOUT$", "w");
        if (to == NULL) {
                fclose(t);
-               return (name);
+               return;
        }
-       fprintf(to, "%s (Enter/./(new name))? ", name);
+       fprintf(to, "%s (Enter/./(new name))? ", archive_entry_pathname(entry));
        fclose(to);
 #else
        t = fopen("/dev/tty", "r+");
        if (t == NULL)
-               return (name);
-       fprintf(t, "%s (Enter/./(new name))? ", name);
+               return;
+       fprintf(t, "%s (Enter/./(new name))? ", archive_entry_pathname(entry));
        fflush(t);
 #endif
 
-       p = fgets(buff, sizeof(buff), t);
+       r = getline(&buff, &n, t);
        fclose(t);
-       if (p == NULL)
+       if (r < 1)
                /* End-of-file is a blank line. */
-               return (NULL);
+               goto done;
+       p = buff;
 
        while (*p == ' ' || *p == '\t')
                ++p;
        if (*p == '\n' || *p == '\0')
                /* Empty line. */
-               return (NULL);
-       if (*p == '.' && p[1] == '\n')
+               goto done;
+       if (*p == '.' && p[1] == '\n') {
                /* Single period preserves original name. */
-               return (name);
+               free(buff);
+               return;
+       }
        ret = p;
        /* Trim the final newline. */
        while (*p != '\0' && *p != '\n')
                ++p;
        /* Overwrite the final \n with a null character. */
        *p = '\0';
-       return (ret);
+done:
+       archive_entry_set_pathname(entry, ret);
+       free(buff);
 }
 
 static void

Index: pkgsrc/archivers/libarchive/files/cpio/cpio.h
diff -u pkgsrc/archivers/libarchive/files/cpio/cpio.h:1.11 pkgsrc/archivers/libarchive/files/cpio/cpio.h:1.12
--- pkgsrc/archivers/libarchive/files/cpio/cpio.h:1.11  Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/cpio/cpio.h       Wed Apr 15 08:46:33 2026
@@ -71,8 +71,6 @@ struct cpio {
 
        /* Work data. */
        struct archive   *matching;
-       char             *buff;
-       size_t            buff_size;
        char             *ppbuff;
 };
 

Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.21 pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.21        Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html     Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:32 2026 -->
 <!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.21 pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.21 Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html      Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.21 pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.21    Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.21 pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.21 Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html      Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.21 pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.21        Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html     Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.21 pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.21   Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html        Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.21 pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.21      Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html   Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:30 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.21 pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.21       Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html    Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:30 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.21 pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.21 Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html      Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.21 pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.21   Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html        Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.21 pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.21   Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html        Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.21 pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.21 Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html      Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.21 pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.21        Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html     Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/tar.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.21 pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.22
--- pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.21  Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/tar.5.html       Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:30 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>

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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.20    Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:32 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.20        Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html     Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:32 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.20  Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html       Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:32 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.20  Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html       Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.20   Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html        Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.20   Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html        Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.20    Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.20 Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html      Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.20  Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html       Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.20  Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html       Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.20    Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.20  Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html       Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.20     Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html  Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.20    Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.20     Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html  Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.20      Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html   Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.20   Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html        Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.20 Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html      Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.20   Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html        Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:28 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.20 Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html      Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.20   Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html        Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.20 Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html      Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.20    Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.20   Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html        Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.20    Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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.20 pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.21
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.20   Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html        Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:35 2026 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>

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.15 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.15   Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html        Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:32 2026 -->
 <!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.17 pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.18
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.17  Thu Mar 26 11:20:05 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html       Wed Apr 15 08:46:33 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:27 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:33 2026 -->
 <!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.17 pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.18
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.17 Thu Mar 26 11:20:06 2026
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html      Wed Apr 15 08:46:34 2026
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue Mar 10 09:57:29 2026 -->
+<!-- CreationDate: Mon Apr 13 12:57:34 2026 -->
 <!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/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/libarchive/archive.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.27 pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.28
--- pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.27 Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive.h      Wed Apr 15 08:46:35 2026
@@ -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 3008006
+#define        ARCHIVE_VERSION_NUMBER 3008007
 
 #include <sys/stat.h>
 #include <stddef.h>  /* for wchar_t */
@@ -177,7 +177,7 @@ __LA_DECL int               archive_version_number(vo
 /*
  * Textual name/version of the library, useful for version displays.
  */
-#define        ARCHIVE_VERSION_ONLY_STRING "3.8.6"
+#define        ARCHIVE_VERSION_ONLY_STRING "3.8.7"
 #define        ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING
 __LA_DECL const char * archive_version_string(void);
 

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_check_magic.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_check_magic.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/archive_check_magic.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/archive_check_magic.c:1.8      Sun Nov  2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_check_magic.c  Wed Apr 15 08:46:35 2026
@@ -148,14 +148,14 @@ __archive_check_magic(struct archive *a,
        if (!handle_type) {
                errmsg("PROGRAMMER ERROR: Function ");
                errmsg(function);
-               errmsg(" invoked with invalid archive handle.\n");
+               errmsg(" invoked with invalid archive handle\n");
                diediedie();
        }
 
        if (a->magic != magic) {
                archive_set_error(a, -1,
                    "PROGRAMMER ERROR: Function '%s' invoked"
-                   " on '%s' archive object, which is not supported.",
+                   " on '%s' archive object, which is not supported",
                    function,
                    handle_type);
                a->state = ARCHIVE_STATE_FATAL;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_bzip2.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_bzip2.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_bzip2.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_bzip2.c:1.8   Sun Nov  2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_bzip2.c       Wed Apr 15 08:46:35 2026
@@ -127,8 +127,11 @@ archive_compressor_bzip2_options(struct 
 
        if (strcmp(key, "compression-level") == 0) {
                if (value == NULL || !(value[0] >= '0' && value[0] <= '9') ||
-                   value[1] != '\0')
-                       return (ARCHIVE_WARN);
+                   value[1] != '\0') {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression-level invalid");
+                       return (ARCHIVE_FAILED);
+               }
                data->compression_level = value[0] - '0';
                /* Make '0' be a synonym for '1'. */
                /* This way, bzip2 compressor supports the same 0..9
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_gzip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_gzip.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_gzip.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_gzip.c:1.8    Sun Nov  2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_gzip.c        Wed Apr 15 08:46:35 2026
@@ -160,8 +160,11 @@ archive_compressor_gzip_options(struct a
 
        if (strcmp(key, "compression-level") == 0) {
                if (value == NULL || !(value[0] >= '0' && value[0] <= '9') ||
-                   value[1] != '\0')
-                       return (ARCHIVE_WARN);
+                   value[1] != '\0') {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression-level invalid");
+                       return (ARCHIVE_FAILED);
+               }
                data->compression_level = value[0] - '0';
                return (ARCHIVE_OK);
        }
@@ -172,8 +175,11 @@ archive_compressor_gzip_options(struct a
        if (strcmp(key, "original-filename") == 0) {
                free((void*)data->original_filename);
                data->original_filename = NULL;
-               if (value)
+               if (value) {
                        data->original_filename = strdup(value);
+                       if (data->original_filename == NULL)
+                               return (ARCHIVE_WARN);
+               }
                return (ARCHIVE_OK);
        }
 

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.23 pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.24
--- pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.23   Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h        Wed Apr 15 08:46:35 2026
@@ -28,7 +28,7 @@
 #define        ARCHIVE_ENTRY_H_INCLUDED
 
 /* Note: Compiler will complain if this does not match archive.h! */
-#define        ARCHIVE_VERSION_NUMBER 3008006
+#define        ARCHIVE_VERSION_NUMBER 3008007
 
 /*
  * Note: archive_entry.h is for use outside of libarchive; the

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_options.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_options.c:1.5 pkgsrc/archivers/libarchive/files/libarchive/archive_options.c:1.6
--- pkgsrc/archivers/libarchive/files/libarchive/archive_options.c:1.5  Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_options.c      Wed Apr 15 08:46:35 2026
@@ -90,7 +90,9 @@ _archive_set_either_option(struct archiv
        if (r2 == ARCHIVE_FATAL)
                return (ARCHIVE_FATAL);
 
-       if (r2 == ARCHIVE_WARN - 1)
+       if (r1 == ARCHIVE_WARN - 1)
+               return r2;
+       if (r2 == ARCHIVE_WARN -1)
                return r1;
        return r1 > r2 ? r1 : r2;
 }
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.5 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c:1.6
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c:1.5        Mon Apr 28 10:31:34 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_uuencode.c    Wed Apr 15 08:46:35 2026
@@ -28,6 +28,9 @@
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -105,12 +108,20 @@ archive_filter_uuencode_options(struct a
        struct private_uuencode *state = (struct private_uuencode *)f->data;
 
        if (strcmp(key, "mode") == 0) {
+               int64_t val;
+
                if (value == NULL) {
                        archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
                            "mode option requires octal digits");
                        return (ARCHIVE_FAILED);
                }
-               state->mode = (int)atol8(value, strlen(value)) & 0777;
+               val = atol8(value, strlen(value));
+               if (val < 0 || val > INT_MAX) {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "invalid mode option");
+                       return (ARCHIVE_FAILED);
+               }
+               state->mode = (int)val & 0777;
                return (ARCHIVE_OK);
        } else if (strcmp(key, "name") == 0) {
                if (value == NULL) {
@@ -277,14 +288,19 @@ atol8(const char *p, size_t char_cnt)
 {
        int64_t l;
        int digit;
-        
+
+       if (char_cnt == 0)
+               return (-1);
+
        l = 0;
        while (char_cnt-- > 0) {
                if (*p >= '0' && *p <= '7')
                        digit = *p - '0';
                else
-                       break;
+                       return (-1);
                p++;
+               if (l > (INT64_MAX >> 3))
+                       return (-1);
                l <<= 3;
                l |= digit;
        }

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_pathmatch.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_pathmatch.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/archive_pathmatch.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/archive_pathmatch.c:1.4        Fri Apr 12 15:39:50 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_pathmatch.c    Wed Apr 15 08:46:35 2026
@@ -202,7 +202,7 @@ pm(const char *p, const char *s, int fla
                        if (*p == '\0')
                                return (1);
                        while (*s) {
-                               if (archive_pathmatch(p, s, flags))
+                               if (pm(p, s, flags))
                                        return (1);
                                ++s;
                        }
@@ -307,7 +307,7 @@ pm_w(const wchar_t *p, const wchar_t *s,
                        if (*p == L'\0')
                                return (1);
                        while (*s) {
-                               if (archive_pathmatch_w(p, s, flags))
+                               if (pm_w(p, s, flags))
                                        return (1);
                                ++s;
                        }
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lz4.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lz4.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lz4.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lz4.c:1.4     Fri Apr 12 15:39:52 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lz4.c Wed Apr 15 08:46:35 2026
@@ -160,8 +160,11 @@ archive_filter_lz4_options(struct archiv
        if (strcmp(key, "compression-level") == 0) {
                int val;
                if (value == NULL || !((val = value[0] - '0') >= 1 && val <= 9) ||
-                   value[1] != '\0')
-                       return (ARCHIVE_WARN);
+                   value[1] != '\0') {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression-level invalid");
+                       return (ARCHIVE_FAILED);
+               }
 
 #ifndef HAVE_LZ4HC_H
                if(val >= 3)
@@ -184,8 +187,11 @@ archive_filter_lz4_options(struct archiv
        }
        if (strcmp(key, "block-size") == 0) {
                if (value == NULL || !(value[0] >= '4' && value[0] <= '7') ||
-                   value[1] != '\0')
-                       return (ARCHIVE_WARN);
+                   value[1] != '\0') {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "block-size invalid");
+                       return (ARCHIVE_FAILED);
+               }
                data->block_maximum_size = value[0] - '0';
                return (ARCHIVE_OK);
        }
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lzop.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lzop.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lzop.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lzop.c:1.4    Fri Apr 12 15:39:52 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lzop.c        Wed Apr 15 08:46:35 2026
@@ -211,8 +211,11 @@ archive_write_lzop_options(struct archiv
 
        if (strcmp(key, "compression-level") == 0) {
                if (value == NULL || !(value[0] >= '1' && value[0] <= '9') ||
-                   value[1] != '\0')
-                       return (ARCHIVE_WARN);
+                   value[1] != '\0') {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression-level invalid");
+                       return (ARCHIVE_FAILED);
+               }
                data->compression_level = value[0] - '0';
                return (ARCHIVE_OK);
        }

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd8_private.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd8_private.h:1.2 pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd8_private.h:1.3
--- pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd8_private.h:1.2    Tue May 26 09:16:42 2020
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_ppmd8_private.h        Wed Apr 15 08:46:35 2026
@@ -83,12 +83,6 @@ typedef struct
   UInt16 BinSumm[25][64];
 } CPpmd8;
 
-void Ppmd8_Construct(CPpmd8 *p);
-Bool Ppmd8_Alloc(CPpmd8 *p, UInt32 size);
-void Ppmd8_Free(CPpmd8 *p);
-void Ppmd8_Init(CPpmd8 *p, unsigned maxOrder, unsigned restoreMethod);
-#define Ppmd8_WasAllocated(p) ((p)->Base != NULL)
-
 
 /* ---------- Internal Functions ---------- */
 
@@ -104,30 +98,11 @@ extern const Byte PPMD8_kExpEscape[16];
   #define Ppmd8_GetStats(p, ctx) ((CPpmd_State *)Ppmd8_GetPtr((p), ((ctx)->Stats)))
 #endif
 
-void Ppmd8_Update1(CPpmd8 *p);
-void Ppmd8_Update1_0(CPpmd8 *p);
-void Ppmd8_Update2(CPpmd8 *p);
-void Ppmd8_UpdateBin(CPpmd8 *p);
-
 #define Ppmd8_GetBinSumm(p) \
     &p->BinSumm[p->NS2Indx[Ppmd8Context_OneState(p->MinContext)->Freq - 1]][ \
     p->NS2BSIndx[Ppmd8_GetContext(p, p->MinContext->Suffix)->NumStats] + \
     p->PrevSuccess + p->MinContext->Flags + ((p->RunLength >> 26) & 0x20)]
 
-CPpmd_See *Ppmd8_MakeEscFreq(CPpmd8 *p, unsigned numMasked, UInt32 *scale);
-
-
-/* ---------- Decode ---------- */
-
-Bool Ppmd8_RangeDec_Init(CPpmd8 *p);
-#define Ppmd8_RangeDec_IsFinishedOK(p) ((p)->Code == 0)
-int Ppmd8_DecodeSymbol(CPpmd8 *p); /* returns: -1 as EndMarker, -2 as DataError */
-
-/* ---------- Encode ---------- */
-
-#define Ppmd8_RangeEnc_Init(p) { (p)->Low = 0; (p)->Range = 0xFFFFFFFF; }
-void Ppmd8_RangeEnc_FlushData(CPpmd8 *p);
-void Ppmd8_EncodeSymbol(CPpmd8 *p, int symbol); /* symbol = -1 means EndMarker */
 
 typedef struct
 {

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read.c:1.17 pkgsrc/archivers/libarchive/files/libarchive/archive_read.c:1.18
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read.c:1.17    Sun Nov  2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read.c Wed Apr 15 08:46:35 2026
@@ -171,7 +171,7 @@ static int64_t
 client_skip_proxy(struct archive_read_filter *self, int64_t request)
 {
        if (request < 0)
-               __archive_errx(1, "Negative skip requested.");
+               __archive_errx(1, "Negative skip requested");
        if (request == 0)
                return 0;
 
@@ -379,7 +379,7 @@ archive_read_set_callback_data2(struct a
                if (a->client.dataset == NULL)
                {
                        archive_set_error(&a->archive, ENOMEM,
-                               "No memory.");
+                               "No memory");
                        return ARCHIVE_FATAL;
                }
                a->client.nodes = 1;
@@ -388,7 +388,7 @@ archive_read_set_callback_data2(struct a
        if (iindex > a->client.nodes - 1)
        {
                archive_set_error(&a->archive, EINVAL,
-                       "Invalid index specified.");
+                       "Invalid index specified");
                return ARCHIVE_FATAL;
        }
        a->client.dataset[iindex].data = client_data;
@@ -409,14 +409,14 @@ archive_read_add_callback_data(struct ar
            "archive_read_add_callback_data");
        if (iindex > a->client.nodes) {
                archive_set_error(&a->archive, EINVAL,
-                       "Invalid index specified.");
+                       "Invalid index specified");
                return ARCHIVE_FATAL;
        }
        p = realloc(a->client.dataset, sizeof(*a->client.dataset)
                * (++(a->client.nodes)));
        if (p == NULL) {
                archive_set_error(&a->archive, ENOMEM,
-                       "No memory.");
+                       "No memory");
                return ARCHIVE_FATAL;
        }
        a->client.dataset = (struct archive_read_data_node *)p;
@@ -625,7 +625,7 @@ _archive_read_next_header2(struct archiv
                r1 = archive_read_data_skip(&a->archive);
                if (r1 == ARCHIVE_EOF)
                        archive_set_error(&a->archive, EIO,
-                           "Premature end-of-file.");
+                           "Premature end-of-file");
                if (r1 == ARCHIVE_EOF || r1 == ARCHIVE_FATAL) {
                        a->archive.state = ARCHIVE_STATE_FATAL;
                        return (ARCHIVE_FATAL);
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.17 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c:1.18
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c:1.17     Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_iso9660.c  Wed Apr 15 08:46:35 2026
@@ -1322,7 +1322,7 @@ archive_read_format_iso9660_read_header(
                        archive_set_error(&a->archive,
                            ARCHIVE_ERRNO_FILE_FORMAT,
                            "Pathname cannot be converted "
-                           "from %s to current locale.",
+                           "from %s to current locale",
                            archive_string_conversion_charset_name(
                              iso9660->sconv_utf16be));
 
@@ -1400,7 +1400,7 @@ archive_read_format_iso9660_read_header(
                                archive_set_error(&a->archive,
                                    ARCHIVE_ERRNO_FILE_FORMAT,
                                    "Linkname cannot be converted "
-                                   "from %s to current locale.",
+                                   "from %s to current locale",
                                    archive_string_conversion_charset_name(
                                      iso9660->sconv_utf16be));
                                rd_r = ARCHIVE_WARN;
@@ -1663,7 +1663,7 @@ zisofs_read_data(struct archive_read *a,
                        r = inflateInit(&zisofs->stream);
                if (r != Z_OK) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "Can't initialize zisofs decompression.");
+                           "Can't initialize zisofs decompression");
                        return (ARCHIVE_FATAL);
                }
                zisofs->stream_valid = 1;
@@ -1728,7 +1728,7 @@ zisofs_read_data(struct archive_read *a,
        (void)size;/* UNUSED */
        (void)offset;/* UNUSED */
        archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-           "zisofs is not supported on this platform.");
+           "zisofs is not supported on this platform");
        return (ARCHIVE_FAILED);
 }
 
@@ -2756,11 +2756,19 @@ parse_rockridge_ZF1(struct file_info *fi
 {
 
        if (data[0] == 0x70 && data[1] == 0x7a && data_length == 12) {
-               /* paged zlib */
-               file->pz = 1;
-               file->pz_log2_bs = data[3];
-               file->pz_uncompressed_size = archive_le32dec(&data[4]);
-       }
+        /* paged zlib */
+        file->pz = 1;
+        file->pz_log2_bs = data[3];
+        if (file->pz_log2_bs < 15 || file->pz_log2_bs > 17) {
+            /* TODO: Return an error here instead of silently
+             * disabling zisofs. That requires propagating an
+             * error return through parse_rockridge() and its
+             * callers. */
+            file->pz = 0;
+            return;
+        }
+        file->pz_uncompressed_size = archive_le32dec(&data[4]);
+    }
 }
 
 static void

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c:1.9 pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c:1.9       Mon Apr 28 10:31:34 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_append_filter.c   Wed Apr 15 08:46:35 2026
@@ -104,6 +104,10 @@ archive_read_append_filter(struct archiv
       strcpy(str, "lrzip");
       r1 = archive_read_support_filter_lrzip(_a);
       break;
+    case ARCHIVE_FILTER_GRZIP:
+      strcpy(str, "grzip");
+      r1 = archive_read_support_filter_grzip(_a);
+      break;
     default:
       archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
           "Invalid filter code specified");
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_xz.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_xz.c:1.9 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_xz.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_xz.c:1.9      Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_xz.c  Wed Apr 15 08:46:35 2026
@@ -29,6 +29,9 @@
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -376,23 +379,33 @@ archive_compressor_xz_options(struct arc
 
        if (strcmp(key, "compression-level") == 0) {
                if (value == NULL || !(value[0] >= '0' && value[0] <= '9') ||
-                   value[1] != '\0')
-                       return (ARCHIVE_WARN);
+                   value[1] != '\0') {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression-level invalid");
+                       return (ARCHIVE_FAILED);
+               }
                data->compression_level = value[0] - '0';
                if (data->compression_level > 9)
                        data->compression_level = 9;
                return (ARCHIVE_OK);
        } else if (strcmp(key, "threads") == 0) {
                char *endptr;
+               unsigned long val;
 
-               if (value == NULL)
-                       return (ARCHIVE_WARN);
+               if (value == NULL) {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "threads option requires an argument");
+                       return (ARCHIVE_FAILED);
+               }
                errno = 0;
-               data->threads = (int)strtoul(value, &endptr, 10);
-               if (errno != 0 || *endptr != '\0') {
+               val = strtoul(value, &endptr, 10);
+               if (errno != 0 || *endptr != '\0' || val > (unsigned)INT_MAX) {
                        data->threads = 1;
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "threads invalid");
+                       return (ARCHIVE_FAILED);
                }
+               data->threads = (int)val;
                if (data->threads == 0) {
 #ifdef HAVE_LZMA_STREAM_ENCODER_MT
                        data->threads = lzma_cputhreads();
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.9 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c:1.9 Tue Jul  1 15:14:44 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c     Wed Apr 15 08:46:35 2026
@@ -1381,7 +1381,7 @@ iso9660_options(struct archive_write *a,
                        archive_set_error(&a->archive,
                            ARCHIVE_ERRNO_MISC,
                            "Option ``%s'' "
-                           "is not supported on this platform.", key);
+                           "is not supported on this platform", key);
                        return (ARCHIVE_FATAL);
 #endif
                }
@@ -1503,7 +1503,7 @@ iso9660_options(struct archive_write *a,
                                archive_set_error(&a->archive,
                                    ARCHIVE_ERRNO_MISC,
                                    "``zisofs'' "
-                                   "is not supported on this platform.");
+                                   "is not supported on this platform");
                                return (ARCHIVE_FATAL);
 #endif
                        }
@@ -1539,7 +1539,7 @@ iso9660_write_header(struct archive_writ
        if (archive_entry_filetype(entry) == AE_IFLNK
            && iso9660->opt.rr == OPT_RR_DISABLED) {
                archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                   "Ignore symlink file.");
+                   "Ignore symlink file");
                iso9660->cur_file = NULL;
                return (ARCHIVE_WARN);
        }
@@ -1549,7 +1549,7 @@ iso9660_write_header(struct archive_writ
                        archive_set_error(&a->archive,
                            ARCHIVE_ERRNO_MISC,
                            "Ignore over %lld bytes file. "
-                           "This file too large.",
+                           "This file too large",
                            MULTI_EXTENT_SIZE);
                                iso9660->cur_file = NULL;
                        return (ARCHIVE_WARN);
@@ -2103,7 +2103,7 @@ iso9660_close(struct archive_write *a)
 
        if (iso9660->directories_too_deep != NULL) {
                archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                   "%s: Directories too deep.",
+                   "%s: Directories too deep",
                    archive_entry_pathname(
                        iso9660->directories_too_deep->file->entry));
                return (ARCHIVE_WARN);
@@ -3799,7 +3799,7 @@ set_file_identifier(unsigned char *bp, i
                isoent = isoent_find_entry(vdd->rootent, ids);
                if (isoent == NULL) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "Not Found %s `%s'.",
+                           "Not Found %s `%s'",
                            label, ids);
                        return (ARCHIVE_FATAL);
                }
@@ -7080,7 +7080,7 @@ isoent_make_path_table(struct archive_wr
                 * See also ISO9660 Standard 9.4.
                 */
                archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                   "Too many directories(%d) over 65535.", dir_number);
+                   "Too many directories(%d) over 65535", dir_number);
                return (ARCHIVE_FATAL);
        }
 
@@ -7203,7 +7203,7 @@ isoent_create_boot_catalog(struct archiv
                else {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
                            "Boot image file(``%s'') size is too big "
-                           "for fd type.",
+                           "for fd type",
                            iso9660->el_torito.boot_filename.s);
                        return (ARCHIVE_FATAL);
                }
@@ -7964,7 +7964,7 @@ zisofs_extract(struct archive_write *a, 
                        r = inflateInit(&zisofs->stream);
                if (r != Z_OK) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "Can't initialize zisofs decompression.");
+                           "Can't initialize zisofs decompression");
                        return (ARCHIVE_FATAL);
                }
                zisofs->stream_valid = 1;

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_posix.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_posix.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_posix.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_posix.c:1.15 Tue Dec 23 14:01:23 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_posix.c      Wed Apr 15 08:46:35 2026
@@ -921,7 +921,7 @@ next_entry(struct archive_read_disk *a, 
                r = archive_match_path_excluded(a->matching, entry);
                if (r < 0) {
                        archive_set_error(&(a->archive), errno,
-                           "Failed : %s", archive_error_string(a->matching));
+                           "%s", archive_error_string(a->matching));
                        return (r);
                }
                if (r) {
@@ -1035,7 +1035,7 @@ next_entry(struct archive_read_disk *a, 
                r = archive_match_time_excluded(a->matching, entry);
                if (r < 0) {
                        archive_set_error(&(a->archive), errno,
-                           "Failed : %s", archive_error_string(a->matching));
+                           "%s", archive_error_string(a->matching));
                        return (r);
                }
                if (r) {
@@ -1061,7 +1061,7 @@ next_entry(struct archive_read_disk *a, 
                r = archive_match_owner_excluded(a->matching, entry);
                if (r < 0) {
                        archive_set_error(&(a->archive), errno,
-                           "Failed : %s", archive_error_string(a->matching));
+                           "%s", archive_error_string(a->matching));
                        return (r);
                }
                if (r) {
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cpio.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cpio.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cpio.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cpio.c:1.15        Tue Jan  6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cpio.c     Wed Apr 15 08:46:35 2026
@@ -397,7 +397,7 @@ archive_read_format_cpio_read_header(str
                        return (ARCHIVE_FATAL);
                }
                archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                   "Pathname can't be converted from %s to current locale.",
+                   "Pathname can't be converted from %s to current locale",
                    archive_string_conversion_charset_name(sconv));
                r = ARCHIVE_WARN;
        }
@@ -426,7 +426,7 @@ archive_read_format_cpio_read_header(str
                        archive_set_error(&a->archive,
                            ARCHIVE_ERRNO_FILE_FORMAT,
                            "Linkname can't be converted from %s to "
-                           "current locale.",
+                           "current locale",
                            archive_string_conversion_charset_name(sconv));
                        r = ARCHIVE_WARN;
                }
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c:1.15 Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_lha.c      Wed Apr 15 08:46:35 2026
@@ -613,7 +613,7 @@ archive_read_format_lha_read_header(stru
                archive_set_error(&a->archive,
                        ARCHIVE_ERRNO_FILE_FORMAT,
                        "Pathname cannot be converted "
-                       "from %s to Unicode.",
+                       "from %s to Unicode",
                        archive_string_conversion_charset_name(lha->sconv_dir));
                err = ARCHIVE_FATAL;
        } else if (0 != archive_mstring_get_wcs(&a->archive, &conv_buffer, &conv_buffer_p))
@@ -634,7 +634,7 @@ archive_read_format_lha_read_header(stru
                archive_set_error(&a->archive,
                        ARCHIVE_ERRNO_FILE_FORMAT,
                        "Pathname cannot be converted "
-                       "from %s to Unicode.",
+                       "from %s to Unicode",
                        archive_string_conversion_charset_name(lha->sconv_fname));
                err = ARCHIVE_FATAL;
        }
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.15 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c:1.15 Sun Nov  2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar.c      Wed Apr 15 08:46:35 2026
@@ -955,7 +955,7 @@ archive_read_format_rar_read_header(stru
 
     if ((h = __archive_read_ahead(a, 7, NULL)) == NULL) {
       archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                        "Failed to read next header.");
+                        "Failed to read next header");
       return (ARCHIVE_FATAL);
     }
     p = h;
@@ -1005,7 +1005,7 @@ archive_read_format_rar_read_header(stru
         archive_entry_set_is_data_encrypted(entry, 1);
         rar->has_encrypted_entries = 1;
          archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                          "RAR encryption support unavailable.");
+                          "RAR encryption support unavailable");
         return (ARCHIVE_FATAL);
       }
 
@@ -1141,7 +1141,7 @@ archive_read_format_rar_read_data(struct
 
   default:
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Unsupported compression method for RAR file.");
+                      "Unsupported compression method for RAR file");
     ret = ARCHIVE_FATAL;
     break;
   }
@@ -1432,14 +1432,14 @@ read_header(struct archive_read *a, stru
   else
   {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "RAR solid archive support unavailable.");
+                      "RAR solid archive support unavailable");
     return (ARCHIVE_FATAL);
   }
 
   if ((h = __archive_read_ahead(a, (size_t)header_size - 7, NULL)) == NULL)
   {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Failed to read full header content.");
+                      "Failed to read full header content");
     return (ARCHIVE_FATAL);
   }
 
@@ -1471,7 +1471,7 @@ read_header(struct archive_read *a, stru
     archive_entry_set_is_data_encrypted(entry, 1);
     rar->has_encrypted_entries = 1;
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "RAR encryption support unavailable.");
+                      "RAR encryption support unavailable");
     /* Since it is only the data part itself that is encrypted we can at least
        extract information about the currently processed entry and don't need
        to return ARCHIVE_FATAL here. */
@@ -1503,7 +1503,7 @@ read_header(struct archive_read *a, stru
   if (rar->packed_size < 0 || rar->unp_size < 0)
   {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Invalid sizes specified.");
+                      "Invalid sizes specified");
     return (ARCHIVE_FATAL);
   }
 
@@ -1516,19 +1516,19 @@ read_header(struct archive_read *a, stru
     size_t distance = p - (const char *)h;
     if (rar->packed_size > INT64_MAX - header_size) {
       archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                        "Extended header size too large.");
+                        "Extended header size too large");
       return (ARCHIVE_FATAL);
     }
     header_size += rar->packed_size;
     if ((uintmax_t)header_size > SIZE_MAX) {
       archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                        "Unable to read extended header data.");
+                        "Unable to read extended header data");
       return (ARCHIVE_FATAL);
     }
     /* Make sure we have the extended data. */
     if ((h = __archive_read_ahead(a, (size_t)header_size - 7, NULL)) == NULL) {
       archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                        "Failed to read extended header data.");
+                        "Failed to read extended header data");
       return (ARCHIVE_FATAL);
     }
     p = h;
@@ -1547,7 +1547,7 @@ read_header(struct archive_read *a, stru
     newptr = realloc(rar->filename, newsize);
     if (newptr == NULL) {
       archive_set_error(&a->archive, ENOMEM,
-                        "Couldn't allocate memory.");
+                        "Couldn't allocate memory");
       return (ARCHIVE_FATAL);
     }
     rar->filename = newptr;
@@ -1701,7 +1701,7 @@ read_header(struct archive_read *a, stru
       newsize = sizeof(*rar->dbo) * (rar->nodes + 1);
       if ((newdbo = realloc(rar->dbo, newsize)) == NULL)
       {
-        archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory.");
+        archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory");
         return (ARCHIVE_FATAL);
       }
       rar->dbo = newdbo;
@@ -1715,7 +1715,7 @@ read_header(struct archive_read *a, stru
       if (rar->packed_size > INT64_MAX - a->filter->position)
       {
         archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                          "Unable to store offsets.");
+                          "Unable to store offsets");
         return (ARCHIVE_FATAL);
       }
       rar->dbo[rar->cursor].start_offset = a->filter->position;
@@ -1734,7 +1734,7 @@ read_header(struct archive_read *a, stru
   newsize = filename_size + 1;
   if ((newptr = realloc(rar->filename_save, newsize)) == NULL)
   {
-    archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory.");
+    archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory");
     return (ARCHIVE_FATAL);
   }
   rar->filename_save = newptr;
@@ -1745,7 +1745,7 @@ read_header(struct archive_read *a, stru
   free(rar->dbo);
   if ((rar->dbo = calloc(1, sizeof(*rar->dbo))) == NULL)
   {
-    archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory.");
+    archive_set_error(&a->archive, ENOMEM, "Couldn't allocate memory");
     return (ARCHIVE_FATAL);
   }
   rar->dbo[0].header_size = header_size;
@@ -1776,7 +1776,7 @@ read_header(struct archive_read *a, stru
   __archive_read_consume(a, header_size - 7);
   if (rar->packed_size > INT64_MAX - a->filter->position) {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Unable to store offsets.");
+                      "Unable to store offsets");
     return (ARCHIVE_FATAL);
   }
   rar->dbo[0].start_offset = a->filter->position;
@@ -1848,7 +1848,7 @@ read_header(struct archive_read *a, stru
       return (ARCHIVE_FATAL);
     }
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Pathname cannot be converted from %s to current locale.",
+                      "Pathname cannot be converted from %s to current locale",
                       archive_string_conversion_charset_name(fn_sconv));
     ret = (ARCHIVE_WARN);
   }
@@ -1979,13 +1979,13 @@ read_symlink_stored(struct archive_read 
   if ((uintmax_t)rar->packed_size > SIZE_MAX)
   {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Unable to read link.");
+                      "Unable to read link");
     return (ARCHIVE_FATAL);
   }
   if ((h = rar_read_ahead(a, (size_t)rar->packed_size, NULL)) == NULL)
   {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Failed to read link.");
+                      "Failed to read link");
     return (ARCHIVE_FATAL);
   }
   p = h;
@@ -2000,7 +2000,7 @@ read_symlink_stored(struct archive_read 
       return (ARCHIVE_FATAL);
     }
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "link cannot be converted from %s to current locale.",
+                      "link cannot be converted from %s to current locale",
                       archive_string_conversion_charset_name(sconv));
     ret = (ARCHIVE_WARN);
   }
@@ -2201,7 +2201,7 @@ read_data_compressed(struct archive_read
 
           case 3:
             archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                              "Parsing filters is unsupported.");
+                              "Parsing filters is unsupported");
             return (ARCHIVE_FAILED);
 
           case 4:
@@ -2473,7 +2473,7 @@ parse_codes(struct archive_read *a)
           free(precode.tree);
           free(precode.table);
           archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                            "Internal error extracting RAR file.");
+                            "Internal error extracting RAR file");
           return (ARCHIVE_FATAL);
         }
 
@@ -2548,7 +2548,8 @@ parse_codes(struct archive_read *a)
       return (r);
   }
 
-  if (!rar->dictionary_size || !rar->lzss.window)
+  if (!rar->dictionary_size || !rar->lzss.window ||
+      (unsigned int)(rar->lzss.mask + 1) < rar->dictionary_size)
   {
     /* Seems as though dictionary sizes are not used. Even so, minimize
      * memory usage as much as possible.
@@ -2562,13 +2563,13 @@ parse_codes(struct archive_read *a)
       new_size = rar_fls((unsigned int)rar->unp_size) << 1;
     if (new_size == 0) {
       archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                        "Zero window size is invalid.");
+                        "Zero window size is invalid");
       return (ARCHIVE_FATAL);
     }
     new_window = realloc(rar->lzss.window, new_size);
     if (new_window == NULL) {
       archive_set_error(&a->archive, ENOMEM,
-                        "Unable to allocate memory for uncompressed data.");
+                        "Unable to allocate memory for uncompressed data");
       return (ARCHIVE_FATAL);
     }
     rar->lzss.window = (unsigned char *)new_window;
@@ -2686,7 +2687,7 @@ create_code(struct archive_read *a, stru
   code->numallocatedentries = 0;
   if (new_node(code) < 0) {
     archive_set_error(&a->archive, ENOMEM,
-                      "Unable to allocate memory for node data.");
+                      "Unable to allocate memory for node data");
     return (ARCHIVE_FATAL);
   }
   code->numentries = 1;
@@ -2769,12 +2770,12 @@ add_value(struct archive_read *a, struct
 
       if ((repeatnode = new_node(code)) < 0) {
         archive_set_error(&a->archive, ENOMEM,
-                          "Unable to allocate memory for node data.");
+                          "Unable to allocate memory for node data");
         return (ARCHIVE_FATAL);
       }
       if ((nextnode = new_node(code)) < 0) {
         archive_set_error(&a->archive, ENOMEM,
-                          "Unable to allocate memory for node data.");
+                          "Unable to allocate memory for node data");
         return (ARCHIVE_FATAL);
       }
 
@@ -2794,7 +2795,7 @@ add_value(struct archive_read *a, struct
       {
         if (new_node(code) < 0) {
           archive_set_error(&a->archive, ENOMEM,
-                            "Unable to allocate memory for node data.");
+                            "Unable to allocate memory for node data");
           return (ARCHIVE_FATAL);
         }
         code->tree[lastnode].branches[bit] = code->numentries++;
@@ -2863,13 +2864,13 @@ make_table_recurse(struct archive_read *
   if (!code->tree)
   {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Huffman tree was not created.");
+                      "Huffman tree was not created");
     return (ARCHIVE_FATAL);
   }
   if (node < 0 || node >= code->numentries)
   {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                      "Invalid location to Huffman tree specified.");
+                      "Invalid location to Huffman tree specified");
     return (ARCHIVE_FATAL);
   }
 
@@ -3149,6 +3150,11 @@ copy_from_lzss_window(struct archive_rea
 
   windowoffs = lzss_offset_for_position(&rar->lzss, startpos);
   firstpart = lzss_size(&rar->lzss) - windowoffs;
+  if (length > lzss_size(&rar->lzss)) {
+    archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+                      "Bad RAR file data");
+    return (ARCHIVE_FATAL);
+  }
   if (firstpart < 0) {
     archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
                       "Bad RAR file data");
@@ -3180,7 +3186,7 @@ copy_from_lzss_window_to_unp(struct arch
     if ((rar->unp_buffer = malloc(rar->unp_buffer_size)) == NULL)
     {
       archive_set_error(&a->archive, ENOMEM,
-                        "Unable to allocate memory for uncompressed data.");
+                        "Unable to allocate memory for uncompressed data");
       return (ARCHIVE_FATAL);
     }
   }
@@ -3315,7 +3321,8 @@ parse_filter(struct archive_read *a, con
   else
     blocklength = prog ? prog->oldfilterlength : 0;
 
-  if (blocklength > rar->dictionary_size)
+  if (blocklength > rar->dictionary_size ||
+      blocklength > (uint32_t)(rar->lzss.mask + 1))
     return 0;
 
   registers[3] = PROGRAM_SYSTEM_GLOBAL_ADDRESS;
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.15 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c:1.15 Sun Nov  2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_xar.c      Wed Apr 15 08:46:35 2026
@@ -733,7 +733,7 @@ xar_read_header(struct archive_read *a, 
                }
                archive_set_error(&a->archive,
                    ARCHIVE_ERRNO_FILE_FORMAT,
-                   "Gname cannot be converted from %s to current locale.",
+                   "Gname cannot be converted from %s to current locale",
                    archive_string_conversion_charset_name(xar->sconv));
                r = ARCHIVE_WARN;
        }
@@ -748,7 +748,7 @@ xar_read_header(struct archive_read *a, 
                }
                archive_set_error(&a->archive,
                    ARCHIVE_ERRNO_FILE_FORMAT,
-                   "Uname cannot be converted from %s to current locale.",
+                   "Uname cannot be converted from %s to current locale",
                    archive_string_conversion_charset_name(xar->sconv));
                r = ARCHIVE_WARN;
        }
@@ -762,7 +762,7 @@ xar_read_header(struct archive_read *a, 
                }
                archive_set_error(&a->archive,
                    ARCHIVE_ERRNO_FILE_FORMAT,
-                   "Pathname cannot be converted from %s to current locale.",
+                   "Pathname cannot be converted from %s to current locale",
                    archive_string_conversion_charset_name(xar->sconv));
                r = ARCHIVE_WARN;
        }
@@ -778,7 +778,7 @@ xar_read_header(struct archive_read *a, 
                }
                archive_set_error(&a->archive,
                    ARCHIVE_ERRNO_FILE_FORMAT,
-                   "Linkname cannot be converted from %s to current locale.",
+                   "Linkname cannot be converted from %s to current locale",
                    archive_string_conversion_charset_name(xar->sconv));
                r = ARCHIVE_WARN;
        }
@@ -1008,7 +1008,7 @@ move_reading_point(struct archive_read *
                        if (pos == ARCHIVE_FAILED) {
                                archive_set_error(&(a->archive),
                                    ARCHIVE_ERRNO_MISC,
-                                   "Cannot seek.");
+                                   "Cannot seek");
                                return (ARCHIVE_FAILED);
                        }
                        xar->offset = pos;
@@ -1476,7 +1476,7 @@ decompression_init(struct archive_read *
                        r = inflateInit(&(xar->stream));
                if (r != Z_OK) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "Couldn't initialize zlib stream.");
+                           "Couldn't initialize zlib stream");
                        return (ARCHIVE_FATAL);
                }
                xar->stream_valid = 1;
@@ -1691,7 +1691,7 @@ decompress(struct archive_read *a, const
                default:
                        archive_set_error(&(a->archive),
                            ARCHIVE_ERRNO_MISC,
-                           "%s decompression failed(%d)",
+                           "%s decompression failed (%d)",
                            (xar->entry_encoding == XZ)?"xz":"lzma",
                            r);
                        return (ARCHIVE_FATAL);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_write.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write.c:1.15   Tue Dec 23 14:01:23 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write.c        Wed Apr 15 08:46:35 2026
@@ -742,7 +742,7 @@ _archive_write_header(struct archive *_a
 
        if (a->format_write_header == NULL) {
                archive_set_error(&(a->archive), -1,
-                   "Format must be set before you can write to an archive.");
+                   "Format must be set before you can write to an archive");
                a->archive.state = ARCHIVE_STATE_FATAL;
                return (ARCHIVE_FATAL);
        }
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_pax.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_pax.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_pax.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_pax.c:1.15    Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_pax.c Wed Apr 15 08:46:35 2026
@@ -1062,7 +1062,7 @@ archive_write_pax_header(struct archive_
        }
 
        /* If numeric GID is too large, add 'gid' to pax extended attrs. */
-       if ((unsigned int)archive_entry_gid(entry_main) >= (1 << 18)) {
+       if (archive_entry_gid(entry_main) >= (1 << 18)) {
                add_pax_attr_int(&(pax->pax_header), "gid",
                    archive_entry_gid(entry_main));
                need_extension = 1;
@@ -1078,7 +1078,7 @@ archive_write_pax_header(struct archive_
        }
 
        /* If numeric UID is too large, add 'uid' to pax extended attrs. */
-       if ((unsigned int)archive_entry_uid(entry_main) >= (1 << 18)) {
+       if (archive_entry_uid(entry_main) >= (1 << 18)) {
                add_pax_attr_int(&(pax->pax_header), "uid",
                    archive_entry_uid(entry_main));
                need_extension = 1;
@@ -1471,7 +1471,7 @@ archive_write_pax_header(struct archive_
                if (r < ARCHIVE_WARN) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
                            "archive_write_pax_header: "
-                           "'x' header failed?!  This can't happen.\n");
+                           "'x' header failed?!  This can't happen");
                        archive_entry_free(entry_main);
                        archive_string_free(&entry_name);
                        return (ARCHIVE_FATAL);

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c:1.14 pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c:1.15
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c:1.14       Tue Jan  6 11:55:23 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c    Wed Apr 15 08:46:35 2026
@@ -947,7 +947,7 @@ next_entry(struct archive_read_disk *a, 
                r = archive_match_path_excluded(a->matching, entry);
                if (r < 0) {
                        archive_set_error(&(a->archive), errno,
-                           "Failed : %s", archive_error_string(a->matching));
+                           "%s", archive_error_string(a->matching));
                        return (r);
                }
                if (r) {
@@ -1019,7 +1019,7 @@ next_entry(struct archive_read_disk *a, 
                r = archive_match_time_excluded(a->matching, entry);
                if (r < 0) {
                        archive_set_error(&(a->archive), errno,
-                           "Failed : %s", archive_error_string(a->matching));
+                           "%s", archive_error_string(a->matching));
                        return (r);
                }
                if (r) {
@@ -1045,7 +1045,7 @@ next_entry(struct archive_read_disk *a, 
                r = archive_match_owner_excluded(a->matching, entry);
                if (r < 0) {
                        archive_set_error(&(a->archive), errno,
-                           "Failed : %s", archive_error_string(a->matching));
+                           "%s", archive_error_string(a->matching));
                        return (r);
                }
                if (r) {
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.14 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c:1.15
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c:1.14    Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_zip.c Wed Apr 15 08:46:35 2026
@@ -398,16 +398,17 @@ archive_write_zip_options(struct archive
                return (ret);
        } else if (strcmp(key, "compression-level") == 0) {
                char *endptr;
+               unsigned long v;
 
                if (val == NULL)
                        return (ARCHIVE_WARN);
                errno = 0;
-               zip->compression_level = (short)strtoul(val, &endptr, 10);
-               if (errno != 0 || *endptr != '\0' || zip->compression_level < 0 ||
-                       zip->compression_level > 9) {
+               v = strtoul(val, &endptr, 10);
+               if (errno != 0 || *endptr != '\0' || v > 9) {
                        zip->compression_level = 6; // set to default
                        return (ARCHIVE_WARN);
                }
+               zip->compression_level = (short)v;
 
                if (zip->compression_level == 0) {
                        zip->requested_compression = COMPRESSION_STORE;
@@ -435,17 +436,19 @@ archive_write_zip_options(struct archive
                }
        } else if (strcmp(key, "threads") == 0) {
                char *endptr;
+               unsigned long v;
 
                if (val == NULL)
                        return (ARCHIVE_FAILED);
                errno = 0;
-               zip->threads = (short)strtoul(val, &endptr, 10);
-               if (errno != 0 || *endptr != '\0') {
+               v = strtoul(val, &endptr, 10);
+               if (errno != 0 || *endptr != '\0' || v > SHRT_MAX) {
                        zip->threads = 1;
                        archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC,
                            "Illegal value `%s'", val);
                        return (ARCHIVE_FAILED);
                }
+               zip->threads = (short)v;
                if (zip->threads == 0) {
 #ifdef HAVE_LZMA_STREAM_ENCODER_MT
                        zip->threads = lzma_cputhreads();

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_grzip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_grzip.c:1.3 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_grzip.c:1.4
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_grzip.c:1.3        Fri Apr 12 15:39:51 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_grzip.c    Wed Apr 15 08:46:35 2026
@@ -62,7 +62,7 @@ archive_read_support_filter_grzip(struct
 {
        struct archive_read *a = (struct archive_read *)_a;
 
-       if (__archive_read_register_bidder(a, NULL, NULL,
+       if (__archive_read_register_bidder(a, NULL, "grzip",
                                &grzip_bidder_vtable) != ARCHIVE_OK)
                return (ARCHIVE_FATAL);
 
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lrzip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lrzip.c:1.3 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lrzip.c:1.4
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lrzip.c:1.3   Fri Apr 12 15:39:52 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_lrzip.c       Wed Apr 15 08:46:35 2026
@@ -97,8 +97,11 @@ archive_write_lrzip_options(struct archi
        struct write_lrzip *data = (struct write_lrzip *)f->data;
 
        if (strcmp(key, "compression") == 0) {
-               if (value == NULL)
-                       return (ARCHIVE_WARN);
+               if (value == NULL) {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression option requires an argument");
+                       return (ARCHIVE_FAILED);
+               }
                else if (strcmp(value, "bzip2") == 0)
                        data->compression = bzip2;
                else if (strcmp(value, "gzip") == 0)
@@ -109,13 +112,19 @@ archive_write_lrzip_options(struct archi
                        data->compression = none;
                else if (strcmp(value, "zpaq") == 0)
                        data->compression = zpaq;
-               else
-                       return (ARCHIVE_WARN);
+               else {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression invalid");
+                       return (ARCHIVE_FAILED);
+               }
                return (ARCHIVE_OK);
        } else if (strcmp(key, "compression-level") == 0) {
                if (value == NULL || !(value[0] >= '1' && value[0] <= '9') ||
-                   value[1] != '\0')
-                       return (ARCHIVE_WARN);
+                   value[1] != '\0') {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression-level invalid");
+                       return (ARCHIVE_FAILED);
+               }
                data->compression_level = value[0] - '0';
                return (ARCHIVE_OK);
        }

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.7 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c:1.7  Thu Nov 20 06:08:27 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lz4.c      Wed Apr 15 08:46:35 2026
@@ -363,7 +363,7 @@ lz4_filter_read(struct archive_read_filt
        case READ_LEGACY_STREAM:
                /* Reading a lz4 stream already failed. */
                archive_set_error(&self->archive->archive,
-                   ARCHIVE_ERRNO_MISC, "Invalid sequence.");
+                   ARCHIVE_ERRNO_MISC, "Invalid sequence");
                return (ARCHIVE_FATAL);
        case READ_DEFAULT_BLOCK:
                ret = lz4_filter_read_default_stream(self, p);
@@ -377,7 +377,7 @@ lz4_filter_read(struct archive_read_filt
                break;
        default:
                archive_set_error(&self->archive->archive,
-                   ARCHIVE_ERRNO_MISC, "Program error.");
+                   ARCHIVE_ERRNO_MISC, "Program error");
                return (ARCHIVE_FATAL);
        }
 
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lzop.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lzop.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lzop.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lzop.c:1.7 Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_lzop.c     Wed Apr 15 08:46:35 2026
@@ -110,7 +110,7 @@ archive_read_support_filter_lzop(struct 
 {
        struct archive_read *a = (struct archive_read *)_a;
 
-       if (__archive_read_register_bidder(a, NULL, NULL,
+       if (__archive_read_register_bidder(a, NULL, "lzop",
                                &lzop_bidder_vtable) != ARCHIVE_OK)
                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.7 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c:1.7       Mon Apr 28 10:31:34 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_b64encode.c   Wed Apr 15 08:46:35 2026
@@ -28,6 +28,9 @@
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -116,12 +119,20 @@ archive_filter_b64encode_options(struct 
        struct private_b64encode *state = (struct private_b64encode *)f->data;
 
        if (strcmp(key, "mode") == 0) {
+               int64_t val;
+
                if (value == NULL) {
                        archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
                            "mode option requires octal digits");
                        return (ARCHIVE_FAILED);
                }
-               state->mode = (int)atol8(value, strlen(value)) & 0777;
+               val = atol8(value, strlen(value));
+               if (val < 0 || val > INT_MAX) {
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "invalid mode option");
+                       return (ARCHIVE_FAILED);
+               }
+               state->mode = (int)val & 0777;
                return (ARCHIVE_OK);
        } else if (strcmp(key, "name") == 0) {
                if (value == NULL) {
@@ -286,14 +297,19 @@ atol8(const char *p, size_t char_cnt)
 {
        int64_t l;
        int digit;
-        
+
+       if (char_cnt == 0)
+               return (-1);
+
        l = 0;
        while (char_cnt-- > 0) {
                if (*p >= '0' && *p <= '7')
                        digit = *p - '0';
                else
-                       break;
+                       return (-1);
                p++;
+               if (l > (INT64_MAX >> 3))
+                       return (-1);
                l <<= 3;
                l |= digit;
        }
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_zstd.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_zstd.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_zstd.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_zstd.c:1.7    Sun Nov  2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_add_filter_zstd.c        Wed Apr 15 08:46:35 2026
@@ -245,7 +245,9 @@ archive_compressor_zstd_options(struct a
        if (strcmp(key, "compression-level") == 0) {
                intmax_t level;
                if (string_to_number(value, &level) != ARCHIVE_OK) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression-level invalid");
+                       return (ARCHIVE_FAILED);
                }
                /* If we don't have the library, hard-code the max level */
                int minimum = CLEVEL_MIN;
@@ -263,14 +265,18 @@ archive_compressor_zstd_options(struct a
                }
 #endif
                if (level < minimum || level > maximum) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "compression-level out of range");
+                       return (ARCHIVE_FAILED);
                }
                data->compression_level = (int)level;
                return (ARCHIVE_OK);
        } else if (strcmp(key, "threads") == 0) {
                intmax_t threads;
                if (string_to_number(value, &threads) != ARCHIVE_OK) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "threads invalid");
+                       return (ARCHIVE_FAILED);
                }
 
 #if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN)
@@ -286,7 +292,9 @@ archive_compressor_zstd_options(struct a
                }
 #endif
                if (threads < 0 || threads > INT_MAX) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "threads out of rnage");
+                       return (ARCHIVE_FAILED);
                }
                data->threads = (int)threads;
                return (ARCHIVE_OK);
@@ -296,26 +304,34 @@ archive_compressor_zstd_options(struct a
                return (ARCHIVE_OK);
        } else if (strcmp(key, "min-frame-in") == 0) {
                if (string_to_size(value, &data->min_frame_in) != ARCHIVE_OK) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "min-frame-in invalid");
+                       return (ARCHIVE_FAILED);
                }
                return (ARCHIVE_OK);
        } else if (strcmp(key, "min-frame-out") == 0 ||
            strcmp(key, "min-frame-size") == 0) {
                if (string_to_size(value, &data->min_frame_out) != ARCHIVE_OK) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "min-frame-out invalid");
+                       return (ARCHIVE_FAILED);
                }
                return (ARCHIVE_OK);
        } else if (strcmp(key, "max-frame-in") == 0 ||
            strcmp(key, "max-frame-size") == 0) {
                if (string_to_size(value, &data->max_frame_in) != ARCHIVE_OK ||
                    data->max_frame_in < 1024) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "max-frame-size invalid");
+                       return (ARCHIVE_FAILED);
                }
                return (ARCHIVE_OK);
        } else if (strcmp(key, "max-frame-out") == 0) {
                if (string_to_size(value, &data->max_frame_out) != ARCHIVE_OK ||
                    data->max_frame_out < 1024) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "max-frame-out invalid");
+                       return (ARCHIVE_FAILED);
                }
                return (ARCHIVE_OK);
 #endif
@@ -323,22 +339,30 @@ archive_compressor_zstd_options(struct a
        else if (strcmp(key, "long") == 0) {
                intmax_t long_distance;
                if (string_to_number(value, &long_distance) != ARCHIVE_OK) {
-                       return (ARCHIVE_WARN);
+                       archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "long invalid");
+                       return (ARCHIVE_FAILED);
                }
 #if HAVE_ZSTD_H && HAVE_ZSTD_compressStream && ZSTD_VERSION_NUMBER >= MINVER_LONG
                ZSTD_bounds bounds = ZSTD_cParam_getBounds(ZSTD_c_windowLog);
                if (ZSTD_isError(bounds.error)) {
                        int max_distance = ((int)(sizeof(size_t) == 4 ? 30 : 31));
-                       if (((int)long_distance) < 10 || (int)long_distance > max_distance)
-                               return (ARCHIVE_WARN);
+                       if (((int)long_distance) < 10 || (int)long_distance > max_distance) {
+                               archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "long out of range");
+                               return (ARCHIVE_FAILED);
+                       }
                } else {
-                       if ((int)long_distance < bounds.lowerBound || (int)long_distance > bounds.upperBound)
-                               return (ARCHIVE_WARN);
+                       if ((int)long_distance < bounds.lowerBound || (int)long_distance > bounds.upperBound) {
+                               archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
+                           "long out of range");
+                               return (ARCHIVE_FAILED);
+                       }
                }
 #else
                int max_distance = ((int)(sizeof(size_t) == 4 ? 30 : 31));
                if (((int)long_distance) < 10 || (int)long_distance > max_distance)
-                   return (ARCHIVE_WARN);
+                   return (ARCHIVE_FAILED);
 #endif
                data->long_distance = (int)long_distance;
                return (ARCHIVE_OK);

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.16 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c:1.17
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c:1.16        Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_7zip.c     Wed Apr 15 08:46:35 2026
@@ -975,7 +975,7 @@ archive_read_format_7zip_read_header(str
                archive_set_error(&a->archive,
                    ARCHIVE_ERRNO_FILE_FORMAT,
                    "Pathname cannot be converted "
-                   "from %s to current locale.",
+                   "from %s to current locale",
                    archive_string_conversion_charset_name(zip->sconv));
                ret = ARCHIVE_WARN;
        }
@@ -1581,7 +1581,7 @@ init_decompression(struct archive_read *
                            -15 /* Don't check for zlib header */);
                if (r != Z_OK) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "Couldn't initialize zlib stream.");
+                           "Couldn't initialize zlib stream");
                        return (ARCHIVE_FAILED);
                }
                zip->stream_valid = 1;
@@ -1723,7 +1723,7 @@ decompress(struct archive_read *a, struc
                        if (bytes < 0) {
                                archive_set_error(&(a->archive),
                                    ARCHIVE_ERRNO_MISC,
-                                   "BCJ2 conversion Failed");
+                                   "BCJ2 conversion failed");
                                return (ARCHIVE_FAILED);
                        }
                        zip->main_stream_bytes_remaining -=
@@ -1777,7 +1777,7 @@ decompress(struct archive_read *a, struc
                default:
                        archive_set_error(&(a->archive),
                            ARCHIVE_ERRNO_MISC,
-                               "Decompression failed(%d)",
+                               "Decompression failed (%d)",
                            r);
                        return (ARCHIVE_FAILED);
                }
@@ -1979,7 +1979,7 @@ decompress(struct archive_read *a, struc
                bytes = Bcj2_Decode(zip, bcj2_next_out, bcj2_avail_out);
                if (bytes < 0) {
                        archive_set_error(&(a->archive),
-                           ARCHIVE_ERRNO_MISC, "BCJ2 conversion Failed");
+                           ARCHIVE_ERRNO_MISC, "BCJ2 conversion failed");
                        return (ARCHIVE_FAILED);
                }
                zip->main_stream_bytes_remaining -=

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c:1.11 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c:1.12
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c:1.11 Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c      Wed Apr 15 08:46:35 2026
@@ -980,7 +980,7 @@ archive_read_format_cab_read_header(stru
                archive_set_error(&a->archive,
                    ARCHIVE_ERRNO_FILE_FORMAT,
                    "Pathname cannot be converted "
-                   "from %s to current locale.",
+                   "from %s to current locale",
                    archive_string_conversion_charset_name(sconv));
                err = ARCHIVE_WARN;
        }
@@ -1026,7 +1026,7 @@ archive_read_format_cab_read_data(struct
                *offset = 0;
                archive_clear_error(&a->archive);
                archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                   "Cannot restore this file split in multivolume.");
+                   "Cannot restore this file split in multivolume");
                return (ARCHIVE_FAILED);
        default:
                break;
@@ -1175,6 +1175,9 @@ cab_checksum_finish(struct archive_read 
        l = 4;
        if (cab->cfheader.flags & RESERVE_PRESENT)
                l += cab->cfheader.cfdata;
+       if (cfdata->memimage == NULL) {
+               return (ARCHIVE_FAILED);
+       }
        cfdata->sum_calculated = cab_checksum_cfdata(
            cfdata->memimage + CFDATA_cbData, l, cfdata->sum_calculated);
        if (cfdata->sum_calculated != cfdata->sum) {
@@ -1362,7 +1365,7 @@ cab_read_ahead_cfdata(struct archive_rea
                return (cab_read_ahead_cfdata_lzx(a, avail));
        default: /* Unsupported compression. */
                archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                   "Unsupported CAB compression : %s",
+                   "Unsupported CAB compression: %s",
                    cab->entry_cffolder->compname);
                *avail = ARCHIVE_FAILED;
                return (NULL);
@@ -1449,7 +1452,7 @@ cab_read_ahead_cfdata_deflate(struct arc
                            -15 /* Don't check for zlib header */);
                if (r != Z_OK) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "Can't initialize deflate decompression.");
+                           "Can't initialize deflate decompression");
                        *avail = ARCHIVE_FATAL;
                        return (NULL);
                }
@@ -1669,7 +1672,7 @@ cab_read_ahead_cfdata_lzx(struct archive
                    cab->entry_cffolder->compdata);
                if (r != ARCHIVE_OK) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "Can't initialize LZX decompression.");
+                           "Can't initialize LZX decompression");
                        *avail = ARCHIVE_FATAL;
                        return (NULL);
                }
@@ -1687,6 +1690,13 @@ cab_read_ahead_cfdata_lzx(struct archive
                    cab->uncompressed_buffer + cab->xstrm.total_out;
                cab->xstrm.avail_out =
                    cfdata->uncompressed_size - cab->xstrm.total_out;
+               
+               if ((size_t)cfdata->uncompressed_size > cab->uncompressed_buffer_size) {
+                       archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
+                               "Invalid CFDATA uncompressed size");
+                       *avail = ARCHIVE_FATAL;
+                       return (NULL);
+               }
 
                d = __archive_read_ahead(a, 1, &bytes_avail);
                if (d == NULL) {
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_7zip.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_7zip.c:1.11 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_7zip.c:1.12
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_7zip.c:1.11   Sun Nov  2 08:52:15 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_7zip.c        Wed Apr 15 08:46:35 2026
@@ -28,6 +28,9 @@
 #ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -333,6 +336,7 @@ string_to_number(const char *string, int
 
        if (string == NULL || *string == '\0')
                return (ARCHIVE_WARN);
+       errno = 0;
        *numberp = strtoimax(string, &end, 10);
        if (end == string || *end != '\0' || errno == EOVERFLOW) {
                *numberp = 0;
@@ -487,8 +491,9 @@ _7z_options(struct archive_write *a, con
                }
 
                char *end = NULL;
+               errno = 0;
                long lvl = strtol(value, &end, 10);
-               if (end == NULL || *end != '\0') {
+               if (errno != 0 || end == NULL || *end != '\0') {
                        archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC,
                                "parsing compression-level option value failed `%s'", value);
                        return (ARCHIVE_FAILED);
@@ -525,7 +530,7 @@ _7z_options(struct archive_write *a, con
                if (string_to_number(value, &threads) != ARCHIVE_OK) {
                        return (ARCHIVE_WARN);
                }
-               if (threads < 0) {
+               if (threads < 0 || threads > INT_MAX) {
                        return (ARCHIVE_WARN);
                }
                if (threads == 0) {
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_xar.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_xar.c:1.11 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_xar.c:1.12
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_xar.c:1.11    Tue Dec 23 14:01:24 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_xar.c Wed Apr 15 08:46:35 2026
@@ -526,12 +526,13 @@ xar_options(struct archive_write *a, con
        }
        if (strcmp(key, "threads") == 0) {
                char *endptr;
+               unsigned long val;
 
                if (value == NULL)
                        return (ARCHIVE_FAILED);
                errno = 0;
-               xar->opt_threads = (int)strtoul(value, &endptr, 10);
-               if (errno != 0 || *endptr != '\0') {
+               val = strtoul(value, &endptr, 10);
+               if (errno != 0 || *endptr != '\0' || val > (unsigned)INT_MAX) {
                        xar->opt_threads = 1;
                        archive_set_error(&(a->archive),
                            ARCHIVE_ERRNO_MISC,
@@ -539,6 +540,7 @@ xar_options(struct archive_write *a, con
                            value);
                        return (ARCHIVE_FAILED);
                }
+               xar->opt_threads = (int)val;
                if (xar->opt_threads == 0) {
 #ifdef HAVE_LZMA_STREAM_ENCODER_MT
                        xar->opt_threads = lzma_cputhreads();

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.10 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c:1.10        Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_rar5.c     Wed Apr 15 08:46:35 2026
@@ -675,7 +675,7 @@ static int run_filter(struct archive_rea
        rar->cstate.filtered_buf = malloc(flt->block_length);
        if(!rar->cstate.filtered_buf) {
                archive_set_error(&a->archive, ENOMEM,
-                   "Can't allocate memory for filter data.");
+                   "Can't allocate memory for filter data");
                return ARCHIVE_FATAL;
        }
 
@@ -1851,7 +1851,7 @@ static int process_head_file(struct arch
            rar->cstate.window_buf == NULL) {
                archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
                                  "Declared solid file, but no window buffer "
-                                 "initialized yet.");
+                                 "initialized yet");
                return ARCHIVE_FATAL;
        }
 
@@ -1861,7 +1861,7 @@ static int process_head_file(struct arch
            (rar->file.dir == 0 && window_size == 0))
        {
                archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                   "Declared dictionary size is not supported.");
+                   "Declared dictionary size is not supported");
                return ARCHIVE_FATAL;
        }
 
@@ -1873,7 +1873,7 @@ static int process_head_file(struct arch
                {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
                            "Window size for this solid file doesn't match "
-                           "the window size used in previous solid file. ");
+                           "the window size used in previous solid file");
                        return ARCHIVE_FATAL;
                }
        }
@@ -1899,7 +1899,7 @@ static int process_head_file(struct arch
                if(!new_window_buf) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
                                "Not enough memory when trying to realloc the window "
-                               "buffer.");
+                               "buffer");
                        return ARCHIVE_FATAL;
                }
 
@@ -3057,7 +3057,7 @@ static int parse_filter(struct archive_r
        filt = add_new_filter(rar);
        if(filt == NULL) {
                archive_set_error(&ar->archive, ENOMEM,
-                   "Can't allocate memory for a filter descriptor.");
+                   "Can't allocate memory for a filter descriptor");
                return ARCHIVE_FATAL;
        }
 
@@ -3506,7 +3506,7 @@ static int merge_block(struct archive_re
        rar->vol.push_buf = malloc(block_size + 8);
        if(!rar->vol.push_buf) {
                archive_set_error(&a->archive, ENOMEM,
-                   "Can't allocate memory for a merge block buffer.");
+                   "Can't allocate memory for a merge block buffer");
                return ARCHIVE_FATAL;
        }
 
@@ -3539,7 +3539,7 @@ static int merge_block(struct archive_re
                if(partial_offset + cur_block_size > block_size) {
                        archive_set_error(&a->archive,
                            ARCHIVE_ERRNO_PROGRAMMER,
-                           "Consumed too much data when merging blocks.");
+                           "Consumed too much data when merging blocks");
                        return ARCHIVE_FATAL;
                }
 
@@ -3808,7 +3808,7 @@ static int push_data_ready(struct archiv
         * as an internal error. */
 
        archive_set_error(&a->archive, ARCHIVE_ERRNO_PROGRAMMER,
-           "Error: premature end of data_ready stack");
+           "Premature end of data_ready stack");
        return ARCHIVE_FATAL;
 }
 
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_cpio_newc.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_cpio_newc.c:1.10 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_cpio_newc.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_cpio_newc.c:1.10      Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_cpio_newc.c   Wed Apr 15 08:46:35 2026
@@ -322,7 +322,7 @@ write_header(struct archive_write *a, st
                    h + c_filesize_offset, c_filesize_size);
        if (ret) {
                archive_set_error(&a->archive, ERANGE,
-                   "File is too large for this format.");
+                   "File is too large for this format");
                ret_final = ARCHIVE_FAILED;
                goto exit_write_header;
        }

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.20 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c:1.21
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c:1.20 Thu Nov 20 06:08:27 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c      Wed Apr 15 08:46:35 2026
@@ -1202,7 +1202,7 @@ set_conversion_failed_error(struct archi
                return (ARCHIVE_FATAL);
        }
        archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-           "%s can't be converted from %s to current locale.",
+           "%s can't be converted from %s to current locale",
            name, archive_string_conversion_charset_name(sconv));
        return (ARCHIVE_WARN);
 }
@@ -2255,12 +2255,12 @@ pax_attribute_SCHILY_acl(struct archive_
        if (r != ARCHIVE_OK) {
                if (r == ARCHIVE_FATAL) {
                        archive_set_error(&a->archive, ENOMEM,
-                           "%s %s", "Can't allocate memory for ",
+                           "%s %s", "Can't allocate memory for",
                            errstr);
                        return (r);
                }
                archive_set_error(&a->archive,
-                   ARCHIVE_ERRNO_MISC, "%s %s", "Parse error: ", errstr);
+                   ARCHIVE_ERRNO_MISC, "%s %s", "Parse error:", errstr);
        }
        return (r);
 }
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.20 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c:1.21
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c:1.20 Thu Nov 20 06:08:27 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_zip.c      Wed Apr 15 08:46:35 2026
@@ -1008,7 +1008,7 @@ zip_read_local_file_header(struct archiv
                archive_set_error(&a->archive,
                    ARCHIVE_ERRNO_FILE_FORMAT,
                    "Pathname cannot be converted "
-                   "from %s to current locale.",
+                   "from %s to current locale",
                    archive_string_conversion_charset_name(sconv));
                ret = ARCHIVE_WARN;
        }
@@ -1256,7 +1256,7 @@ zip_read_local_file_header(struct archiv
                                archive_set_error(&a->archive,
                                    ARCHIVE_ERRNO_FILE_FORMAT,
                                    "Symlink cannot be converted "
-                                   "from %s to current locale.",
+                                   "from %s to current locale",
                                    archive_string_conversion_charset_name(
                                        sconv));
                                ret = ARCHIVE_WARN;
@@ -1726,7 +1726,7 @@ zipx_xz_init(struct archive_read *a, str
        r = lzma_stream_decoder(&zip->zipx_lzma_stream, UINT64_MAX, 0);
        if (r != LZMA_OK) {
                archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC,
-                   "xz initialization failed(%d)",
+                   "xz initialization failed (%d)",
                    r);
 
                return (ARCHIVE_FAILED);
@@ -1778,7 +1778,7 @@ zipx_lzma_alone_init(struct archive_read
        r = lzma_alone_decoder(&zip->zipx_lzma_stream, UINT64_MAX);
        if (r != LZMA_OK) {
                archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC,
-                   "lzma initialization failed(%d)", r);
+                   "lzma initialization failed (%d)", r);
 
                return (ARCHIVE_FAILED);
        }
@@ -1921,7 +1921,7 @@ zip_read_data_zipx_xz(struct archive_rea
        switch(lz_ret) {
                case LZMA_DATA_ERROR:
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "xz data error (error %d)", (int) lz_ret);
+                           "xz data error (%d)", (int) lz_ret);
                        return (ARCHIVE_FATAL);
 
                case LZMA_NO_CHECK:
@@ -1930,7 +1930,7 @@ zip_read_data_zipx_xz(struct archive_rea
 
                default:
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "xz unknown error %d", (int) lz_ret);
+                           "xz unknown error (%d)", (int) lz_ret);
                        return (ARCHIVE_FATAL);
 
                case LZMA_STREAM_END:
@@ -2018,7 +2018,7 @@ zip_read_data_zipx_lzma_alone(struct arc
        switch(lz_ret) {
                case LZMA_DATA_ERROR:
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "lzma data error (error %d)", (int) lz_ret);
+                           "lzma data error (%d)", (int) lz_ret);
                        return (ARCHIVE_FATAL);
 
                /* This case is optional in lzma alone format. It can happen,
@@ -2041,7 +2041,7 @@ zip_read_data_zipx_lzma_alone(struct arc
 
                default:
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "lzma unknown error %d", (int) lz_ret);
+                           "lzma unknown error (%d)", (int) lz_ret);
                        return (ARCHIVE_FATAL);
        }
 
@@ -2261,7 +2261,7 @@ zipx_bzip2_init(struct archive_read *a, 
        r = BZ2_bzDecompressInit(&zip->bzstream, 0, 1);
        if(r != BZ_OK) {
                archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC,
-                   "bzip2 initialization failed(%d)",
+                   "bzip2 initialization failed (%d)",
                    r);
 
                return ARCHIVE_FAILED;
@@ -2527,7 +2527,7 @@ zip_deflate_init(struct archive_read *a,
                            -15 /* Don't check for zlib header */);
                if (r != Z_OK) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                           "Can't initialize ZIP decompression.");
+                           "Can't initialize ZIP decompression");
                        return (ARCHIVE_FATAL);
                }
                /* Stream structure has been set up. */
@@ -3193,7 +3193,7 @@ archive_read_format_zip_read_data(struct
                    != (zip->entry_uncompressed_bytes_read & UINT32_MAX)) {
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
                            "ZIP uncompressed data is wrong size "
-                           "(read %jd, expected %jd)\n",
+                           "(read %jd, expected %jd)",
                            (intmax_t)zip->entry_uncompressed_bytes_read,
                            (intmax_t)zip->entry->uncompressed_size);
                        return (ARCHIVE_FAILED);

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_string.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.19 pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.20
--- pkgsrc/archivers/libarchive/files/libarchive/archive_string.c:1.19  Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_string.c       Wed Apr 15 08:46:35 2026
@@ -1713,7 +1713,7 @@ get_sconv_object(struct archive *a, cons
                if (a != NULL) {
 #if HAVE_ICONV
                        archive_set_error(a, ARCHIVE_ERRNO_MISC,
-                           "iconv_open failed : Cannot handle ``%s''",
+                           "iconv_open failed: Cannot handle ``%s''",
                            (flag & SCONV_TO_CHARSET)?tc:fc);
 #else
                        archive_set_error(a, ARCHIVE_ERRNO_MISC,
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.19 pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.20
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c:1.19        Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_posix.c     Wed Apr 15 08:46:35 2026
@@ -2119,7 +2119,7 @@ restore_entry(struct archive_write_disk 
 
        if ((en == ENOENT) && (archive_entry_hardlink(a->entry) != NULL)) {
                archive_set_error(&a->archive, en,
-                   "Hard-link target '%s' does not exist.",
+                   "Hard-link target '%s' does not exist",
                    archive_entry_hardlink(a->entry));
                return (ARCHIVE_FAILED);
        }
@@ -4019,7 +4019,7 @@ set_fflags_platform(struct archive_write
 #elif defined(HAVE_CHFLAGS)
        if (S_ISLNK(a->st.st_mode)) {
                archive_set_error(&a->archive, errno,
-                   "Can't set file flags on symlink.");
+                   "Can't set file flags on symlink");
                return (ARCHIVE_WARN);
        }
        if (chflags(name, a->st.st_flags) == 0)
@@ -4578,7 +4578,7 @@ set_xattrs(struct archive_write_disk *a)
                } else
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
                            "Cannot restore extended "
-                           "attributes on this file system.");
+                           "attributes on this file system");
        }
 
        archive_string_free(&errlist);
@@ -4680,7 +4680,7 @@ set_xattrs(struct archive_write_disk *a)
                } else
                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
                            "Cannot restore extended "
-                           "attributes on this file system.");
+                           "attributes on this file system");
        }
 
        archive_string_free(&errlist);

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.13 pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.14
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.13      Sun Nov  2 08:52:14 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c   Wed Apr 15 08:46:35 2026
@@ -1516,7 +1516,7 @@ restore_entry(struct archive_write_disk 
 
        if ((en == ENOENT) && (archive_entry_hardlink(a->entry) != NULL)) {
                archive_set_error(&a->archive, en,
-                       "Hard-link target '%s' does not exist.",
+                       "Hard-link target '%s' does not exist",
                        archive_entry_hardlink(a->entry));
                return (ARCHIVE_FAILED);
        }

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.12 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c:1.13
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c:1.12  Sun Nov  2 08:52:15 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c       Wed Apr 15 08:46:35 2026
@@ -2262,7 +2262,7 @@ mtree_entry_exchange_same_entry(struct a
        if ((np->mode & AE_IFMT) != (file->mode & AE_IFMT)) {
                archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
                    "Found duplicate entries for `%s' with "
-                   "differing file types.",
+                   "differing file types",
                    np->pathname.s);
                return (ARCHIVE_FAILED);
        }

Index: pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.19 pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.20
--- pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.19       Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt    Wed Apr 15 08:46:35 2026
@@ -114,6 +114,8 @@ IF(ENABLE_TEST)
     test_read_format_ar.c
     test_read_format_cab.c
     test_read_format_cab_filename.c
+    test_read_format_cab_lzx_oob.c
+    test_read_format_cab_skip_malformed.c
     test_read_format_cpio_afio.c
     test_read_format_cpio_bin.c
     test_read_format_cpio_bin_Z.c
@@ -151,6 +153,7 @@ IF(ENABLE_TEST)
     test_read_format_isorr_new_bz2.c
     test_read_format_isorr_rr_moved.c
     test_read_format_isozisofs_bz2.c
+    test_read_format_iso_zisofs_overflow.c
     test_read_format_lha.c
     test_read_format_lha_bugfix_0.c
     test_read_format_lha_filename.c

Index: pkgsrc/archivers/libarchive/files/libarchive/test/list.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.22 pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.23
--- pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.22       Thu Mar 26 11:20:07 2026
+++ pkgsrc/archivers/libarchive/files/libarchive/test/list.h    Wed Apr 15 08:46:35 2026
@@ -191,6 +191,8 @@ DEFINE_TEST(test_pax_xattr_header)
 DEFINE_TEST(test_read_append_filter)
 DEFINE_TEST(test_read_append_filter_program)
 DEFINE_TEST(test_read_append_filter_wrong_program)
+DEFINE_TEST(test_read_append_grzip_filter)
+DEFINE_TEST(test_read_append_lzop_filter)
 DEFINE_TEST(test_read_append_wrong_filter)
 DEFINE_TEST(test_read_data_large)
 DEFINE_TEST(test_read_disk)
@@ -249,6 +251,7 @@ DEFINE_TEST(test_read_format_7zip_zstd_s
 DEFINE_TEST(test_read_format_ar)
 DEFINE_TEST(test_read_format_cab)
 DEFINE_TEST(test_read_format_cab_filename)
+DEFINE_TEST(test_read_format_cab_lzx_oob)
 DEFINE_TEST(test_read_format_cpio_afio)
 DEFINE_TEST(test_read_format_cpio_afio_broken)
 DEFINE_TEST(test_read_format_cpio_bin)
@@ -301,6 +304,7 @@ DEFINE_TEST(test_read_format_huge_rpm)
 DEFINE_TEST(test_read_format_iso_Z)
 DEFINE_TEST(test_read_format_iso_multi_extent)
 DEFINE_TEST(test_read_format_iso_xorriso)
+DEFINE_TEST(test_read_format_iso_zisofs_overflow)
 DEFINE_TEST(test_read_format_isojoliet_bz2)
 DEFINE_TEST(test_read_format_isojoliet_long)
 DEFINE_TEST(test_read_format_isojoliet_rr)
@@ -549,6 +553,7 @@ DEFINE_TEST(test_ustar_filename_encoding
 DEFINE_TEST(test_ustar_filename_encoding_fail_UTF16_win)
 DEFINE_TEST(test_ustar_filename_encoding_ru_RU_CP1251)
 DEFINE_TEST(test_ustar_filenames)
+DEFINE_TEST(test_v7tar_filename_encoding_fail_UTF16_win)
 DEFINE_TEST(test_warn_missing_hardlink_target)
 DEFINE_TEST(test_write_disk)
 DEFINE_TEST(test_write_disk_appledouble)

Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_pathmatch.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_pathmatch.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_pathmatch.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_pathmatch.c:1.4      Fri Apr 12 15:39:53 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_archive_pathmatch.c  Wed Apr 15 08:46:35 2026
@@ -285,4 +285,22 @@ DEFINE_TEST(test_archive_pathmatch)
            archive_pathmatch("a/b/c$", "a/b/c/d", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
        assertEqualInt(1,
            archive_pathmatch("b/c/d$", "a/b/c/d", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
+
+       /* Anchor characters within pattern not special. */
+       assertEqualInt(0,
+           archive_pathmatch("*^*", "a/b/c", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
+       assertEqualInt(1,
+           archive_pathmatch("*^*", "a^b", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
+       assertEqualInt(0,
+           archive_pathmatch("*$*", "a/b/c", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
+       assertEqualInt(1,
+           archive_pathmatch("*$*", "a$b", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
+       assertEqualInt(0,
+           archive_pathmatch("a*/^b/c", "a/b/c", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
+       assertEqualInt(1,
+           archive_pathmatch("a*/^b/c", "a/^b/c", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
+       assertEqualInt(0,
+           archive_pathmatch("a*/b$/c", "a/b/c", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
+       assertEqualInt(1,
+           archive_pathmatch("a*/b$/c", "a/b$/c", PATHMATCH_NO_ANCHOR_START | PATHMATCH_NO_ANCHOR_END));
 }
Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_read_set_format.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_read_set_format.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/test/test_read_set_format.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_read_set_format.c:1.4        Sun Nov  2 08:52:15 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_read_set_format.c    Wed Apr 15 08:46:35 2026
@@ -177,6 +177,40 @@ DEFINE_TEST(test_read_append_wrong_filte
   assertEqualInt(ARCHIVE_OK,archive_read_free(a));
 }
 
+DEFINE_TEST(test_read_append_lzop_filter)
+{
+  struct archive *a;
+  int r;
+
+  assert((a = archive_read_new()) != NULL);
+  assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR));
+  r = archive_read_append_filter(a, ARCHIVE_FILTER_LZOP);
+  if (archive_liblzo2_version() != NULL) {
+    assertEqualIntA(a, ARCHIVE_OK, r);
+  } else if (canLzop()) {
+    // We're using an external program
+    assertEqualIntA(a, ARCHIVE_WARN, r);
+  }
+
+  archive_read_free(a);
+}
+
+DEFINE_TEST(test_read_append_grzip_filter)
+{
+  struct archive *a;
+  int r;
+
+  assert((a = archive_read_new()) != NULL);
+  assertA(0 == archive_read_set_format(a, ARCHIVE_FORMAT_TAR));
+  r = archive_read_append_filter(a, ARCHIVE_FILTER_GRZIP);
+  // Grzip currently always uses an external program.
+  if (canGrzip()) {
+    assertEqualIntA(a, ARCHIVE_WARN, r);
+  }
+
+  archive_read_free(a);
+}
+
 DEFINE_TEST(test_read_append_filter_program)
 {
   struct archive_entry *ae;

Index: pkgsrc/archivers/libarchive/files/tar/bsdtar.c
diff -u pkgsrc/archivers/libarchive/files/tar/bsdtar.c:1.18 pkgsrc/archivers/libarchive/files/tar/bsdtar.c:1.19
--- pkgsrc/archivers/libarchive/files/tar/bsdtar.c:1.18 Sun Nov  2 08:52:15 2025
+++ pkgsrc/archivers/libarchive/files/tar/bsdtar.c      Wed Apr 15 08:46:36 2026
@@ -525,28 +525,28 @@ main(int argc, char **argv)
                        if (archive_match_include_date(bsdtar->matching,
                            ARCHIVE_MATCH_CTIME | ARCHIVE_MATCH_NEWER,
                            bsdtar->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case OPTION_NEWER_CTIME_THAN:
                        if (archive_match_include_file_time(bsdtar->matching,
                            ARCHIVE_MATCH_CTIME | ARCHIVE_MATCH_NEWER,
                            bsdtar->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case OPTION_NEWER_MTIME: /* GNU tar */
                        if (archive_match_include_date(bsdtar->matching,
                            ARCHIVE_MATCH_MTIME | ARCHIVE_MATCH_NEWER,
                            bsdtar->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case OPTION_NEWER_MTIME_THAN:
                        if (archive_match_include_file_time(bsdtar->matching,
                            ARCHIVE_MATCH_MTIME | ARCHIVE_MATCH_NEWER,
                            bsdtar->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case OPTION_NODUMP: /* star */
@@ -618,28 +618,28 @@ main(int argc, char **argv)
                        if (archive_match_include_date(bsdtar->matching,
                            ARCHIVE_MATCH_CTIME | ARCHIVE_MATCH_OLDER,
                            bsdtar->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case OPTION_OLDER_CTIME_THAN:
                        if (archive_match_include_file_time(bsdtar->matching,
                            ARCHIVE_MATCH_CTIME | ARCHIVE_MATCH_OLDER,
                            bsdtar->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case OPTION_OLDER_MTIME:
                        if (archive_match_include_date(bsdtar->matching,
                            ARCHIVE_MATCH_MTIME | ARCHIVE_MATCH_OLDER,
                            bsdtar->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case OPTION_OLDER_MTIME_THAN:
                        if (archive_match_include_file_time(bsdtar->matching,
                            ARCHIVE_MATCH_MTIME | ARCHIVE_MATCH_OLDER,
                            bsdtar->argument) != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case OPTION_ONE_FILE_SYSTEM: /* GNU tar */
@@ -819,7 +819,7 @@ main(int argc, char **argv)
                        if (archive_match_exclude_pattern_from_file(
                            bsdtar->matching, bsdtar->argument, 0)
                            != ARCHIVE_OK)
-                               lafe_errc(1, 0, "Error : %s",
+                               lafe_errc(1, 0, "%s",
                                    archive_error_string(bsdtar->matching));
                        break;
                case 'x': /* SUSv2 */
@@ -1026,7 +1026,7 @@ main(int argc, char **argv)
 
        if (bsdtar->return_value != 0)
                lafe_warnc(0,
-                   "Error exit delayed from previous errors.");
+                   "Error exit delayed from previous errors");
        return (bsdtar->return_value);
 }
 
Index: pkgsrc/archivers/libarchive/files/tar/write.c
diff -u pkgsrc/archivers/libarchive/files/tar/write.c:1.18 pkgsrc/archivers/libarchive/files/tar/write.c:1.19
--- pkgsrc/archivers/libarchive/files/tar/write.c:1.18  Tue Jan  6 11:55:24 2026
+++ pkgsrc/archivers/libarchive/files/tar/write.c       Wed Apr 15 08:46:36 2026
@@ -301,7 +301,7 @@ tar_mode_r(struct bsdtar *bsdtar)
                        archive_read_free(a);
                        close(bsdtar->fd);
                        lafe_errc(1, 0,
-                           "Cannot append to compressed archive.");
+                           "Cannot append to compressed archive");
                }
                /* Keep going until we hit end-of-archive */
                format = archive_format(a);
@@ -329,7 +329,7 @@ tar_mode_r(struct bsdtar *bsdtar)
                if (format != (int)(archive_format(a) & ARCHIVE_FORMAT_BASE_MASK)
                    && format != ARCHIVE_FORMAT_EMPTY) {
                        lafe_errc(1, 0,
-                           "Format %s is incompatible with the archive %s.",
+                           "Format %s is incompatible with the archive %s",
                            cset_get_format(bsdtar->cset), bsdtar->filename);
                }
        } else {
@@ -394,12 +394,12 @@ tar_mode_u(struct bsdtar *bsdtar)
                        archive_read_free(a);
                        close(bsdtar->fd);
                        lafe_errc(1, 0,
-                           "Cannot append to compressed archive.");
+                           "Cannot append to compressed archive");
                }
                if (archive_match_exclude_entry(bsdtar->matching,
                    ARCHIVE_MATCH_MTIME | ARCHIVE_MATCH_OLDER |
                    ARCHIVE_MATCH_EQUAL, entry) != ARCHIVE_OK)
-                       lafe_errc(1, 0, "Error : %s",
+                       lafe_errc(1, 0, "%s",
                            archive_error_string(bsdtar->matching));
                /* Record the last format determination we see */
                format = archive_format(a);
@@ -786,7 +786,7 @@ copy_file_data_block(struct bsdtar *bsdt
                                         * continue. */
                                        lafe_warnc(0,
                                            "%s: Truncated write; file may "
-                                           "have grown while being archived.",
+                                           "have grown while being archived",
                                            archive_entry_pathname(entry));
                                        return (0);
                                }
@@ -805,7 +805,7 @@ copy_file_data_block(struct bsdtar *bsdt
                        /* Write was truncated; warn but continue. */
                        lafe_warnc(0,
                            "%s: Truncated write; file may have grown "
-                           "while being archived.",
+                           "while being archived",
                            archive_entry_pathname(entry));
                        return (0);
                }
@@ -1052,14 +1052,14 @@ test_for_append(struct bsdtar *bsdtar)
        if (*bsdtar->argv == NULL && bsdtar->names_from_file == NULL)
                lafe_errc(1, 0, "no files or directories specified");
        if (bsdtar->filename == NULL)
-               lafe_errc(1, 0, "Cannot append to stdout.");
+               lafe_errc(1, 0, "Cannot append to stdout");
 
        if (stat(bsdtar->filename, &s) != 0)
                return;
 
        if (!S_ISREG(s.st_mode) && !S_ISBLK(s.st_mode))
                lafe_errc(1, 0,
-                   "Cannot append to %s: not a regular file.",
+                   "Cannot append to %s: not a regular file",
                    bsdtar->filename);
 
 /* Is this an appropriate check here on Windows? */

Index: pkgsrc/archivers/libarchive/files/tar/read.c
diff -u pkgsrc/archivers/libarchive/files/tar/read.c:1.10 pkgsrc/archivers/libarchive/files/tar/read.c:1.11
--- pkgsrc/archivers/libarchive/files/tar/read.c:1.10   Sun Nov  2 08:52:15 2025
+++ pkgsrc/archivers/libarchive/files/tar/read.c        Wed Apr 15 08:46:36 2026
@@ -255,7 +255,7 @@ read_archive(struct bsdtar *bsdtar, char
                        break;
                p = archive_entry_pathname(entry);
                if (p == NULL || p[0] == '\0') {
-                       lafe_warnc(0, "Archive entry has empty or unreadable filename ... skipping.");
+                       lafe_warnc(0, "Archive entry has empty or unreadable filename ... skipping");
                        bsdtar->return_value = 1;
                        continue;
                }

Index: pkgsrc/archivers/libarchive/files/tar/util.c
diff -u pkgsrc/archivers/libarchive/files/tar/util.c:1.15 pkgsrc/archivers/libarchive/files/tar/util.c:1.16
--- pkgsrc/archivers/libarchive/files/tar/util.c:1.15   Thu Nov 20 06:08:27 2025
+++ pkgsrc/archivers/libarchive/files/tar/util.c        Wed Apr 15 08:46:36 2026
@@ -715,8 +715,8 @@ list_item_verbose(struct bsdtar *bsdtar,
        /* Use uname if it's present, else uid. */
        p = archive_entry_uname(entry);
        if ((p == NULL) || (*p == '\0')) {
-               snprintf(tmp, sizeof(tmp), "%lu ",
-                   (unsigned long)archive_entry_uid(entry));
+               snprintf(tmp, sizeof(tmp), "%lld ",
+                   (long long)archive_entry_uid(entry));
                p = tmp;
        }
        w = strlen(p);
@@ -730,8 +730,8 @@ list_item_verbose(struct bsdtar *bsdtar,
                fprintf(out, "%s", p);
                w = strlen(p);
        } else {
-               snprintf(tmp, sizeof(tmp), "%lu",
-                   (unsigned long)archive_entry_gid(entry));
+               snprintf(tmp, sizeof(tmp), "%lld",
+                   (long long)archive_entry_gid(entry));
                w = strlen(tmp);
                fprintf(out, "%s", tmp);
        }

Index: pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c
diff -u pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.11 pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.12
--- pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c:1.11     Thu Mar 26 11:20:08 2026
+++ pkgsrc/archivers/libarchive/files/unzip/bsdunzip.c  Wed Apr 15 08:46:36 2026
@@ -9,7 +9,7 @@
 #include "bsdunzip_platform.h"
 
 #include "la_queue.h"
-#include "la_getline.h"
+#include "lafe_getline.h"
 #ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif



Home | Main Index | Thread Index | Old Index