From owner-svn-src-all@freebsd.org Tue Feb 11 23:48:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 80164246DEC; Tue, 11 Feb 2020 23:48:10 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48HKGL3W93z4pgP; Tue, 11 Feb 2020 23:48:10 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7301818290; Tue, 11 Feb 2020 23:48:10 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 01BNmAxb070910; Tue, 11 Feb 2020 23:48:10 GMT (envelope-from mm@FreeBSD.org) Received: (from mm@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 01BNm41M070876; Tue, 11 Feb 2020 23:48:04 GMT (envelope-from mm@FreeBSD.org) Message-Id: <202002112348.01BNm41M070876@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mm set sender to mm@FreeBSD.org using -f From: Martin Matuska Date: Tue, 11 Feb 2020 23:48:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r357783 - in vendor/libarchive/dist: . .github/workflows build build/ci build/ci/github_actions build/cmake build/release cat cat/test contrib cpio cpio/test libarchive libarchive/test ... X-SVN-Group: vendor X-SVN-Commit-Author: mm X-SVN-Commit-Paths: in vendor/libarchive/dist: . .github/workflows build build/ci build/ci/github_actions build/cmake build/release cat cat/test contrib cpio cpio/test libarchive libarchive/test libarchive_fe tar tar/tes... X-SVN-Commit-Revision: 357783 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Feb 2020 23:48:10 -0000 Author: mm Date: Tue Feb 11 23:48:03 2020 New Revision: 357783 URL: https://svnweb.freebsd.org/changeset/base/357783 Log: Update vendor/libarchive/dist to git 3288ebb0353beb51dfb09d444dedbe9235ead53d Libarchive 3.4.2 Relevant vendor changes: PR #1289: atomic extraction support (bsdtar -x --safe-writes) PR #1308: big endian fix for UTF16 support in LHA reader PR #1326: reject RAR5 files that declare invalid header flags Issue #987: fix support 7z archive entries with Delta filter Issue #1317: fix compression output buffer handling in XAR writer Issue #1319: fix uname or gname longer than 32 characters in pax writer Issue #1325: fix use after free when archiving hardlinks in ISO9660 or XAR Use localtime_r() and gmtime_r() instead of localtime() and gmtime() Added: vendor/libarchive/dist/build/release/ vendor/libarchive/dist/build/release/Dockerfile vendor/libarchive/dist/build/release/release.sh (contents, props changed) vendor/libarchive/dist/libarchive/archive_write_set_format_private.h (contents, props changed) vendor/libarchive/dist/libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu vendor/libarchive/dist/libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu vendor/libarchive/dist/libarchive/test/test_read_format_rar5_block_size_is_too_small.rar.uu vendor/libarchive/dist/tar/test/test_option_safe_writes.c (contents, props changed) Modified: vendor/libarchive/dist/.github/workflows/ci.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/github_actions/ci.cmd vendor/libarchive/dist/build/cmake/config.h.in vendor/libarchive/dist/build/version vendor/libarchive/dist/cat/bsdcat.h vendor/libarchive/dist/cat/test/test_0.c vendor/libarchive/dist/configure.ac vendor/libarchive/dist/contrib/archivetest.c vendor/libarchive/dist/cpio/cpio.c vendor/libarchive/dist/cpio/test/test_basic.c vendor/libarchive/dist/cpio/test/test_format_newc.c vendor/libarchive/dist/libarchive/CMakeLists.txt vendor/libarchive/dist/libarchive/archive.h vendor/libarchive/dist/libarchive/archive_acl_private.h vendor/libarchive/dist/libarchive/archive_blake2.h vendor/libarchive/dist/libarchive/archive_blake2_impl.h vendor/libarchive/dist/libarchive/archive_cmdline_private.h vendor/libarchive/dist/libarchive/archive_crc32.h vendor/libarchive/dist/libarchive/archive_cryptor_private.h vendor/libarchive/dist/libarchive/archive_digest_private.h vendor/libarchive/dist/libarchive/archive_endian.h vendor/libarchive/dist/libarchive/archive_entry.c vendor/libarchive/dist/libarchive/archive_entry_locale.h vendor/libarchive/dist/libarchive/archive_entry_private.h vendor/libarchive/dist/libarchive/archive_getdate.c vendor/libarchive/dist/libarchive/archive_getdate.h vendor/libarchive/dist/libarchive/archive_hmac_private.h vendor/libarchive/dist/libarchive/archive_openssl_evp_private.h vendor/libarchive/dist/libarchive/archive_openssl_hmac_private.h vendor/libarchive/dist/libarchive/archive_options_private.h vendor/libarchive/dist/libarchive/archive_pack_dev.c vendor/libarchive/dist/libarchive/archive_pack_dev.h vendor/libarchive/dist/libarchive/archive_pathmatch.h vendor/libarchive/dist/libarchive/archive_platform_acl.h vendor/libarchive/dist/libarchive/archive_platform_xattr.h vendor/libarchive/dist/libarchive/archive_ppmd7.c vendor/libarchive/dist/libarchive/archive_ppmd7_private.h vendor/libarchive/dist/libarchive/archive_ppmd8_private.h vendor/libarchive/dist/libarchive/archive_ppmd_private.h vendor/libarchive/dist/libarchive/archive_private.h vendor/libarchive/dist/libarchive/archive_random_private.h vendor/libarchive/dist/libarchive/archive_rb.h vendor/libarchive/dist/libarchive/archive_read.c vendor/libarchive/dist/libarchive/archive_read_disk_posix.c vendor/libarchive/dist/libarchive/archive_read_disk_private.h vendor/libarchive/dist/libarchive/archive_read_private.h vendor/libarchive/dist/libarchive/archive_read_set_options.3 vendor/libarchive/dist/libarchive/archive_read_support_filter_uu.c vendor/libarchive/dist/libarchive/archive_read_support_format_7zip.c vendor/libarchive/dist/libarchive/archive_read_support_format_lha.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_warc.c vendor/libarchive/dist/libarchive/archive_read_support_format_xar.c vendor/libarchive/dist/libarchive/archive_string.c vendor/libarchive/dist/libarchive/archive_string.h vendor/libarchive/dist/libarchive/archive_string_composition.h vendor/libarchive/dist/libarchive/archive_util.c vendor/libarchive/dist/libarchive/archive_windows.h vendor/libarchive/dist/libarchive/archive_write_disk.3 vendor/libarchive/dist/libarchive/archive_write_disk_posix.c vendor/libarchive/dist/libarchive/archive_write_disk_private.h vendor/libarchive/dist/libarchive/archive_write_disk_windows.c vendor/libarchive/dist/libarchive/archive_write_private.h vendor/libarchive/dist/libarchive/archive_write_set_format.c vendor/libarchive/dist/libarchive/archive_write_set_format_7zip.c vendor/libarchive/dist/libarchive/archive_write_set_format_ar.c vendor/libarchive/dist/libarchive/archive_write_set_format_cpio.c vendor/libarchive/dist/libarchive/archive_write_set_format_cpio_newc.c vendor/libarchive/dist/libarchive/archive_write_set_format_gnutar.c vendor/libarchive/dist/libarchive/archive_write_set_format_iso9660.c vendor/libarchive/dist/libarchive/archive_write_set_format_pax.c vendor/libarchive/dist/libarchive/archive_write_set_format_shar.c vendor/libarchive/dist/libarchive/archive_write_set_format_ustar.c vendor/libarchive/dist/libarchive/archive_write_set_format_v7tar.c vendor/libarchive/dist/libarchive/archive_write_set_format_warc.c vendor/libarchive/dist/libarchive/archive_write_set_format_xar.c vendor/libarchive/dist/libarchive/archive_write_set_format_zip.c vendor/libarchive/dist/libarchive/archive_write_set_options.3 vendor/libarchive/dist/libarchive/archive_xxhash.h vendor/libarchive/dist/libarchive/filter_fork.h vendor/libarchive/dist/libarchive/test/test_archive_write_set_format_filter_by_ext.c vendor/libarchive/dist/libarchive/test/test_compat_zip.c vendor/libarchive/dist/libarchive/test/test_fuzz.c vendor/libarchive/dist/libarchive/test/test_read_extract.c vendor/libarchive/dist/libarchive/test/test_read_format_7zip.c vendor/libarchive/dist/libarchive/test/test_read_format_7zip_packinfo_digests.c vendor/libarchive/dist/libarchive/test/test_read_format_gtar_sparse.c vendor/libarchive/dist/libarchive/test/test_read_format_rar5.c vendor/libarchive/dist/libarchive/test/test_read_format_zip.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_7075_utf8_paths.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_comment_stored.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_extra_padding.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_high_compression.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_jar.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_mac_metadata.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_malformed.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_msdos.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_nested.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_nofiletype.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_padded.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_sfx.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_with_invalid_traditional_eocd.c vendor/libarchive/dist/libarchive/test/test_read_format_zip_zip64.c vendor/libarchive/dist/libarchive/test/test_read_pax_truncated.c vendor/libarchive/dist/libarchive/test/test_read_truncated_filter.c vendor/libarchive/dist/libarchive/test/test_sparse_basic.c vendor/libarchive/dist/libarchive/test/test_write_disk.c vendor/libarchive/dist/libarchive/test/test_write_format_cpio_empty.c vendor/libarchive/dist/libarchive/test/test_write_format_pax.c vendor/libarchive/dist/libarchive/test/test_write_format_shar_empty.c vendor/libarchive/dist/libarchive/test/test_write_format_tar.c vendor/libarchive/dist/libarchive/test/test_write_format_tar_sparse.c vendor/libarchive/dist/libarchive/test/test_write_format_xar.c vendor/libarchive/dist/libarchive/test/test_write_format_zip_file.c vendor/libarchive/dist/libarchive/test/test_write_format_zip_file_zip64.c vendor/libarchive/dist/libarchive_fe/err.h 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_upper.c vendor/libarchive/dist/tar/test/test_option_s.c vendor/libarchive/dist/tar/util.c vendor/libarchive/dist/test_utils/test_common.h vendor/libarchive/dist/test_utils/test_main.c Modified: vendor/libarchive/dist/.github/workflows/ci.yml ============================================================================== --- vendor/libarchive/dist/.github/workflows/ci.yml Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/.github/workflows/ci.yml Tue Feb 11 23:48:03 2020 (r357783) @@ -33,6 +33,14 @@ jobs: run: ./build/ci/build.sh -a install env: BS: ${{ matrix.bs }} + - name: Artifact + run: ./build/ci/build.sh -a artifact + env: + BS: ${{ matrix.bs }} + - uses: actions/upload-artifact@v1 + with: + name: libarchive-macos-${{ matrix.bs }}-${{ github.sha }} + path: libarchive.tar.xz Ubuntu: runs-on: ubuntu-latest @@ -66,7 +74,14 @@ jobs: run: ./build/ci/build.sh -a install env: BS: ${{ matrix.bs }} - + - name: Artifact + run: ./build/ci/build.sh -a artifact + env: + BS: ${{ matrix.bs }} + - uses: actions/upload-artifact@v1 + with: + name: libarchive-ubuntu-${{ matrix.bs }}-${{ matrix.crypto }}-${{ github.sha }} + path: libarchive.tar.xz Ubuntu-distcheck: runs-on: ubuntu-latest steps: @@ -114,3 +129,12 @@ jobs: shell: cmd env: BE: ${{ matrix.be }} + - name: Artifact + run: ./build/ci/github_actions/ci.cmd artifact + shell: cmd + env: + BE: ${{ matrix.be }} + - uses: actions/upload-artifact@v1 + with: + name: libarchive-windows-${{ matrix.be }}-${{ github.sha }} + path: libarchive.zip Modified: vendor/libarchive/dist/CMakeLists.txt ============================================================================== --- vendor/libarchive/dist/CMakeLists.txt Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/CMakeLists.txt Tue Feb 11 23:48:03 2020 (r357783) @@ -18,7 +18,7 @@ endif() # RelWithDebInfo : Release build with Debug Info # MinSizeRel : Release Min Size build IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build Type" FORCE) + SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build Type" FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) # Set a value type to properly display CMAKE_BUILD_TYPE on GUI if the # value type is "UNINITIALIZED". @@ -155,9 +155,9 @@ IF (MSVC) ################################################################# # Set compile flags for debug build. # This is added into CMAKE_C_FLAGS when CMAKE_BUILD_TYPE is "Debug" - # Enable level 4 C4061: The enumerate has no associated handler in a switch - # statement. - SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /we4061") + # Enable level 4 C4062: The enumerate has no associated handler in a switch + # statement and there is no default that can catch it. + SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /we4062") # Enable level 4 C4254: A larger bit field was assigned to a smaller bit # field. SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /we4254") @@ -287,6 +287,10 @@ IF("${CMAKE_C_PLATFORM_ID}" MATCHES "^(HP-UX)$") ADD_DEFINITIONS(-D_XOPEN_SOURCE=500) # Ask wchar.h for mbstate_t ENDIF() +IF(MINGW) + ADD_DEFINITIONS(-D__USE_MINGW_ANSI_STDIO) +ENDIF() + # INCLUDE(CheckCSourceCompiles) INCLUDE(CheckCSourceRuns) @@ -1392,6 +1396,7 @@ CHECK_FUNCTION_EXISTS_GLIBC(wctomb HAVE_WCTOMB) CHECK_FUNCTION_EXISTS_GLIBC(_ctime64_s HAVE__CTIME64_S) CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64) CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE) +CHECK_FUNCTION_EXISTS_GLIBC(_gmtime64_s HAVE__GMTIME64_S) CHECK_FUNCTION_EXISTS_GLIBC(_localtime64_s HAVE__LOCALTIME64_S) CHECK_FUNCTION_EXISTS_GLIBC(_mkgmtime64 HAVE__MKGMTIME64) Modified: vendor/libarchive/dist/Makefile.am ============================================================================== --- vendor/libarchive/dist/Makefile.am Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/Makefile.am Tue Feb 11 23:48:03 2020 (r357783) @@ -228,6 +228,7 @@ libarchive_la_SOURCES= \ libarchive/archive_write_set_format_iso9660.c \ libarchive/archive_write_set_format_mtree.c \ libarchive/archive_write_set_format_pax.c \ + libarchive/archive_write_set_format_private.h \ libarchive/archive_write_set_format_raw.c \ libarchive/archive_write_set_format_shar.c \ libarchive/archive_write_set_format_ustar.c \ @@ -751,7 +752,9 @@ libarchive_test_EXTRA_DIST=\ libarchive/test/test_read_format_7zip_copy_2.7z.uu \ libarchive/test/test_read_format_7zip_deflate.7z.uu \ libarchive/test/test_read_format_7zip_delta_lzma1.7z.uu \ + libarchive/test/test_read_format_7zip_delta4_lzma1.7z.uu \ libarchive/test/test_read_format_7zip_delta_lzma2.7z.uu \ + libarchive/test/test_read_format_7zip_delta4_lzma2.7z.uu \ libarchive/test/test_read_format_7zip_empty_archive.7z.uu \ libarchive/test/test_read_format_7zip_empty_file.7z.uu \ libarchive/test/test_read_format_7zip_encryption.7z.uu \ @@ -876,6 +879,7 @@ libarchive_test_EXTRA_DIST=\ libarchive/test/test_read_format_rar5_win32.rar.uu \ libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu \ libarchive/test/test_read_format_rar5_different_winsize_on_merge.rar.uu \ + libarchive/test/test_read_format_rar5_block_size_is_too_small.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 \ @@ -1081,6 +1085,7 @@ bsdtar_test_SOURCES= \ tar/test/test_option_q.c \ tar/test/test_option_r.c \ tar/test/test_option_s.c \ + tar/test/test_option_safe_writes.c \ tar/test/test_option_uid_uname.c \ tar/test/test_option_uuencode.c \ tar/test/test_option_xattrs.c \ Modified: vendor/libarchive/dist/NEWS ============================================================================== --- vendor/libarchive/dist/NEWS Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/NEWS Tue Feb 11 23:48:03 2020 (r357783) @@ -1,3 +1,11 @@ +Feb 11, 2020: libarchive 3.4.2 released + +Jan 23, 2020: Important fixes for writing XAR archives + +Jan 20, 2020: New tar option: --safe-writes (atomical file extraction) + +Jan 03, 2020: Support mbed TLS (PolarSSL) as optional crypto provider + Dec 30, 2019: libarchive 3.4.1 released Dec 11, 2019: New pax write option "xattrhdr" Modified: vendor/libarchive/dist/build/ci/build.sh ============================================================================== --- vendor/libarchive/dist/build/ci/build.sh Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/build/ci/build.sh Tue Feb 11 23:48:03 2020 (r357783) @@ -42,6 +42,7 @@ while getopts a:b:c:d:s: opt; do test) ;; install) ;; distcheck) ;; + artifact) ;; *) inputerror "Invalid action (-a)" ;; esac ACTIONS="${ACTIONS} ${OPTARG}" @@ -147,11 +148,15 @@ for action in ${ACTIONS}; do install) ${MAKE} ${MAKE_ARGS} install DESTDIR="${BUILDDIR}/destdir" RET="$?" - cd ${BUILDDIR}/destdir && ls -lR . + cd "${BUILDDIR}/destdir" && ls -lR . ;; distcheck) ${MAKE} ${MAKE_ARGS} distcheck RET="$?" + ;; + artifact) + tar -c -J -C "${BUILDDIR}/destdir" -f "${CURDIR}/libarchive.tar.xz" usr + ls -l "${CURDIR}/libarchive.tar.xz" ;; esac if [ "${RET}" != "0" ]; then Modified: vendor/libarchive/dist/build/ci/github_actions/ci.cmd ============================================================================== --- vendor/libarchive/dist/build/ci/github_actions/ci.cmd Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/build/ci/github_actions/ci.cmd Tue Feb 11 23:48:03 2020 (r357783) @@ -1,5 +1,6 @@ @ECHO OFF SET ZLIB_VERSION=1.2.11 +SET BZIP2_VERSION=b7a672291188a6469f71dd13ad14f2f9a7344fc8 IF NOT "%BE%"=="mingw-gcc" ( IF NOT "%BE%"=="msvc" ( ECHO Environment variable BE must be mingw-gcc or msvc @@ -7,20 +8,31 @@ IF NOT "%BE%"=="mingw-gcc" ( ) ) +SET ORIGPATH=%PATH% +IF "%BE%"=="mingw-gcc" ( + SET MINGWPATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin +) + IF "%1"=="deplibs" ( 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%.zip ( + curl -L -o zlib-%ZLIB_VERSION%.zip https://github.com/libarchive/zlib/archive/v%ZLIB_VERSION%.zip ) IF NOT EXIST zlib-%ZLIB_VERSION% ( - tar -x -z -f zlib-%ZLIB_VERSION%.tar.gz + tar -x -f zlib-%ZLIB_VERSION%.zip ) + IF NOT EXIST bzip2-%BZIP2_VERSION%.zip ( + curl -L -o bzip2-%BZIP2_VERSION%.zip https://github.com/libarchive/bzip2/archive/%BZIP2_VERSION%.zip + ) + IF NOT EXIST bzip2-%BZIP2_VERSION% ( + tar -x -f bzip2-%BZIP2_VERSION%.zip + ) CD zlib-%ZLIB_VERSION% IF "%BE%"=="mingw-gcc" ( - SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + SET PATH=%MINGWPATH% cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" . || EXIT /b 1 mingw32-make || EXIT /b 1 mingw32-make test || EXIT /b 1 @@ -31,49 +43,66 @@ IF "%1"=="deplibs" ( cmake --build . --target RUN_TESTS --config Release || EXIT /b 1 cmake --build . --target INSTALL --config Release || EXIT /b 1 ) + CD .. + CD bzip2-%BZIP2_VERSION% + IF "%BE%"=="mingw-gcc" ( + SET PATH=%MINGWPATH% + cmake -G "MinGW Makefiles" -D CMAKE_BUILD_TYPE="Release" -D ENABLE_LIB_ONLY=ON -D ENABLE_SHARED_LIB=OFF -D ENABLE_STATIC_LIB=ON . || EXIT /b 1 + mingw32-make || EXIT /b 1 + REM mingw32-make test || EXIT /b 1 + mingw32-make install || EXIT /b 1 + ) ELSE IF "%BE%"=="msvc" ( + cmake -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE="Release" -D ENABLE_LIB_ONLY=ON -D ENABLE_SHARED_LIB=OFF -D ENABLE_STATIC_LIB=ON . || EXIT /b 1 + cmake --build . --target ALL_BUILD --config Release || EXIT /b 1 + REM cmake --build . --target RUN_TESTS --config Release || EXIT /b 1 + cmake --build . --target INSTALL --config Release || EXIT /b 1 + ) + CD .. ) ELSE IF "%1%"=="configure" ( IF "%BE%"=="mingw-gcc" ( - SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + SET PATH=%MINGWPATH% MKDIR build_ci\cmake CD build_ci\cmake - cmake -G "MinGW Makefiles" ..\.. || EXIT /b 1 + cmake -G "MinGW Makefiles" -D ZLIB_LIBRARY="C:/Program Files (x86)/zlib/lib/libzlibstatic.a" -D ZLIB_INCLUDE_DIR="C:/Program Files (x86)/zlib/include" -D BZIP2_LIBRARIES="C:/Program Files (x86)/bzip2/lib/libbz2.a" -D BZIP2_INCLUDE_DIR="C:/Program Files (x86)/bzip2/include" ..\.. || EXIT /b 1 ) ELSE IF "%BE%"=="msvc" ( MKDIR build_ci\cmake CD build_ci\cmake - cmake -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE="Release" ..\.. || EXIT /b 1 + cmake -G "Visual Studio 16 2019" -D CMAKE_BUILD_TYPE="Release" -D ZLIB_LIBRARY="C:/Program Files (x86)/zlib/lib/zlibstatic.lib" -D ZLIB_INCLUDE_DIR="C:/Program Files (x86)/zlib/include" -D BZIP2_LIBRARIES="C:/Program Files (x86)/bzip2/lib/bz2.lib" -D BZIP2_INCLUDE_DIR="C:/Program Files (x86)/bzip2/include" ..\.. || EXIT /b 1 ) ) ELSE IF "%1%"=="build" ( IF "%BE%"=="mingw-gcc" ( - SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + SET PATH=%MINGWPATH% CD build_ci\cmake - mingw32-make || EXIT /b 1 + mingw32-make VERBOSE=1 || EXIT /b 1 ) ELSE IF "%BE%"=="msvc" ( CD build_ci\cmake - cmake --build . --target ALL_BUILD --config Release + cmake --build . --target ALL_BUILD --config Release || EXIT /b 1 ) ) ELSE IF "%1%"=="test" ( IF "%BE%"=="mingw-gcc" ( - SET 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\ + SET PATH=%MINGWPATH% CD build_ci\cmake SET SKIP_TEST_SPARSE=1 - mingw32-make test + mingw32-make test VERBOSE=1 || EXIT /b 1 ) ELSE IF "%BE%"=="msvc" ( ECHO "Skipping tests on this platform" EXIT /b 0 REM CD build_ci\cmake - REM cmake --build . --target RUN_TESTS --config Release + REM cmake --build . --target RUN_TESTS --config Release || EXIT /b 1 ) ) ELSE IF "%1%"=="install" ( IF "%BE%"=="mingw-gcc" ( - SET PATH=C:\Program Files\cmake\bin;C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin + SET PATH=%MINGWPATH% CD build_ci\cmake - mingw32-make install DESTDIR=%cd%\destdir + mingw32-make install || EXIT /b 1 ) ELSE IF "%BE%"=="msvc" ( - cmake --build . --target INSTALL --config Release + CD build_ci\cmake + cmake --build . --target INSTALL --config Release || EXIT /b 1 ) +) ELSE IF "%1"=="artifact" ( + tar -c -C "C:\Program Files (x86)" --format=zip -f libarchive.zip libarchive ) ELSE ( - ECHO "Usage: %0% deplibs|configure|build|test|install" + ECHO "Usage: %0% deplibs|configure|build|test|install|artifact" @EXIT /b 0 ) @EXIT /b 0 Modified: vendor/libarchive/dist/build/cmake/config.h.in ============================================================================== --- vendor/libarchive/dist/build/cmake/config.h.in Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/build/cmake/config.h.in Tue Feb 11 23:48:03 2020 (r357783) @@ -1210,6 +1210,9 @@ typedef uint64_t uintmax_t; /* Define to 1 if you have the `_get_timezone' function. */ #cmakedefine HAVE__GET_TIMEZONE 1 +/* Define to 1 if you have the `_gmtime64_s' function. */ +#cmakedefine HAVE__GMTIME64_S 1 + /* Define to 1 if you have the `_localtime64_s' function. */ #cmakedefine HAVE__LOCALTIME64_S 1 Added: vendor/libarchive/dist/build/release/Dockerfile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libarchive/dist/build/release/Dockerfile Tue Feb 11 23:48:03 2020 (r357783) @@ -0,0 +1,11 @@ +FROM ubuntu:18.04 +RUN apt-get update && apt-get install -y build-essential autoconf automake libtool pkg-config cmake libssl-dev libacl1-dev libbz2-dev liblzma-dev libzip-dev liblz4-dev libzstd-dev lzop groff ghostscript bsdmainutils zip +ADD . $HOME/libarchive/ +ADD "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" $HOME/libarchive/build/autoconf/config.guess +ADD "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" $HOME/libarchive/build/autoconf/config.sub +WORKDIR $HOME/libarchive +RUN /bin/sh build/clean.sh +RUN /bin/sh build/autogen.sh +ENV SKIP_OPEN_FD_ERR_TEST=1 SKIP_TEST_SPARSE=1 +RUN ./configure +RUN make V=1 distcheck Added: vendor/libarchive/dist/build/release/release.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libarchive/dist/build/release/release.sh Tue Feb 11 23:48:03 2020 (r357783) @@ -0,0 +1,8 @@ +#!/bin/sh +ID=$(docker build -q -f build/release/Dockerfile .) +if [ -z "$ID" ]; then + echo "Failed to build docker image" + exit 1 +else + docker run $ID sh -c "tar -c -f - libarchive-*" | tar -x -f - +fi Modified: vendor/libarchive/dist/build/version ============================================================================== --- vendor/libarchive/dist/build/version Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/build/version Tue Feb 11 23:48:03 2020 (r357783) @@ -1 +1 @@ -3004002dev +3004002 Modified: vendor/libarchive/dist/cat/bsdcat.h ============================================================================== --- vendor/libarchive/dist/cat/bsdcat.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/cat/bsdcat.h Tue Feb 11 23:48:03 2020 (r357783) @@ -23,6 +23,9 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef BSDCAT_H_INCLUDED +#define BSDCAT_H_INCLUDED + #if defined(PLATFORM_CONFIG_H) /* Use hand-built config.h in environments that need it. */ #include PLATFORM_CONFIG_H @@ -54,3 +57,5 @@ void usage(FILE *stream, int eval); void bsdcat_next(void); void bsdcat_print_error(void); void bsdcat_read_to_stdout(const char* filename); + +#endif Modified: vendor/libarchive/dist/cat/test/test_0.c ============================================================================== --- vendor/libarchive/dist/cat/test/test_0.c Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/cat/test/test_0.c Tue Feb 11 23:48:03 2020 (r357783) @@ -59,7 +59,7 @@ DEFINE_TEST(test_0) * we know some option that will succeed. */ if (0 != systemf("%s --version >" DEV_NULL, testprog)) { - failure("Unable to successfully run: %s --version\n", testprog, testprog); + failure("Unable to successfully run: %s --version\n", testprog); assert(0); } Modified: vendor/libarchive/dist/configure.ac ============================================================================== --- vendor/libarchive/dist/configure.ac Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/configure.ac Tue Feb 11 23:48:03 2020 (r357783) @@ -4,7 +4,7 @@ dnl First, define all of the version numbers up front. dnl In particular, this allows the version macro to be used in AC_INIT dnl These first two version numbers are updated automatically on each release. -m4_define([LIBARCHIVE_VERSION_S],[3.4.2dev]) +m4_define([LIBARCHIVE_VERSION_S],[3.4.2]) m4_define([LIBARCHIVE_VERSION_N],[3004002]) dnl bsdtar and bsdcpio versioning tracks libarchive @@ -641,7 +641,7 @@ AC_CHECK_FUNCS([strchr strdup strerror strncpy_s strrc AC_CHECK_FUNCS([tzset unlinkat unsetenv utime utimensat utimes vfork]) AC_CHECK_FUNCS([wcrtomb wcscmp wcscpy wcslen wctomb wmemcmp wmemcpy wmemmove]) AC_CHECK_FUNCS([_ctime64_s _fseeki64]) -AC_CHECK_FUNCS([_get_timezone _localtime64_s _mkgmtime64]) +AC_CHECK_FUNCS([_get_timezone _gmtime64_s _localtime64_s _mkgmtime64]) # detects cygwin-1.7, as opposed to older versions AC_CHECK_FUNCS([cygwin_conv_path]) Modified: vendor/libarchive/dist/contrib/archivetest.c ============================================================================== --- vendor/libarchive/dist/contrib/archivetest.c Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/contrib/archivetest.c Tue Feb 11 23:48:03 2020 (r357783) @@ -37,10 +37,14 @@ #include #include -const char *errnostr(int errno) +#if defined __MINGW32__ +#include +#endif + +static const char *errnostr(int e) { char *estr; - switch(errno) { + switch(e) { case ARCHIVE_EOF: estr = "ARCHIVE_EOF"; break; @@ -66,12 +70,12 @@ const char *errnostr(int errno) return (estr); } -void usage(const char *prog) +static void usage(const char *prog) { fprintf(stderr, "Usage: %s [-f filename] [-h] [-q] [-s]\n", prog); } -void printhelp() +static void printhelp() { fprintf(stdout, "archivetest: verify reading archives with " "libarchive\n\n" @@ -84,7 +88,7 @@ void printhelp() "\n%s\n", archive_version_details()); } -int v_print(int verbose, const char *format, ...) +static int v_print(int verbose, const char *format, ...) { int r = 0; @@ -139,6 +143,8 @@ int main(int argc, char *argv[]) fprintf(stderr, "Unknown option " "character '\\x%x'.\n", optopt); usage(argv[0]); + exit(1); + break; default: exit(1); } Modified: vendor/libarchive/dist/cpio/cpio.c ============================================================================== --- vendor/libarchive/dist/cpio/cpio.c Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/cpio/cpio.c Tue Feb 11 23:48:03 2020 (r357783) @@ -1139,6 +1139,14 @@ list_item_verbose(struct cpio *cpio, struct archive_en const char *fmt; time_t mtime; static time_t now; + struct tm *ltime; +#if defined(HAVE_LOCALTIME_R) || defined(HAVE__LOCALTIME64_S) + struct tm tmbuf; +#endif +#if defined(HAVE__LOCALTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif if (!now) time(&now); @@ -1186,7 +1194,19 @@ list_item_verbose(struct cpio *cpio, struct archive_en else fmt = cpio->day_first ? "%e %b %H:%M" : "%b %e %H:%M"; #endif - strftime(date, sizeof(date), fmt, localtime(&mtime)); +#if defined(HAVE_LOCALTIME_R) + ltime = localtime_r(&mtime, &tmbuf); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = mtime; + terr = _localtime64_s(&tmbuf, &tmptime); + if (terr) + ltime = NULL; + else + ltime = &tmbuf; +#else + ltime = localtime(&mtime); +#endif + strftime(date, sizeof(date), fmt, ltime); fprintf(out, "%s%3d %-8s %-8s %8s %12s %s", archive_entry_strmode(entry), Modified: vendor/libarchive/dist/cpio/test/test_basic.c ============================================================================== --- vendor/libarchive/dist/cpio/test/test_basic.c Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/cpio/test/test_basic.c Tue Feb 11 23:48:03 2020 (r357783) @@ -33,15 +33,15 @@ verify_files(const char *msg) */ /* Regular file with 2 links. */ - failure(msg); + failure("%s", msg); assertIsReg("file", 0644); - failure(msg); + failure("%s", msg); assertFileSize("file", 10); - failure(msg); + failure("%s", msg); assertFileNLinks("file", 2); /* Another name for the same file. */ - failure(msg); + failure("%s", msg); assertIsHardlink("linkfile", "file"); /* Symlink */ @@ -49,11 +49,11 @@ verify_files(const char *msg) assertIsSymlink("symlink", "file", 0); /* Another file with 1 link and different permissions. */ - failure(msg); + failure("%s", msg); assertIsReg("file2", 0777); - failure(msg); + failure("%s", msg); assertFileSize("file2", 10); - failure(msg); + failure("%s", msg); assertFileNLinks("file2", 1); /* dir */ Modified: vendor/libarchive/dist/cpio/test/test_format_newc.c ============================================================================== --- vendor/libarchive/dist/cpio/test/test_format_newc.c Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/cpio/test/test_format_newc.c Tue Feb 11 23:48:03 2020 (r357783) @@ -205,9 +205,11 @@ DEFINE_TEST(test_format_newc) gid = from_hex(e + 30, 8); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t = from_hex(e + 46, 8); /* mtime */ - failure("t=0x%08x now=0x%08x=%d", t, now, now); + failure("t=%#08jx now=%#08jx=%jd", (intmax_t)t, (intmax_t)now, + (intmax_t)now); assert(t <= now); /* File wasn't created in future. */ - failure("t=0x%08x now - 2=0x%08x = %d", t, now - 2, now - 2); + failure("t=%#08jx now - 2=%#08jx=%jd", (intmax_t)t, (intmax_t)now - 2, + (intmax_t)now - 2); assert(t >= now - 2); /* File was created w/in last 2 secs. */ failure("newc format stores body only with last appearance of a link\n" " first appearance should be empty, so this file size\n" @@ -243,7 +245,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000001", 8); /* nlink */ t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created" + " at t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000005", 8); /* File size */ fs = from_hex(e + 54, 8); @@ -278,7 +281,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(nlinks("dir"), from_hex(e + 38, 8)); /* nlinks */ #endif t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created at" + "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualMem(e + 54, "00000000", 8); /* File size */ fs = from_hex(e + 54, 8); @@ -311,7 +315,8 @@ DEFINE_TEST(test_format_newc) assertEqualInt(gid, from_hex(e + 30, 8)); /* gid */ assertEqualMem(e + 38, "00000003", 8); /* nlink */ t2 = from_hex(e + 46, 8); /* mtime */ - failure("First entry created at t=0x%08x this entry created at t2=0x%08x", t, t2); + failure("First entry created at t=%#08jx this entry created at" + "t2=%#08jx", (intmax_t)t, (intmax_t)t2); assert(t2 == t || t2 == t + 1); /* Almost same as first entry. */ assertEqualInt(10, from_hex(e + 54, 8)); /* File size */ fs = from_hex(e + 54, 8); Modified: vendor/libarchive/dist/libarchive/CMakeLists.txt ============================================================================== --- vendor/libarchive/dist/libarchive/CMakeLists.txt Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/CMakeLists.txt Tue Feb 11 23:48:03 2020 (r357783) @@ -150,6 +150,7 @@ SET(libarchive_SOURCES archive_write_set_format_iso9660.c archive_write_set_format_mtree.c archive_write_set_format_pax.c + archive_write_set_format_private.h archive_write_set_format_raw.c archive_write_set_format_shar.c archive_write_set_format_ustar.c Modified: vendor/libarchive/dist/libarchive/archive.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive.h Tue Feb 11 23:48:03 2020 (r357783) @@ -155,7 +155,7 @@ __LA_DECL int archive_version_number(void); /* * Textual name/version of the library, useful for version displays. */ -#define ARCHIVE_VERSION_ONLY_STRING "3.4.2dev" +#define ARCHIVE_VERSION_ONLY_STRING "3.4.2" #define ARCHIVE_VERSION_STRING "libarchive " ARCHIVE_VERSION_ONLY_STRING __LA_DECL const char * archive_version_string(void); @@ -693,6 +693,8 @@ __LA_DECL int archive_read_set_passphrase_callback(str #define ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS (0x10000) /* Default: Do not clear no-change flags when unlinking object */ #define ARCHIVE_EXTRACT_CLEAR_NOCHANGE_FFLAGS (0x20000) +/* Default: Do not extract atomically (using rename) */ +#define ARCHIVE_EXTRACT_SAFE_WRITES (0x40000) __LA_DECL int archive_read_extract(struct archive *, struct archive_entry *, int flags); Modified: vendor/libarchive/dist/libarchive/archive_acl_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_acl_private.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_acl_private.h Tue Feb 11 23:48:03 2020 (r357783) @@ -25,12 +25,12 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_ACL_PRIVATE_H_INCLUDED +#define ARCHIVE_ACL_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_ACL_PRIVATE_H_INCLUDED -#define ARCHIVE_ACL_PRIVATE_H_INCLUDED #include "archive_string.h" Modified: vendor/libarchive/dist/libarchive/archive_blake2.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_blake2.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_blake2.h Tue Feb 11 23:48:03 2020 (r357783) @@ -12,8 +12,9 @@ More information about the BLAKE2 hash function can be found at https://blake2.net. */ -#ifndef BLAKE2_H -#define BLAKE2_H + +#ifndef ARCHIVE_BLAKE2_H +#define ARCHIVE_BLAKE2_H #include #include Modified: vendor/libarchive/dist/libarchive/archive_blake2_impl.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_blake2_impl.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_blake2_impl.h Tue Feb 11 23:48:03 2020 (r357783) @@ -12,8 +12,9 @@ More information about the BLAKE2 hash function can be found at https://blake2.net. */ -#ifndef BLAKE2_IMPL_H -#define BLAKE2_IMPL_H + +#ifndef ARCHIVE_BLAKE2_IMPL_H +#define ARCHIVE_BLAKE2_IMPL_H #include #include Modified: vendor/libarchive/dist/libarchive/archive_cmdline_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_cmdline_private.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_cmdline_private.h Tue Feb 11 23:48:03 2020 (r357783) @@ -25,14 +25,14 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_CMDLINE_PRIVATE_H +#define ARCHIVE_CMDLINE_PRIVATE_H + #ifndef __LIBARCHIVE_BUILD #ifndef __LIBARCHIVE_TEST #error This header is only to be used internally to libarchive. #endif #endif - -#ifndef ARCHIVE_CMDLINE_PRIVATE_H -#define ARCHIVE_CMDLINE_PRIVATE_H struct archive_cmdline { char *path; Modified: vendor/libarchive/dist/libarchive/archive_crc32.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_crc32.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_crc32.h Tue Feb 11 23:48:03 2020 (r357783) @@ -25,6 +25,9 @@ * $FreeBSD: head/lib/libarchive/archive_crc32.h 201102 2009-12-28 03:11:36Z kientzle $ */ +#ifndef ARCHIVE_CRC32_H +#define ARCHIVE_CRC32_H + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif @@ -76,3 +79,5 @@ crc32(unsigned long crc, const void *_p, size_t len) crc = crc_tbl[(crc ^ *p++) & 0xff] ^ (crc >> 8); return (crc ^ 0xffffffffUL); } + +#endif Modified: vendor/libarchive/dist/libarchive/archive_cryptor_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_cryptor_private.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_cryptor_private.h Tue Feb 11 23:48:03 2020 (r357783) @@ -23,13 +23,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef __LIBARCHIVE_BUILD -#error This header is only to be used internally to libarchive. -#endif - #ifndef ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED #define ARCHIVE_CRYPTOR_PRIVATE_H_INCLUDED +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif /* * On systems that do not support any recognized crypto libraries, * the archive_cryptor.c file will normally define no usable symbols. Modified: vendor/libarchive/dist/libarchive/archive_digest_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_digest_private.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_digest_private.h Tue Feb 11 23:48:03 2020 (r357783) @@ -24,13 +24,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef ARCHIVE_DIGEST_PRIVATE_H_INCLUDED +#define ARCHIVE_DIGEST_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_CRYPTO_PRIVATE_H_INCLUDED -#define ARCHIVE_CRYPTO_PRIVATE_H_INCLUDED - /* * Crypto support in various Operating Systems: * Modified: vendor/libarchive/dist/libarchive/archive_endian.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_endian.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_endian.h Tue Feb 11 23:48:03 2020 (r357783) @@ -28,16 +28,15 @@ * Borrowed from FreeBSD's */ -#ifndef __LIBARCHIVE_BUILD -#error This header is only to be used internally to libarchive. -#endif +#ifndef ARCHIVE_ENDIAN_H_INCLUDED +#define ARCHIVE_ENDIAN_H_INCLUDED /* Note: This is a purely internal header! */ /* Do not use this outside of libarchive internal code! */ -#ifndef ARCHIVE_ENDIAN_H_INCLUDED -#define ARCHIVE_ENDIAN_H_INCLUDED - +#ifndef __LIBARCHIVE_BUILD +#error This header is only to be used internally to libarchive. +#endif /* * Disabling inline keyword for compilers known to choke on it: Modified: vendor/libarchive/dist/libarchive/archive_entry.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_entry.c Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_entry.c Tue Feb 11 23:48:03 2020 (r357783) @@ -1699,7 +1699,7 @@ static const struct flag { const wchar_t *wname; unsigned long set; unsigned long clear; -} flags[] = { +} fileflags[] = { /* Preferred (shorter) names per flag first, all prefixed by "no" */ #ifdef SF_APPEND { "nosappnd", L"nosappnd", SF_APPEND, 0}, @@ -1876,7 +1876,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bit bits = bitset | bitclear; length = 0; - for (flag = flags; flag->name != NULL; flag++) + for (flag = fileflags; flag->name != NULL; flag++) if (bits & (flag->set | flag->clear)) { length += strlen(flag->name) + 1; bits &= ~(flag->set | flag->clear); @@ -1889,7 +1889,7 @@ ae_fflagstostr(unsigned long bitset, unsigned long bit return (NULL); dp = string; - for (flag = flags; flag->name != NULL; flag++) { + for (flag = fileflags; flag->name != NULL; flag++) { if (bitset & flag->set || bitclear & flag->clear) { sp = flag->name + 2; } else if (bitset & flag->clear || bitclear & flag->set) { @@ -1941,7 +1941,7 @@ ae_strtofflags(const char *s, unsigned long *setp, uns *end != ' ' && *end != ',') end++; length = end - start; - for (flag = flags; flag->name != NULL; flag++) { + for (flag = fileflags; flag->name != NULL; flag++) { size_t flag_length = strlen(flag->name); if (length == flag_length && memcmp(start, flag->name, length) == 0) { @@ -2009,7 +2009,7 @@ ae_wcstofflags(const wchar_t *s, unsigned long *setp, *end != L' ' && *end != L',') end++; length = end - start; - for (flag = flags; flag->wname != NULL; flag++) { + for (flag = fileflags; flag->wname != NULL; flag++) { size_t flag_length = wcslen(flag->wname); if (length == flag_length && wmemcmp(start, flag->wname, length) == 0) { Modified: vendor/libarchive/dist/libarchive/archive_entry_locale.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_entry_locale.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_entry_locale.h Tue Feb 11 23:48:03 2020 (r357783) @@ -25,12 +25,12 @@ * $FreeBSD$ */ +#ifndef ARCHIVE_ENTRY_LOCALE_H_INCLUDED +#define ARCHIVE_ENTRY_LOCALE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_ENTRY_LOCALE_H_INCLUDED -#define ARCHIVE_ENTRY_LOCALE_H_INCLUDED struct archive_entry; struct archive_string_conv; Modified: vendor/libarchive/dist/libarchive/archive_entry_private.h ============================================================================== --- vendor/libarchive/dist/libarchive/archive_entry_private.h Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_entry_private.h Tue Feb 11 23:48:03 2020 (r357783) @@ -25,12 +25,12 @@ * $FreeBSD: head/lib/libarchive/archive_entry_private.h 201096 2009-12-28 02:41:27Z kientzle $ */ +#ifndef ARCHIVE_ENTRY_PRIVATE_H_INCLUDED +#define ARCHIVE_ENTRY_PRIVATE_H_INCLUDED + #ifndef __LIBARCHIVE_BUILD #error This header is only to be used internally to libarchive. #endif - -#ifndef ARCHIVE_ENTRY_PRIVATE_H_INCLUDED -#define ARCHIVE_ENTRY_PRIVATE_H_INCLUDED #include "archive_acl_private.h" #include "archive_string.h" Modified: vendor/libarchive/dist/libarchive/archive_getdate.c ============================================================================== --- vendor/libarchive/dist/libarchive/archive_getdate.c Tue Feb 11 23:17:58 2020 (r357782) +++ vendor/libarchive/dist/libarchive/archive_getdate.c Tue Feb 11 23:48:03 2020 (r357783) @@ -27,6 +27,7 @@ ** This code is in the public domain and has no copyright. */ +#include "archive_platform.h" #ifdef __FreeBSD__ #include __FBSDID("$FreeBSD$"); @@ -694,8 +695,16 @@ Convert(time_t Month, time_t Day, time_t Year, signed char DaysInMonth[12] = { 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; - time_t Julian; - int i; + time_t Julian; + int i; + struct tm *ltime; +#if defined(HAVE_LOCALTIME_R) || defined(HAVE__LOCALTIME64_S) + struct tm tmbuf; +#endif +#if defined(HAVE__LOCALTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif if (Year < 69) Year += 2000; @@ -722,21 +731,64 @@ Convert(time_t Month, time_t Day, time_t Year, Julian *= DAY; Julian += Timezone; Julian += Hours * HOUR + Minutes * MINUTE + Seconds; +#if defined(HAVE_LOCALTIME_R) + ltime = localtime_r(&Julian, &tmbuf); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = Julian; + terr = _localtime64_s(&tmbuf, &tmptime); + if (terr) + ltime = NULL; + else + ltime = &tmbuf; +#else + ltime = localtime(&Julian); +#endif if (DSTmode == DSTon - || (DSTmode == DSTmaybe && localtime(&Julian)->tm_isdst)) + || (DSTmode == DSTmaybe && ltime->tm_isdst)) Julian -= HOUR; return Julian; } - static time_t DSTcorrect(time_t Start, time_t Future) { - time_t StartDay; - time_t FutureDay; + time_t StartDay; + time_t FutureDay; + struct tm *ltime; +#if defined(HAVE_LOCALTIME_R) || defined(HAVE__LOCALTIME64_S) + struct tm tmbuf; +#endif +#if defined(HAVE__LOCALTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif - StartDay = (localtime(&Start)->tm_hour + 1) % 24; - FutureDay = (localtime(&Future)->tm_hour + 1) % 24; +#if defined(HAVE_LOCALTIME_R) + ltime = localtime_r(&Start, &tmbuf); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = Start; + terr = _localtime64_s(&tmbuf, &tmptime); + if (terr) + ltime = NULL; + else + ltime = &tmbuf; +#else + ltime = localtime(&Start); +#endif + StartDay = (ltime->tm_hour + 1) % 24; +#if defined(HAVE_LOCALTIME_R) + ltime = localtime_r(&Future, &tmbuf); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = Future; + terr = _localtime64_s(&tmbuf, &tmptime); + if (terr) + ltime = NULL; + else + ltime = &tmbuf; +#else + ltime = localtime(&Future); +#endif + FutureDay = (ltime->tm_hour + 1) % 24; return (Future - Start) + (StartDay - FutureDay) * HOUR; } @@ -747,9 +799,27 @@ RelativeDate(time_t Start, time_t zone, int dstmode, { struct tm *tm; time_t t, now; +#if defined(HAVE_GMTIME_R) || defined(HAVE__GMTIME64_S) + struct tm tmbuf; +#endif +#if defined(HAVE__GMTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif t = Start - zone; +#if defined(HAVE_GMTIME_R) + tm = gmtime_r(&t, &tmbuf); +#elif defined(HAVE__GMTIME64_S) + tmptime = t; + terr = _gmtime64_s(&tmbuf, &tmptime); + if (terr) + tm = NULL; + else + tm = &tmbuf; +#else tm = gmtime(&t); +#endif now = Start; now += DAY * ((DayNumber - tm->tm_wday + 7) % 7); now += 7 * DAY * (DayOrdinal <= 0 ? DayOrdinal : DayOrdinal - 1); @@ -765,10 +835,28 @@ RelativeMonth(time_t Start, time_t Timezone, time_t Re struct tm *tm; time_t Month; time_t Year; +#if defined(HAVE_LOCALTIME_R) || defined(HAVE__LOCALTIME64_S) + struct tm tmbuf; +#endif +#if defined(HAVE__LOCALTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif if (RelMonth == 0) return 0; +#if defined(HAVE_LOCALTIME_R) + tm = localtime_r(&Start, &tmbuf); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = Start; + terr = _localtime64_s(&tmbuf, &tmptime); + if (terr) + tm = NULL; + else + tm = &tmbuf; +#else tm = localtime(&Start); +#endif Month = 12 * (tm->tm_year + 1900) + tm->tm_mon + RelMonth; Year = Month / 12; Month = Month % 12 + 1; @@ -905,6 +993,10 @@ __archive_get_date(time_t now, const char *p) time_t Start; time_t tod; long tzone; +#if defined(HAVE__LOCALTIME64_S) || defined(HAVE__GMTIME64_S) + errno_t terr; + __time64_t tmptime; +#endif /* Clear out the parsed token array. */ memset(tokens, 0, sizeof(tokens)); @@ -913,20 +1005,44 @@ __archive_get_date(time_t now, const char *p) gds = &_gds; /* Look up the current time. */ +#if defined(HAVE_LOCALTIME_R) + tm = localtime_r(&now, &local); +#elif defined(HAVE__LOCALTIME64_S) + tmptime = now; + terr = _localtime64_s(&local, &tmptime); + if (terr) + tm = NULL; + else + tm = &local; +#else memset(&local, 0, sizeof(local)); - tm = localtime (&now); + tm = localtime(&now); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***