Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 May 2019 12:32:01 +0000 (UTC)
From:      Martin Matuska <mm@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r347989 - in vendor/libarchive/dist: . build/ci build/ci/cirrus_ci contrib cpio/test libarchive libarchive/test tar tar/test test_utils
Message-ID:  <201905201232.x4KCW1kA094589@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mm
Date: Mon May 20 12:32:00 2019
New Revision: 347989
URL: https://svnweb.freebsd.org/changeset/base/347989

Log:
  Update vendor/libarchive/dist to git b5818e39e128eca4951e2ab10467d4d850a2ba57
  
  Relevant vendor changes:
  Issue #795: XAR - do not try to add xattrs without an allocated name
  PR #812: non-recursive option for extract and list
  PR #958: support reading metadata from compressed files
  PR #999: add --exclude-vcs option to bsdtar
  Issue #1062: treat empty archives with a GNU volume header as valid
  PR #1074: Handle ZIP files with trailing 0s in the extra fields
            (Android APK archives)
  PR #1109: Ignore padding in Zip extra field data (Android APK archives)
  PR #1167: fix problems related to unreadable directories
  Issue #1168: fix handling of strtol() and strtoul()
  PR #1172: RAR5 - fix invalid window buffer read in E8E9 filter
  PR #1174: ZIP reader - fix of MSZIP signature parsing
  PR #1175: gzip filter - fix reading files larger than 4GB from memory
  PR #1177: gzip filter - fix memory leak with repeated header reads
  PR #1180: ZIP reader - add support for Info-ZIP Unicode Path Extra Field
  PR #1181: RAR5 - fix merge_block() recursion
            (OSS-Fuzz 12999, 13029, 13144, 13478, 13490)
  PR #1183: fix memory leak when decompressing ZIP files with LZMA
  PR #1184: fix RAR5 OSS-Fuzz issues 12466, 14490, 14491, 12817
    OSS-Fuzz 12466: RAR5 - fix buffer overflow when parsing huffman tables
    OSS-Fuzz 14490, 14491: RAR5 - fix bad shift-left operations
    OSS-Fuzz 12817: RAR5 - handle a case with truncated huffman tables
  PR #1186: RAR5 - fix invalid type used for dictionary size mask
            (OSS-Fuzz 14537)
  PR #1187: RAR5 - fix integer overflow (OSS-Fuzz 14555)
  PR #1190: RAR5 - RAR5 don't try to unpack entries marked as directories
            (OSS-Fuzz 14574)
  PR #1196: RAR5 - fix a potential SIGSEGV on 32-bit builds
  OSS-Fuzz 2582: RAR - fix use after free if there is an invalid entry
  OSS-Fuzz 14331: RAR5 - fix maximum owner name length
  OSS-Fuzz 13965: RAR5 - use unsigned int for volume number + range check
  
  Additional RAR5 reader changes:
    - support symlinks, hardlinks, file owner, file group, versioned files
    - change ARCHIVE_FORMAT_RAR_V5 to 0x100000
    - set correct mode for readonly directories
    - support readonly, hidden and system Windows file attributes
  
  NOTE: a version bump of libarchive will happen in the following days

Added:
  vendor/libarchive/dist/build/ci/cirrus_ci/
  vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.cygwin
  vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc29
  vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc29.distcheck
  vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.mingw
  vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.msvc
  vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.windows
  vendor/libarchive/dist/build/ci/cirrus_ci/ci.cmd   (contents, props changed)
  vendor/libarchive/dist/build/ci/cirrus_ci/ci.sh   (contents, props changed)
  vendor/libarchive/dist/contrib/archivetest.c   (contents, props changed)
  vendor/libarchive/dist/libarchive/archive_entry_misc.3   (contents, props changed)
  vendor/libarchive/dist/libarchive/test/test_read_format_mtree_noprint.mtree.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_distance_overflow.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_extra_field_version.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_fileattr.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_hardlink.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_leftshift1.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_leftshift2.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_owner.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_symlink.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_truncated_huff.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_raw.data.gz.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_tar_empty_with_gnulabel.c   (contents, props changed)
  vendor/libarchive/dist/libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_zip_7075_utf8_paths.c   (contents, props changed)
  vendor/libarchive/dist/libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_zip_extra_padding.c   (contents, props changed)
  vendor/libarchive/dist/libarchive/test/test_read_format_zip_extra_padding.zip.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu
  vendor/libarchive/dist/tar/test/test_option_exclude_vcs.c   (contents, props changed)
Deleted:
  vendor/libarchive/dist/.travis.yml
  vendor/libarchive/dist/build/ci/cirrus_ci.sh
Modified:
  vendor/libarchive/dist/.cirrus.yml
  vendor/libarchive/dist/CMakeLists.txt
  vendor/libarchive/dist/Makefile.am
  vendor/libarchive/dist/NEWS
  vendor/libarchive/dist/build/ci/build.sh
  vendor/libarchive/dist/build/ci/travis_ci.sh
  vendor/libarchive/dist/cpio/test/test_basic.c
  vendor/libarchive/dist/cpio/test/test_format_newc.c
  vendor/libarchive/dist/cpio/test/test_gcpio_compat.c
  vendor/libarchive/dist/cpio/test/test_option_L_upper.c
  vendor/libarchive/dist/cpio/test/test_option_a.c
  vendor/libarchive/dist/cpio/test/test_option_c.c
  vendor/libarchive/dist/libarchive/CMakeLists.txt
  vendor/libarchive/dist/libarchive/archive.h
  vendor/libarchive/dist/libarchive/archive_entry.c
  vendor/libarchive/dist/libarchive/archive_entry.h
  vendor/libarchive/dist/libarchive/archive_entry_private.h
  vendor/libarchive/dist/libarchive/archive_hmac.c
  vendor/libarchive/dist/libarchive/archive_match.c
  vendor/libarchive/dist/libarchive/archive_platform.h
  vendor/libarchive/dist/libarchive/archive_read.c
  vendor/libarchive/dist/libarchive/archive_read_disk_entry_from_file.c
  vendor/libarchive/dist/libarchive/archive_read_disk_posix.c
  vendor/libarchive/dist/libarchive/archive_read_disk_windows.c
  vendor/libarchive/dist/libarchive/archive_read_private.h
  vendor/libarchive/dist/libarchive/archive_read_set_format.c
  vendor/libarchive/dist/libarchive/archive_read_support_filter_gzip.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_cab.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_mtree.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_rar.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_rar5.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_raw.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_tar.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_warc.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_xar.c
  vendor/libarchive/dist/libarchive/archive_read_support_format_zip.c
  vendor/libarchive/dist/libarchive/archive_util.c
  vendor/libarchive/dist/libarchive/archive_windows.h
  vendor/libarchive/dist/libarchive/archive_write_add_filter_xz.c
  vendor/libarchive/dist/libarchive/archive_write_disk_posix.c
  vendor/libarchive/dist/libarchive/archive_write_disk_windows.c
  vendor/libarchive/dist/libarchive/archive_write_set_format_pax.c
  vendor/libarchive/dist/libarchive/archive_write_set_format_xar.c
  vendor/libarchive/dist/libarchive/test/CMakeLists.txt
  vendor/libarchive/dist/libarchive/test/test_entry.c
  vendor/libarchive/dist/libarchive/test/test_fuzz.c
  vendor/libarchive/dist/libarchive/test/test_read_disk_directory_traversals.c
  vendor/libarchive/dist/libarchive/test/test_read_extract.c
  vendor/libarchive/dist/libarchive/test/test_read_format_mtree.c
  vendor/libarchive/dist/libarchive/test/test_read_format_rar.c
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5.c
  vendor/libarchive/dist/libarchive/test/test_read_format_rar5_win32.rar.uu
  vendor/libarchive/dist/libarchive/test/test_read_format_raw.c
  vendor/libarchive/dist/libarchive/test/test_read_format_zip.c
  vendor/libarchive/dist/libarchive/test/test_sparse_basic.c
  vendor/libarchive/dist/libarchive/test/test_write_disk_symlink.c
  vendor/libarchive/dist/tar/bsdtar.1
  vendor/libarchive/dist/tar/bsdtar.c
  vendor/libarchive/dist/tar/bsdtar.h
  vendor/libarchive/dist/tar/cmdline.c
  vendor/libarchive/dist/tar/test/CMakeLists.txt
  vendor/libarchive/dist/tar/test/test_basic.c
  vendor/libarchive/dist/tar/test/test_copy.c
  vendor/libarchive/dist/tar/test/test_option_C_mtree.c
  vendor/libarchive/dist/tar/test/test_option_H_upper.c
  vendor/libarchive/dist/tar/test/test_option_L_upper.c
  vendor/libarchive/dist/tar/test/test_option_U_upper.c
  vendor/libarchive/dist/tar/test/test_option_n.c
  vendor/libarchive/dist/tar/test/test_option_s.c
  vendor/libarchive/dist/tar/test/test_strip_components.c
  vendor/libarchive/dist/tar/test/test_symlink_dir.c
  vendor/libarchive/dist/test_utils/test_common.h
  vendor/libarchive/dist/test_utils/test_main.c

