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:           Tue Jul  1 15:14:45 UTC 2025

Modified Files:
        pkgsrc/archivers/libarchive: Makefile.common
        pkgsrc/archivers/libarchive/files: CMakeLists.txt Makefile.am
            Makefile.in NEWS configure configure.ac
        pkgsrc/archivers/libarchive/files/build: version
        pkgsrc/archivers/libarchive/files/build/cmake:
            CreatePkgConfigFile.cmake
        pkgsrc/archivers/libarchive/files/cpio/test: test_format_newc.c
            test_option_a.c
        pkgsrc/archivers/libarchive/files/doc/html: archive_entry.3.html
            archive_entry_acl.3.html archive_entry_linkify.3.html
            archive_entry_misc.3.html archive_entry_paths.3.html
            archive_entry_perms.3.html archive_entry_stat.3.html
            archive_entry_time.3.html archive_read.3.html
            archive_read_add_passphrase.3.html archive_read_data.3.html
            archive_read_disk.3.html archive_read_extract.3.html
            archive_read_filter.3.html archive_read_format.3.html
            archive_read_free.3.html archive_read_header.3.html
            archive_read_new.3.html archive_read_open.3.html
            archive_read_set_options.3.html archive_util.3.html
            archive_write.3.html archive_write_blocksize.3.html
            archive_write_data.3.html archive_write_disk.3.html
            archive_write_filter.3.html archive_write_finish_entry.3.html
            archive_write_format.3.html archive_write_free.3.html
            archive_write_header.3.html archive_write_new.3.html
            archive_write_open.3.html archive_write_set_options.3.html
            archive_write_set_passphrase.3.html bsdcpio.1.html bsdtar.1.html
            cpio.5.html libarchive-formats.5.html libarchive.3.html
            libarchive_changes.3.html libarchive_internals.3.html mtree.5.html
            tar.5.html
        pkgsrc/archivers/libarchive/files/doc/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: CMakeLists.txt archive.h
            archive_cryptor_private.h archive_entry.h archive_match.c
            archive_read_disk_windows.c archive_read_open_file.c
            archive_read_support_filter_compress.c
            archive_read_support_format_cab.c archive_read_support_format_tar.c
            archive_string_sprintf.c archive_util.c archive_version_details.c
            archive_write_disk_windows.c archive_write_set_format_iso9660.c
            archive_write_set_format_mtree.c
        pkgsrc/archivers/libarchive/files/libarchive/test: CMakeLists.txt
            list.h test_entry.c test_read_disk_directory_traversals.c
            test_read_format_rar5.c
        pkgsrc/archivers/libarchive/files/tar/test: test_option_C_mtree.c
        pkgsrc/archivers/libarchive/files/test_utils: test_main.c

Log Message:
libarchive: updated to 3.8.1

3.8.1

Important bugfixes

various compilation fixes
fixed undefined behavior in a function in warc reader
Windows binary uses xz 5.2.5


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 pkgsrc/archivers/libarchive/Makefile.common
cvs rdiff -u -r1.16 -r1.17 pkgsrc/archivers/libarchive/files/CMakeLists.txt
cvs rdiff -u -r1.19 -r1.20 pkgsrc/archivers/libarchive/files/Makefile.am
cvs rdiff -u -r1.21 -r1.22 pkgsrc/archivers/libarchive/files/Makefile.in
cvs rdiff -u -r1.20 -r1.21 pkgsrc/archivers/libarchive/files/NEWS
cvs rdiff -u -r1.29 -r1.30 pkgsrc/archivers/libarchive/files/configure
cvs rdiff -u -r1.28 -r1.29 pkgsrc/archivers/libarchive/files/configure.ac
cvs rdiff -u -r1.15 -r1.16 pkgsrc/archivers/libarchive/files/build/version
cvs rdiff -u -r1.2 -r1.3 \
    pkgsrc/archivers/libarchive/files/build/cmake/CreatePkgConfigFile.cmake
cvs rdiff -u -r1.10 -r1.11 \
    pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c
cvs rdiff -u -r1.7 -r1.8 \
    pkgsrc/archivers/libarchive/files/cpio/test/test_option_a.c
cvs rdiff -u -r1.15 -r1.16 \
    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.14 -r1.15 \
    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.9 -r1.10 \
    pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html
cvs rdiff -u -r1.11 -r1.12 \
    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.15 -r1.16 \
    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.14 -r1.15 \
    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.9 -r1.10 \
    pkgsrc/archivers/libarchive/files/doc/pdf/archive_entry_misc.3.pdf
cvs rdiff -u -r1.11 -r1.12 \
    pkgsrc/archivers/libarchive/files/doc/pdf/archive_read_add_passphrase.3.pdf \
    pkgsrc/archivers/libarchive/files/doc/pdf/archive_write_set_passphrase.3.pdf
cvs rdiff -u -r1.12 -r1.13 \
    pkgsrc/archivers/libarchive/files/libarchive/CMakeLists.txt
cvs rdiff -u -r1.21 -r1.22 \
    pkgsrc/archivers/libarchive/files/libarchive/archive.h
cvs rdiff -u -r1.6 -r1.7 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h \
    pkgsrc/archivers/libarchive/files/libarchive/archive_string_sprintf.c
cvs rdiff -u -r1.17 -r1.18 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c
cvs rdiff -u -r1.9 -r1.10 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_match.c
cvs rdiff -u -r1.11 -r1.12 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c
cvs rdiff -u -r1.5 -r1.6 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_compress.c
cvs rdiff -u -r1.8 -r1.9 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.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_util.c
cvs rdiff -u -r1.4 -r1.5 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_version_details.c
cvs rdiff -u -r1.10 -r1.11 \
    pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c
cvs rdiff -u -r1.15 -r1.16 \
    pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt
cvs rdiff -u -r1.17 -r1.18 \
    pkgsrc/archivers/libarchive/files/libarchive/test/list.h
cvs rdiff -u -r1.9 -r1.10 \
    pkgsrc/archivers/libarchive/files/libarchive/test/test_entry.c
cvs rdiff -u -r1.8 -r1.9 \
    pkgsrc/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c
cvs rdiff -u -r1.7 -r1.8 \
    pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c
cvs rdiff -u -r1.4 -r1.5 \
    pkgsrc/archivers/libarchive/files/tar/test/test_option_C_mtree.c
cvs rdiff -u -r1.10 -r1.11 \
    pkgsrc/archivers/libarchive/files/test_utils/test_main.c

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

Modified files:

Index: pkgsrc/archivers/libarchive/Makefile.common
diff -u pkgsrc/archivers/libarchive/Makefile.common:1.21 pkgsrc/archivers/libarchive/Makefile.common:1.22
--- pkgsrc/archivers/libarchive/Makefile.common:1.21    Wed May 21 15:25:47 2025
+++ pkgsrc/archivers/libarchive/Makefile.common Tue Jul  1 15:14:42 2025
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile.common,v 1.21 2025/05/21 15:25:47 adam Exp $
+# $NetBSD: Makefile.common,v 1.22 2025/07/01 15:14:42 adam Exp $
 # used by archivers/bsdtar/Makefile
 # used by archivers/libarchive/Makefile
 
-DISTNAME=      libarchive-3.8.0
+DISTNAME=      libarchive-3.8.1
 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.16 pkgsrc/archivers/libarchive/files/CMakeLists.txt:1.17
--- pkgsrc/archivers/libarchive/files/CMakeLists.txt:1.16       Wed May 21 15:25:47 2025
+++ pkgsrc/archivers/libarchive/files/CMakeLists.txt    Tue Jul  1 15:14:42 2025
@@ -1257,7 +1257,7 @@ ELSE(LIBXML2_FOUND)
       # Check linkage as well; versions of mingw-w64 before v11.0.0
       # do not contain an import library for xmllite.
       cmake_push_check_state()
