-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libarchive: add version 3.7.6 #25333
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,10 +12,10 @@ | |
class LibarchiveConan(ConanFile): | ||
name = "libarchive" | ||
description = "Multi-format archive and compression library" | ||
topics = "archive", "compression", "tar", "data-compressor", "file-compression" | ||
license = "BSD-2-Clause" | ||
url = "https://github.com/conan-io/conan-center-index" | ||
homepage = "https://libarchive.org" | ||
license = "BSD-2-Clause" | ||
topics = ("archive", "compression", "tar", "data-compressor", "file-compression") | ||
package_type = "library" | ||
settings = "os", "arch", "compiler", "build_type" | ||
options = { | ||
|
@@ -67,7 +67,7 @@ | |
export_conandata_patches(self) | ||
|
||
def config_options(self): | ||
if self.settings.os == "Windows": | ||
Check failure on line 70 in recipes/libarchive/all/conanfile.py
|
||
del self.options.fPIC | ||
if Version(self.version) < "3.7.3": | ||
del self.options.with_pcre2 | ||
|
@@ -75,8 +75,8 @@ | |
def configure(self): | ||
if self.options.shared: | ||
self.options.rm_safe("fPIC") | ||
self.settings.rm_safe("compiler.cppstd") | ||
Check failure on line 78 in recipes/libarchive/all/conanfile.py
|
||
self.settings.rm_safe("compiler.libcxx") | ||
Check failure on line 79 in recipes/libarchive/all/conanfile.py
|
||
|
||
def layout(self): | ||
cmake_layout(self, src_folder="src") | ||
|
@@ -114,14 +114,14 @@ | |
self.requires("pcre2/10.43") | ||
|
||
def validate(self): | ||
if self.settings.os != "Windows" and self.options.with_cng: | ||
Check failure on line 117 in recipes/libarchive/all/conanfile.py
|
||
# TODO: add cng when available in CCI | ||
raise ConanInvalidConfiguration("cng recipe not yet available in CCI.") | ||
if self.options.with_expat and self.options.with_libxml2: | ||
raise ConanInvalidConfiguration("libxml2 and expat options are exclusive. They cannot be used together as XML engine") | ||
|
||
def source(self): | ||
get(self, **self.conan_data["sources"][self.version], strip_root=True) | ||
Check failure on line 124 in recipes/libarchive/all/conanfile.py
|
||
|
||
def generate(self): | ||
cmake_deps = CMakeDeps(self) | ||
|
@@ -162,7 +162,7 @@ | |
tc.variables["ENABLE_XATTR"] = self.options.with_xattr | ||
# TODO: Remove after fixing https://github.com/conan-io/conan/issues/12012 | ||
if is_msvc(self): | ||
tc.cache_variables["CMAKE_TRY_COMPILE_CONFIGURATION"] = str(self.settings.build_type) | ||
Check failure on line 165 in recipes/libarchive/all/conanfile.py
|
||
tc.generate() | ||
|
||
def build(self): | ||
|
@@ -188,7 +188,7 @@ | |
self.cpp_info.names["cmake_find_package_multi"] = "LibArchive" | ||
|
||
self.cpp_info.libs = collect_libs(self) | ||
if self.settings.os == "Windows" and self.options.with_cng: | ||
Check failure on line 191 in recipes/libarchive/all/conanfile.py
|
||
self.cpp_info.system_libs.append("bcrypt") | ||
if is_msvc(self) and not self.options.shared: | ||
self.cpp_info.defines = ["LIBARCHIVE_STATIC"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index e23338e..582258c 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -475,14 +475,14 @@ IF(ZLIB_FOUND) | ||
# | ||
# Test if ZLIB_WINAPI macro is needed to use. | ||
# | ||
- TRY_MACRO_FOR_LIBRARY( | ||
- "${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}" | ||
- RUNS | ||
- "#include <zlib.h>\nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }" | ||
- ZLIB_WINAPI) | ||
- IF(ZLIB_WINAPI) | ||
+ # TRY_MACRO_FOR_LIBRARY( | ||
+ # "${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}" | ||
+ # RUNS | ||
+ # "#include <zlib.h>\nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }" | ||
+ # ZLIB_WINAPI) | ||
+ IF(TRUE) | ||
ADD_DEFINITIONS(-DZLIB_WINAPI) | ||
- ELSE(ZLIB_WINAPI) | ||
+ ELSE() | ||
# Test if a macro is needed for the library. | ||
TRY_MACRO_FOR_LIBRARY( | ||
"${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}" | ||
@@ -492,7 +492,7 @@ IF(ZLIB_FOUND) | ||
IF(ZLIB_DLL) | ||
ADD_DEFINITIONS(-DZLIB_DLL) | ||
ENDIF(ZLIB_DLL) | ||
- ENDIF(ZLIB_WINAPI) | ||
+ ENDIF() | ||
ENDIF(WIN32 AND NOT CYGWIN) | ||
ENDIF(ZLIB_FOUND) | ||
MARK_AS_ADVANCED(CLEAR ZLIB_INCLUDE_DIR) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 582258c..b59a7e2 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -16,7 +16,7 @@ endif() | ||
# | ||
PROJECT(libarchive C) | ||
# | ||
-SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake") | ||
+LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake") | ||
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) | ||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${libarchive_BINARY_DIR}/bin) | ||
endif() | ||
@@ -469,7 +469,7 @@ ENDIF() | ||
IF(ZLIB_FOUND) | ||
SET(HAVE_LIBZ 1) | ||
SET(HAVE_ZLIB_H 1) | ||
- INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) | ||
+ LIST(APPEND ADDITIONAL_LIBS ZLIB::ZLIB) | ||
LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) | ||
IF(WIN32 AND NOT CYGWIN) | ||
# | ||
@@ -560,7 +560,7 @@ ELSE(LIBLZMA_FOUND) | ||
# LZMA not found and will not be used. | ||
SET(HAVE_LZMA_STREAM_ENCODER_MT 0) | ||
ENDIF(LIBLZMA_FOUND) | ||
-MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIR) | ||
+MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIRS) | ||
MARK_AS_ADVANCED(CLEAR LIBLZMA_LIBRARY) | ||
|
||
# | ||
@@ -631,7 +631,7 @@ IF(ENABLE_LZ4) | ||
ENDIF (LZ4_INCLUDE_DIR) | ||
|
||
FIND_PATH(LZ4_INCLUDE_DIR lz4.h) | ||
- FIND_LIBRARY(LZ4_LIBRARY NAMES lz4 liblz4) | ||
+ FIND_LIBRARY(LZ4_LIBRARY NAMES lz4 liblz4 lz4_static liblz4_static) | ||
INCLUDE(FindPackageHandleStandardArgs) | ||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZ4 DEFAULT_MSG LZ4_LIBRARY LZ4_INCLUDE_DIR) | ||
ELSE(ENABLE_LZ4) | ||
@@ -854,7 +854,7 @@ ENDIF(ENABLE_NETTLE) | ||
# Find OpenSSL | ||
# (Except on Mac, where OpenSSL is deprecated.) | ||
# | ||
-IF(ENABLE_OPENSSL AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") | ||
+IF(ENABLE_OPENSSL) | ||
FIND_PACKAGE(OpenSSL) | ||
IF(OPENSSL_FOUND) | ||
SET(HAVE_LIBCRYPTO 1) | ||
diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt | ||
index dd0b280..2a31de6 100644 | ||
--- a/libarchive/CMakeLists.txt | ||
+++ b/libarchive/CMakeLists.txt | ||
@@ -255,6 +255,7 @@ IF(BUILD_SHARED_LIBS) | ||
ENDIF(BUILD_SHARED_LIBS) | ||
|
||
# archive_static is a static library | ||
+IF(NOT BUILD_SHARED_LIBS) | ||
ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS}) | ||
TARGET_INCLUDE_DIRECTORIES(archive_static PUBLIC .) | ||
TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS}) | ||
@@ -264,7 +265,7 @@ SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS | ||
IF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS) | ||
SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) | ||
ENDIF(NOT WIN32 OR CYGWIN OR NOT BUILD_SHARED_LIBS) | ||
- | ||
+ENDIF() | ||
IF(ENABLE_INSTALL) | ||
# How to install the libraries | ||
IF(BUILD_SHARED_LIBS) | ||
@@ -272,11 +273,12 @@ IF(ENABLE_INSTALL) | ||
RUNTIME DESTINATION bin | ||
LIBRARY DESTINATION lib | ||
ARCHIVE DESTINATION lib) | ||
- ENDIF(BUILD_SHARED_LIBS) | ||
+ ELSE() | ||
INSTALL(TARGETS archive_static | ||
RUNTIME DESTINATION bin | ||
LIBRARY DESTINATION lib | ||
ARCHIVE DESTINATION lib) | ||
+ ENDIF() | ||
INSTALL_MAN(${libarchive_MANS}) | ||
INSTALL(FILES ${include_HEADERS} DESTINATION include) | ||
ENDIF() |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index b59a7e2..dfa6af0 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -887,8 +887,10 @@ ENDIF(NOT OPENSSL_FOUND) | ||
# required libraries. | ||
# | ||
MACRO(CHECK_CRYPTO ALGORITHMS IMPLEMENTATION) | ||
+ include(CMakePushCheckState) | ||
FOREACH(ALGORITHM ${ALGORITHMS}) | ||
IF(NOT ARCHIVE_CRYPTO_${ALGORITHM}) | ||
+ cmake_push_check_state() | ||
STRING(TOLOWER "${ALGORITHM}" lower_algorithm) | ||
STRING(TOUPPER "${ALGORITHM}" algorithm) | ||
IF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND NOT OPENSSL_FOUND) | ||
@@ -921,8 +923,7 @@ MACRO(CHECK_CRYPTO ALGORITHMS IMPLEMENTATION) | ||
SET(TRY_CRYPTO_REQUIRED_LIBS | ||
"-DLINK_LIBRARIES:STRING=${NETTLE_LIBRARY}") | ||
ELSEIF("${IMPLEMENTATION}" MATCHES "^LIBMD$" AND LIBMD_FOUND) | ||
- SET(TRY_CRYPTO_REQUIRED_LIBS | ||
- "-DLINK_LIBRARIES:STRING=${LIBMD_LIBRARY}") | ||
+ SET(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES}) | ||
ENDIF("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND) | ||
|
||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/build/cmake/config.h.in |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index dfa6af0..b2cac97 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -1491,7 +1491,7 @@ CHECK_FUNCTION_EXISTS_GLIBC(localtime_r HAVE_LOCALTIME_R) | ||
CHECK_FUNCTION_EXISTS_GLIBC(lstat HAVE_LSTAT) | ||
CHECK_FUNCTION_EXISTS_GLIBC(lutimes HAVE_LUTIMES) | ||
CHECK_FUNCTION_EXISTS_GLIBC(mbrtowc HAVE_MBRTOWC) | ||
-CHECK_FUNCTION_EXISTS_GLIBC(memmove HAVE_MEMMOVE) | ||
+SET(HAVE_MEMMOVE 1) | ||
CHECK_FUNCTION_EXISTS_GLIBC(mkdir HAVE_MKDIR) | ||
CHECK_FUNCTION_EXISTS_GLIBC(mkfifo HAVE_MKFIFO) | ||
CHECK_FUNCTION_EXISTS_GLIBC(mknod HAVE_MKNOD) | ||
@@ -1525,11 +1525,11 @@ CHECK_FUNCTION_EXISTS_GLIBC(utime HAVE_UTIME) | ||
CHECK_FUNCTION_EXISTS_GLIBC(utimes HAVE_UTIMES) | ||
CHECK_FUNCTION_EXISTS_GLIBC(utimensat HAVE_UTIMENSAT) | ||
CHECK_FUNCTION_EXISTS_GLIBC(vfork HAVE_VFORK) | ||
-CHECK_FUNCTION_EXISTS_GLIBC(wcrtomb HAVE_WCRTOMB) | ||
-CHECK_FUNCTION_EXISTS_GLIBC(wcscmp HAVE_WCSCMP) | ||
-CHECK_FUNCTION_EXISTS_GLIBC(wcscpy HAVE_WCSCPY) | ||
-CHECK_FUNCTION_EXISTS_GLIBC(wcslen HAVE_WCSLEN) | ||
-CHECK_FUNCTION_EXISTS_GLIBC(wctomb HAVE_WCTOMB) | ||
+SET(HAVE_WCRTOMB 1) | ||
+SET(HAVE_WCSCMP 1) | ||
+SET(HAVE_WCSCPY 1) | ||
+SET(HAVE_WCSLEN 1) | ||
+SET(HAVE_WCTOMB 1) | ||
CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64) | ||
CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE) | ||
CHECK_SYMBOL_EXISTS(ctime_s "time.h" HAVE_CTIME_S) | ||
@@ -1542,10 +1542,10 @@ CHECK_FUNCTION_EXISTS(cygwin_conv_path HAVE_CYGWIN_CONV_PATH) | ||
CHECK_FUNCTION_EXISTS(fseeko HAVE_FSEEKO) | ||
CHECK_FUNCTION_EXISTS(strerror_r HAVE_STRERROR_R) | ||
CHECK_FUNCTION_EXISTS(strftime HAVE_STRFTIME) | ||
-CHECK_FUNCTION_EXISTS(vprintf HAVE_VPRINTF) | ||
-CHECK_FUNCTION_EXISTS(wmemcmp HAVE_WMEMCMP) | ||
-CHECK_FUNCTION_EXISTS(wmemcpy HAVE_WMEMCPY) | ||
-CHECK_FUNCTION_EXISTS(wmemmove HAVE_WMEMMOVE) | ||
+SET(HAVE_VPRINTF 1) | ||
+SET(HAVE_WMEMCMP 1) | ||
+SET(HAVE_WMEMCPY 1) | ||
+SET(HAVE_WMEMMOVE 1) | ||
|
||
CMAKE_POP_CHECK_STATE() # Restore the state of the variables | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
versions: | ||
"3.7.5": | ||
folder: all | ||
"3.7.4": | ||
folder: all | ||
"3.7.3": | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The previous patch was like
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ErniGH
Thank you for your pointing out!
I fixed this.