Modified: vendor/libarchive/dist/.cirrus.yml
==============================================================================
--- vendor/libarchive/dist/.cirrus.yml	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/.cirrus.yml	Mon May 20 12:32:00 2019	(r347989)
@@ -2,25 +2,130 @@ env:
   CIRRUS_CLONE_DEPTH: 1
   ARCH: amd64
 
-task:
+FreeBSD_task:
   matrix:
-    container:
-      image: fedora:29
+    env:
+      BS: autotools
+    env:
+      BS: cmake
+  matrix:
     freebsd_instance:
       image: freebsd-12-0-release-amd64
     freebsd_instance:
       image: freebsd-11-2-release-amd64
+  prepare_script:
+  - ./build/ci/cirrus_ci/ci.sh prepare
+  configure_script:
+  - ./build/ci/build.sh -a autogen
+  - ./build/ci/build.sh -a configure
+  build_script:
+  - ./build/ci/build.sh -a build
+  test_script:
+  - ./build/ci/build.sh -a test
+  - ./build/ci/cirrus_ci/ci.sh test
+  install_script:
+  - ./build/ci/build.sh -a install
+
+MacOS_task:
+  matrix:
+    env:
+      BS: autotools
+    env:
+      BS: cmake
+  matrix:
     osx_instance:
-      image: mojave-xcode-10.1
+      image: mojave-xcode-10.2
     osx_instance:
       image: high-sierra-xcode-10.0
+  prepare_script:
+  - ./build/ci/cirrus_ci/ci.sh prepare
+  configure_script:
+  - ./build/ci/build.sh -a autogen
+  - ./build/ci/build.sh -a configure
+  build_script:
+  - ./build/ci/build.sh -a build
+  test_script:
+  - ./build/ci/build.sh -a test
+  - ./build/ci/cirrus_ci/ci.sh test
+  install_script:
+  - ./build/ci/build.sh -a install
+
+Fedora_29_task:
+  container:
+    dockerfile: build/ci/cirrus_ci/Dockerfile.fc29
   matrix:
     env:
       BS: autotools
     env:
       BS: cmake
+  configure_script:
+  - ./build/ci/build.sh -a autogen
+  - ./build/ci/build.sh -a configure
+  build_script:
+  - ./build/ci/build.sh -a build
+  test_script:
+  - ./build/ci/build.sh -a test
   install_script:
-    - ./build/ci/cirrus_ci.sh install
-  script:
-    - ./build/ci/build.sh
-    - ./build/ci/cirrus_ci.sh test
+  - ./build/ci/build.sh -a install
+
+Fedora_29_distcheck_task:
+  container:
+    dockerfile: build/ci/cirrus_ci/Dockerfile.fc29.distcheck
+  env:
+    BS: autotools
+  configure_script:
+  - ./build/ci/build.sh -a autogen
+  - ./build/ci/build.sh -a configure
+  distcheck_script:
+  - ./build/ci/build.sh -a distcheck
+
+Windows_MSVC_task:
+  windows_container:
+    dockerfile: build/ci/cirrus_ci/Dockerfile.msvc
+    os_version: 2019
+  env:
+    BE: msvc
+  configure_script:
+  - build\ci\cirrus_ci\ci.cmd configure
+  build_script:
+  - build\ci\cirrus_ci\ci.cmd build
+  test_script:
+  - build\ci\cirrus_ci\ci.cmd test
+  instal_script:
+  - build\ci\cirrus_ci\ci.cmd install
+
+Windows_MinGW_task:
+  windows_container:
+    image: cirrusci/windowsservercore:2019
+    os_version: 2019
+  env:
+    BE: mingw-gcc
+  prepare_script:
+  - build\ci\cirrus_ci\ci.cmd prepare
+  deplibs_script:
+  - build\ci\cirrus_ci\ci.cmd deplibs
+  configure_script:
+  - build\ci\cirrus_ci\ci.cmd configure
+  build_script:
+  - build\ci\cirrus_ci\ci.cmd build
+  test_script:
+  - build\ci\cirrus_ci\ci.cmd test
+  install_script:
+  - build\ci\cirrus_ci\ci.cmd install
+
+Windows_Cygwin_task:
+  windows_container:
+    image: cirrusci/windowsservercore:2019
+    os_version: 2019
+  env:
+    BE: cygwin-gcc
+  prepare_script:
+  - build\ci\cirrus_ci\ci.cmd prepare
+  configure_script:
+  - build\ci\cirrus_ci\ci.cmd configure
+  build_script:
+  - build\ci\cirrus_ci\ci.cmd build
+  test_script:
+  - build\ci\cirrus_ci\ci.cmd test
+  install_script:
+  - build\ci\cirrus_ci\ci.cmd install