-      SET(CMAKE_REQUIRED_LIBRARIES "xmllite")
+      SET(CMAKE_REQUIRED_LIBRARIES "xmllite" "uuid")
       check_c_source_compiles("
       #include <initguid.h>
       #include <xmllite.h>
@@ -1268,7 +1268,7 @@ ELSE(LIBXML2_FOUND)
       cmake_pop_check_state()
       IF(HAVE_XMLLITE_H)
         SET(XMLLITE_FOUND TRUE)
-        LIST(APPEND ADDITIONAL_LIBS "xmllite")
+        LIST(APPEND ADDITIONAL_LIBS "xmllite" "uuid")
       ENDIF()
     ENDIF()
   ENDIF(EXPAT_FOUND)

Index: pkgsrc/archivers/libarchive/files/Makefile.am
diff -u pkgsrc/archivers/libarchive/files/Makefile.am:1.19 pkgsrc/archivers/libarchive/files/Makefile.am:1.20
--- pkgsrc/archivers/libarchive/files/Makefile.am:1.19  Wed May 21 15:25:47 2025
+++ pkgsrc/archivers/libarchive/files/Makefile.am       Tue Jul  1 15:14:42 2025
@@ -531,8 +531,10 @@ libarchive_test_SOURCES= \
        libarchive/test/test_read_format_tar_empty_with_gnulabel.c \
        libarchive/test/test_read_format_tar_filename.c \
        libarchive/test/test_read_format_tar_invalid_pax_size.c \
+       libarchive/test/test_read_format_tar_mac_metadata.c \
        libarchive/test/test_read_format_tar_pax_g_large.c \
        libarchive/test/test_read_format_tar_pax_large_attr.c \
+       libarchive/test/test_read_format_tar_pax_negative_time.c \
        libarchive/test/test_read_format_tbz.c \
        libarchive/test/test_read_format_tgz.c \
        libarchive/test/test_read_format_tlz.c \
@@ -565,6 +567,7 @@ libarchive_test_SOURCES= \
        libarchive/test/test_read_format_zip_zip64.c \
        libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c \
        libarchive/test/test_read_large.c \
+       libarchive/test/test_read_pax_empty_val_no_nl.c \
        libarchive/test/test_read_pax_xattr_rht_security_selinux.c \
        libarchive/test/test_read_pax_xattr_schily.c \
        libarchive/test/test_read_pax_truncated.c \
@@ -975,8 +978,10 @@ libarchive_test_EXTRA_DIST=\
        libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu \
        libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu \
        libarchive/test/test_read_format_tar_invalid_pax_size.tar.uu \
+       libarchive/test/test_read_format_tar_mac_metadata_1.tar.uu \
        libarchive/test/test_read_format_tar_pax_g_large.tar.uu \
        libarchive/test/test_read_format_tar_pax_large_attr.tar.Z.uu \
+       libarchive/test/test_read_format_tar_pax_negative_time.tar.uu \
        libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu \
        libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu \
        libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu \
@@ -1041,6 +1046,7 @@ libarchive_test_EXTRA_DIST=\
        libarchive/test/test_read_large_splitted_rar_ac.uu \
        libarchive/test/test_read_large_splitted_rar_ad.uu \
        libarchive/test/test_read_large_splitted_rar_ae.uu \
+       libarchive/test/test_read_pax_empty_val_no_nl.tar.uu \
        libarchive/test/test_read_pax_xattr_rht_security_selinux.tar.uu \
        libarchive/test/test_read_pax_xattr_schily.tar.uu \
        libarchive/test/test_read_splitted_rar_aa.uu \

Index: pkgsrc/archivers/libarchive/files/Makefile.in
diff -u pkgsrc/archivers/libarchive/files/Makefile.in:1.21 pkgsrc/archivers/libarchive/files/Makefile.in:1.22
--- pkgsrc/archivers/libarchive/files/Makefile.in:1.21  Wed May 21 15:25:47 2025
+++ pkgsrc/archivers/libarchive/files/Makefile.in       Tue Jul  1 15:14:42 2025
@@ -1013,8 +1013,10 @@ am__libarchive_test_SOURCES_DIST = libar
        libarchive/test/test_read_format_tar_empty_with_gnulabel.c \
        libarchive/test/test_read_format_tar_filename.c \
        libarchive/test/test_read_format_tar_invalid_pax_size.c \
+       libarchive/test/test_read_format_tar_mac_metadata.c \
        libarchive/test/test_read_format_tar_pax_g_large.c \
        libarchive/test/test_read_format_tar_pax_large_attr.c \
+       libarchive/test/test_read_format_tar_pax_negative_time.c \
        libarchive/test/test_read_format_tbz.c \
        libarchive/test/test_read_format_tgz.c \
        libarchive/test/test_read_format_tlz.c \
@@ -1047,6 +1049,7 @@ am__libarchive_test_SOURCES_DIST = libar
        libarchive/test/test_read_format_zip_zip64.c \
        libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c \
        libarchive/test/test_read_large.c \
+       libarchive/test/test_read_pax_empty_val_no_nl.c \
        libarchive/test/test_read_pax_xattr_rht_security_selinux.c \
        libarchive/test/test_read_pax_xattr_schily.c \
        libarchive/test/test_read_pax_truncated.c \
@@ -1452,8 +1455,10 @@ am_libarchive_test_OBJECTS = $(am__objec
        libarchive/test/test-test_read_format_tar_empty_with_gnulabel.$(OBJEXT) \
        libarchive/test/test-test_read_format_tar_filename.$(OBJEXT) \
        libarchive/test/test-test_read_format_tar_invalid_pax_size.$(OBJEXT) \
+       libarchive/test/test-test_read_format_tar_mac_metadata.$(OBJEXT) \
        libarchive/test/test-test_read_format_tar_pax_g_large.$(OBJEXT) \
        libarchive/test/test-test_read_format_tar_pax_large_attr.$(OBJEXT) \
+       libarchive/test/test-test_read_format_tar_pax_negative_time.$(OBJEXT) \
        libarchive/test/test-test_read_format_tbz.$(OBJEXT) \
        libarchive/test/test-test_read_format_tgz.$(OBJEXT) \
        libarchive/test/test-test_read_format_tlz.$(OBJEXT) \
@@ -1486,6 +1491,7 @@ am_libarchive_test_OBJECTS = $(am__objec
        libarchive/test/test-test_read_format_zip_zip64.$(OBJEXT) \
        libarchive/test/test-test_read_format_zip_with_invalid_traditional_eocd.$(OBJEXT) \
        libarchive/test/test-test_read_large.$(OBJEXT) \
+       libarchive/test/test-test_read_pax_empty_val_no_nl.$(OBJEXT) \
        libarchive/test/test-test_read_pax_xattr_rht_security_selinux.$(OBJEXT) \
        libarchive/test/test-test_read_pax_xattr_schily.$(OBJEXT) \
        libarchive/test/test-test_read_pax_truncated.$(OBJEXT) \
@@ -2108,8 +2114,10 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
        libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_tar_invalid_pax_size.Po \
+       libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_g_large.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_large_attr.Po \
+       libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po \
@@ -2142,6 +2150,7 @@ am__depfiles_remade = cat/$(DEPDIR)/bsdc
        libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po \
        libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po \
        libarchive/test/$(DEPDIR)/test-test_read_large.Po \
+       libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Po \
        libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po \
        libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po \
        libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po \
@@ -3221,8 +3230,10 @@ libarchive_test_SOURCES = \
        libarchive/test/test_read_format_tar_empty_with_gnulabel.c \
        libarchive/test/test_read_format_tar_filename.c \
        libarchive/test/test_read_format_tar_invalid_pax_size.c \
+       libarchive/test/test_read_format_tar_mac_metadata.c \
        libarchive/test/test_read_format_tar_pax_g_large.c \
        libarchive/test/test_read_format_tar_pax_large_attr.c \
+       libarchive/test/test_read_format_tar_pax_negative_time.c \
        libarchive/test/test_read_format_tbz.c \
        libarchive/test/test_read_format_tgz.c \
        libarchive/test/test_read_format_tlz.c \
@@ -3255,6 +3266,7 @@ libarchive_test_SOURCES = \
        libarchive/test/test_read_format_zip_zip64.c \
        libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c \
        libarchive/test/test_read_large.c \
+       libarchive/test/test_read_pax_empty_val_no_nl.c \
        libarchive/test/test_read_pax_xattr_rht_security_selinux.c \
        libarchive/test/test_read_pax_xattr_schily.c \
        libarchive/test/test_read_pax_truncated.c \
@@ -3656,8 +3668,10 @@ libarchive_test_EXTRA_DIST = \
        libarchive/test/test_read_format_tar_empty_pax.tar.Z.uu \
        libarchive/test/test_read_format_tar_filename_koi8r.tar.Z.uu \
        libarchive/test/test_read_format_tar_invalid_pax_size.tar.uu \
+       libarchive/test/test_read_format_tar_mac_metadata_1.tar.uu \
        libarchive/test/test_read_format_tar_pax_g_large.tar.uu \
        libarchive/test/test_read_format_tar_pax_large_attr.tar.Z.uu \
+       libarchive/test/test_read_format_tar_pax_negative_time.tar.uu \
        libarchive/test/test_read_format_ustar_filename_cp866.tar.Z.uu \
        libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu \
        libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu \
@@ -3722,6 +3736,7 @@ libarchive_test_EXTRA_DIST = \
        libarchive/test/test_read_large_splitted_rar_ac.uu \
        libarchive/test/test_read_large_splitted_rar_ad.uu \
        libarchive/test/test_read_large_splitted_rar_ae.uu \
+       libarchive/test/test_read_pax_empty_val_no_nl.tar.uu \
        libarchive/test/test_read_pax_xattr_rht_security_selinux.tar.uu \
        libarchive/test/test_read_pax_xattr_schily.tar.uu \
        libarchive/test/test_read_splitted_rar_aa.uu \
@@ -6049,12 +6064,18 @@ libarchive/test/test-test_read_format_ta
 libarchive/test/test-test_read_format_tar_invalid_pax_size.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_read_format_tar_mac_metadata.$(OBJEXT):  \
+       libarchive/test/$(am__dirstamp) \
+       libarchive/test/$(DEPDIR)/$(am__dirstamp)
 libarchive/test/test-test_read_format_tar_pax_g_large.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
 libarchive/test/test-test_read_format_tar_pax_large_attr.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_read_format_tar_pax_negative_time.$(OBJEXT):  \
+       libarchive/test/$(am__dirstamp) \
+       libarchive/test/$(DEPDIR)/$(am__dirstamp)
 libarchive/test/test-test_read_format_tbz.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -6151,6 +6172,9 @@ libarchive/test/test-test_read_format_zi
 libarchive/test/test-test_read_large.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
+libarchive/test/test-test_read_pax_empty_val_no_nl.$(OBJEXT):  \
+       libarchive/test/$(am__dirstamp) \
+       libarchive/test/$(DEPDIR)/$(am__dirstamp)
 libarchive/test/test-test_read_pax_xattr_rht_security_selinux.$(OBJEXT):  \
        libarchive/test/$(am__dirstamp) \
        libarchive/test/$(DEPDIR)/$(am__dirstamp)
@@ -6985,8 +7009,10 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_invalid_pax_size.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_g_large.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_large_attr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po@am__quote@ # am--include-marker
@@ -7019,6 +7045,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_large.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po@am__quote@ # am--include-marker
@@ -14065,6 +14092,20 @@ libarchive/test/test-test_read_format_ta
 @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_tar_invalid_pax_size.obj `if test -f 'libarchive/test/test_read_format_tar_invalid_pax_size.c'; then $(CYGPATH_W) 
'libarchive/test/test_read_format_tar_invalid_pax_size.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_invalid_pax_size.c'; fi`
 
+libarchive/test/test-test_read_format_tar_mac_metadata.o: libarchive/test/test_read_format_tar_mac_metadata.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_tar_mac_metadata.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Tpo -c -o 
libarchive/test/test-test_read_format_tar_mac_metadata.o `test -f 'libarchive/test/test_read_format_tar_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_mac_metadata.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_format_tar_mac_metadata.c' object='libarchive/test/test-test_read_format_tar_mac_metadata.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_tar_mac_metadata.o `test -f 'libarchive/test/test_read_format_tar_mac_metadata.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_mac_metadata.c
+
+libarchive/test/test-test_read_format_tar_mac_metadata.obj: libarchive/test/test_read_format_tar_mac_metadata.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_tar_mac_metadata.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Tpo -c -o 
libarchive/test/test-test_read_format_tar_mac_metadata.obj `if test -f 'libarchive/test/test_read_format_tar_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_mac_metadata.c'; 
else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_mac_metadata.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_format_tar_mac_metadata.c' object='libarchive/test/test-test_read_format_tar_mac_metadata.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_tar_mac_metadata.obj `if test -f 'libarchive/test/test_read_format_tar_mac_metadata.c'; then $(CYGPATH_W) 'libarchive/test/test_read_format_tar_mac_metadata.c'; 
else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_mac_metadata.c'; fi`
+
 libarchive/test/test-test_read_format_tar_pax_g_large.o: libarchive/test/test_read_format_tar_pax_g_large.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarchive_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT 
libarchive/test/test-test_read_format_tar_pax_g_large.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_g_large.Tpo -c -o libarchive/test/test-test_read_format_tar_pax_g_large.o 
`test -f 'libarchive/test/test_read_format_tar_pax_g_large.c' || echo '$(srcdir)/'`libarchive/test/test_read_format_tar_pax_g_large.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_g_large.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_g_large.Po
@@ -14093,6 +14134,20 @@ libarchive/test/test-test_read_format_ta
 @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_tar_pax_large_attr.obj `if test -f 'libarchive/test/test_read_format_tar_pax_large_attr.c'; then $(CYGPATH_W) 
'libarchive/test/test_read_format_tar_pax_large_attr.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_pax_large_attr.c'; fi`
 
+libarchive/test/test-test_read_format_tar_pax_negative_time.o: libarchive/test/test_read_format_tar_pax_negative_time.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_tar_pax_negative_time.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Tpo -c -o 
libarchive/test/test-test_read_format_tar_pax_negative_time.o `test -f 'libarchive/test/test_read_format_tar_pax_negative_time.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_format_tar_pax_negative_time.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_format_tar_pax_negative_time.c' object='libarchive/test/test-test_read_format_tar_pax_negative_time.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_tar_pax_negative_time.o `test -f 'libarchive/test/test_read_format_tar_pax_negative_time.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_format_tar_pax_negative_time.c
+
+libarchive/test/test-test_read_format_tar_pax_negative_time.obj: libarchive/test/test_read_format_tar_pax_negative_time.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_tar_pax_negative_time.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Tpo -c -o 
libarchive/test/test-test_read_format_tar_pax_negative_time.obj `if test -f 'libarchive/test/test_read_format_tar_pax_negative_time.c'; then $(CYGPATH_W) 
'libarchive/test/test_read_format_tar_pax_negative_time.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_pax_negative_time.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_format_tar_pax_negative_time.c' object='libarchive/test/test-test_read_format_tar_pax_negative_time.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_tar_pax_negative_time.obj `if test -f 'libarchive/test/test_read_format_tar_pax_negative_time.c'; then $(CYGPATH_W) 
'libarchive/test/test_read_format_tar_pax_negative_time.c'; else $(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_format_tar_pax_negative_time.c'; fi`
+
 libarchive/test/test-test_read_format_tbz.o: libarchive/test/test_read_format_tbz.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_tbz.o -MD -MP 
-MF libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Tpo -c -o libarchive/test/test-test_read_format_tbz.o `test -f 'libarchive/test/test_read_format_tbz.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_format_tbz.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Tpo libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po
@@ -14541,6 +14596,20 @@ libarchive/test/test-test_read_large.obj
 @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_large.obj `if test -f 'libarchive/test/test_read_large.c'; then $(CYGPATH_W) 'libarchive/test/test_read_large.c'; else $(CYGPATH_W) 
'$(srcdir)/libarchive/test/test_read_large.c'; fi`
 
+libarchive/test/test-test_read_pax_empty_val_no_nl.o: libarchive/test/test_read_pax_empty_val_no_nl.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_pax_empty_val_no_nl.o 
-MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Tpo -c -o libarchive/test/test-test_read_pax_empty_val_no_nl.o `test -f 'libarchive/test/test_read_pax_empty_val_no_nl.c' || 
echo '$(srcdir)/'`libarchive/test/test_read_pax_empty_val_no_nl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_pax_empty_val_no_nl.c' object='libarchive/test/test-test_read_pax_empty_val_no_nl.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_pax_empty_val_no_nl.o `test -f 'libarchive/test/test_read_pax_empty_val_no_nl.c' || echo '$(srcdir)/'`libarchive/test/test_read_pax_empty_val_no_nl.c
+
+libarchive/test/test-test_read_pax_empty_val_no_nl.obj: libarchive/test/test_read_pax_empty_val_no_nl.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_pax_empty_val_no_nl.obj -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Tpo -c -o libarchive/test/test-test_read_pax_empty_val_no_nl.obj `if 
test -f 'libarchive/test/test_read_pax_empty_val_no_nl.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_empty_val_no_nl.c'; else $(CYGPATH_W) 
'$(srcdir)/libarchive/test/test_read_pax_empty_val_no_nl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='libarchive/test/test_read_pax_empty_val_no_nl.c' object='libarchive/test/test-test_read_pax_empty_val_no_nl.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_pax_empty_val_no_nl.obj `if test -f 'libarchive/test/test_read_pax_empty_val_no_nl.c'; then $(CYGPATH_W) 'libarchive/test/test_read_pax_empty_val_no_nl.c'; else 
$(CYGPATH_W) '$(srcdir)/libarchive/test/test_read_pax_empty_val_no_nl.c'; fi`
+
 libarchive/test/test-test_read_pax_xattr_rht_security_selinux.o: libarchive/test/test_read_pax_xattr_rht_security_selinux.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_pax_xattr_rht_security_selinux.o -MD -MP -MF libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Tpo -c -o 
libarchive/test/test-test_read_pax_xattr_rht_security_selinux.o `test -f 'libarchive/test/test_read_pax_xattr_rht_security_selinux.c' || echo 
'$(srcdir)/'`libarchive/test/test_read_pax_xattr_rht_security_selinux.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Tpo libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po
@@ -17160,8 +17229,10 @@ distclean: distclean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_invalid_pax_size.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_g_large.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_large_attr.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po
@@ -17194,6 +17265,7 @@ distclean: distclean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_large.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po
@@ -17963,8 +18035,10 @@ maintainer-clean: maintainer-clean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_empty_with_gnulabel.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_filename.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_invalid_pax_size.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_mac_metadata.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_g_large.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_large_attr.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tar_pax_negative_time.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tbz.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tgz.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_tlz.Po
@@ -17997,6 +18071,7 @@ maintainer-clean: maintainer-clean-am
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_with_invalid_traditional_eocd.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_format_zip_zip64.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_large.Po
+       -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_empty_val_no_nl.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_truncated.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_rht_security_selinux.Po
        -rm -f libarchive/test/$(DEPDIR)/test-test_read_pax_xattr_schily.Po

Index: pkgsrc/archivers/libarchive/files/NEWS
diff -u pkgsrc/archivers/libarchive/files/NEWS:1.20 pkgsrc/archivers/libarchive/files/NEWS:1.21
--- pkgsrc/archivers/libarchive/files/NEWS:1.20 Wed May 21 15:25:47 2025
+++ pkgsrc/archivers/libarchive/files/NEWS      Tue Jul  1 15:14:42 2025
@@ -1,3 +1,5 @@
+Jun 01, 2026: libarchive 3.8.1 released
+
 May 20, 2025: libarchive 3.8.0 released
 
 Mar 30, 2025: libarchive 3.7.9 released

Index: pkgsrc/archivers/libarchive/files/configure
diff -u pkgsrc/archivers/libarchive/files/configure:1.29 pkgsrc/archivers/libarchive/files/configure:1.30
--- pkgsrc/archivers/libarchive/files/configure:1.29    Wed May 21 15:25:47 2025
+++ pkgsrc/archivers/libarchive/files/configure Tue Jul  1 15:14:42 2025
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libarchive 3.8.0.
+# Generated by GNU Autoconf 2.71 for libarchive 3.8.1.
 #
 # Report bugs to <libarchive-discuss%googlegroups.com@localhost>.
 #
@@ -621,8 +621,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libarchive'
 PACKAGE_TARNAME='libarchive'
-PACKAGE_VERSION='3.8.0'
-PACKAGE_STRING='libarchive 3.8.0'
+PACKAGE_VERSION='3.8.1'
+PACKAGE_STRING='libarchive 3.8.1'
 PACKAGE_BUGREPORT='libarchive-discuss%googlegroups.com@localhost'
 PACKAGE_URL=''
 
@@ -680,13 +680,13 @@ LZMA_PC_LIBS
 LZMA_PC_CFLAGS
 ICONV_PC_LIBS
 ICONV_PC_CFLAGS
-PKG_CONFIG_LIBDIR
-PKG_CONFIG_PATH
-PKG_CONFIG
 LTLIBICONV
 LIBICONV
 INC_BLAKE2_FALSE
 INC_BLAKE2_TRUE
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
 STATIC_BSDUNZIP_FALSE
 STATIC_BSDUNZIP_TRUE
 BUILD_BSDUNZIP_FALSE
@@ -1443,7 +1443,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.0 to adapt to many kinds of systems.
+\`configure' configures libarchive 3.8.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1514,7 +1514,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libarchive 3.8.0:";;
+     short | recursive ) echo "Configuration of libarchive 3.8.1:";;
    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.0
+libarchive configure 3.8.1
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2492,7 +2492,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.0, which was
+It was created by libarchive $as_me 3.8.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3772,7 +3772,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libarchive'
- VERSION='3.8.0'
+ VERSION='3.8.1'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -3945,7 +3945,7 @@ AM_BACKSLASH='\'
 
 # Libtool interface version bumps on any API change, so increments
 # whenever libarchive minor version does.
-ARCHIVE_MINOR=$(( (3008000 / 1000) % 1000 ))
+ARCHIVE_MINOR=$(( (3008001 / 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
@@ -3953,7 +3953,7 @@ ARCHIVE_MINOR=$(( (3008000 / 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=$(( 3008000 % 1000 ))
+ARCHIVE_REVISION=$(( 3008001 % 1000 ))
 # Libarchive minor is bumped on any interface addition === libtool age
 ARCHIVE_LIBTOOL_VERSION=$ARCHIVE_INTERFACE:$ARCHIVE_REVISION:$ARCHIVE_MINOR
 
@@ -3962,33 +3962,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.0\"" >>confdefs.h
+printf "%s\n" "#define LIBARCHIVE_VERSION_STRING \"3.8.1\"" >>confdefs.h
 
 
-printf "%s\n" "#define LIBARCHIVE_VERSION_NUMBER \"3008000\"" >>confdefs.h
+printf "%s\n" "#define LIBARCHIVE_VERSION_NUMBER \"3008001\"" >>confdefs.h
 
 
-printf "%s\n" "#define BSDCPIO_VERSION_STRING \"3.8.0\"" >>confdefs.h
+printf "%s\n" "#define BSDCPIO_VERSION_STRING \"3.8.1\"" >>confdefs.h
 
 
-printf "%s\n" "#define BSDTAR_VERSION_STRING \"3.8.0\"" >>confdefs.h
+printf "%s\n" "#define BSDTAR_VERSION_STRING \"3.8.1\"" >>confdefs.h
 
 
-printf "%s\n" "#define BSDCAT_VERSION_STRING \"3.8.0\"" >>confdefs.h
+printf "%s\n" "#define BSDCAT_VERSION_STRING \"3.8.1\"" >>confdefs.h
 
 
-printf "%s\n" "#define BSDUNZIP_VERSION_STRING \"3.8.0\"" >>confdefs.h
+printf "%s\n" "#define BSDUNZIP_VERSION_STRING \"3.8.1\"" >>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.0
-BSDTAR_VERSION_STRING=3.8.0
-BSDCAT_VERSION_STRING=3.8.0
-BSDUNZIP_VERSION_STRING=3.8.0
-LIBARCHIVE_VERSION_STRING=3.8.0
-LIBARCHIVE_VERSION_NUMBER=3008000
+BSDCPIO_VERSION_STRING=3.8.1
+BSDTAR_VERSION_STRING=3.8.1
+BSDCAT_VERSION_STRING=3.8.1
+BSDUNZIP_VERSION_STRING=3.8.1
+LIBARCHIVE_VERSION_STRING=3.8.1
+LIBARCHIVE_VERSION_NUMBER=3008001
 
 # Substitute the above version numbers into the various files below.
 # Yes, I believe this is the fourth time we define what are essentially
@@ -14379,7 +14379,8 @@ case $host in
 
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#ifdef _WIN32_WINNT
+#include <windows.h>
+     #ifdef _WIN32_WINNT
      # error _WIN32_WINNT already defined
      #endif
 
@@ -14406,7 +14407,8 @@ fi
 rm -f conftest.err conftest.i conftest.$ac_ext
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#ifdef WINVER
+#include <windows.h>
+     #ifdef WINVER
      # error WINVER already defined
      #endif
 
@@ -15303,6 +15305,137 @@ fi
 fi
 
 
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKG_CONFIG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf "%s\n" "$PKG_CONFIG" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=0.9.0
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+       else
+               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+               PKG_CONFIG=""
+       fi
+fi
+
+
 # Check whether --with-libb2 was given.
 if test ${with_libb2+y}
 then :
@@ -15361,7 +15494,7 @@ then :
 
 fi
 
-  BLAKE2_PC_VER=`pkg-config --modversion libb2`
+  BLAKE2_PC_VER=`$PKG_CONFIG --modversion libb2`
   if test "x$BLAKE2_PC_VER" != "x"; then
 
 printf "%s\n" "#define LIBB2_PKGCONFIG_VERSION \"$BLAKE2_PC_VER\"" >>confdefs.h
@@ -16429,136 +16562,6 @@ printf "%s\n" "#define HAVE_LIBICONV 1" 
       # Most platforms do not provide iconv.pc, but MSYS2 MinGW does.
       # We add it to our Requires.private only if it exists.
 
-
-
-
-
-
-
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
-       if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_PKG_CONFIG+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-printf "%s\n" "$PKG_CONFIG" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
-  ac_pt_PKG_CONFIG=$PKG_CONFIG
-  # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-printf %s "checking for $ac_word... " >&6; }
-if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  case $ac_pt_PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  case $as_dir in #(((
-    '') as_dir=./ ;;
-    */) ;;
-    *) as_dir=$as_dir/ ;;
-  esac
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
-    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-fi
-
-  if test "x$ac_pt_PKG_CONFIG" = x; then
-    PKG_CONFIG=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    PKG_CONFIG=$ac_pt_PKG_CONFIG
-  fi
-else
-  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-fi
-
-fi
-if test -n "$PKG_CONFIG"; then
-       _pkg_min_version=0.9.0
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
-       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-       else
-               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-               PKG_CONFIG=""
-       fi
-fi
-
 pkg_failed=no
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
 printf %s "checking for iconv... " >&6; }
@@ -20665,7 +20668,7 @@ else $as_nop
 fi
 printf "%s\n" "#define HAVE_DECL_XATTR_NOFOLLOW $ac_have_decl" >>confdefs.h
 
-    ATTR_PC_VER=`pkg-config --modversion libattr`
+    ATTR_PC_VER=`$PKG_CONFIG --modversion libattr`
     if test "x$ATTR_PC_VER" != "x"; then
 
 printf "%s\n" "#define LIBATTR_PKGCONFIG_VERSION \"$ATTR_PC_VER\"" >>confdefs.h
@@ -20871,7 +20874,7 @@ then :
 
 fi
 
-    ACL_PC_VER=`pkg-config --modversion libacl`
+    ACL_PC_VER=`$PKG_CONFIG --modversion libacl`
     if test "x$ACL_PC_VER" != "x"; then
 
 printf "%s\n" "#define LIBACL_PKGCONFIG_VERSION \"$ACL_PC_VER\"" >>confdefs.h
@@ -20986,7 +20989,7 @@ then :
 
 fi
 
-    RICHACL_PC_VER=`pkg-config --modversion librichacl`
+    RICHACL_PC_VER=`$PKG_CONFIG --modversion librichacl`
     if test "x$RICHACL_PC_VER" != "x"; then
 
 printf "%s\n" "#define LIBRICHACL_PKGCONFIG_VERSION \"$RICHACL_PC_VER\"" >>confdefs.h
@@ -24790,7 +24793,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.0, which was
+This file was extended by libarchive $as_me 3.8.1, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -24858,7 +24861,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.0
+libarchive config.status 3.8.1
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 

Index: pkgsrc/archivers/libarchive/files/configure.ac
diff -u pkgsrc/archivers/libarchive/files/configure.ac:1.28 pkgsrc/archivers/libarchive/files/configure.ac:1.29
--- pkgsrc/archivers/libarchive/files/configure.ac:1.28 Wed May 21 15:25:48 2025
+++ pkgsrc/archivers/libarchive/files/configure.ac      Tue Jul  1 15:14:42 2025
@@ -4,8 +4,8 @@ dnl First, define all of the version num
 dnl In particular, this allows the version macro to be used in AC_INIT
 
 dnl These first two version numbers are updated automatically on each release.
-m4_define([LIBARCHIVE_VERSION_S],[3.8.0])
-m4_define([LIBARCHIVE_VERSION_N],[3008000])
+m4_define([LIBARCHIVE_VERSION_S],[3.8.1])
+m4_define([LIBARCHIVE_VERSION_N],[3008001])
 
 dnl bsdtar and bsdcpio versioning tracks libarchive
 m4_define([BSDTAR_VERSION_S],LIBARCHIVE_VERSION_S())
@@ -258,7 +258,8 @@ AM_CONDITIONAL([STATIC_BSDCPIO], [ test 
 case $host in
   *mingw* | *cygwin* | *msys*  )
   AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
-    [[#ifdef _WIN32_WINNT
+    [[#include <windows.h>
+     #ifdef _WIN32_WINNT
      # error _WIN32_WINNT already defined
      #endif
     ]],[[;]])
@@ -267,7 +268,8 @@ case $host in
     AC_DEFINE([NTDDI_VERSION], 0x05020000, [Define to '0x05020000' for Windows Server 2003 APIs.])
   ])
   AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
-    [[#ifdef WINVER
+    [[#include <windows.h>
+     #ifdef WINVER
      # error WINVER already defined
      #endif
     ]],[[;]])
@@ -436,13 +438,15 @@ if test "x$with_bz2lib" != "xno"; then
   esac
 fi
 
+PKG_PROG_PKG_CONFIG
+
 AC_ARG_WITH([libb2],
   AS_HELP_STRING([--without-libb2], [Don't build support for BLAKE2 through libb2]))
 
 if test "x$with_libb2" != "xno"; then
   AC_CHECK_HEADERS([blake2.h])
   AC_CHECK_LIB(b2,blake2sp_init)
-  BLAKE2_PC_VER=`pkg-config --modversion libb2`
+  BLAKE2_PC_VER=`$PKG_CONFIG --modversion libb2`
   if test "x$BLAKE2_PC_VER" != "x"; then
     AC_DEFINE_UNQUOTED([LIBB2_PKGCONFIG_VERSION], ["$BLAKE2_PC_VER"], [Libb2 version coming from pkg-config.])
   fi
@@ -925,7 +929,7 @@ if test "x$enable_xattr" != "xno"; then
 ])
     AC_CHECK_DECLS([XATTR_NOFOLLOW], [], [], [#include <sys/xattr.h>
 ])
-    ATTR_PC_VER=`pkg-config --modversion libattr`
+    ATTR_PC_VER=`$PKG_CONFIG --modversion libattr`
     if test "x$ATTR_PC_VER" != "x"; then
       AC_DEFINE_UNQUOTED([LIBATTR_PKGCONFIG_VERSION], ["$ATTR_PC_VER"], [Libattr version coming from pkg-config.])
     fi
@@ -1024,7 +1028,7 @@ AC_ARG_ENABLE([acl],
 if test "x$enable_acl" != "xno"; then
     # Libacl
     AC_CHECK_LIB([acl], [acl_get_file])
-    ACL_PC_VER=`pkg-config --modversion libacl`
+    ACL_PC_VER=`$PKG_CONFIG --modversion libacl`
     if test "x$ACL_PC_VER" != "x"; then
       AC_DEFINE_UNQUOTED([LIBACL_PKGCONFIG_VERSION], ["$ACL_PC_VER"], [Libacl version coming from pkg-config.])
     fi
@@ -1038,7 +1042,7 @@ if test "x$enable_acl" != "xno"; then
     ])
 
     AC_CHECK_LIB([richacl], [richacl_get_file])
-    RICHACL_PC_VER=`pkg-config --modversion librichacl`
+    RICHACL_PC_VER=`$PKG_CONFIG --modversion librichacl`
     if test "x$RICHACL_PC_VER" != "x"; then
       AC_DEFINE_UNQUOTED([LIBRICHACL_PKGCONFIG_VERSION], ["$RICHACL_PC_VER"], [Librichacl version coming from pkg-config.])
     fi

Index: pkgsrc/archivers/libarchive/files/build/version
diff -u pkgsrc/archivers/libarchive/files/build/version:1.15 pkgsrc/archivers/libarchive/files/build/version:1.16
--- pkgsrc/archivers/libarchive/files/build/version:1.15        Wed May 21 15:25:48 2025
+++ pkgsrc/archivers/libarchive/files/build/version     Tue Jul  1 15:14:42 2025
@@ -1 +1 @@
-3008000
+3008001

Index: pkgsrc/archivers/libarchive/files/build/cmake/CreatePkgConfigFile.cmake
diff -u pkgsrc/archivers/libarchive/files/build/cmake/CreatePkgConfigFile.cmake:1.2 pkgsrc/archivers/libarchive/files/build/cmake/CreatePkgConfigFile.cmake:1.3
--- pkgsrc/archivers/libarchive/files/build/cmake/CreatePkgConfigFile.cmake:1.2 Tue May 26 09:16:40 2020
+++ pkgsrc/archivers/libarchive/files/build/cmake/CreatePkgConfigFile.cmake     Tue Jul  1 15:14:42 2025
@@ -29,5 +29,5 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DI
 # And install it, of course ;).
 IF(ENABLE_INSTALL)
   INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/build/pkgconfig/libarchive.pc
-          DESTINATION "lib/pkgconfig")
+          DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
 ENDIF()

Index: pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c
diff -u pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.10 pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.11
--- pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c:1.10 Mon Apr 28 10:31:33 2025
+++ pkgsrc/archivers/libarchive/files/cpio/test/test_format_newc.c      Tue Jul  1 15:14:43 2025
@@ -219,7 +219,7 @@ DEFINE_TEST(test_format_newc)
                assert(is_hex(e, 110));
                assertEqualMem(e + 0, "070701", 6); /* Magic */
                assert(is_hex(e + 6, 8)); /* ino */
-#if defined(_WIN32) && !defined(CYGWIN)
+#if defined(_WIN32) && !defined(__CYGWIN__)
                /* Mode: Group members bits and others bits do not work. */
                assertEqualInt(0xa180, from_hex(e + 14, 8) & 0xffc0);
 #else

Index: pkgsrc/archivers/libarchive/files/cpio/test/test_option_a.c
diff -u pkgsrc/archivers/libarchive/files/cpio/test/test_option_a.c:1.7 pkgsrc/archivers/libarchive/files/cpio/test/test_option_a.c:1.8
--- pkgsrc/archivers/libarchive/files/cpio/test/test_option_a.c:1.7     Sat Oct 19 05:39:55 2024
+++ pkgsrc/archivers/libarchive/files/cpio/test/test_option_a.c Tue Jul  1 15:14:43 2025
@@ -52,7 +52,7 @@ test_create(void)
                 * #ifdef this section out.  Most of the test below is
                 * still valid. */
                memset(&times, 0, sizeof(times));
-#if defined(_WIN32) && !defined(CYGWIN)
+#if defined(_WIN32) && !defined(__CYGWIN__)
                times.actime = 86400;
                times.modtime = 86400;
 #else

Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html:1.15        Wed May 21 15:25:48 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry.3.html     Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:17 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:38 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html:1.15 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read.3.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html:1.15    Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_disk.3.html Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html:1.15 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_util.3.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html:1.15        Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write.3.html     Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html:1.15   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_disk.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html:1.15      Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/bsdcpio.1.html   Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:21 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html:1.15       Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/bsdtar.1.html    Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html:1.15 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/cpio.5.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html:1.15   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive-formats.5.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html:1.15   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html:1.15 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive_internals.3.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html:1.15        Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/mtree.5.html     Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/tar.5.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.15 pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.16
--- pkgsrc/archivers/libarchive/files/doc/html/tar.5.html:1.15  Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/tar.5.html       Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>

Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html:1.14    Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_acl.3.html Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:38 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html:1.14        Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_linkify.3.html     Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:38 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html:1.14  Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_paths.3.html       Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html:1.14  Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_perms.3.html       Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html:1.14   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_stat.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html:1.14   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_time.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html:1.14    Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_data.3.html Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html:1.14 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_extract.3.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html:1.14  Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_filter.3.html       Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html:1.14  Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_format.3.html       Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html:1.14    Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_free.3.html Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html:1.14  Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_header.3.html       Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html:1.14     Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_new.3.html  Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html:1.14    Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_open.3.html Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html:1.14     Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_set_options.3.html  Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html:1.14      Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_blocksize.3.html   Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html:1.14   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_data.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html:1.14 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_filter.3.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html:1.14   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_finish_entry.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html:1.14 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_format.3.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html:1.14   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_free.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html:1.14 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_header.3.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html:1.14    Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_new.3.html Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html:1.14   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_open.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:19 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html:1.14    Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_options.3.html Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:40 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.14 pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.15
--- pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html:1.14   Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/libarchive_changes.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>

Index: pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.9 pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.10
--- pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html:1.9    Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_entry_misc.3.html        Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>

Index: pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.11 pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.12
--- pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html:1.11  Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_read_add_passphrase.3.html       Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:18 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:39 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>
Index: pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html
diff -u pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.11 pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.12
--- pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html:1.11 Wed May 21 15:25:49 2025
+++ pkgsrc/archivers/libarchive/files/doc/html/archive_write_set_passphrase.3.html      Tue Jul  1 15:14:43 2025
@@ -1,5 +1,5 @@
 <!-- Creator     : groff version 1.23.0 -->
-<!-- CreationDate: Tue May 20 09:02:20 2025 -->
+<!-- CreationDate: Sun Jun  1 19:29:41 2025 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd";>
 <html>

Index: pkgsrc/archivers/libarchive/files/doc/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/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/libarchive/CMakeLists.txt:1.12 pkgsrc/archivers/libarchive/files/libarchive/CMakeLists.txt:1.13
--- pkgsrc/archivers/libarchive/files/libarchive/CMakeLists.txt:1.12    Wed May 21 15:25:50 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/CMakeLists.txt Tue Jul  1 15:14:44 2025
@@ -248,7 +248,7 @@ IF(BUILD_SHARED_LIBS)
   ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS})
   TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .)
   TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS})
-  SET_TARGET_PROPERTIES(archive PROPERTIES 
+  SET_TARGET_PROPERTIES(archive PROPERTIES
                         VERSION ${SOVERSION_FULL}
                         SOVERSION ${SOVERSION}
                         MACHO_COMPATIBILITY_VERSION ${MACHO_COMPATIBILITY_VERSION}
@@ -266,18 +266,22 @@ IF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHAR
   SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive)
 ENDIF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS)
 
+if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
+    set(CMAKE_INSTALL_LIBDIR "lib")
+endif()
+
 IF(ENABLE_INSTALL)
   # How to install the libraries
   IF(BUILD_SHARED_LIBS)
     INSTALL(TARGETS archive
             RUNTIME DESTINATION bin
-            LIBRARY DESTINATION lib
-            ARCHIVE DESTINATION lib)
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   ENDIF(BUILD_SHARED_LIBS)
   INSTALL(TARGETS archive_static
           RUNTIME DESTINATION bin
-          LIBRARY DESTINATION lib
-          ARCHIVE DESTINATION lib)
+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
   INSTALL_MAN(${libarchive_MANS})
   INSTALL(FILES ${include_HEADERS} DESTINATION include)
 ENDIF()

Index: pkgsrc/archivers/libarchive/files/libarchive/archive.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.21 pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.22
--- pkgsrc/archivers/libarchive/files/libarchive/archive.h:1.21 Wed May 21 15:25:50 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive.h      Tue Jul  1 15:14:44 2025
@@ -34,7 +34,7 @@
  * assert that ARCHIVE_VERSION_NUMBER >= 2012108.
  */
 /* Note: Compiler will complain if this does not match archive_entry.h! */
-#define        ARCHIVE_VERSION_NUMBER 3008000
+#define        ARCHIVE_VERSION_NUMBER 3008001
 
 #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.0"
+#define        ARCHIVE_VERSION_ONLY_STRING "3.8.1"
 #define        ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING
 __LA_DECL const char * archive_version_string(void);
 
@@ -1250,8 +1250,10 @@ __LA_DECL int    archive_match_include_gnam
                    const wchar_t *);
 
 /* Utility functions */
+#if ARCHIVE_VERSION_NUMBER < 4000000
 /* Convenience function to sort a NULL terminated list of strings */
 __LA_DECL int archive_utility_string_sort(char **);
+#endif
 
 #ifdef __cplusplus
 }

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h:1.6 pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h:1.7
--- pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h:1.6  Wed May 21 15:25:50 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_cryptor_private.h      Tue Jul  1 15:14:44 2025
@@ -144,6 +144,10 @@ typedef struct {
 
 #else
 
+#if defined(_WIN32) && !defined(__CYGWIN__) && !(defined(HAVE_BCRYPT_H) && _WIN32_WINNT >= _WIN32_WINNT_VISTA)
+#define ARCHIVE_CRYPTOR_USE_WINCRYPT 1
+#endif
+
 #define AES_BLOCK_SIZE 16
 #define AES_MAX_KEY_SIZE 32
 typedef int archive_crypto_ctx;
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_string_sprintf.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_string_sprintf.c:1.6 pkgsrc/archivers/libarchive/files/libarchive/archive_string_sprintf.c:1.7
--- pkgsrc/archivers/libarchive/files/libarchive/archive_string_sprintf.c:1.6   Fri Apr 12 15:39:51 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_string_sprintf.c       Tue Jul  1 15:14:44 2025
@@ -116,8 +116,14 @@ archive_string_vsprintf(struct archive_s
 
                long_flag = '\0';
                switch(*p) {
-               case 'j':
                case 'l':
+                       if (p[1] == 'l') {
+                               long_flag = 'L';
+                               p += 2;
+                               break;
+                       }
+                       __LA_FALLTHROUGH;
+               case 'j':
                case 'z':
                        long_flag = *p;
                        p++;
@@ -136,6 +142,7 @@ archive_string_vsprintf(struct archive_s
                        switch(long_flag) {
                        case 'j': s = va_arg(ap, intmax_t); break;
                        case 'l': s = va_arg(ap, long); break;
+                       case 'L': s = va_arg(ap, long long); break;
                        case 'z': s = va_arg(ap, ssize_t); break;
                        default:  s = va_arg(ap, int); break;
                        }
@@ -144,6 +151,7 @@ archive_string_vsprintf(struct archive_s
                case 's':
                        switch(long_flag) {
                        case 'l':
+                       case 'L':
                                pw = va_arg(ap, wchar_t *);
                                if (pw == NULL)
                                        pw = L"(null)";
@@ -172,6 +180,7 @@ archive_string_vsprintf(struct archive_s
                        switch(long_flag) {
                        case 'j': u = va_arg(ap, uintmax_t); break;
                        case 'l': u = va_arg(ap, unsigned long); break;
+                       case 'L': u = va_arg(ap, unsigned long long); break;
                        case 'z': u = va_arg(ap, size_t); break;
                        default:  u = va_arg(ap, unsigned int); break;
                        }

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.17 pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.18
--- pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h:1.17   Wed May 21 15:25:50 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_entry.h        Tue Jul  1 15:14:44 2025
@@ -28,7 +28,7 @@
 #define        ARCHIVE_ENTRY_H_INCLUDED
 
 /* Note: Compiler will complain if this does not match archive.h! */
-#define        ARCHIVE_VERSION_NUMBER 3008000
+#define        ARCHIVE_VERSION_NUMBER 3008001
 
 /*
  * Note: archive_entry.h is for use outside of libarchive; the
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.17 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c:1.18
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c:1.17 Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_tar.c      Tue Jul  1 15:14:44 2025
@@ -174,7 +174,7 @@ static int  gnu_sparse_old_parse(struct a
                    const struct gnu_sparse *sparse, int length);
 static int     gnu_sparse_01_parse(struct archive_read *, struct tar *,
                    const char *, size_t);
-static ssize_t gnu_sparse_10_read(struct archive_read *, struct tar *,
+static int64_t gnu_sparse_10_read(struct archive_read *, struct tar *,
                    int64_t *);
 static int     header_Solaris_ACL(struct archive_read *,  struct tar *,
                    struct archive_entry *, const void *, int64_t *);
@@ -628,7 +628,10 @@ archive_read_format_tar_read_data(struct
                /* If we're at end of file, return EOF. */
                if (tar->sparse_list == NULL ||
                    tar->entry_bytes_remaining == 0) {
-                       if (__archive_read_consume(a, tar->entry_padding) < 0)
+                       int64_t request = tar->entry_bytes_remaining +
+                           tar->entry_padding;
+
+                       if (__archive_read_consume(a, request) != request)
                                return (ARCHIVE_FATAL);
                        tar->entry_padding = 0;
                        *buff = NULL;
@@ -666,29 +669,15 @@ archive_read_format_tar_read_data(struct
 static int
 archive_read_format_tar_skip(struct archive_read *a)
 {
-       int64_t bytes_skipped;
        int64_t request;
-       struct sparse_block *p;
        struct tar* tar;
 
        tar = (struct tar *)(a->format->data);
 
-       /* Do not consume the hole of a sparse file. */
-       request = 0;
-       for (p = tar->sparse_list; p != NULL; p = p->next) {
-               if (!p->hole) {
-                       if (p->remaining >= INT64_MAX - request) {
-                               return ARCHIVE_FATAL;
-                       }
-                       request += p->remaining;
-               }
-       }
-       if (request > tar->entry_bytes_remaining)
-               request = tar->entry_bytes_remaining;
-       request += tar->entry_padding + tar->entry_bytes_unconsumed;
+       request = tar->entry_bytes_remaining + tar->entry_padding +
+           tar->entry_bytes_unconsumed;
 
-       bytes_skipped = __archive_read_consume(a, request);
-       if (bytes_skipped < 0)
+       if (__archive_read_consume(a, request) != request)
                return (ARCHIVE_FATAL);
 
        tar->entry_bytes_remaining = 0;
@@ -702,6 +691,22 @@ archive_read_format_tar_skip(struct arch
 }
 
 /*
+ * This function resets the accumulated state while reading
+ * a header.
+ */
+static void
+tar_reset_header_state(struct tar *tar)
+{
+       tar->pax_hdrcharset_utf8 = 1;
+       tar->sparse_gnu_attributes_seen = 0;
+       archive_string_empty(&(tar->entry_gname));
+       archive_string_empty(&(tar->entry_pathname));
+       archive_string_empty(&(tar->entry_pathname_override));
+       archive_string_empty(&(tar->entry_uname));
+       archive_string_empty(&tar->entry_linkpath);
+}
+
+/*
  * This function reads and interprets all of the headers associated
  * with a single entry.
  */
@@ -726,13 +731,7 @@ tar_read_header(struct archive_read *a, 
        static const int32_t seen_x_header = 32; /* Also X */
        static const int32_t seen_mac_metadata = 512;
 
-       tar->pax_hdrcharset_utf8 = 1;
-       tar->sparse_gnu_attributes_seen = 0;
-       archive_string_empty(&(tar->entry_gname));
-       archive_string_empty(&(tar->entry_pathname));
-       archive_string_empty(&(tar->entry_pathname_override));
-       archive_string_empty(&(tar->entry_uname));
-       archive_string_empty(&tar->entry_linkpath);
+       tar_reset_header_state(tar);
 
        /* Ensure format is set. */
        if (a->archive.archive_format_name == NULL) {
@@ -936,6 +935,7 @@ tar_read_header(struct archive_read *a, 
                                err = err_combine(err, err2);
                                /* Note: Other headers can appear again. */
                                seen_headers = seen_mac_metadata;
+                               tar_reset_header_state(tar);
                                break;
                        }
 
@@ -1118,8 +1118,8 @@ header_Solaris_ACL(struct archive_read *
                break;
        default:
                archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                   "Malformed Solaris ACL attribute (unsupported type %"
-                   PRIo64 ")", type);
+                   "Malformed Solaris ACL attribute (unsupported type %llu)",
+                   (unsigned long long)type);
                archive_string_free(&acl_text);
                return (ARCHIVE_WARN);
        }
@@ -1293,18 +1293,21 @@ read_body_to_string(struct archive_read 
        (void)tar; /* UNUSED */
        header = (const struct archive_entry_header_ustar *)h;
        size  = tar_atol(header->size, sizeof(header->size));
-       if (size > entry_limit) {
+       if (size < 0 || size > entry_limit) {
+               archive_set_error(&a->archive, EINVAL,
+                   "Special header has invalid size: %lld",
+                   (long long)size);
                return (ARCHIVE_FATAL);
        }
-       if ((size > (int64_t)pathname_limit) || (size < 0)) {
+       if (size > (int64_t)pathname_limit) {
                archive_string_empty(as);
                int64_t to_consume = ((size + 511) & ~511);
                if (to_consume != __archive_read_consume(a, to_consume)) {
                        return (ARCHIVE_FATAL);
                }
                archive_set_error(&a->archive, EINVAL,
-                   "Special header too large: %d > 1MiB",
-                   (int)size);
+                   "Special header too large: %lld > 1MiB",
+                   (long long)size);
                return (ARCHIVE_WARN);
        }
        r = read_bytes_to_string(a, as, size, unconsumed);
@@ -1743,7 +1746,10 @@ header_pax_global(struct archive_read *a
 
        header = (const struct archive_entry_header_ustar *)h;
        size = tar_atol(header->size, sizeof(header->size));
-       if (size > entry_limit) {
+       if (size < 0 || size > entry_limit) {
+               archive_set_error(&a->archive, EINVAL,
+                   "Special header has invalid size: %lld",
+                   (long long)size);
                return (ARCHIVE_FATAL);
        }
        to_consume = ((size + 511) & ~511);
@@ -1890,8 +1896,8 @@ header_pax_extension(struct archive_read
                        return (ARCHIVE_FATAL);
                }
                archive_set_error(&a->archive, EINVAL,
-                   "Ignoring oversized pax extensions: %d > %d",
-                   (int)ext_size, (int)ext_size_limit);
+                   "Ignoring oversized pax extensions: %lld > %lld",
+                   (long long)ext_size, (long long)ext_size_limit);
                return (ARCHIVE_WARN);
        }
        tar_flush_unconsumed(a, unconsumed);
@@ -1990,6 +1996,13 @@ header_pax_extension(struct archive_read
                *unconsumed += p - attr_start;
                tar_flush_unconsumed(a, unconsumed);
 
+               if (value_length == 0) {
+                       archive_set_error(&a->archive, EINVAL,
+                                         "Malformed pax attributes");
+                       *unconsumed += ext_size + ext_padding;
+                       return (ARCHIVE_WARN);
+               }
+
                /* pax_attribute will consume value_length - 1 */
                r = pax_attribute(a, tar, entry, attr_name.s, archive_strlen(&attr_name), value_length - 1, unconsumed);
                ext_size -= value_length - 1;
@@ -2199,8 +2212,9 @@ pax_attribute_SCHILY_acl(struct archive_
        if (value_length > acl_limit) {
                __archive_read_consume(a, value_length);
                archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                                 "Unreasonably large ACL: %d > %d",
-                                 (int)value_length, (int)acl_limit);
+                                 "Unreasonably large ACL: %llu > %llu",
+                                 (unsigned long long)value_length,
+                                 (unsigned long long)acl_limit);
                return (ARCHIVE_WARN);
        }
 
@@ -2247,12 +2261,16 @@ pax_attribute_read_time(struct archive_r
        r = read_bytes_to_string(a, &as, value_length, unconsumed);
        if (r < ARCHIVE_OK) {
                archive_string_free(&as);
+               *ps = 0;
+               *pn = 0;
                return (r);
        }
 
        pax_time(as.s, archive_strlen(&as), ps, pn);
        archive_string_free(&as);
-       if (*ps < 0 || *ps == INT64_MAX) {
+       if (*ps == INT64_MIN) {
+               *ps = 0;
+               *pn = 0;
                return (ARCHIVE_WARN);
        }
        return (ARCHIVE_OK);
@@ -2386,8 +2404,9 @@ pax_attribute(struct archive_read *a, st
                                        tar->sparse_gnu_minor = 1;
                                        if (value_length > sparse_map_limit) {
                                                archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                                                                 "Unreasonably large sparse map: %d > %d",
-                                                                 (int)value_length, (int)sparse_map_limit);
+                                                                 "Unreasonably large sparse map: %llu > %llu",
+                                                                 (unsigned long long)value_length,
+                                                                 (unsigned long long)sparse_map_limit);
                                                err = ARCHIVE_FAILED;
                                        } else {
                                                p = __archive_read_ahead(a, value_length, &bytes_read);
@@ -2494,8 +2513,8 @@ pax_attribute(struct archive_read *a, st
                                } else {
                                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
                                                          "symlink type is very long"
-                                                         "(longest recognized value is 4 bytes, this is %d)",
-                                                         (int)value_length);
+                                                         "(longest recognized value is 4 bytes, this is %llu)",
+                                                         (unsigned long long)value_length);
                                        err = ARCHIVE_WARN;
                                }
                                __archive_read_consume(a, value_length);
@@ -2531,8 +2550,9 @@ pax_attribute(struct archive_read *a, st
                        if (value_length > xattr_limit) {
                                archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
                                                  "Ignoring unreasonably large security.selinux attribute:"
-                                                 " %d > %d",
-                                                 (int)value_length, (int)xattr_limit);
+                                                 " %llu > %llu",
+                                                 (unsigned long long)value_length,
+                                                 (unsigned long long)xattr_limit);
                                /* TODO: Should this be FAILED instead? */
                                err = ARCHIVE_WARN;
                        } else {
@@ -2649,8 +2669,9 @@ pax_attribute(struct archive_read *a, st
                                        }
                                } else {
                                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                                                         "Unreasonably large xattr: %d > %d",
-                                                         (int)value_length, (int)xattr_limit);
+                                                         "Unreasonably large xattr: %llu > %llu",
+                                                         (unsigned long long)value_length,
+                                                         (unsigned long long)xattr_limit);
                                        err = ARCHIVE_WARN;
                                }
                                __archive_read_consume(a, value_length);
@@ -2680,8 +2701,9 @@ pax_attribute(struct archive_read *a, st
                                        }
                                } else {
                                        archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-                                                         "Unreasonably large sparse map: %d > %d",
-                                                         (int)value_length, (int)sparse_map_limit);
+                                                         "Unreasonably large sparse map: %llu > %llu",
+                                                         (unsigned long long)value_length,
+                                                         (unsigned long long)sparse_map_limit);
                                        err = ARCHIVE_FAILED;
                                }
                                __archive_read_consume(a, value_length);
@@ -2750,8 +2772,8 @@ pax_attribute(struct archive_read *a, st
                                }
                        } else {
                                archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT,
-                                                 "hdrcharset attribute is unreasonably large (%d bytes)",
-                                                 (int)value_length);
+                                                 "hdrcharset attribute is unreasonably large (%llu bytes)",
+                                                 (unsigned long long)value_length);
                                err = ARCHIVE_WARN;
                        }
                        __archive_read_consume(a, value_length);
@@ -2838,7 +2860,9 @@ pax_attribute(struct archive_read *a, st
 
 
 /*
- * parse a decimal time value, which may include a fractional portion
+ * Parse a decimal time value, which may include a fractional portion
+ *
+ * Sets ps to INT64_MIN on error.
  */
 static void
 pax_time(const char *p, size_t length, int64_t *ps, long *pn)
@@ -2854,6 +2878,7 @@ pax_time(const char *p, size_t length, i
 
        if (length <= 0) {
                *ps = 0;
+               *pn = 0;
                return;
        }
        s = 0;
@@ -2867,8 +2892,9 @@ pax_time(const char *p, size_t length, i
                digit = *p - '0';
                if (s > limit ||
                    (s == limit && digit > last_digit_limit)) {
-                       s = INT64_MAX;
-                       break;
+                       *ps = INT64_MIN;
+                       *pn = 0;
+                       return;
                }
                s = (s * 10) + digit;
                ++p;
@@ -3229,12 +3255,10 @@ gnu_sparse_10_atol(struct archive_read *
  * Returns length (in bytes) of the sparse data description
  * that was read.
  */
-static ssize_t
+static int64_t
 gnu_sparse_10_read(struct archive_read *a, struct tar *tar, int64_t *unconsumed)
 {
-       ssize_t bytes_read;
-       int entries;
-       int64_t offset, size, to_skip, remaining;
+       int64_t bytes_read, entries, offset, size, to_skip, remaining;
 
        /* Clear out the existing sparse list. */
        gnu_clear_sparse_list(tar);
@@ -3242,7 +3266,7 @@ gnu_sparse_10_read(struct archive_read *
        remaining = tar->entry_bytes_remaining;
 
        /* Parse entries. */
-       entries = (int)gnu_sparse_10_atol(a, tar, &remaining, unconsumed);
+       entries = gnu_sparse_10_atol(a, tar, &remaining, unconsumed);
        if (entries < 0)
                return (ARCHIVE_FATAL);
        /* Parse the individual entries. */
@@ -3260,14 +3284,14 @@ gnu_sparse_10_read(struct archive_read *
        }
        /* Skip rest of block... */
        tar_flush_unconsumed(a, unconsumed);
-       bytes_read = (ssize_t)(tar->entry_bytes_remaining - remaining);
+       bytes_read = tar->entry_bytes_remaining - remaining;
        to_skip = 0x1ff & -bytes_read;
        /* Fail if tar->entry_bytes_remaing would get negative */
        if (to_skip > remaining)
                return (ARCHIVE_FATAL);
        if (to_skip != __archive_read_consume(a, to_skip))
                return (ARCHIVE_FATAL);
-       return ((ssize_t)(bytes_read + to_skip));
+       return (bytes_read + to_skip);
 }
 
 /*

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_match.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_match.c:1.9 pkgsrc/archivers/libarchive/files/libarchive/archive_match.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/archive_match.c:1.9    Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_match.c        Tue Jul  1 15:14:44 2025
@@ -35,6 +35,9 @@
 #ifdef HAVE_STRING_H
 #include <string.h>
 #endif
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
 
 #include "archive.h"
 #include "archive_private.h"
@@ -53,8 +56,7 @@ struct match {
 struct match_list {
        struct match            *first;
        struct match            **last;
-       int                      count;
-       int                      unmatched_count;
+       size_t                   unmatched_count;
        struct match            *unmatched_next;
        int                      unmatched_eof;
 };
@@ -73,7 +75,6 @@ struct match_file {
 struct entry_list {
        struct match_file       *first;
        struct match_file       **last;
-       int                      count;
 };
 
 struct id_array {
@@ -144,12 +145,15 @@ static int        add_pattern_mbs(struct archiv
                    const char *);
 static int     add_pattern_wcs(struct archive_match *, struct match_list *,
                    const wchar_t *);
+#if !defined(_WIN32) || defined(__CYGWIN__)
 static int     cmp_key_mbs(const struct archive_rb_node *, const void *);
-static int     cmp_key_wcs(const struct archive_rb_node *, const void *);
 static int     cmp_node_mbs(const struct archive_rb_node *,
                    const struct archive_rb_node *);
+#else
+static int     cmp_key_wcs(const struct archive_rb_node *, const void *);
 static int     cmp_node_wcs(const struct archive_rb_node *,
                    const struct archive_rb_node *);
+#endif
 static void    entry_list_add(struct entry_list *, struct match_file *);
 static void    entry_list_free(struct entry_list *);
 static void    entry_list_init(struct entry_list *);
@@ -189,12 +193,12 @@ static int        validate_time_flag(struct arc
 
 #define get_date archive_parse_date
 
-static const struct archive_rb_tree_ops rb_ops_mbs = {
+static const struct archive_rb_tree_ops rb_ops = {
+#if !defined(_WIN32) || defined(__CYGWIN__)
        cmp_node_mbs, cmp_key_mbs
-};
-
-static const struct archive_rb_tree_ops rb_ops_wcs = {
+#else
        cmp_node_wcs, cmp_key_wcs
+#endif
 };
 
 /*
@@ -228,7 +232,7 @@ archive_match_new(void)
        a->recursive_include = 1;
        match_list_init(&(a->inclusions));
        match_list_init(&(a->exclusions));
-       __archive_rb_tree_init(&(a->exclusion_tree), &rb_ops_mbs);
+       __archive_rb_tree_init(&(a->exclusion_tree), &rb_ops);
        entry_list_init(&(a->exclusion_entry_list));
        match_list_init(&(a->inclusion_unames));
        match_list_init(&(a->inclusion_gnames));
@@ -507,7 +511,9 @@ archive_match_path_unmatched_inclusions(
            ARCHIVE_STATE_NEW, "archive_match_unmatched_inclusions");
        a = (struct archive_match *)_a;
 
-       return (a->inclusions.unmatched_count);
+       if (a->inclusions.unmatched_count > (size_t)INT_MAX)
+               return INT_MAX;
+       return (int)(a->inclusions.unmatched_count);
 }
 
 int
@@ -650,7 +656,7 @@ add_pattern_from_file(struct archive_mat
                                                break;
                                        }
                                } else {
-                                       if (*b == 0x0d || *b == 0x0a) {
+                                       if (*b == 0x0d || *b == 0x0a) {
                                                found_separator = 1;
                                                break;
                                        }
@@ -735,7 +741,7 @@ path_excluded(struct archive_match *a, i
                }
        }
 
-       /* Exclusions take priority */
+       /* Exclusions take priority. */
        for (match = a->exclusions.first; match != NULL;
            match = match->next){
                r = match_path_exclusion(a, match, mbs, pathname);
@@ -834,7 +840,6 @@ match_list_init(struct match_list *list)
 {
        list->first = NULL;
        list->last = &(list->first);
-       list->count = 0;
 }
 
 static void
@@ -855,7 +860,6 @@ match_list_add(struct match_list *list, 
 {
        *list->last = m;
        list->last = &(m->next);
-       list->count++;
        list->unmatched_count++;
 }
 
@@ -1275,6 +1279,7 @@ set_timefilter_pathname_wcs(struct archi
 /*
  * Call back functions for archive_rb.
  */
+#if !defined(_WIN32) || defined(__CYGWIN__)
 static int
 cmp_node_mbs(const struct archive_rb_node *n1,
     const struct archive_rb_node *n2)
@@ -1291,7 +1296,7 @@ cmp_node_mbs(const struct archive_rb_nod
                return (-1);
        return (strcmp(p1, p2));
 }
-        
+
 static int
 cmp_key_mbs(const struct archive_rb_node *n, const void *key)
 {
@@ -1303,7 +1308,7 @@ cmp_key_mbs(const struct archive_rb_node
                return (-1);
        return (strcmp(p, (const char *)key));
 }
-
+#else
 static int
 cmp_node_wcs(const struct archive_rb_node *n1,
     const struct archive_rb_node *n2)
@@ -1320,7 +1325,7 @@ cmp_node_wcs(const struct archive_rb_nod
                return (-1);
        return (wcscmp(p1, p2));
 }
-        
+
 static int
 cmp_key_wcs(const struct archive_rb_node *n, const void *key)
 {
@@ -1332,13 +1337,13 @@ cmp_key_wcs(const struct archive_rb_node
                return (-1);
        return (wcscmp(p, (const wchar_t *)key));
 }
+#endif
 
 static void
 entry_list_init(struct entry_list *list)
 {
        list->first = NULL;
        list->last = &(list->first);
-       list->count = 0;
 }
 
 static void
@@ -1359,7 +1364,6 @@ entry_list_add(struct entry_list *list, 
 {
        *list->last = file;
        list->last = &(file->next);
-       list->count++;
 }
 
 static int
@@ -1382,9 +1386,7 @@ add_entry(struct archive_match *a, int f
                return (ARCHIVE_FAILED);
        }
        archive_mstring_copy_wcs(&(f->pathname), pathname);
-       a->exclusion_tree.rbt_ops = &rb_ops_wcs;
 #else
-       (void)rb_ops_wcs;
        pathname = archive_entry_pathname(entry);
        if (pathname == NULL) {
                free(f);
@@ -1392,7 +1394,6 @@ add_entry(struct archive_match *a, int f
                return (ARCHIVE_FAILED);
        }
        archive_mstring_copy_mbs(&(f->pathname), pathname);
-       a->exclusion_tree.rbt_ops = &rb_ops_mbs;
 #endif
        f->flag = flag;
        f->mtime_sec = archive_entry_mtime(entry);
@@ -1517,16 +1518,13 @@ time_excluded(struct archive_match *a, s
        }
 
        /* If there is no exclusion list, include the file. */
-       if (a->exclusion_entry_list.count == 0)
+       if (a->exclusion_entry_list.first == NULL)
                return (0);
 
 #if defined(_WIN32) && !defined(__CYGWIN__)
        pathname = archive_entry_pathname_w(entry);
-       a->exclusion_tree.rbt_ops = &rb_ops_wcs;
 #else
-       (void)rb_ops_wcs;
        pathname = archive_entry_pathname(entry);
-       a->exclusion_tree.rbt_ops = &rb_ops_mbs;
 #endif
        if (pathname == NULL)
                return (0);
@@ -1682,7 +1680,7 @@ archive_match_owner_excluded(struct arch
 static int
 add_owner_id(struct archive_match *a, struct id_array *ids, int64_t id)
 {
-       unsigned i;
+       size_t i;
 
        if (ids->count + 1 >= ids->size) {
                void *p;
@@ -1719,10 +1717,10 @@ add_owner_id(struct archive_match *a, st
 static int
 match_owner_id(struct id_array *ids, int64_t id)
 {
-       unsigned b, m, t;
+       size_t b, m, t;
 
        t = 0;
-       b = (unsigned)ids->count;
+       b = ids->count;
        while (t < b) {
                m = (t + b)>>1;
                if (ids->ids[m] == id)
@@ -1817,7 +1815,7 @@ owner_excluded(struct archive_match *a, 
                        return (1);
        }
 
-       if (a->inclusion_unames.count) {
+       if (a->inclusion_unames.first != NULL) {
 #if defined(_WIN32) && !defined(__CYGWIN__)
                r = match_owner_name_wcs(a, &(a->inclusion_unames),
                        archive_entry_uname_w(entry));
@@ -1831,7 +1829,7 @@ owner_excluded(struct archive_match *a, 
                        return (r);
        }
 
-       if (a->inclusion_gnames.count) {
+       if (a->inclusion_gnames.first != NULL) {
 #if defined(_WIN32) && !defined(__CYGWIN__)
                r = match_owner_name_wcs(a, &(a->inclusion_gnames),
                        archive_entry_gname_w(entry));

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c:1.11 pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c:1.12
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c:1.11       Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_disk_windows.c    Tue Jul  1 15:14:44 2025
@@ -1652,7 +1652,7 @@ tree_push(struct tree *t, const wchar_t 
 /*
  * Append a name to the current dir path.
  */
-static void
+static int
 tree_append(struct tree *t, const wchar_t *name, size_t name_length)
 {
        size_t size_needed;
@@ -1665,7 +1665,8 @@ tree_append(struct tree *t, const wchar_
 
        /* Resize pathname buffer as needed. */
        size_needed = name_length + t->dirname_length + 2;
-       archive_wstring_ensure(&t->path, size_needed);
+       if (archive_wstring_ensure(&t->path, size_needed) == NULL)
+               return (TREE_ERROR_FATAL);
        /* Add a separating '/' if it's needed. */
        if (t->dirname_length > 0 &&
            t->path.s[archive_strlen(&t->path)-1] != L'/')
@@ -1677,13 +1678,15 @@ tree_append(struct tree *t, const wchar_
                t->full_path.s[t->full_path_dir_length] = L'\0';
                t->full_path.length = t->full_path_dir_length;
                size_needed = name_length + t->full_path_dir_length + 2;
-               archive_wstring_ensure(&t->full_path, size_needed);
+               if (archive_wstring_ensure(&t->full_path, size_needed) == NULL)
+                       return (TREE_ERROR_FATAL);
                /* Add a separating '\' if it's needed. */
                if (t->full_path.s[archive_strlen(&t->full_path)-1] != L'\\')
                        archive_wstrappend_wchar(&t->full_path, L'\\');
                archive_wstrncat(&t->full_path, name, name_length);
                t->restore_time.full_path = t->full_path.s;
        }
+       return (0);
 }
 
 /*
@@ -1697,7 +1700,10 @@ tree_open(const wchar_t *path, int symli
        t = calloc(1, sizeof(*t));
        archive_string_init(&(t->full_path));
        archive_string_init(&t->path);
-       archive_wstring_ensure(&t->path, 15);
+       if (archive_wstring_ensure(&t->path, 15) == NULL) {
+               free(t);
+               return (NULL);
+       }
        t->initial_symlink_mode = symlink_mode;
        return (tree_reopen(t, path, restore_time));
 }
@@ -1756,7 +1762,8 @@ tree_reopen(struct tree *t, const wchar_
                p = wcsrchr(base, L'/');
                if (p != NULL) {
                        *p = L'\0';
-                       tree_append(t, base, p - base);
+                       if (tree_append(t, base, p - base))
+                               goto failed;
                        t->dirname_length = archive_strlen(&t->path);
                        base = p + 1;
                }
@@ -1892,8 +1899,10 @@ tree_next(struct tree *t)
                        }
                        /* Top stack item needs a regular visit. */
                        t->current = t->stack;
-                       tree_append(t, t->stack->name.s,
+                       r = tree_append(t, t->stack->name.s,
                            archive_strlen(&(t->stack->name)));
+                       if (r != 0)
+                               return (r);
                        //t->dirname_length = t->path_length;
                        //tree_pop(t);
                        t->stack->flags &= ~needsFirstVisit;
@@ -1901,8 +1910,10 @@ tree_next(struct tree *t)
                } else if (t->stack->flags & needsDescent) {
                        /* Top stack item is dir to descend into. */
                        t->current = t->stack;
-                       tree_append(t, t->stack->name.s,
+                       r = tree_append(t, t->stack->name.s,
                            archive_strlen(&(t->stack->name)));
+                       if (r != 0)
+                               return (r);
                        t->stack->flags &= ~needsDescent;
                        r = tree_descent(t);
                        if (r != 0) {
@@ -1945,9 +1956,10 @@ tree_dir_next_windows(struct tree *t, co
                        struct archive_wstring pt;
 
                        archive_string_init(&pt);
-                       archive_wstring_ensure(&pt,
+                       if (archive_wstring_ensure(&pt,
                            archive_strlen(&(t->full_path))
-                             + 2 + wcslen(pattern));
+                             + 2 + wcslen(pattern)) == NULL)
+                               return (TREE_ERROR_FATAL);
                        archive_wstring_copy(&pt, &(t->full_path));
                        archive_wstrappend_wchar(&pt, L'\\');
                        archive_wstrcat(&pt, pattern);
@@ -1979,7 +1991,9 @@ tree_dir_next_windows(struct tree *t, co
                        continue;
                if (name[0] == L'.' && name[1] == L'.' && name[2] == L'\0')
                        continue;
-               tree_append(t, name, namelen);
+               r = tree_append(t, name, namelen);
+               if (r != 0)
+                       return (r);
                return (t->visit_type = TREE_REGULAR);
        }
 }
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c:1.11 pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c:1.12
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c:1.11  Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_open_file.c       Tue Jul  1 15:14:44 2025
@@ -132,7 +132,7 @@ FILE_skip(struct archive *a, void *clien
 #else
        long skip = (long)request;
 #endif
-       int64_t old_offset, new_offset;
+       int64_t old_offset, new_offset = -1;
        int skip_bits = sizeof(skip) * 8 - 1;
 
        (void)a; /* UNUSED */
@@ -170,11 +170,14 @@ FILE_skip(struct archive *a, void *clien
 #ifdef __ANDROID__
                        new_offset = lseek(fileno(mine->f), skip, SEEK_CUR);
 #elif HAVE__FSEEKI64
-                       new_offset = _fseeki64(mine->f, skip, SEEK_CUR);
+                       if (_fseeki64(mine->f, skip, SEEK_CUR) == 0)
+                               new_offset = _ftelli64(mine->f);
 #elif HAVE_FSEEKO
-                       new_offset = fseeko(mine->f, skip, SEEK_CUR);
+                       if (fseeko(mine->f, skip, SEEK_CUR) == 0)
+                               new_offset = ftello(mine->f);
 #else
-                       new_offset = fseek(mine->f, skip, SEEK_CUR);
+                       if (fseek(mine->f, skip, SEEK_CUR) == 0)
+                               new_offset = ftell(mine->f);
 #endif
                        if (new_offset >= 0)
                                return (new_offset - old_offset);
Index: pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.11 pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.12
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c:1.11      Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_disk_windows.c   Tue Jul  1 15:14:44 2025
@@ -408,7 +408,11 @@ permissive_name_w(struct archive_write_d
                wn = _wcsdup(wnp);
                if (wn == NULL)
                        return (-1);
-               archive_wstring_ensure(&(a->_name_data), 4 + wcslen(wn) + 1);
+               if (archive_wstring_ensure(&(a->_name_data),
+                       4 + wcslen(wn) + 1) == NULL) {
+                       free(wn);
+                       return (-1);
+               }
                a->name = a->_name_data.s;
                /* Prepend "\\?\" */
                archive_wstrncpy(&(a->_name_data), L"\\\\?\\", 4);
@@ -438,8 +442,11 @@ permissive_name_w(struct archive_write_d
                                wn = _wcsdup(wnp);
                                if (wn == NULL)
                                        return (-1);
-                               archive_wstring_ensure(&(a->_name_data),
-                                       8 + wcslen(wn) + 1);
+                               if (archive_wstring_ensure(&(a->_name_data),
+                                       8 + wcslen(wn) + 1) == NULL) {
+                                       free(wn);
+                                       return (-1);
+                               }
                                a->name = a->_name_data.s;
                                /* Prepend "\\?\UNC\" */
                                archive_wstrncpy(&(a->_name_data),
@@ -471,10 +478,16 @@ permissive_name_w(struct archive_write_d
         */
        if (wnp[0] == L'\\') {
                wn = _wcsdup(wnp);
-               if (wn == NULL)
+               if (wn == NULL) {
+                       free(wsp);
                        return (-1);
-               archive_wstring_ensure(&(a->_name_data),
-                       4 + 2 + wcslen(wn) + 1);
+               }
+               if (archive_wstring_ensure(&(a->_name_data),
+                       4 + 2 + wcslen(wn) + 1) == NULL) {
+                       free(wsp);
+                       free(wn);
+                       return (-1);
+               }
                a->name = a->_name_data.s;
                /* Prepend "\\?\" and drive name. */
                archive_wstrncpy(&(a->_name_data), L"\\\\?\\", 4);
@@ -486,9 +499,16 @@ permissive_name_w(struct archive_write_d
        }
 
        wn = _wcsdup(wnp);
-       if (wn == NULL)
+       if (wn == NULL) {
+               free(wsp);
+               return (-1);
+       }
+       if (archive_wstring_ensure(&(a->_name_data),
+               4 + l + 1 + wcslen(wn) + 1) == NULL) {
+               free(wsp);
+               free(wn);
                return (-1);
-       archive_wstring_ensure(&(a->_name_data), 4 + l + 1 + wcslen(wn) + 1);
+       }
        a->name = a->_name_data.s;
        /* Prepend "\\?\" and drive name if not already added. */
        if (l > 3 && wsp[0] == L'\\' && wsp[1] == L'\\' &&

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_compress.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_compress.c:1.5 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_compress.c:1.6
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_compress.c:1.5     Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_filter_compress.c Tue Jul  1 15:14:44 2025
@@ -328,6 +328,7 @@ next_code(struct archive_read_filter *se
        static int debug_buff[1024];
        static unsigned debug_index;
 
+again:
        code = newcode = getbits(self, state->bits);
        if (code < 0)
                return (code);
@@ -360,7 +361,7 @@ next_code(struct archive_read_filter *se
                state->section_end_code = (1 << state->bits) - 1;
                state->free_ent = 257;
                state->oldcode = -1;
-               return (next_code(self));
+               goto again;
        }
 
        if (code > state->free_ent

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.8 pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c:1.8  Sat Oct 19 05:39:58 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_read_support_format_cab.c      Tue Jul  1 15:14:44 2025
@@ -363,7 +363,12 @@ archive_read_support_format_cab(struct a
                return (ARCHIVE_FATAL);
        }
        archive_string_init(&cab->ws);
-       archive_wstring_ensure(&cab->ws, 256);
+       if (archive_wstring_ensure(&cab->ws, 256) == NULL) {
+               archive_set_error(&a->archive, ENOMEM,
+                   "Can't allocate memory");
+               free(cab);
+               return (ARCHIVE_FATAL);
+       }
 
        r = __archive_read_register_format(a,
            cab,
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.8 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.8 Mon Apr 28 10:31:34 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_iso9660.c     Tue Jul  1 15:14:44 2025
@@ -1167,7 +1167,12 @@ archive_write_set_format_iso9660(struct 
        iso9660->primary.rootent->parent = iso9660->primary.rootent;
        iso9660->cur_dirent = iso9660->primary.rootent;
        archive_string_init(&(iso9660->cur_dirstr));
-       archive_string_ensure(&(iso9660->cur_dirstr), 1);
+       if (archive_string_ensure(&(iso9660->cur_dirstr), 1) == NULL) {
+               free(iso9660);
+               archive_set_error(&a->archive, ENOMEM,
+                   "Can't allocate memory");
+               return (ARCHIVE_FATAL);
+       }
        iso9660->cur_dirstr.s[0] = 0;
        iso9660->sconv_to_utf16be = NULL;
        iso9660->sconv_from_utf16be = NULL;
@@ -5666,9 +5671,15 @@ isoent_tree(struct archive_write *a, str
                 * inserted. */
                iso9660->cur_dirent = dent;
                archive_string_empty(&(iso9660->cur_dirstr));
-               archive_string_ensure(&(iso9660->cur_dirstr),
+               if (archive_string_ensure(&(iso9660->cur_dirstr),
                    archive_strlen(&(dent->file->parentdir)) +
-                   archive_strlen(&(dent->file->basename)) + 2);
+                   archive_strlen(&(dent->file->basename)) + 2) == NULL) {
+                       archive_set_error(&a->archive, ENOMEM,
+                           "Can't allocate memory");
+                       _isoent_free(isoent);
+                       *isoentpp = NULL;
+                       return (ARCHIVE_FATAL);
+               }
                if (archive_strlen(&(dent->file->parentdir)) +
                    archive_strlen(&(dent->file->basename)) == 0)
                        iso9660->cur_dirstr.s[0] = 0;

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_util.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_util.c:1.15 pkgsrc/archivers/libarchive/files/libarchive/archive_util.c:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/archive_util.c:1.15    Sat Oct 19 05:39:59 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_util.c Tue Jul  1 15:14:44 2025
@@ -77,7 +77,9 @@
 #define O_CLOEXEC      0
 #endif
 
-static int archive_utility_string_sort_helper(char **, unsigned int);
+#if ARCHIVE_VERSION_NUMBER < 4000000
+static int __LA_LIBC_CC archive_utility_string_sort_helper(const void *, const void *);
+#endif
 
 /* Generic initialization of 'struct archive' objects. */
 int
@@ -629,74 +631,28 @@ __archive_ensure_cloexec_flag(int fd)
 #endif
 }
 
+#if ARCHIVE_VERSION_NUMBER < 4000000
 /*
- * Utility function to sort a group of strings using quicksort.
+ * Utility functions to sort a group of strings using quicksort.
  */
 static int
-archive_utility_string_sort_helper(char **strings, unsigned int n)
+__LA_LIBC_CC
+archive_utility_string_sort_helper(const void *p1, const void *p2)
 {
-       unsigned int i, lesser_count, greater_count;
-       char **lesser, **greater, **tmp, *pivot;
-       int retval1, retval2;
-
-       /* A list of 0 or 1 elements is already sorted */
-       if (n <= 1)
-               return (ARCHIVE_OK);
-
-       lesser_count = greater_count = 0;
-       lesser = greater = NULL;
-       pivot = strings[0];
-       for (i = 1; i < n; i++)
-       {
-               if (strcmp(strings[i], pivot) < 0)
-               {
-                       lesser_count++;
-                       tmp = realloc(lesser, lesser_count * sizeof(*tmp));
-                       if (!tmp) {
-                               free(greater);
-                               free(lesser);
-                               return (ARCHIVE_FATAL);
-                       }
-                       lesser = tmp;
-                       lesser[lesser_count - 1] = strings[i];
-               }
-               else
-               {
-                       greater_count++;
-                       tmp = realloc(greater, greater_count * sizeof(*tmp));
-                       if (!tmp) {
-                               free(greater);
-                               free(lesser);
-                               return (ARCHIVE_FATAL);
-                       }
-                       greater = tmp;
-                       greater[greater_count - 1] = strings[i];
-               }
-       }
-
-       /* quicksort(lesser) */
-       retval1 = archive_utility_string_sort_helper(lesser, lesser_count);
-       for (i = 0; i < lesser_count; i++)
-               strings[i] = lesser[i];
-       free(lesser);
-
-       /* pivot */
-       strings[lesser_count] = pivot;
-
-       /* quicksort(greater) */
-       retval2 = archive_utility_string_sort_helper(greater, greater_count);
-       for (i = 0; i < greater_count; i++)
-               strings[lesser_count + 1 + i] = greater[i];
-       free(greater);
+       const char * const * const s1 = p1;
+       const char * const * const s2 = p2;
 
-       return (retval1 < retval2) ? retval1 : retval2;
+       return strcmp(*s1, *s2);
 }
 
 int
 archive_utility_string_sort(char **strings)
 {
-         unsigned int size = 0;
-         while (strings[size] != NULL)
+       size_t size = 0;
+       while (strings[size] != NULL)
                size++;
-         return archive_utility_string_sort_helper(strings, size);
+       qsort(strings, size, sizeof(char *),
+             archive_utility_string_sort_helper);
+       return (ARCHIVE_OK);
 }
+#endif

Index: pkgsrc/archivers/libarchive/files/libarchive/archive_version_details.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/archive_version_details.c:1.4 pkgsrc/archivers/libarchive/files/libarchive/archive_version_details.c:1.5
--- pkgsrc/archivers/libarchive/files/libarchive/archive_version_details.c:1.4  Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_version_details.c      Tue Jul  1 15:14:44 2025
@@ -134,31 +134,31 @@ archive_libb2_version(struct archive_str
 static void
 archive_crypto_version(struct archive_string* str)
 {
-#if defined(ARCHIVE_CRYPTOR_USE_Apple_CommonCrypto) || defined(ARCHIVE_DIGEST_USE_Apple_CommonCrypto)
+#if defined(ARCHIVE_CRYPTOR_USE_Apple_CommonCrypto)
        archive_strcat(str, " CommonCrypto/");
        archive_strcat(str, archive_commoncrypto_version());
 #endif
-#if defined(ARCHIVE_CRYPTOR_USE_CNG) || defined(ARCHIVE_DIGEST_USE_CNG)
+#if defined(ARCHIVE_CRYPTOR_USE_CNG)
        archive_strcat(str, " cng/");
        archive_strcat(str, archive_cng_version());
 #endif
-#if defined(ARCHIVE_CRYPTOR_USE_MBED) || defined(ARCHIVE_DIGEST_USE_MBED)
+#if defined(ARCHIVE_CRYPTOR_USE_MBED)
        archive_strcat(str, " mbedtls/");
        archive_strcat(str, archive_mbedtls_version());
 #endif
-#if defined(ARCHIVE_CRYPTOR_USE_NETTLE) || defined(ARCHIVE_DIGEST_USE_NETTLE)
+#if defined(ARCHIVE_CRYPTOR_USE_NETTLE)
        archive_strcat(str, " nettle/");
        archive_strcat(str, archive_nettle_version());
 #endif
-#if defined(ARCHIVE_CRYPTOR_USE_OPENSSL) || defined(ARCHIVE_DIGEST_USE_OPENSSL)
+#if defined(ARCHIVE_CRYPTOR_USE_OPENSSL)
        archive_strcat(str, " openssl/");
        archive_strcat(str, archive_openssl_version());
 #endif
-#if defined(ARCHIVE_CRYPTOR_USE_LIBMD) || defined(ARCHIVE_DIGEST_USE_LIBMD)
+#if defined(ARCHIVE_CRYPTOR_USE_LIBMD)
        archive_strcat(str, " libmd/");
        archive_strcat(str, archive_libmd_version());
 #endif
-#if defined(ARCHIVE_CRYPTOR_USE_WINCRYPT) || defined(ARCHIVE_DIGEST_USE_WINCRYPT)
+#if defined(ARCHIVE_CRYPTOR_USE_WINCRYPT)
        archive_strcat(str, " WinCrypt/");
        archive_strcat(str, archive_wincrypt_version());
 #endif
@@ -439,11 +439,11 @@ archive_wincrypt_version(void)
                if (!CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET))
                        return NULL;
        }
-       DWORD length, version;
-       if (!CryptGetProvParam(prov, PP_VERSION, &version, &length, 0)) {
+       DWORD version, length = sizeof(version);
+       if (!CryptGetProvParam(prov, PP_VERSION, (BYTE *)&version, &length, 0)) {
                return NULL;
        } else {
-               char major = version >> 8;
+               char major = (version >> 8) & 0xFF;
                char minor = version & 0xFF;
                static char wincrypt_version[6];
                snprintf(wincrypt_version, 6, "%hhd.%hhd", major, minor);

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.10 pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c:1.11
--- pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c:1.10  Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/archive_write_set_format_mtree.c       Tue Jul  1 15:14:44 2025
@@ -2209,9 +2209,13 @@ mtree_entry_tree_add(struct archive_writ
                 * inserted. */
                mtree->cur_dirent = dent;
                archive_string_empty(&(mtree->cur_dirstr));
-               archive_string_ensure(&(mtree->cur_dirstr),
+               if (archive_string_ensure(&(mtree->cur_dirstr),
                    archive_strlen(&(dent->parentdir)) +
-                   archive_strlen(&(dent->basename)) + 2);
+                   archive_strlen(&(dent->basename)) + 2) == NULL) {
+                       archive_set_error(&a->archive, ENOMEM,
+                           "Can't allocate memory");
+                       return (ARCHIVE_FATAL);
+               }
                if (archive_strlen(&(dent->parentdir)) +
                    archive_strlen(&(dent->basename)) == 0)
                        mtree->cur_dirstr.s[0] = 0;

Index: pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.15 pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.16
--- pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt:1.15       Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/CMakeLists.txt    Tue Jul  1 15:14:45 2025
@@ -174,8 +174,10 @@ IF(ENABLE_TEST)
     test_read_format_tar_empty_pax.c
     test_read_format_tar_filename.c
     test_read_format_tar_invalid_pax_size.c
+    test_read_format_tar_mac_metadata.c
     test_read_format_tar_pax_g_large.c
     test_read_format_tar_pax_large_attr.c
+    test_read_format_tar_pax_negative_time.c
     test_read_format_tbz.c
     test_read_format_tgz.c
     test_read_format_tlz.c
@@ -208,6 +210,7 @@ IF(ENABLE_TEST)
     test_read_format_zip_zip64.c
     test_read_format_zip_with_invalid_traditional_eocd.c
     test_read_large.c
+    test_read_pax_empty_val_no_nl.c
     test_read_pax_xattr_rht_security_selinux.c
     test_read_pax_xattr_schily.c
     test_read_pax_truncated.c

Index: pkgsrc/archivers/libarchive/files/libarchive/test/list.h
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.17 pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.18
--- pkgsrc/archivers/libarchive/files/libarchive/test/list.h:1.17       Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/list.h    Tue Jul  1 15:14:45 2025
@@ -413,8 +413,10 @@ DEFINE_TEST(test_read_format_tar_empty_p
 DEFINE_TEST(test_read_format_tar_empty_with_gnulabel)
 DEFINE_TEST(test_read_format_tar_filename)
 DEFINE_TEST(test_read_format_tar_invalid_pax_size)
+DEFINE_TEST(test_read_format_tar_mac_metadata)
 DEFINE_TEST(test_read_format_tar_pax_g_large)
 DEFINE_TEST(test_read_format_tar_pax_large_attr)
+DEFINE_TEST(test_read_format_tar_pax_negative_time)
 DEFINE_TEST(test_read_format_tbz)
 DEFINE_TEST(test_read_format_tgz)
 DEFINE_TEST(test_read_format_tlz)
@@ -498,6 +500,7 @@ DEFINE_TEST(test_read_format_zip_with_in
 DEFINE_TEST(test_read_format_zip_zip64a)
 DEFINE_TEST(test_read_format_zip_zip64b)
 DEFINE_TEST(test_read_large)
+DEFINE_TEST(test_read_pax_empty_val_no_nl)
 DEFINE_TEST(test_read_pax_truncated)
 DEFINE_TEST(test_read_pax_xattr_rht_security_selinux)
 DEFINE_TEST(test_read_pax_xattr_schily)

Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_entry.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_entry.c:1.9 pkgsrc/archivers/libarchive/files/libarchive/test/test_entry.c:1.10
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_entry.c:1.9  Sun Sep 15 07:02:21 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_entry.c      Tue Jul  1 15:14:45 2025
@@ -436,7 +436,7 @@ DEFINE_TEST(test_entry)
        archive_entry_fflags(e, &set, &clear);
        assertEqualInt(UF_HIDDEN, set);
        assertEqualInt(UF_NODUMP | UF_IMMUTABLE | UF_APPEND, clear);
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        archive_entry_copy_fflags_text_w(e, L"rdonly,hidden,nosystem");
        archive_entry_fflags(e, &set, &clear);
        assertEqualInt(FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN, set);

Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c:1.8 pkgsrc/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c:1.9
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c:1.8 Fri Apr 12 15:39:54 2024
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_read_disk_directory_traversals.c     Tue Jul  1 15:14:45 2025
@@ -39,7 +39,7 @@ atimeIsUpdated(void)
 {
        const char *fn = "fs_noatime";
        struct stat st;
-#if defined(_WIN32) && !defined(CYGWIN)
+#if defined(_WIN32) && !defined(__CYGWIN__)
        char *buff = NULL;
        char *ptr;
        int r;

Index: pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c
diff -u pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c:1.7 pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c:1.8
--- pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c:1.7       Wed May 21 15:25:51 2025
+++ pkgsrc/archivers/libarchive/files/libarchive/test/test_read_format_rar5.c   Tue Jul  1 15:14:45 2025
@@ -1126,7 +1126,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
        archive_entry_fflags(ae, &set, &clear);
 #if defined(__FreeBSD__)
        flag = UF_READONLY;
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        flag = FILE_ATTRIBUTE_READONLY;
 #endif
        assertEqualInt(flag, set & flag);
@@ -1138,7 +1138,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
        archive_entry_fflags(ae, &set, &clear);
 #if defined(__FreeBSD__)
        flag = UF_HIDDEN;
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        flag = FILE_ATTRIBUTE_HIDDEN;
 #endif
        assertEqualInt(flag, set & flag);
@@ -1150,7 +1150,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
        archive_entry_fflags(ae, &set, &clear);
 #if defined(__FreeBSD__)
        flag = UF_SYSTEM;
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        flag = FILE_ATTRIBUTE_SYSTEM;
 #endif
        assertEqualInt(flag, set & flag);
@@ -1162,7 +1162,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
        archive_entry_fflags(ae, &set, &clear);
 #if defined(__FreeBSD__)
        flag = UF_READONLY | UF_HIDDEN;
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        flag = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN;
 #endif
        assertEqualInt(flag, set & flag);
@@ -1174,7 +1174,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
        archive_entry_fflags(ae, &set, &clear);
 #if defined(__FreeBSD__)
        flag = UF_READONLY;
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        flag = FILE_ATTRIBUTE_READONLY;
 #endif
        assertEqualInt(flag, set & flag);
@@ -1186,7 +1186,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
        archive_entry_fflags(ae, &set, &clear);
 #if defined(__FreeBSD__)
        flag = UF_HIDDEN;
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        flag = FILE_ATTRIBUTE_HIDDEN;
 #endif
        assertEqualInt(flag, set & flag);
@@ -1198,7 +1198,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
        archive_entry_fflags(ae, &set, &clear);
 #if defined(__FreeBSD__)
        flag = UF_SYSTEM;
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        flag = FILE_ATTRIBUTE_SYSTEM;
 #endif
        assertEqualInt(flag, set & flag);
@@ -1210,7 +1210,7 @@ DEFINE_TEST(test_read_format_rar5_fileat
        archive_entry_fflags(ae, &set, &clear);
 #if defined(__FreeBSD__)
        flag = UF_READONLY | UF_HIDDEN;
-#elif defined(_WIN32) && !defined(CYGWIN)
+#elif defined(_WIN32) && !defined(__CYGWIN__)
        flag = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN;
 #endif
        assertEqualInt(flag, set & flag);

Index: pkgsrc/archivers/libarchive/files/tar/test/test_option_C_mtree.c
diff -u pkgsrc/archivers/libarchive/files/tar/test/test_option_C_mtree.c:1.4 pkgsrc/archivers/libarchive/files/tar/test/test_option_C_mtree.c:1.5
--- pkgsrc/archivers/libarchive/files/tar/test/test_option_C_mtree.c:1.4        Sat Oct 19 05:40:00 2024
+++ pkgsrc/archivers/libarchive/files/tar/test/test_option_C_mtree.c    Tue Jul  1 15:14:45 2025
@@ -17,7 +17,7 @@ DEFINE_TEST(test_option_C_mtree)
        p0 = NULL;
        char *content = "./foo type=file uname=root gname=root mode=0755\n";
        char *filename = "output.tar";
-#if defined(_WIN32) && !defined(CYGWIN)
+#if defined(_WIN32) && !defined(__CYGWIN__)
        char *p;
 #endif
 
@@ -32,7 +32,7 @@ DEFINE_TEST(test_option_C_mtree)
        assertMakeDir("bar", 0775);
        assertMakeFile("bar/foo", 0777, "abc");
 
-#if defined(_WIN32) && !defined(CYGWIN)
+#if defined(_WIN32) && !defined(__CYGWIN__)
        p = absolute_path;
        while(*p != '\0') {
                if (*p == '/')

Index: pkgsrc/archivers/libarchive/files/test_utils/test_main.c
diff -u pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.10 pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.11
--- pkgsrc/archivers/libarchive/files/test_utils/test_main.c:1.10       Wed May 21 15:25:52 2025
+++ pkgsrc/archivers/libarchive/files/test_utils/test_main.c    Tue Jul  1 15:14:45 2025
@@ -2456,7 +2456,7 @@ void assertVersion(const char *prog, con
 
        /* Skip arbitrary third-party version numbers. */
        while (s > 0 && (*q == ' ' || *q == '-' || *q == '/' || *q == '.' ||
-           isalnum((unsigned char)*q))) {
+           *q == '_' || isalnum((unsigned char)*q))) {
                ++q;
                --s;
        }
@@ -3555,6 +3555,59 @@ test_summarize(int failed, int skips_num
 }
 
 /*
+ * Set or unset environment variable.
+ */
+static void
+set_environment(const char *key, const char *value)
+{
+
+#if defined(_WIN32) && !defined(__CYGWIN__)
+       if (!SetEnvironmentVariable(key, value)) {
+               fprintf(stderr, "SetEnvironmentVariable failed with %d\n",
+                   (int)GetLastError());
+       }
+#else
+       if (value == NULL) {
+               if (unsetenv(key) == -1)
+                       fprintf(stderr, "unsetenv: %s\n", strerror(errno));
+       } else {
+               if (setenv(key, value, 1) == -1)
+                       fprintf(stderr, "setenv: %s\n", strerror(errno));
+       }
+#endif
+}
+
+/*
+ * Enforce C locale for (sub)processes.
+ */
+static void
+set_c_locale()
+{
+       static const char *lcs[] = {
+               "LC_ADDRESS",
+               "LC_ALL",
+               "LC_COLLATE",
+               "LC_CTYPE",
+               "LC_IDENTIFICATION",
+               "LC_MEASUREMENT",
+               "LC_MESSAGES",
+               "LC_MONETARY",
+               "LC_NAME",
+               "LC_NUMERIC",
+               "LC_PAPER",
+               "LC_TELEPHONE",
+               "LC_TIME",
+               NULL
+       };
+       size_t i;
+
+       setlocale(LC_ALL, "C");
+       set_environment("LANG", "C");
+       for (i = 0; lcs[i] != NULL; i++)
+               set_environment(lcs[i], NULL);
+}
+
+/*
  * Actually run a single test, with appropriate setup and cleanup.
  */
 static int
@@ -3629,7 +3682,7 @@ test_run(int i, const char *tmpdir)
                exit(1);
        }
        /* Explicitly reset the locale before each test. */
-       setlocale(LC_ALL, "C");
+       set_c_locale();
        /* Record the umask before we run the test. */
        umask(oldumask = umask(0));
        /*
@@ -3643,7 +3696,7 @@ test_run(int i, const char *tmpdir)
        /* Restore umask */
        umask(oldumask);
        /* Reset locale. */
-       setlocale(LC_ALL, "C");
+       set_c_locale();
        /* Reset directory. */
        if (!assertChdir(tmpdir)) {
                fprintf(stderr, "ERROR: Couldn't chdir to temp dir %s\n",



Home | Main Index | Thread Index | Old Index