diff --git a/ports/libarchive/fix-deps.patch b/ports/libarchive/fix-deps.patch index 2339a2e4dc..5437611516 100644 --- a/ports/libarchive/fix-deps.patch +++ b/ports/libarchive/fix-deps.patch @@ -1,17 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 38664d2..d0882b2 100644 +index 85d0813..2b6397b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -439,6 +439,8 @@ IF(0) - ENDIF(DEFINED __GNUWIN32PATH AND EXISTS "${__GNUWIN32PATH}") - - SET(ADDITIONAL_LIBS "") -+SET(LIBARCHIVE_LIBS_PRIVATE "") # additional libs for which the pc module is unknown -+SET(LIBSREQUIRED "") # pc modules for additonal libs - # - # Find ZLIB - # -@@ -455,6 +457,7 @@ IF(ZLIB_FOUND) +@@ -504,6 +504,7 @@ IF(ZLIB_FOUND) SET(HAVE_ZLIB_H 1) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) @@ -19,7 +10,7 @@ index 38664d2..d0882b2 100644 IF(WIN32 AND NOT CYGWIN) # # Test if ZLIB_WINAPI macro is needed to use. -@@ -494,6 +497,7 @@ IF(BZIP2_FOUND) +@@ -543,6 +544,7 @@ IF(BZIP2_FOUND) SET(HAVE_BZLIB_H 1) INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${BZIP2_LIBRARIES}) @@ -27,7 +18,7 @@ index 38664d2..d0882b2 100644 # Test if a macro is needed for the library. TRY_MACRO_FOR_LIBRARY( "${BZIP2_INCLUDE_DIR}" "${BZIP2_LIBRARIES}" -@@ -522,6 +526,8 @@ ENDIF() +@@ -571,6 +573,8 @@ ENDIF() IF(LIBLZMA_FOUND) SET(HAVE_LIBLZMA 1) SET(HAVE_LZMA_H 1) @@ -36,7 +27,7 @@ index 38664d2..d0882b2 100644 CMAKE_PUSH_CHECK_STATE() SET(CMAKE_REQUIRED_INCLUDES ${LIBLZMA_INCLUDE_DIR}) SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES}) -@@ -569,6 +575,7 @@ IF(LZO2_FOUND) +@@ -618,6 +622,7 @@ IF(LZO2_FOUND) SET(HAVE_LZO_LZO1X_H 1) INCLUDE_DIRECTORIES(${LZO2_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${LZO2_LIBRARY}) @@ -44,7 +35,7 @@ index 38664d2..d0882b2 100644 # # TODO: test for static library. # -@@ -598,6 +605,7 @@ IF(LIBB2_FOUND) +@@ -647,6 +652,7 @@ IF(LIBB2_FOUND) SET(ARCHIVE_BLAKE2 FALSE) LIST(APPEND ADDITIONAL_LIBS ${LIBB2_LIBRARY}) INCLUDE_DIRECTORIES(${LIBB2_INCLUDE_DIR}) @@ -52,7 +43,7 @@ index 38664d2..d0882b2 100644 CMAKE_PUSH_CHECK_STATE() SET(CMAKE_REQUIRED_LIBRARIES ${LIBB2_LIBRARY}) SET(CMAKE_REQUIRED_INCLUDES ${LIBB2_INCLUDE_DIR}) -@@ -615,6 +623,8 @@ ENDIF(LIBB2_FOUND) +@@ -664,6 +670,8 @@ ENDIF(LIBB2_FOUND) # Find LZ4 # IF(ENABLE_LZ4) @@ -61,7 +52,7 @@ index 38664d2..d0882b2 100644 IF (LZ4_INCLUDE_DIR) # Already in cache, be silent SET(LZ4_FIND_QUIETLY TRUE) -@@ -630,6 +640,10 @@ ENDIF(ENABLE_LZ4) +@@ -679,6 +687,10 @@ ENDIF(ENABLE_LZ4) IF(LZ4_FOUND) SET(HAVE_LIBLZ4 1) SET(HAVE_LZ4_H 1) @@ -72,7 +63,7 @@ index 38664d2..d0882b2 100644 CMAKE_PUSH_CHECK_STATE() # Save the state of the variables SET(CMAKE_REQUIRED_INCLUDES ${LZ4_INCLUDE_DIR}) CHECK_INCLUDE_FILES("lz4hc.h" HAVE_LZ4HC_H) -@@ -646,6 +660,8 @@ MARK_AS_ADVANCED(CLEAR LZ4_LIBRARY) +@@ -695,6 +707,8 @@ MARK_AS_ADVANCED(CLEAR LZ4_LIBRARY) # Find Zstd # IF(ENABLE_ZSTD) @@ -81,7 +72,7 @@ index 38664d2..d0882b2 100644 IF (ZSTD_INCLUDE_DIR) # Already in cache, be silent SET(ZSTD_FIND_QUIETLY TRUE) -@@ -665,6 +681,11 @@ ELSE(ENABLE_ZSTD) +@@ -714,6 +728,11 @@ ELSE(ENABLE_ZSTD) ENDIF(ENABLE_ZSTD) IF(ZSTD_FOUND) SET(HAVE_ZSTD_H 1) @@ -93,31 +84,31 @@ index 38664d2..d0882b2 100644 INCLUDE_DIRECTORIES(${ZSTD_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${ZSTD_LIBRARY}) CMAKE_PUSH_CHECK_STATE() -@@ -774,6 +795,7 @@ IF(ENABLE_CNG) +@@ -826,6 +845,7 @@ IF(ENABLE_CNG) LA_CHECK_INCLUDE_FILE("bcrypt.h" HAVE_BCRYPT_H) IF(HAVE_BCRYPT_H) LIST(APPEND ADDITIONAL_LIBS "bcrypt") + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE "bcrypt") - ENDIF(HAVE_BCRYPT_H) - ELSE(ENABLE_CNG) - UNSET(HAVE_BCRYPT_H CACHE) -@@ -805,6 +827,7 @@ IF(ENABLE_MBEDTLS) + # bcrypt supports these algorithms on all available versions + SET(ARCHIVE_CRYPTO_MD5 1) + SET(ARCHIVE_CRYPTO_MD5_WIN 1) +@@ -867,6 +887,7 @@ IF(ENABLE_MBEDTLS) IF(MBEDTLS_FOUND) SET(HAVE_LIBMBEDCRYPTO 1) LIST(APPEND ADDITIONAL_LIBS ${MBEDCRYPTO_LIBRARY}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${MBEDCRYPTO_LIBRARY}) INCLUDE_DIRECTORIES(${MBEDTLS_INCLUDE_DIRS}) - LIST(APPEND CMAKE_REQUIRED_INCLUDES ${MBEDTLS_INCLUDE_DIRS}) -@@ -825,6 +848,7 @@ IF(ENABLE_NETTLE) + CMAKE_PUSH_CHECK_STATE() +@@ -890,6 +911,7 @@ IF(ENABLE_NETTLE) IF(NETTLE_FOUND) SET(HAVE_LIBNETTLE 1) LIST(APPEND ADDITIONAL_LIBS ${NETTLE_LIBRARIES}) + STRING(APPEND LIBSREQUIRED " nettle") INCLUDE_DIRECTORIES(${NETTLE_INCLUDE_DIR}) - LIST(APPEND CMAKE_REQUIRED_INCLUDES ${NETTLE_INCLUDE_DIR}) -@@ -848,8 +872,8 @@ IF(ENABLE_OPENSSL AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") + CMAKE_PUSH_CHECK_STATE() +@@ -916,8 +938,8 @@ IF(ENABLE_OPENSSL AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") FIND_PACKAGE(OpenSSL) IF(OPENSSL_FOUND) SET(HAVE_LIBCRYPTO 1) @@ -125,10 +116,10 @@ index 38664d2..d0882b2 100644 - LIST(APPEND ADDITIONAL_LIBS ${OPENSSL_CRYPTO_LIBRARY}) + LIST(APPEND ADDITIONAL_LIBS OpenSSL::Crypto) + STRING(APPEND LIBSREQUIRED " libcrypto") + + CMAKE_PUSH_CHECK_STATE() SET(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY}) - SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) - LA_CHECK_INCLUDE_FILE("openssl/evp.h" HAVE_OPENSSL_EVP_H) -@@ -868,6 +892,7 @@ IF(NOT OPENSSL_FOUND) +@@ -940,6 +962,7 @@ IF(NOT OPENSSL_FOUND) SET(CMAKE_REQUIRED_LIBRARIES "md") FIND_LIBRARY(LIBMD_LIBRARY NAMES md) LIST(APPEND ADDITIONAL_LIBS ${LIBMD_LIBRARY}) @@ -136,16 +127,16 @@ index 38664d2..d0882b2 100644 CMAKE_POP_CHECK_STATE() # Restore the state of the variables ENDIF(LIBMD_FOUND) ENDIF(NOT OPENSSL_FOUND) -@@ -981,7 +1006,7 @@ main(int argc, char **argv) +@@ -1057,7 +1080,7 @@ main(int argc, char **argv) IF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND) INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${OPENSSL_LIBRARIES}) - LIST(REMOVE_DUPLICATES ADDITIONAL_LIBS) -+ STRING(APPEND LIBSREQUIRED " libssl") ++ STRING(APPEND LIBSREQUIRED " libssl") ENDIF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND) ENDIF (ARCHIVE_CRYPTO_${ALGORITHM}_${IMPLEMENTATION}) ENDIF(NOT ARCHIVE_CRYPTO_${ALGORITHM}) -@@ -1155,6 +1180,7 @@ IF(ENABLE_ICONV) +@@ -1152,6 +1175,7 @@ IF(ENABLE_ICONV) IF (HAVE_ICONV) SET(HAVE_LIBICONV 1) LIST(APPEND ADDITIONAL_LIBS ${LIBICONV_PATH}) @@ -153,7 +144,7 @@ index 38664d2..d0882b2 100644 ENDIF(HAVE_ICONV) ENDIF(NOT HAVE_ICONV AND LIBICONV_PATH) ENDIF(ICONV_INCLUDE_DIR) -@@ -1188,6 +1214,7 @@ IF(ENABLE_ICONV) +@@ -1185,6 +1209,7 @@ IF(ENABLE_ICONV) ENDIF(WIN32 AND NOT CYGWIN) IF(HAVE_LOCALE_CHARSET) LIST(APPEND ADDITIONAL_LIBS ${LIBCHARSET_PATH}) @@ -161,7 +152,7 @@ index 38664d2..d0882b2 100644 ENDIF(HAVE_LOCALE_CHARSET) ENDIF(LIBCHARSET_PATH) ENDIF(LIBICONV_PATH) -@@ -1222,6 +1249,7 @@ IF(LIBXML2_FOUND) +@@ -1219,6 +1244,7 @@ IF(LIBXML2_FOUND) CMAKE_PUSH_CHECK_STATE() # Save the state of the variables INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${LIBXML2_LIBRARIES}) @@ -169,7 +160,7 @@ index 38664d2..d0882b2 100644 SET(HAVE_LIBXML2 1) # libxml2's include files use iconv.h SET(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}) -@@ -1252,6 +1280,7 @@ ELSE(LIBXML2_FOUND) +@@ -1249,6 +1275,7 @@ ELSE(LIBXML2_FOUND) CMAKE_PUSH_CHECK_STATE() # Save the state of the variables INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${EXPAT_LIBRARIES}) @@ -177,7 +168,7 @@ index 38664d2..d0882b2 100644 SET(HAVE_LIBEXPAT 1) LA_CHECK_INCLUDE_FILE("expat.h" HAVE_EXPAT_H) CMAKE_POP_CHECK_STATE() # Restore the state of the variables -@@ -1272,6 +1301,7 @@ ELSE(LIBXML2_FOUND) +@@ -1269,6 +1296,7 @@ ELSE(LIBXML2_FOUND) IF(HAVE_XMLLITE_H) SET(XMLLITE_FOUND TRUE) LIST(APPEND ADDITIONAL_LIBS "xmllite" "uuid") @@ -185,7 +176,7 @@ index 38664d2..d0882b2 100644 ENDIF() ENDIF() ENDIF(EXPAT_FOUND) -@@ -1301,6 +1331,7 @@ IF(POSIX_REGEX_LIB MATCHES "^(AUTO|LIBC|LIBREGEX)$") +@@ -1298,6 +1326,7 @@ IF(POSIX_REGEX_LIB MATCHES "^(AUTO|LIBC|LIBREGEX)$") CHECK_FUNCTION_EXISTS_GLIBC(regcomp HAVE_REGCOMP_LIBREGEX) IF(HAVE_REGCOMP_LIBREGEX) LIST(APPEND ADDITIONAL_LIBS ${REGEX_LIBRARY}) @@ -193,7 +184,7 @@ index 38664d2..d0882b2 100644 # # If regex.h is not found, retry looking for regex.h at # REGEX_INCLUDE_DIR -@@ -1350,6 +1381,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" +@@ -1347,6 +1376,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" IF(PCREPOSIX_FOUND) INCLUDE_DIRECTORIES(${PCRE_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${PCREPOSIX_LIBRARIES}) @@ -201,7 +192,7 @@ index 38664d2..d0882b2 100644 # Test if a macro is needed for the library. TRY_MACRO_FOR_LIBRARY( "${PCRE_INCLUDE_DIR}" "${PCREPOSIX_LIBRARIES}" -@@ -1361,6 +1393,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" +@@ -1358,6 +1388,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" ELSEIF(NOT WITHOUT_PCRE_STATIC AND NOT PCRE_STATIC AND PCRE_FOUND) # Determine if pcre static libraries are to be used. LIST(APPEND ADDITIONAL_LIBS ${PCRE_LIBRARIES}) @@ -209,7 +200,7 @@ index 38664d2..d0882b2 100644 SET(TMP_LIBRARIES ${PCREPOSIX_LIBRARIES} ${PCRE_LIBRARIES}) MESSAGE(STATUS "trying again with -lpcre included") TRY_MACRO_FOR_LIBRARY( -@@ -1376,6 +1409,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" +@@ -1373,6 +1404,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" # ___chkstk_ms. MESSAGE(STATUS "Visual Studio build detected, trying again with -lgcc included") LIST(APPEND ADDITIONAL_LIBS ${LIBGCC_LIBRARIES}) @@ -217,7 +208,7 @@ index 38664d2..d0882b2 100644 SET(TMP_LIBRARIES ${PCREPOSIX_LIBRARIES} ${PCRE_LIBRARIES} ${LIBGCC_LIBRARIES}) TRY_MACRO_FOR_LIBRARY( "${PCRE_INCLUDE_DIR}" "${TMP_LIBRARIES}" -@@ -1954,6 +1988,7 @@ IF(ENABLE_ACL) +@@ -1952,6 +1984,7 @@ IF(ENABLE_ACL) SET(CMAKE_REQUIRED_LIBRARIES "acl") FIND_LIBRARY(ACL_LIBRARY NAMES acl) LIST(APPEND ADDITIONAL_LIBS ${ACL_LIBRARY}) @@ -225,7 +216,7 @@ index 38664d2..d0882b2 100644 pkg_check_modules(LIBACL libacl) IF(LIBACL_VERSION) SET(LIBACL_PKGCONFIG_VERSION ${LIBACL_VERSION}) -@@ -2099,6 +2134,7 @@ int main(void) { return ACL_SYNCHRONIZE; }" HAVE_DECL_ACL_SYNCHRONIZE) +@@ -2097,6 +2130,7 @@ int main(void) { return ACL_SYNCHRONIZE; }" HAVE_DECL_ACL_SYNCHRONIZE) SET(CMAKE_REQUIRED_LIBRARIES "richacl") FIND_LIBRARY(RICHACL_LIBRARY NAMES richacl) LIST(APPEND ADDITIONAL_LIBS ${RICHACL_LIBRARY}) @@ -234,7 +225,7 @@ index 38664d2..d0882b2 100644 IF(LIBRICHACL_VERSION) SET(LIBRICHACL_PKGCONFIG_VERSION ${LIBRICHACL_VERSION}) diff --git a/build/cmake/CreatePkgConfigFile.cmake b/build/cmake/CreatePkgConfigFile.cmake -index bc5a43f..422b83b 100644 +index 50caa5e..9be3364 100644 --- a/build/cmake/CreatePkgConfigFile.cmake +++ b/build/cmake/CreatePkgConfigFile.cmake @@ -8,7 +8,7 @@ SET(libdir \${exec_prefix}/lib) diff --git a/ports/libarchive/portfile.cmake b/ports/libarchive/portfile.cmake index d92ed3c94d..501f3a80ed 100644 --- a/ports/libarchive/portfile.cmake +++ b/ports/libarchive/portfile.cmake @@ -1,108 +1,116 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO libarchive/libarchive - REF "v${VERSION}" - SHA512 de485dbca636803fce6720dede7d0a6c3315cb209489c94167dd9388ebe56ba8819d3118045308f05b935c954950202d0adb0485bc074bc04ca8c47877f1fe60 - HEAD_REF master - PATCHES - fix-buildsystem.patch - fix-deps.patch -) - -if("xar" IN_LIST FEATURES) - # Cf. https://github.com/libarchive/libarchive/pull/2388: - # xmllite is available since Windows XP, but mingw-w64 added it with delay. - if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) - list(APPEND FEATURES "xar/xmllite") - else() - list(APPEND FEATURES "xar/libxml2") - endif() -endif() -vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - FEATURES - bzip2 ENABLE_BZip2 - bzip2 CMAKE_REQUIRE_FIND_PACKAGE_BZip2 - lz4 ENABLE_LZ4 - lz4 CMAKE_REQUIRE_FIND_PACKAGE_lz4 - lzma ENABLE_LZMA - lzma CMAKE_REQUIRE_FIND_PACKAGE_LibLZMA - lzo ENABLE_LZO - zstd ENABLE_ZSTD - xar/libxml2 ENABLE_LIBXML2 - xar/libxml2 CMAKE_REQUIRE_FIND_PACKAGE_LibXml2 - xar/xmllite ENABLE_WIN32_XMLLITE - xar/xmllite HAVE_XMLLITE_H -) -# Default crypto backend is OpenSSL, but it is ignored for DARWIN -set(WRAPPER_ENABLE_OPENSSL OFF) -if(NOT "crypto" IN_LIST FEATURES) - list(APPEND FEATURE_OPTIONS - -DLIBMD_FOUND=FALSE - -DENABLE_OPENSSL=OFF - ) -elseif(VCPKG_TARGET_IS_OSX) - list(APPEND FEATURE_OPTIONS - -DENABLE_MBEDTLS=ON - -DENABLE_OPENSSL=OFF - -DCMAKE_REQUIRE_FIND_PACKAGE_MbedTLS=ON - ) -else() - set(WRAPPER_ENABLE_OPENSSL ON) - list(APPEND FEATURE_OPTIONS - -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=ON - ) -endif() - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - ${FEATURE_OPTIONS} - -DENABLE_ZLIB=ON - -DZLIB_WINAPI=OFF - -DENABLE_PCREPOSIX=OFF - -DPOSIX_REGEX_LIB=NONE - -DENABLE_MBEDTLS=OFF - -DENABLE_NETTLE=OFF - -DENABLE_EXPAT=OFF - -DENABLE_LibGCC=OFF - -DENABLE_CNG=OFF - -DENABLE_UNZIP=OFF - -DENABLE_TAR=OFF - -DENABLE_CPIO=OFF - -DENABLE_CAT=OFF - -DENABLE_XATTR=OFF - -DENABLE_ACL=OFF - -DENABLE_ICONV=OFF - -DENABLE_LIBB2=OFF - -DENABLE_TEST=OFF - -DENABLE_WERROR=OFF - MAYBE_UNUSED_VARIABLES - CMAKE_REQUIRE_FIND_PACKAGE_BZip2 - CMAKE_REQUIRE_FIND_PACKAGE_LibLZMA - CMAKE_REQUIRE_FIND_PACKAGE_LibXml2 - CMAKE_REQUIRE_FIND_PACKAGE_lz4 - ENABLE_LibGCC - HAVE_XMLLITE_H - ZLIB_WINAPI -) - -vcpkg_cmake_install() - -vcpkg_fixup_pkgconfig() - -vcpkg_copy_pdbs() - -configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" - "${CURRENT_PACKAGES_DIR}/share/man" -) - -foreach(header "include/archive.h" "include/archive_entry.h") - vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/${header}" "(!defined LIBARCHIVE_STATIC)" "0") -endforeach() - -file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libarchive/libarchive + REF "v${VERSION}" + SHA512 d3ef539a45b0b1bcc4f9012ffe70b78ae2a1852bef7af515e0bb0bd88353a1c70e6db38ab855ca9f5f9420d4b4072e51e36d69bf656bbf9342122ef845a67f94 + HEAD_REF master + PATCHES + fix-buildsystem.patch + fix-deps.patch +) + +if("xar" IN_LIST FEATURES) + # Cf. https://github.com/libarchive/libarchive/pull/2388: + # xmllite is available since Windows XP, but mingw-w64 added it with delay. + if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + list(APPEND FEATURES "xar/xmllite") + else() + list(APPEND FEATURES "xar/libxml2") + endif() +endif() +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + bzip2 ENABLE_BZip2 + bzip2 CMAKE_REQUIRE_FIND_PACKAGE_BZip2 + lz4 ENABLE_LZ4 + lz4 CMAKE_REQUIRE_FIND_PACKAGE_lz4 + lzma ENABLE_LZMA + lzma CMAKE_REQUIRE_FIND_PACKAGE_LibLZMA + lzo ENABLE_LZO + zstd ENABLE_ZSTD + xar/libxml2 ENABLE_LIBXML2 + xar/libxml2 CMAKE_REQUIRE_FIND_PACKAGE_LibXml2 + xar/xmllite ENABLE_WIN32_XMLLITE + xar/xmllite HAVE_XMLLITE_H +) +# Default crypto backend is OpenSSL, but it is ignored for DARWIN +set(WRAPPER_ENABLE_OPENSSL OFF) +if(NOT "crypto" IN_LIST FEATURES) + list(APPEND FEATURE_OPTIONS + -DLIBMD_FOUND=FALSE + -DENABLE_OPENSSL=OFF + ) +elseif(VCPKG_TARGET_IS_OSX) + list(APPEND FEATURE_OPTIONS + -DENABLE_MBEDTLS=ON + -DENABLE_OPENSSL=OFF + -DCMAKE_REQUIRE_FIND_PACKAGE_MbedTLS=ON + ) +else() + set(WRAPPER_ENABLE_OPENSSL ON) + list(APPEND FEATURE_OPTIONS + -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=ON + ) +endif() + +# archive_random.c and archive_util.c always call BCrypt* on Windows, bcrypt must be linked. +# ref. https://github.com/libarchive/libarchive/issues/3375 +if(VCPKG_TARGET_IS_WINDOWS) + set(ENABLE_CNG ON) +else() + set(ENABLE_CNG OFF) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DENABLE_ZLIB=ON + -DZLIB_WINAPI=OFF + -DENABLE_PCREPOSIX=OFF + -DPOSIX_REGEX_LIB=NONE + -DENABLE_MBEDTLS=OFF + -DENABLE_NETTLE=OFF + -DENABLE_EXPAT=OFF + -DENABLE_LibGCC=OFF + -DENABLE_CNG=${ENABLE_CNG} + -DENABLE_UNZIP=OFF + -DENABLE_TAR=OFF + -DENABLE_CPIO=OFF + -DENABLE_CAT=OFF + -DENABLE_XATTR=OFF + -DENABLE_ACL=OFF + -DENABLE_ICONV=OFF + -DENABLE_LIBB2=OFF + -DENABLE_TEST=OFF + -DENABLE_WERROR=OFF + MAYBE_UNUSED_VARIABLES + CMAKE_REQUIRE_FIND_PACKAGE_BZip2 + CMAKE_REQUIRE_FIND_PACKAGE_LibLZMA + CMAKE_REQUIRE_FIND_PACKAGE_LibXml2 + CMAKE_REQUIRE_FIND_PACKAGE_lz4 + ENABLE_LibGCC + HAVE_XMLLITE_H + ZLIB_WINAPI +) + +vcpkg_cmake_install() + +vcpkg_fixup_pkgconfig() + +vcpkg_copy_pdbs() + +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/share/man" +) + +foreach(header "include/archive.h" "include/archive_entry.h") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/${header}" "(!defined LIBARCHIVE_STATIC)" "0") +endforeach() + +file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/ports/libarchive/usage b/ports/libarchive/usage index 75ccb94e90..213f642d2d 100644 --- a/ports/libarchive/usage +++ b/ports/libarchive/usage @@ -1,9 +1,9 @@ -libarchive is compatible with the CMake Find Module: - - find_package(LibArchive REQUIRED) - target_link_libraries(main PRIVATE LibArchive::LibArchive) # since CMake 3.17 - -libarchive provides pkg-config modules: - - # library that can create and read several streaming archive formats - libarchive +libarchive is compatible with the CMake Find Module: + + find_package(LibArchive REQUIRED) + target_link_libraries(main PRIVATE LibArchive::LibArchive) # since CMake 3.17 + +libarchive provides pkg-config modules: + + # library that can create and read several streaming archive formats + libarchive diff --git a/ports/libarchive/vcpkg-cmake-wrapper.cmake.in b/ports/libarchive/vcpkg-cmake-wrapper.cmake.in index 0050eae66b..e5c965e984 100644 --- a/ports/libarchive/vcpkg-cmake-wrapper.cmake.in +++ b/ports/libarchive/vcpkg-cmake-wrapper.cmake.in @@ -1,72 +1,72 @@ -cmake_policy(PUSH) -cmake_policy(SET CMP0012 NEW) -cmake_policy(SET CMP0057 NEW) -set(z_vcpkg_libarchive_args "") -if("REQUIRED" IN_LIST ARGS) - list(APPEND z_vcpkg_libarchive_args "REQUIRED") -endif() -if("QUIET" IN_LIST ARGS) - list(APPEND z_vcpkg_libarchive_args "QUIET") -endif() - -_find_package(${ARGS}) - -if(LibArchive_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") - set(z_vcpkg_libarchive_libs "") - find_package(ZLIB ${z_vcpkg_libarchive_args}) - list(APPEND z_vcpkg_libarchive_libs ZLIB::ZLIB) - if("@ENABLE_BZip2@") - find_package(BZip2 ${z_vcpkg_libarchive_args}) - list(APPEND z_vcpkg_libarchive_libs BZip2::BZip2) - endif() - if("@ENABLE_LIBXML2@") - find_package(LibXml2 ${z_vcpkg_libarchive_args}) - list(APPEND z_vcpkg_libarchive_libs LibXml2::LibXml2) - elseif("@ENABLE_WIN32_XMLLITE@") - list(APPEND z_vcpkg_libarchive_libs xmllite) - endif() - if("@ENABLE_LZ4@") - find_package(lz4 CONFIG ${z_vcpkg_libarchive_args}) - list(APPEND z_vcpkg_libarchive_libs lz4::lz4) - endif() - if("@ENABLE_LZMA@") - find_package(LibLZMA ${z_vcpkg_libarchive_args}) - list(APPEND z_vcpkg_libarchive_libs LibLZMA::LibLZMA) - endif() - if("@ENABLE_LZO@") - include(SelectLibraryConfigurations) - find_library(Z_VCPKG_LZO_LIBRARY_DEBUG NAMES lzo2d lzo2 NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) - find_library(Z_VCPKG_LZO_LIBRARY_RELEASE NAMES lzo2 NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) - select_library_configurations(Z_VCPKG_LZO) - if(Z_VCPKG_LZO_LIBRARY) - list(APPEND z_vcpkg_libarchive_libs ${Z_VCPKG_LZO_LIBRARY}) - else() - set(LibArchive_FOUND FALSE) - endif() - endif() - if("@ENABLE_ZSTD@") - find_package(zstd ${z_vcpkg_libarchive_args}) - list(APPEND z_vcpkg_libarchive_libs zstd::libzstd) - endif() - if("@WRAPPER_ENABLE_OPENSSL@") - find_package(OpenSSL ${z_vcpkg_libarchive_args}) - list(APPEND z_vcpkg_libarchive_libs OpenSSL::Crypto) - endif() - - if(TARGET LibArchive::LibArchive) - set(LibArchive_LIBRARIES LibArchive::LibArchive) - if(Z_VCPKG_LZO_LIBRARY AND Z_VCPKG_LZO_LIBRARY_DEBUG) - list(REMOVE_ITEM z_vcpkg_libarchive_libs ${Z_VCPKG_LZO_LIBRARY}) - list(APPEND z_vcpkg_libarchive_libs - "\$<\$>:${Z_VCPKG_LZO_LIBRARY_RELEASE}>" - "\$<\$:${Z_VCPKG_LZO_LIBRARY_DEBUG}>" - ) - endif() - set_property(TARGET LibArchive::LibArchive APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_libarchive_libs}) - else() - list(APPEND LibArchive_LIBRARIES ${z_vcpkg_libarchive_libs}) - endif() - unset(z_vcpkg_libarchive_libs) -endif() -unset(z_vcpkg_libarchive_args) -cmake_policy(POP) +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0057 NEW) +set(z_vcpkg_libarchive_args "") +if("REQUIRED" IN_LIST ARGS) + list(APPEND z_vcpkg_libarchive_args "REQUIRED") +endif() +if("QUIET" IN_LIST ARGS) + list(APPEND z_vcpkg_libarchive_args "QUIET") +endif() + +_find_package(${ARGS}) + +if(LibArchive_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") + set(z_vcpkg_libarchive_libs "") + find_package(ZLIB ${z_vcpkg_libarchive_args}) + list(APPEND z_vcpkg_libarchive_libs ZLIB::ZLIB) + if("@ENABLE_BZip2@") + find_package(BZip2 ${z_vcpkg_libarchive_args}) + list(APPEND z_vcpkg_libarchive_libs BZip2::BZip2) + endif() + if("@ENABLE_LIBXML2@") + find_package(LibXml2 ${z_vcpkg_libarchive_args}) + list(APPEND z_vcpkg_libarchive_libs LibXml2::LibXml2) + elseif("@ENABLE_WIN32_XMLLITE@") + list(APPEND z_vcpkg_libarchive_libs xmllite) + endif() + if("@ENABLE_LZ4@") + find_package(lz4 CONFIG ${z_vcpkg_libarchive_args}) + list(APPEND z_vcpkg_libarchive_libs lz4::lz4) + endif() + if("@ENABLE_LZMA@") + find_package(LibLZMA ${z_vcpkg_libarchive_args}) + list(APPEND z_vcpkg_libarchive_libs LibLZMA::LibLZMA) + endif() + if("@ENABLE_LZO@") + include(SelectLibraryConfigurations) + find_library(Z_VCPKG_LZO_LIBRARY_DEBUG NAMES lzo2d lzo2 NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) + find_library(Z_VCPKG_LZO_LIBRARY_RELEASE NAMES lzo2 NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) + select_library_configurations(Z_VCPKG_LZO) + if(Z_VCPKG_LZO_LIBRARY) + list(APPEND z_vcpkg_libarchive_libs ${Z_VCPKG_LZO_LIBRARY}) + else() + set(LibArchive_FOUND FALSE) + endif() + endif() + if("@ENABLE_ZSTD@") + find_package(zstd ${z_vcpkg_libarchive_args}) + list(APPEND z_vcpkg_libarchive_libs zstd::libzstd) + endif() + if("@WRAPPER_ENABLE_OPENSSL@") + find_package(OpenSSL ${z_vcpkg_libarchive_args}) + list(APPEND z_vcpkg_libarchive_libs OpenSSL::Crypto) + endif() + + if(TARGET LibArchive::LibArchive) + set(LibArchive_LIBRARIES LibArchive::LibArchive) + if(Z_VCPKG_LZO_LIBRARY AND Z_VCPKG_LZO_LIBRARY_DEBUG) + list(REMOVE_ITEM z_vcpkg_libarchive_libs ${Z_VCPKG_LZO_LIBRARY}) + list(APPEND z_vcpkg_libarchive_libs + "\$<\$>:${Z_VCPKG_LZO_LIBRARY_RELEASE}>" + "\$<\$:${Z_VCPKG_LZO_LIBRARY_DEBUG}>" + ) + endif() + set_property(TARGET LibArchive::LibArchive APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_libarchive_libs}) + else() + list(APPEND LibArchive_LIBRARIES ${z_vcpkg_libarchive_libs}) + endif() + unset(z_vcpkg_libarchive_libs) +endif() +unset(z_vcpkg_libarchive_args) +cmake_policy(POP) diff --git a/ports/libarchive/vcpkg.json b/ports/libarchive/vcpkg.json index 47f0e467b5..ea3dc96d81 100644 --- a/ports/libarchive/vcpkg.json +++ b/ports/libarchive/vcpkg.json @@ -1,6 +1,6 @@ { "name": "libarchive", - "version": "3.8.7", + "version": "3.8.8", "description": "Library for reading and writing streaming archives", "homepage": "https://www.libarchive.org", "license": null, diff --git a/versions/baseline.json b/versions/baseline.json index 027c3ec5c5..4a8f5018c8 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4789,7 +4789,7 @@ "port-version": 6 }, "libarchive": { - "baseline": "3.8.7", + "baseline": "3.8.8", "port-version": 0 }, "libaribcaption": { diff --git a/versions/l-/libarchive.json b/versions/l-/libarchive.json index 34554d4f48..71e78e1c80 100644 --- a/versions/l-/libarchive.json +++ b/versions/l-/libarchive.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "e713dd6d1484657c496e8685d8f0004542aa8113", + "version": "3.8.8", + "port-version": 0 + }, { "git-tree": "5fa6c30380bdf44dc81d78116c3a1f01a87a86b5", "version": "3.8.7",