Modified: vendor/libarchive/dist/CMakeLists.txt
==============================================================================
--- vendor/libarchive/dist/CMakeLists.txt	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/CMakeLists.txt	Mon May 20 12:32:00 2019	(r347989)
@@ -481,6 +481,7 @@ ENDIF()
 IF(LIBLZMA_FOUND)
   SET(HAVE_LIBLZMA 1)
   SET(HAVE_LZMA_H 1)
+  CMAKE_PUSH_CHECK_STATE()
   SET(CMAKE_REQUIRED_INCLUDES ${LIBLZMA_INCLUDE_DIR})
   SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES})
   INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS})
@@ -494,6 +495,7 @@ IF(LIBLZMA_FOUND)
   IF(NOT WITHOUT_LZMA_API_STATIC AND LZMA_API_STATIC)
     ADD_DEFINITIONS(-DLZMA_API_STATIC)
   ENDIF(NOT WITHOUT_LZMA_API_STATIC AND LZMA_API_STATIC)
+  CMAKE_POP_CHECK_STATE()
 ELSE(LIBLZMA_FOUND)
 # LZMA not found and will not be used.
 ENDIF(LIBLZMA_FOUND)
@@ -549,9 +551,11 @@ IF(LIBB2_FOUND)
   SET(HAVE_BLAKE2_H 1)
   SET(ARCHIVE_BLAKE2 FALSE)
   LIST(APPEND ADDITIONAL_LIBS ${LIBB2_LIBRARY})
+  CMAKE_PUSH_CHECK_STATE()
   SET(CMAKE_REQUIRED_LIBRARIES ${LIBB2_LIBRARY})
   SET(CMAKE_REQUIRED_INCLUDES ${LIBB2_INCLUDE_DIR})
   CHECK_FUNCTION_EXISTS(blake2sp_init HAVE_LIBB2)
+  CMAKE_POP_CHECK_STATE()
 ELSE(LIBB2_FOUND)
   SET(ARCHIVE_BLAKE2 TRUE)
 ENDIF(LIBB2_FOUND)
@@ -606,17 +610,18 @@ IF(ZSTD_FOUND)
   SET(HAVE_ZSTD_H 1)
   INCLUDE_DIRECTORIES(${ZSTD_INCLUDE_DIR})
   LIST(APPEND ADDITIONAL_LIBS ${ZSTD_LIBRARY})
+  CMAKE_PUSH_CHECK_STATE()
   SET(CMAKE_REQUIRED_LIBRARIES ${ZSTD_LIBRARY})
   SET(CMAKE_REQUIRED_INCLUDES ${ZSTD_INCLUDE_DIR})
   CHECK_FUNCTION_EXISTS(ZSTD_compressStream HAVE_LIBZSTD)
   #
   # TODO: test for static library.
   #
+  CMAKE_POP_CHECK_STATE()
 ENDIF(ZSTD_FOUND)
 MARK_AS_ADVANCED(CLEAR ZSTD_INCLUDE_DIR)
 MARK_AS_ADVANCED(CLEAR ZSTD_LIBRARY)
 
-set(CMAKE_REQUIRED_LIBRARIES)
 
 #
 # Check headers

Modified: vendor/libarchive/dist/Makefile.am
==============================================================================
--- vendor/libarchive/dist/Makefile.am	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/Makefile.am	Mon May 20 12:32:00 2019	(r347989)
@@ -288,6 +288,7 @@ libarchive_man_MANS= \
 	libarchive/archive_entry.3 \
 	libarchive/archive_entry_acl.3 \
 	libarchive/archive_entry_linkify.3 \
+	libarchive/archive_entry_misc.3 \
 	libarchive/archive_entry_paths.3 \
 	libarchive/archive_entry_perms.3 \
 	libarchive/archive_entry_stat.3 \
@@ -501,6 +502,7 @@ libarchive_test_SOURCES= \
 	libarchive/test/test_read_format_tar_concatenated.c \
 	libarchive/test/test_read_format_tar_empty_pax.c \
 	libarchive/test/test_read_format_tar_empty_filename.c \
+	libarchive/test/test_read_format_tar_empty_with_gnulabel.c \
 	libarchive/test/test_read_format_tar_filename.c \
 	libarchive/test/test_read_format_tbz.c \
 	libarchive/test/test_read_format_tgz.c \
@@ -511,10 +513,12 @@ libarchive_test_SOURCES= \
 	libarchive/test/test_read_format_warc.c \
 	libarchive/test/test_read_format_xar.c \
 	libarchive/test/test_read_format_zip.c \
+	libarchive/test/test_read_format_zip_7075_utf8_paths.c \
 	libarchive/test/test_read_format_zip_comment_stored.c \
 	libarchive/test/test_read_format_zip_encryption_data.c \
 	libarchive/test/test_read_format_zip_encryption_partially.c \
 	libarchive/test/test_read_format_zip_encryption_header.c \
+	libarchive/test/test_read_format_zip_extra_padding.c \
 	libarchive/test/test_read_format_zip_filename.c \
 	libarchive/test/test_read_format_zip_high_compression.c \
 	libarchive/test/test_read_format_zip_jar.c \
@@ -721,6 +725,7 @@ libarchive_test_EXTRA_DIST=\
 	libarchive/test/test_read_filter_lzop.tar.lzo.uu \
 	libarchive/test/test_read_filter_lzop_multiple_parts.tar.lzo.uu \
 	libarchive/test/test_read_format_mtree_crash747.mtree.bz2.uu \
+	libarchive/test/test_read_format_mtree_noprint.mtree.uu \
 	libarchive/test/test_read_format_7zip_bcj2_bzip2.7z.uu \
 	libarchive/test/test_read_format_7zip_bcj2_copy_1.7z.uu \
 	libarchive/test/test_read_format_7zip_bcj2_copy_2.7z.uu \
@@ -820,15 +825,51 @@ libarchive_test_EXTRA_DIST=\
 	libarchive/test/test_read_format_rar_multivolume.part0004.rar.uu \
 	libarchive/test/test_read_format_rar_noeof.rar.uu \
 	libarchive/test/test_read_format_rar_ppmd_lzss_conversion.rar.uu \
+	libarchive/test/test_read_format_rar_ppmd_use_after_free.rar.uu \
 	libarchive/test/test_read_format_rar_sfx.exe.uu \
 	libarchive/test/test_read_format_rar_subblock.rar.uu \
 	libarchive/test/test_read_format_rar_unicode.rar.uu \
 	libarchive/test/test_read_format_rar_windows.rar.uu \
