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 ***
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to