+	libarchive/test/test_read_format_rar5_arm.rar.uu \
+	libarchive/test/test_read_format_rar5_blake2.rar.uu \
+	libarchive/test/test_read_format_rar5_compressed.rar.uu \
+	libarchive/test/test_read_format_rar5_distance_overflow.rar.uu \
+	libarchive/test/test_read_format_rar5_extra_field_version.rar.uu \
+	libarchive/test/test_read_format_rar5_fileattr.rar.uu \
+	libarchive/test/test_read_format_rar5_hardlink.rar.uu \
+	libarchive/test/test_read_format_rar5_invalid_dict_reference.rar.uu \
+	libarchive/test/test_read_format_rar5_leftshift1.rar.uu \
+	libarchive/test/test_read_format_rar5_leftshift2.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive.part01.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive.part02.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive.part03.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive.part04.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive.part05.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive.part06.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive.part07.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive.part08.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive_solid.part01.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive_solid.part02.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive_solid.part03.rar.uu \
+	libarchive/test/test_read_format_rar5_multiarchive_solid.part04.rar.uu \
+	libarchive/test/test_read_format_rar5_multiple_files.rar.uu \
+	libarchive/test/test_read_format_rar5_multiple_files_solid.rar.uu \
+	libarchive/test/test_read_format_rar5_nonempty_dir_stream.rar.uu \
+	libarchive/test/test_read_format_rar5_owner.rar.uu \
+	libarchive/test/test_read_format_rar5_readtables_overflow.rar.uu \
+	libarchive/test/test_read_format_rar5_solid.rar.uu \
+	libarchive/test/test_read_format_rar5_stored.rar.uu \
+	libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu \
+	libarchive/test/test_read_format_rar5_symlink.rar.uu \
+	libarchive/test/test_read_format_rar5_truncated_huff.rar.uu \
+	libarchive/test/test_read_format_rar5_win32.rar.uu \
 	libarchive/test/test_read_format_raw.bufr.uu \
+	libarchive/test/test_read_format_raw.data.gz.uu \
 	libarchive/test/test_read_format_raw.data.Z.uu \
 	libarchive/test/test_read_format_raw.data.uu \
 	libarchive/test/test_read_format_tar_concatenated.tar.uu \
 	libarchive/test/test_read_format_tar_empty_filename.tar.uu \
+	libarchive/test/test_read_format_tar_empty_with_gnulabel.tar.uu \
 	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_ustar_filename_cp866.tar.Z.uu \
@@ -836,11 +877,16 @@ libarchive_test_EXTRA_DIST=\
 	libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu \
 	libarchive/test/test_read_format_warc.warc.uu \
 	libarchive/test/test_read_format_zip.zip.uu \
+	libarchive/test/test_read_format_zip_7075_utf8_paths.zip.uu \
+	libarchive/test/test_read_format_zip_bz2_hang.zip.uu \
+	libarchive/test/test_read_format_zip_bzip2.zipx.uu \
+	libarchive/test/test_read_format_zip_bzip2_multi.zipx.uu \
 	libarchive/test/test_read_format_zip_comment_stored_1.zip.uu \
 	libarchive/test/test_read_format_zip_comment_stored_2.zip.uu \
 	libarchive/test/test_read_format_zip_encryption_data.zip.uu \
 	libarchive/test/test_read_format_zip_encryption_header.zip.uu \
 	libarchive/test/test_read_format_zip_encryption_partially.zip.uu \
+	libarchive/test/test_read_format_zip_extra_padding.zip.uu \
 	libarchive/test/test_read_format_zip_filename_cp866.zip.uu \
 	libarchive/test/test_read_format_zip_filename_cp932.zip.uu \
 	libarchive/test/test_read_format_zip_filename_koi8r.zip.uu \
@@ -849,6 +895,9 @@ libarchive_test_EXTRA_DIST=\
 	libarchive/test/test_read_format_zip_filename_utf8_ru2.zip.uu \
 	libarchive/test/test_read_format_zip_high_compression.zip.uu \
 	libarchive/test/test_read_format_zip_length_at_end.zip.uu \
+	libarchive/test/test_read_format_zip_lzma.zipx.uu \
+	libarchive/test/test_read_format_zip_lzma_alone_leak.zipx.uu \
+	libarchive/test/test_read_format_zip_lzma_multi.zipx.uu \
 	libarchive/test/test_read_format_zip_jar.jar.uu \
 	libarchive/test/test_read_format_zip_mac_metadata.zip.uu \
 	libarchive/test/test_read_format_zip_malformed1.zip.uu \
@@ -858,6 +907,10 @@ libarchive_test_EXTRA_DIST=\
 	libarchive/test/test_read_format_zip_padded1.zip.uu \
 	libarchive/test/test_read_format_zip_padded2.zip.uu \
 	libarchive/test/test_read_format_zip_padded3.zip.uu \
+	libarchive/test/test_read_format_zip_ppmd8.zipx.uu \
+	libarchive/test/test_read_format_zip_ppmd8_crash_1.zipx.uu \
+	libarchive/test/test_read_format_zip_ppmd8_crash_2.zipx.uu \
+	libarchive/test/test_read_format_zip_ppmd8_multi.zipx.uu \
 	libarchive/test/test_read_format_zip_sfx.uu \
 	libarchive/test/test_read_format_zip_symlink.zip.uu \
 	libarchive/test/test_read_format_zip_traditional_encryption_data.zip.uu \
@@ -867,6 +920,7 @@ libarchive_test_EXTRA_DIST=\
 	libarchive/test/test_read_format_zip_winzip_aes256_large.zip.uu \
 	libarchive/test/test_read_format_zip_winzip_aes256_stored.zip.uu \
 	libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.zip.uu \
+	libarchive/test/test_read_format_zip_xz_multi.zipx.uu \
 	libarchive/test/test_read_format_zip_zip64a.zip.uu \
 	libarchive/test/test_read_format_zip_zip64b.zip.uu \
 	libarchive/test/test_read_large_splitted_rar_aa.uu \
@@ -995,6 +1049,7 @@ bsdtar_test_SOURCES= \
 	tar/test/test_option_b.c \
 	tar/test/test_option_b64encode.c \
 	tar/test/test_option_exclude.c \
+	tar/test/test_option_exclude_vcs.c \
 	tar/test/test_option_fflags.c \
 	tar/test/test_option_gid_gname.c \
 	tar/test/test_option_grzip.c \

Modified: vendor/libarchive/dist/NEWS
==============================================================================
--- vendor/libarchive/dist/NEWS	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/NEWS	Mon May 20 12:32:00 2019	(r347989)
@@ -1,3 +1,13 @@
+Apr 16, 2019: Support for non-recursive list and extract
+
+Apr 14, 2019: New tar option: --exclude-vcs
+
+Mar 27, 2019: Support for file and directory symlinks on Windows
+
+Mar 12, 2019: Important fixes for storing file attributes and flags
+
+Jan 20, 2019: Support for xz, lzma, ppmd8 and bzip2 compression in zip archives
+
 Oct 06, 2018: RAR 5.0 reader
 
 Sep 03, 2018: libarchive 3.3.3 released

Modified: vendor/libarchive/dist/build/ci/build.sh
==============================================================================
--- vendor/libarchive/dist/build/ci/build.sh	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/build/ci/build.sh	Mon May 20 12:32:00 2019	(r347989)
@@ -8,11 +8,13 @@
 # SRCDIR=		# source directory
 # CONFIGURE_ARGS=	# configure arguments
 # MAKE_ARGS=		# make arguments
+# DEBUG=		# set -g -fsanitize=address flags
 
 ACTIONS=
 if [ -n "${BUILD_SYSTEM}" ]; then
 	BS="${BUILD_SYSTEM}"
 fi
+
 BS="${BS:-autotools}"
 MAKE="${MAKE:-make}"
 CMAKE="${CMAKE:-cmake}"
@@ -21,7 +23,7 @@ SRCDIR="${SRCDIR:-`pwd`}"
 RET=0
 
 usage () {
-	echo "Usage: $0 [-b autotools|cmake] [-a autogen|configure|build|test ] [ -a ... ] [ -d builddir ] [-s srcdir ]"
+	echo "Usage: $0 [-b autotools|cmake] [-a autogen|configure|build|test|install|distcheck ] [ -a ... ] [ -d builddir ] [-s srcdir ]"
 }
 inputerror () {
 	echo $1
@@ -36,6 +38,8 @@ while getopts a:b:d:s: opt; do
 				configure) ;;
 				build) ;;
 				test) ;;
+				install) ;;
+				distcheck) ;;
 				*) inputerror "Invalid action (-a)" ;;
 			esac
 			ACTIONS="${ACTIONS} ${OPTARG}"
@@ -58,8 +62,25 @@ while getopts a:b:d:s: opt; do
 		;;
 	esac
 done
+if [ -z "${MAKE_ARGS}" ]; then
+	if [ "${BS}" = "autotools" ]; then
+		MAKE_ARGS="V=1"
+	elif [ "${BS}" = "cmake" ]; then
+		MAKE_ARGS="VERBOSE=1"
+	fi
+fi
+if [ -n "${DEBUG}" ]; then
+	if [ -n "${CFLAGS}" ]; then
+		export CFLAGS="${CFLAGS} -g -fsanitize=address"
+	else
+		export CFLAGS="-g -fsanitize=address"
+	fi
+	if ["${BS}" = "cmake" ]; then
+		CONFIGURE_ARGS="${CONFIGURE_ARGS} -DCMAKE_C_CFLAGS=-g -fsanitize=address"
+	fi
+fi
 if [ -z "${ACTIONS}" ]; then
-	ACTIONS="autogen configure build test"
+	ACTIONS="autogen configure build test install"
 fi
 if [ -z "${BS}" ]; then
 	inputerror "Missing build system (-b) parameter"
@@ -102,6 +123,15 @@ for action in ${ACTIONS}; do
 			esac
 			RET="$?"
 			find ${TMPDIR:-/tmp} -path '*_test.*' -name '*.log' -print -exec cat {} \;
+		;;
+		install)
+			${MAKE} ${MAKE_ARGS} install DESTDIR="${BUILDDIR}/destdir"
+			RET="$?"
+			cd ${BUILDDIR}/destdir && ls -lR .
+		;;
+		distcheck)
+			${MAKE} ${MAKE_ARGS} distcheck
+			RET="$?"
 		;;
 	esac
 	if [ "${RET}" != "0" ]; then

Added: vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.cygwin
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.cygwin	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,4 @@
+FROM cirrusci/windowsservercore:2019
+
+RUN choco install -y --no-progress cygwin
+RUN C:\tools\cygwin\cygwinsetup.exe -q -P make,autoconf,automake,cmake,gcc-core,binutils,libtool,pkg-config,bison,sharutils,zlib-devel,libbz2-devel,liblzma-devel,liblz4-devel,libiconv-devel,libxml2-devel,libzstd-devel,libssl-devel

Added: vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc29
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc29	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,3 @@
+FROM fedora:29
+
+RUN dnf -y install make cmake gcc gcc-c++ kernel-devel automake libtool bison sharutils pkgconf libacl-devel libasan librichacl-devel bzip2-devel libzip-devel zlib-devel xz-devel lz4-devel libzstd-devel openssl-devel

Added: vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc29.distcheck
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.fc29.distcheck	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,3 @@
+FROM fedora:29
+
+RUN dnf -y install make cmake gcc gcc-c++ kernel-devel automake libtool bison sharutils pkgconf libacl-devel libasan librichacl-devel bzip2-devel libzip-devel zlib-devel xz-devel lz4-devel libzstd-devel openssl-devel groff ghostscript

Added: vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.mingw
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.mingw	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,8 @@
+FROM cirrusci/windowsservercore:2019
+
+RUN choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=User' cmake
+RUN choco install -y --no-progress mingw
+RUN curl -o zlib-1.2.11.tar.gz https://www.zlib.net/zlib-1.2.11.tar.gz
+RUN tar -x -f zlib-1.2.11.tar.gz
+RUN cd zlib-1.2.11 && cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" . && mingw32-make && mingw32-make install
+RUN del /f /q /s zlib-1.2.11 zlib-1.2.11.tar.gz

Added: vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.msvc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.msvc	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,9 @@
+FROM cirrusci/windowsservercore:2019
+
+RUN choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=User' cmake
+RUN choco install -y --no-progress visualstudio2017community
+RUN choco install -y --no-progress visualstudio2017-workload-vctools
+RUN curl -o zlib-1.2.11.tar.gz https://www.zlib.net/zlib-1.2.11.tar.gz
+RUN tar -x -f zlib-1.2.11.tar.gz
+RUN cd zlib-1.2.11 && cmake -G "Visual Studio 15 2017" . && cmake --build . --target ALL_BUILD --config Release && cmake --build . --target INSTALL --config Release
+RUN del /f /q /s zlib-1.2.11 zlib-1.2.11.tar.gz

Added: vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.windows
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/build/ci/cirrus_ci/Dockerfile.windows	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,12 @@
+FROM cirrusci/windowsservercore:2019
+
+RUN choco install -y --no-progress mingw
+RUN choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=User' cmake
+RUN choco install -y --no-progress visualstudio2017community
+RUN choco install -y --no-progress visualstudio2017-workload-vctools
+RUN curl -o zlib-1.2.11.tar.gz https://www.zlib.net/zlib-1.2.11.tar.gz
+RUN tar -x -f zlib-1.2.11.tar.gz
+RUN cd zlib-1.2.11 && cmake -G "Visual Studio 15 2017" . && cmake --build . --target ALL_BUILD --config Release && cmake --build . --target INSTALL --config Release
+RUN del /f /q /s zlib-1.2.11 zlib-1.2.11.tar.gz
+RUN choco install -y --no-progress cygwin
+RUN C:\tools\cygwin\cygwinsetup.exe -q -P make,autoconf,automake,cmake,gcc-core,binutils,libtool,pkg-config,bison,sharutils,zlib-devel,libbz2-devel,liblzma-devel,liblz4-devel,libiconv-devel,libxml2-devel,libzstd-devel,libssl-devel

Added: vendor/libarchive/dist/build/ci/cirrus_ci/ci.cmd
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/build/ci/cirrus_ci/ci.cmd	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,122 @@
+@ECHO OFF
+SET ZLIB_VERSION=1.2.11
+IF NOT "%BE%"=="cygwin-gcc"  (
+  IF NOT "%BE%"=="mingw-gcc" (
+    IF NOT "%BE%"=="msvc" (
+      ECHO Environment variable BE must be cygwin-gcc, mingw-gcc or msvc
+      EXIT /b 1
+    )
+  )
+)
+
+IF "%1%"=="prepare" (
+  IF "%BE%"=="cygwin-gcc" (
+    @ECHO ON
+    choco install -y --no-progress cygwin || EXIT /b 1
+    C:\tools\cygwin\cygwinsetup.exe -q -P make,autoconf,automake,cmake,gcc-core,binutils,libtool,pkg-config,bison,sharutils,zlib-devel,libbz2-devel,liblzma-devel,liblz4-devel,libiconv-devel,libxml2-devel,libzstd-devel,libssl-devel || EXIT /b 1
+    @EXIT /b 0
+  ) ELSE IF "%BE%"=="mingw-gcc" (
+    @ECHO ON
+    choco install -y --no-progress mingw || EXIT /b 1
+    choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=System' cmake || EXIT /b 1
+    @EXIT /b 0
+  ) ELSE IF "%BE%"=="msvc" (
+    @ECHO ON
+    choco install -y --no-progress visualstudio2017community || EXIT /b 1
+    choco install -y --no-progress visualstudio2017-workload-vctools || EXIT /b 1
+    choco install -y --no-progress --installargs 'ADD_CMAKE_TO_PATH=System' cmake || EXIT /b 1
+  )
+) ELSE IF "%1"=="deplibs" (
+  IF "%BE%"=="cygwin-gcc" (
+    ECHO Skipping on this platform
+    EXIT /b 0
+  )
+  IF NOT EXIST build_ci\libs (
+    MKDIR build_ci\libs
+  )
+  CD build_ci\libs
+  IF NOT EXIST zlib-%ZLIB_VERSION%.tar.gz (
+    curl -o zlib-%ZLIB_VERSION%.tar.gz https://www.zlib.net/zlib-%ZLIB_VERSION%.tar.gz
+  )
+  IF NOT EXIST zlib-%ZLIB_VERSION% (
+    tar -x -z -f zlib-%ZLIB_VERSION%.tar.gz
+  )
+  SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+  CD zlib-%ZLIB_VERSION%
+  IF "%BE%"=="mingw-gcc" (
+    cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" . || EXIT /b 1
+    mingw32-make || EXIT /b 1
+    mingw32-make test || EXIT /b 1
+    mingw32-make install || EXIT /b 1
+  ) ELSE IF "%BE%"=="msvc" (
+    cmake -G "Visual Studio 15 2017" . || EXIT /b 1
+    cmake --build . --target ALL_BUILD --config Release || EXIT /b 1
+    cmake --build . --target RUN_TESTS --config Release || EXIT /b 1
+    cmake --build . --target INSTALL --config Release || EXIT /b 1
+  )
+) ELSE IF "%1%"=="configure" (
+  IF "%BE%"=="cygwin-gcc" (
+    SET BS=cmake
+    SET CONFIGURE_ARGS=-DENABLE_ACL=OFF
+    C:\tools\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a configure" || EXIT /b 1
+  ) ELSE IF "%BE%"=="mingw-gcc" (
+    SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+    MKDIR build_ci\cmake
+    CD build_ci\cmake
+    cmake -G "MinGW Makefiles" ..\.. || EXIT /b 1
+  ) ELSE IF "%BE%"=="msvc" (
+    SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+    MKDIR build_ci\cmake
+    CD build_ci\cmake
+    cmake -G "Visual Studio 15 2017" -D CMAKE_BUILD_TYPE="Release" ..\.. || EXIT /b 1
+  )
+) ELSE IF "%1%"=="build" (
+  IF "%BE%"=="cygwin-gcc" (
+    SET BS=cmake
+    C:\tools\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a build"
+  ) ELSE IF "%BE%"=="mingw-gcc" (
+    SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+    CD build_ci\cmake
+    mingw32-make || EXIT /b 1
+  ) ELSE IF "%BE%"=="msvc" (
+    SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+    CD build_ci\cmake
+    cmake --build . --target ALL_BUILD --config Release
+  )
+) ELSE IF "%1%"=="test" (
+  IF "%BE%"=="cygwin-gcc" (
+    ECHO "Skipping tests on this platform"
+    EXIT /b 0
+    REM SET BS=cmake
+    REM SET SKIP_TEST_SPARSE=1
+    REM C:\tools\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a test"
+  ) ELSE IF "%BE%"=="mingw-gcc" (
+    SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+    COPY "C:\Program Files (x86)\zlib\bin\libzlib.dll" build_ci\cmake\bin\
+    CD build_ci\cmake
+    SET SKIP_TEST_SPARSE=1
+    mingw32-make test
+  ) ELSE IF "%BE%"=="msvc" (
+    SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+    ECHO "Skipping tests on this platform"
+    EXIT /b 0
+    REM CD build_ci\cmake
+    REM cmake --build . --target RUN_TESTS --config Release
+  )
+) ELSE IF "%1%"=="install" (
+  IF "%BE%"=="cygwin-gcc" (
+    SET BS=cmake
+    C:\tools\cygwin\bin\bash.exe --login -c "cd '%cd%'; ./build/ci/build.sh -a install"
+  ) ELSE IF "%BE%"=="mingw-gcc" (
+    SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+    CD build_ci\cmake
+    mingw32-make install DESTDIR=%cd%\destdir
+  ) ELSE IF "%BE%"=="msvc" (
+    SET PATH=%PATH%;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin
+    cmake --build . --target INSTALL --config Release
+  )
+) ELSE (
+  ECHO "Usage: %0% prepare|deplibs|configure|build|test|install"
+  @EXIT /b 0
+)
+@EXIT /b 0

Added: vendor/libarchive/dist/build/ci/cirrus_ci/ci.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/build/ci/cirrus_ci/ci.sh	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,56 @@
+#!/bin/sh
+UNAME=`uname`
+if [ "$1" = "prepare" ]
+then
+	if [ "${UNAME}" = "FreeBSD" ]
+	then
+		set -x -e
+		sed -i.bak -e 's,pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly,pkg+http://pkg.FreeBSD.org/\${ABI}/latest,' /etc/pkg/FreeBSD.conf
+		mount -u -o acls /
+		mkdir /tmp_acl_nfsv4
+		MD=`mdconfig -a -t swap -s 128M`
+		newfs /dev/$MD
+		tunefs -N enable /dev/$MD
+		mount /dev/$MD /tmp_acl_nfsv4
+		chmod 1777 /tmp_acl_nfsv4
+		pkg install -y autoconf automake cmake libiconv libtool pkgconf expat libxml2 liblz4 zstd
+	elif [ "${UNAME}" = "Darwin" ]
+	then
+		set -x -e
+		brew update > /dev/null
+		for pkg in autoconf automake libtool pkg-config cmake xz lz4 zstd
+		do
+			brew list $pkg > /dev/null && brew upgrade $pkg || brew install $pkg
+		done
+	elif [ "${UNAME}" = "Linux" ]
+	then
+		if [ -f "/etc/debian_version" ]
+		then
+			apt-get -y update
+			apt-get -y install build-essential locales automake libtool bison sharutils pkgconf libacl1-dev libbz2-dev libzip-dev zlib1g-dev liblzma-dev liblz4-dev libzstd-dev libssl-dev lrzip cmake
+		elif [ -f "/etc/fedora-release" ]
+		then
+			dnf -y install make cmake gcc gcc-c++ kernel-devel automake libtool bison sharutils pkgconf libacl-devel librichacl-devel bzip2-devel libzip-devel zlib-devel xz-devel lz4-devel libzstd-devel openssl-devel
+		fi
+	fi
+elif [ "$1" = "test" ]
+then
+	if [ "${UNAME}" = "FreeBSD" ]
+	then
+		set -e
+		echo "Additional NFSv4 ACL tests"
+		CURDIR=`pwd`
+		if [ "${BS}" = "cmake" ]
+		then
+			BIN_SUBDIR="bin"
+		else
+			BIN_SUBDIR=.
+		fi
+		BUILDDIR="${CURDIR}/build_ci/${BS}"
+		cd "$BUILDDIR"
+		TMPDIR=/tmp_acl_nfsv4 ${BIN_SUBDIR}/libarchive_test -r "${CURDIR}/libarchive/test" -v test_acl_platform_nfs4
+	fi
+else
+	echo "Usage $0 prepare | test_nfsv4_acls"
+	exit 1
+fi

Modified: vendor/libarchive/dist/build/ci/travis_ci.sh
==============================================================================
--- vendor/libarchive/dist/build/ci/travis_ci.sh	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/build/ci/travis_ci.sh	Mon May 20 12:32:00 2019	(r347989)
@@ -15,13 +15,14 @@ case "$UNAME" in
 		cmake -G "Visual Studio 15 2017" -D CMAKE_BUILD_TYPE="Release" "${SRCDIR}"
 		cmake --build . --target ALL_BUILD
 		# Until fixed, we don't run tests on Windows (lots of fails + timeout)
+		#export SKIP_TEST_FUZZ=1
 		#cmake --build . --target RUN_TESTS
 		set +x
 	elif [ "${BS}" = "mingw" ]; then
 		set -x
 		cmake -G "MSYS Makefiles" -D CMAKE_C_COMPILER="${CC}" -D CMAKE_MAKE_PROGRAM="mingw32-make" -D CMAKE_BUILD_TYPE="Release" "${SRCDIR}"
 		mingw32-make
-		# The MinGW tests time out on Travis CI, disable for now
+		#export SKIP_TEST_FUZZ=1
 		#mingw32-make test
 		set +x
 	else

Added: vendor/libarchive/dist/contrib/archivetest.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libarchive/dist/contrib/archivetest.c	Mon May 20 12:32:00 2019	(r347989)
@@ -0,0 +1,218 @@
+/*-
+ * Copyright (c) 2019 Martin Matuska
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Archivetest verifies reading archives with libarchive
+ *
+ * It may be used to reproduce failures in testcases discovered by OSS-Fuzz
+ * https://github.com/google/oss-fuzz/blob/master/projects/libarchive
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <ctype.h>
+#include <archive.h>
+#include <archive_entry.h>
+
+const char *errnostr(int errno)
+{
+	char *estr;
+	switch(errno) {
+		case ARCHIVE_EOF:
+			estr = "ARCHIVE_EOF";
+		break;
+		case ARCHIVE_OK:
+			estr = "ARCHIVE_OK";
+		break;
+		case ARCHIVE_WARN:
+			estr = "ARCHIVE_WARN";
+		break;
+		case ARCHIVE_RETRY:
+			estr = "ARCHIVE_RETRY";
+		break;
+		case ARCHIVE_FAILED:
+			estr = "ARCHIVE_FAILED";
+		break;
+		case ARCHIVE_FATAL:
+			estr = "ARCHIVE_FATAL";
+		break;
+		default:
+			estr = "Unknown";
+		break;
+	}
+	return (estr);
+}
+
+void usage(const char *prog)
+{
+	fprintf(stderr, "Usage: %s [-f filename] [-h] [-q] [-s]\n", prog);
+}
+
+void printhelp()
+{
+	fprintf(stdout, "archivetest: verify reading archives with "
+	    "libarchive\n\n"
+	    "Options:\n"
+	    "  -f filename	Filename to verify\n"
+	    "  -h		Show this help\n"
+	    "  -q		Quiet mode\n"
+	    "  -s		Verify only headers (skip data)\n\n"
+	    "If no filename is specified, data is read from standard input.\n"
+	    "\n%s\n", archive_version_details());
+}
+
+int v_print(int verbose, const char *format, ...)
+{
+	int r = 0;
+
+	if (verbose) {
+		va_list args;
+
+		va_start(args, format);
+		r = vfprintf(stdout, format, args);
+		va_end(args);
+	}
+	return (r);
+}
+
+int main(int argc, char *argv[])
+{
+	struct archive *a;
+	struct archive_entry *entry;
+	char *filename;
+	const char *p;
+	char buffer[4096];
+	int c;
+	int v, skip_data;
+	int r = ARCHIVE_OK;
+	int format_printed;
+
+	filename = NULL;
+	skip_data = 0;
+	v = 1;
+
+	while ((c = getopt (argc, argv, "f:hqs")) != -1) {
+		switch (c) {
+			case 'f':
+				filename = optarg;
+				break;
+			case 'h':
+				printhelp();
+				exit(0);
+			case 'q':
+				v = 0;
+				break;
+			case 's':
+				skip_data = 1;
+				break;
+			case '?':
+				if (optopt == 'f')
+					fprintf(stderr, "Option -%c requires "
+					    "an argument.\n", optopt);
+				else if (isprint(optopt))
+					fprintf(stderr, "Unknown option '-%c'"
+					    ".\n", optopt);
+				else
+					fprintf(stderr, "Unknown option "
+					    "character '\\x%x'.\n", optopt);
+				usage(argv[0]);
+			default:
+				exit(1);
+		}
+	}
+
+	a = archive_read_new();
+
+	archive_read_support_filter_all(a);
+	archive_read_support_format_all(a);
+
+	v_print(v, "Data source: ");
+
+	if (filename == NULL) {
+		v_print(v, "standard input\n");
+		r = archive_read_open_fd(a, STDIN_FILENO, 4096);
+	} else {
+		v_print(v, "filename: %s\n", filename);
+		r = archive_read_open_filename(a, filename, 4096);
+	}
+
+	if (r != ARCHIVE_OK) {
+		archive_read_free(a);
+		fprintf(stderr, "Invalid or unsupported data source\n");
+		exit(1);
+	}
+
+	format_printed = 0;
+	c = 1;
+
+	while (1) {
+		r = archive_read_next_header(a, &entry);
+		if (r == ARCHIVE_FATAL) {
+			v_print(v, "Entry %d: fatal error reading "
+			    "header\n", c);
+			break;
+		}
+		if (!format_printed) {
+			v_print(v, "Filter: %s\nFormat: %s\n",
+			    archive_filter_name(a, 0), archive_format_name(a));
+			format_printed = 1;
+		}
+		if (r == ARCHIVE_RETRY)
+			continue;
+		if (r == ARCHIVE_EOF)
+			break;
+		p = archive_entry_pathname(entry);
+		v_print(v, "Entry %d: %s, pathname", c, errnostr(r));
+		if (p == NULL || p[0] == '\0')
+			v_print(v, " unreadable");
+		else
+			v_print(v, ": %s", p);
+		v_print(v, ", data: ");
+		if (skip_data) {
+			v_print(v, "skipping");
+		} else {
+			while ((r = archive_read_data(a, buffer, 4096) > 0))
+			;
+			if (r == ARCHIVE_FATAL) {
+				v_print(v, "ERROR\nError string: %s\n",
+				    archive_error_string(a));
+				break;
+			}
+			v_print(v, "OK");
+		}
+		v_print(v, "\n");
+		c++;
+	}
+
+	v_print(v, "Last return code: %s (%d)\n", errnostr(r), r);
+	if (r == ARCHIVE_EOF || r == ARCHIVE_OK) {
+		archive_read_free(a);
+		exit(0);
+	}
+	v_print(v, "Error string: %s\n", archive_error_string(a));
+	archive_read_free(a);
+	exit(2);
+}

Modified: vendor/libarchive/dist/cpio/test/test_basic.c
==============================================================================
--- vendor/libarchive/dist/cpio/test/test_basic.c	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/cpio/test/test_basic.c	Mon May 20 12:32:00 2019	(r347989)
@@ -46,7 +46,7 @@ verify_files(const char *msg)
 
 	/* Symlink */
 	if (canSymlink())
-		assertIsSymlink("symlink", "file");
+		assertIsSymlink("symlink", "file", 0);
 
 	/* Another file with 1 link and different permissions. */
 	failure(msg);
@@ -173,7 +173,7 @@ DEFINE_TEST(test_basic)
 
 	/* Symlink to above file. */
 	if (canSymlink()) {
-		assertMakeSymlink("symlink", "file");
+		assertMakeSymlink("symlink", "file", 0);
 		fprintf(filelist, "symlink\n");
 		if (is_LargeInode("symlink")) {
 			strncat(result,

Modified: vendor/libarchive/dist/cpio/test/test_format_newc.c
==============================================================================
--- vendor/libarchive/dist/cpio/test/test_format_newc.c	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/cpio/test/test_format_newc.c	Mon May 20 12:32:00 2019	(r347989)
@@ -114,7 +114,7 @@ DEFINE_TEST(test_format_newc)
 
 	/* "symlink" */
 	if (canSymlink()) {
-		assertMakeSymlink("symlink", "file1");
+		assertMakeSymlink("symlink", "file1", 0);
 		fprintf(list, "symlink\n");
 	}
 
@@ -233,7 +233,12 @@ 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)
+		/* Mode: Group members bits and others bits do not work. */
+		assertEqualInt(0xa180, from_hex(e + 14, 8) & 0xffc0);
+#else
 		assertEqualInt(0xa1ff, from_hex(e + 14, 8)); /* Mode */
+#endif
 		assertEqualInt(from_hex(e + 22, 8), uid); /* uid */
 		assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */
 		assertEqualMem(e + 38, "00000001", 8); /* nlink */

Modified: vendor/libarchive/dist/cpio/test/test_gcpio_compat.c
==============================================================================
--- vendor/libarchive/dist/cpio/test/test_gcpio_compat.c	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/cpio/test/test_gcpio_compat.c	Mon May 20 12:32:00 2019	(r347989)
@@ -71,7 +71,7 @@ unpack_test(const char *from, const char *options, con
 
 	/* Symlink */
 	if (canSymlink())
-		assertIsSymlink("symlink", "file");
+		assertIsSymlink("symlink", "file", 0);
 
 	/* dir */
 	assertIsDir("dir", 0775);

Modified: vendor/libarchive/dist/cpio/test/test_option_L_upper.c
==============================================================================
--- vendor/libarchive/dist/cpio/test/test_option_L_upper.c	Mon May 20 08:52:11 2019	(r347988)
+++ vendor/libarchive/dist/cpio/test/test_option_L_upper.c	Mon May 20 12:32:00 2019	(r347989)
@@ -30,8 +30,10 @@ __FBSDID("$FreeBSD: src/usr.bin/cpio/test/test_option_
  * tests won't run on Windows. */
 #if defined(_WIN32) && !defined(__CYGWIN__)
 #define CAT "type"
+#define SEP "\\"
 #else
 #define CAT "cat"
+#define SEP "/"
 #endif
 
 DEFINE_TEST(test_option_L_upper)
@@ -51,7 +53,7 @@ DEFINE_TEST(test_option_L_upper)
 	fprintf(filelist, "file\n");
 
 	/* Symlink to above file. */
-	assertMakeSymlink("symlink", "file");
+	assertMakeSymlink("symlink", "file", 0);
 	fprintf(filelist, "symlink\n");
 
 	fclose(filelist);
@@ -61,7 +63,7 @@ DEFINE_TEST(test_option_L_upper)
 	assertTextFileContents("1 block\n", "copy.err");
 
 	failure("Regular -p without -L should preserve symlinks.");
-	assertIsSymlink("copy/symlink", NULL);
+	assertIsSymlink("copy/symlink", NULL, 0);
 
 	r = systemf(CAT " filelist | %s -pd -L copy-L >copy-L.out 2>copy-L.err", testprog);
 	assertEqualInt(r, 0);
@@ -77,13 +79,14 @@ DEFINE_TEST(test_option_L_upper)
 
 	assertMakeDir("unpack", 0755);
 	assertChdir("unpack");
-	r = systemf(CAT " ../archive.out | %s -i >unpack.out 2>unpack.err", testprog);

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201905201232.x4KCW1kA094589>