From 64d05e10190bbb4462be76f0c79fd421e5034fc3 Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Tue, 16 Apr 2024 13:06:24 +0300 Subject: [PATCH 0001/1652] (#22373) cctag: add v1.0.3, modernize a bit, enable CUDA support * cctag: add v1.0.3 * cctag: add CUDA support * cctag: restore rm lib/cmake Co-authored-by: Esteban Dugueperoux <43169544+EstebanDugueperoux2@users.noreply.github.com> * cctag: bump boost and opencv * cctag: backport a patch for v1.0.1 * cctag: fix patch incompatibility --------- Co-authored-by: Esteban Dugueperoux <43169544+EstebanDugueperoux2@users.noreply.github.com> --- recipes/cctag/all/conandata.yml | 19 ++++- recipes/cctag/all/conanfile.py | 72 +++++++++++++------ ...atch => 1.0.1-0001-honor-vc-runtime.patch} | 0 .../1.0.1-0002-fix-missing-define.patch | 29 ++++++++ .../patches/1.0.3-0001-honor-vc-runtime.patch | 20 ++++++ ...3-0002-fix-boost-deprecated-includes.patch | 16 +++++ recipes/cctag/config.yml | 2 + 7 files changed, 134 insertions(+), 24 deletions(-) rename recipes/cctag/all/patches/{0001-honor-vc-runtime.patch => 1.0.1-0001-honor-vc-runtime.patch} (100%) create mode 100644 recipes/cctag/all/patches/1.0.1-0002-fix-missing-define.patch create mode 100644 recipes/cctag/all/patches/1.0.3-0001-honor-vc-runtime.patch create mode 100644 recipes/cctag/all/patches/1.0.3-0002-fix-boost-deprecated-includes.patch diff --git a/recipes/cctag/all/conandata.yml b/recipes/cctag/all/conandata.yml index 13ba480ba9f39..1f24a6339e1f2 100644 --- a/recipes/cctag/all/conandata.yml +++ b/recipes/cctag/all/conandata.yml @@ -1,9 +1,26 @@ sources: + "1.0.3": + url: "https://github.com/alicevision/CCTag/archive/refs/tags/v1.0.3.tar.gz" + sha256: "25396b03c4aa3c1be241a2a8518a29511cb4fff695caa5126203fbba8e8e444d" "1.0.1": url: "https://github.com/alicevision/CCTag/archive/refs/tags/v1.0.1.tar.gz" sha256: "ae8a819bc978eb13bb1061a204c214da835e56c9b7dc775237ed6b2191011dec" patches: + "1.0.3": + - patch_file: "patches/1.0.3-0001-honor-vc-runtime.patch" + patch_description: "Honor vc runtime" + patch_type: "conan" + - patch_file: "patches/1.0.3-0002-fix-boost-deprecated-includes.patch" + patch_description: "Fix deprecated Boost includes" + patch_type: "portability" "1.0.1": - - patch_file: "patches/0001-honor-vc-runtime.patch" + - patch_file: "patches/1.0.1-0001-honor-vc-runtime.patch" patch_description: "Honor vc runtime" patch_type: "conan" + - patch_file: "patches/1.0.3-0002-fix-boost-deprecated-includes.patch" + patch_description: "Fix deprecated Boost includes" + patch_type: "portability" + - patch_file: "patches/1.0.1-0002-fix-missing-define.patch" + patch_description: "Add missing _GNU_SOURCE define" + patch_type: "bugfix" + patch_source: "https://github.com/alicevision/CCTag/commit/b49d710ab6870a865c20c943a65bd6dca906a184" diff --git a/recipes/cctag/all/conanfile.py b/recipes/cctag/all/conanfile.py index 773c86527b19a..8d249cbcf72c9 100644 --- a/recipes/cctag/all/conanfile.py +++ b/recipes/cctag/all/conanfile.py @@ -4,6 +4,7 @@ from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, replace_in_file, rmdir from conan.tools.microsoft import is_msvc_static_runtime +from conan.tools.scm import Version import os required_conan_version = ">=1.53.0" @@ -18,6 +19,7 @@ class CCTagConan(ConanFile): homepage = "https://github.com/alicevision/CCTag" url = "https://github.com/conan-io/conan-center-index" + package_type = "library" settings = "os", "arch", "compiler", "build_type" options = { "shared": [True, False], @@ -26,6 +28,7 @@ class CCTagConan(ConanFile): "visual_debug": [True, False], "no_cout": [True, False], "with_cuda": [True, False], + "cuda_cc_list": [None, "ANY"], } default_options = { "shared": False, @@ -34,6 +37,7 @@ class CCTagConan(ConanFile): "visual_debug": False, "no_cout": True, "with_cuda": False, + "cuda_cc_list": None, # e.g. "5.2;7.5;8.2", builds all up to 7.5 by default } def export_sources(self): @@ -47,14 +51,21 @@ def configure(self): if self.options.shared: self.options.rm_safe("fPIC") + def package_id(self): + if not self.info.options.with_cuda: + del self.info.options.cuda_cc_list + def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - self.requires("boost/1.80.0") - self.requires("eigen/3.4.0") - self.requires("onetbb/2020.3") - self.requires("opencv/4.5.5") + self.requires("boost/1.84.0", transitive_headers=True, transitive_libs=True) + self.requires("eigen/3.4.0", transitive_headers=True) + if Version(self.version) >= "1.0.3": + self.requires("onetbb/2021.10.0") + else: + self.requires("onetbb/2020.3.3") + self.requires("opencv/4.9.0", transitive_headers=True, transitive_libs=True) @property def _required_boost_components(self): @@ -64,27 +75,22 @@ def _required_boost_components(self): ] def validate(self): - miss_boost_required_comp = \ - any(getattr(self.dependencies["boost"].options, - f"without_{boost_comp}", - True) for boost_comp in self._required_boost_components) + miss_boost_required_comp = any( + self.dependencies["boost"].options.get_safe(f"without_{boost_comp}", True) + for boost_comp in self._required_boost_components + ) if self.dependencies["boost"].options.header_only or miss_boost_required_comp: raise ConanInvalidConfiguration( f"{self.ref} requires non header-only boost with these components: " f"{', '.join(self._required_boost_components)}", ) - if self.settings.compiler == "Visual Studio" and not self.options.shared and \ - is_msvc_static_runtime(self) and self.dependencies["onetbb"].options.shared: + if is_msvc_static_runtime(self) and not self.options.shared and self.dependencies["onetbb"].options.shared: raise ConanInvalidConfiguration("this specific configuration is prevented due to internal c3i limitations") if self.settings.compiler.get_safe("cppstd"): check_min_cppstd(self, 14) - # FIXME: add cuda support - if self.options.with_cuda: - raise ConanInvalidConfiguration("CUDA not supported yet") - def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -93,16 +99,18 @@ def generate(self): tc.variables["CCTAG_SERIALIZE"] = self.options.serialize tc.variables["CCTAG_VISUAL_DEBUG"] = self.options.visual_debug tc.variables["CCTAG_NO_COUT"] = self.options.no_cout - tc.variables["CCTAG_WITH_CUDA"] = self.options.with_cuda tc.variables["CCTAG_BUILD_APPS"] = False - tc.variables["CCTAG_CUDA_CC_CURRENT_ONLY"] = False - tc.variables["CCTAG_NVCC_WARNINGS"] = False tc.variables["CCTAG_EIGEN_NO_ALIGN"] = True tc.variables["CCTAG_USE_POSITION_INDEPENDENT_CODE"] = self.options.get_safe("fPIC", True) tc.variables["CCTAG_ENABLE_SIMD_AVX2"] = False tc.variables["CCTAG_BUILD_TESTS"] = False tc.variables["CCTAG_BUILD_DOC"] = False - tc.variables["CCTAG_NO_THRUST_COPY_IF"] = False + + tc.variables["CCTAG_WITH_CUDA"] = self.options.with_cuda + tc.variables["CCTAG_CUDA_CC_CURRENT_ONLY"] = False + tc.variables["CCTAG_NVCC_WARNINGS"] = False + if self.options.cuda_cc_list: + tc.variables["CCTAG_CUDA_CC_LIST_INIT"] = self.options.cuda_cc_list tc.generate() deps = CMakeDeps(self) @@ -118,6 +126,10 @@ def _patch_sources(self): replace_in_file(self, os.path.join(self.source_folder, "src", "CMakeLists.txt"), "${OpenCV_LIBS}", "opencv_core opencv_videoio opencv_imgproc opencv_imgcodecs") + # Remove very old CUDA compute capabilities + replace_in_file(self, os.path.join(self.source_folder, "CMakeLists.txt"), + "set(CCTAG_CUDA_CC_LIST_INIT0 3.5 3.7 5.0 5.2)", + "set(CCTAG_CUDA_CC_LIST_INIT0 5.0 5.2)") def build(self): self._patch_sources() @@ -139,17 +151,31 @@ def package_info(self): if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.system_libs.extend(["dl", "pthread"]) self.cpp_info.requires = [ - "boost::atomic", "boost::chrono", "boost::date_time", "boost::exception", - "boost::filesystem", "boost::serialization", "boost::system", - "boost::thread", "boost::timer", "boost::math_c99", "eigen::eigen", - "onetbb::onetbb", "opencv::opencv_core", "opencv::opencv_videoio", - "opencv::opencv_imgproc", "opencv::opencv_imgcodecs", + "boost::atomic", + "boost::chrono", + "boost::date_time", + "boost::exception", + "boost::filesystem", + "boost::math_c99", + "boost::serialization", + "boost::system", + "boost::thread", + "boost::timer", + "eigen::eigen", + "onetbb::onetbb", + "opencv::opencv_core", + "opencv::opencv_imgcodecs", + "opencv::opencv_imgproc", + "opencv::opencv_videoio", ] if self.settings.os == "Windows": self.cpp_info.requires.append("boost::stacktrace_windbg") else: self.cpp_info.requires.append("boost::stacktrace_basic") + # CCTag links against shared CUDA runtime by default and does not use it in headers, + # so we don't need to explicitly link against it. + # TODO: to remove in conan v2 once cmake_find_package* generators removed self.cpp_info.names["cmake_find_package"] = "CCTag" self.cpp_info.names["cmake_find_package_multi"] = "CCTag" diff --git a/recipes/cctag/all/patches/0001-honor-vc-runtime.patch b/recipes/cctag/all/patches/1.0.1-0001-honor-vc-runtime.patch similarity index 100% rename from recipes/cctag/all/patches/0001-honor-vc-runtime.patch rename to recipes/cctag/all/patches/1.0.1-0001-honor-vc-runtime.patch diff --git a/recipes/cctag/all/patches/1.0.1-0002-fix-missing-define.patch b/recipes/cctag/all/patches/1.0.1-0002-fix-missing-define.patch new file mode 100644 index 0000000000000..26658b4f5bbf2 --- /dev/null +++ b/recipes/cctag/all/patches/1.0.1-0002-fix-missing-define.patch @@ -0,0 +1,29 @@ +From b49d710ab6870a865c20c943a65bd6dca906a184 Mon Sep 17 00:00:00 2001 +From: Simone Gasparini +Date: Fri, 7 Oct 2022 23:37:33 +0200 +Subject: [PATCH] [cctag] add osx fix _GNU_SOURCE + +as per +https://github.com/boostorg/stacktrace/issues/88 +--- + src/cctag/utils/Exceptions.hpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/cctag/utils/Exceptions.hpp b/src/cctag/utils/Exceptions.hpp +index 1e16b9b5..46067cff 100644 +--- a/src/cctag/utils/Exceptions.hpp ++++ b/src/cctag/utils/Exceptions.hpp +@@ -7,6 +7,13 @@ + */ + #ifndef _CCTAG_EXCEPTIONS_HPP_ + #define _CCTAG_EXCEPTIONS_HPP_ ++ ++// This fix is necessary on Apple and on Windows using cygwin to avoid the compilation error ++// #error "Boost.Stacktrace requires `_Unwind_Backtrace` function. ++// see https://github.com/boostorg/stacktrace/issues/88 ++#ifndef _GNU_SOURCE ++#define _GNU_SOURCE ++#endif + + #include + #include diff --git a/recipes/cctag/all/patches/1.0.3-0001-honor-vc-runtime.patch b/recipes/cctag/all/patches/1.0.3-0001-honor-vc-runtime.patch new file mode 100644 index 0000000000000..25d94454a5b93 --- /dev/null +++ b/recipes/cctag/all/patches/1.0.3-0001-honor-vc-runtime.patch @@ -0,0 +1,20 @@ +--- CMakeLists.txt ++++ CMakeLists.txt +@@ -41,7 +41,7 @@ + else() + message(STATUS "Building in ${CMAKE_BUILD_TYPE} configuration") + endif() +- ++if(0) + # ensure the proper linker flags when building the static version on MSVC + if(MSVC AND NOT BUILD_SHARED_LIBS) + foreach(config "DEBUG" "RELEASE" "MINSIZEREL" "RELWITHDEBINFO") +@@ -65,7 +65,7 @@ + endif() + list(APPEND CUDA_NVCC_FLAGS -Xcompiler ${CCTAG_MVSC_LINKER}) + endif() +- ++endif() + set(CCTAG_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD ${CCTAG_CXX_STANDARD}) + set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/recipes/cctag/all/patches/1.0.3-0002-fix-boost-deprecated-includes.patch b/recipes/cctag/all/patches/1.0.3-0002-fix-boost-deprecated-includes.patch new file mode 100644 index 0000000000000..503defa4a3e7e --- /dev/null +++ b/recipes/cctag/all/patches/1.0.3-0002-fix-boost-deprecated-includes.patch @@ -0,0 +1,16 @@ +Fixes "This header is deprecated. Use instead.", etc. deprecation warnings. +--- src/cctag/CCTagMarkersBank.hpp ++++ src/cctag/CCTagMarkersBank.hpp +@@ -9,9 +9,9 @@ + #define VISION_MARKER_CCTAG_MARKERS_BANK_HPP + + #include +-#include +-#include +-#include ++#include ++#include ++#include + #include + + #include diff --git a/recipes/cctag/config.yml b/recipes/cctag/config.yml index 715e55357a17b..2350f098ddd20 100644 --- a/recipes/cctag/config.yml +++ b/recipes/cctag/config.yml @@ -1,3 +1,5 @@ versions: + "1.0.3": + folder: all "1.0.1": folder: all From 68ff5d69473c1916bdc1bafdeb40ea1804a7f7bd Mon Sep 17 00:00:00 2001 From: toge Date: Tue, 16 Apr 2024 19:29:36 +0900 Subject: [PATCH 0002/1652] (#23179) rocksdb: add version 9.0.0 * rocksdb: add version 9.0.0 * fix compilation error with `with_zstd=True` --- recipes/rocksdb/all/conandata.yml | 9 ++++++--- recipes/rocksdb/all/conanfile.py | 2 ++ recipes/rocksdb/config.yml | 6 ++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/recipes/rocksdb/all/conandata.yml b/recipes/rocksdb/all/conandata.yml index d4cc95fcc067b..2236d1d78b40f 100644 --- a/recipes/rocksdb/all/conandata.yml +++ b/recipes/rocksdb/all/conandata.yml @@ -1,4 +1,10 @@ sources: + "9.0.0": + url: "https://github.com/facebook/rocksdb/archive/refs/tags/v9.0.0.tar.gz" + sha256: "013aac178aa12837cbfa3b1e20e9e91ff87962ab7fdd044fd820e859f8964f9b" + "8.8.1": + url: "https://github.com/facebook/rocksdb/archive/refs/tags/v8.8.1.tar.gz" + sha256: "056c7e21ad8ae36b026ac3b94b9d6e0fcc60e1d937fc80330921e4181be5c36e" "6.29.5": url: "https://github.com/facebook/rocksdb/archive/refs/tags/v6.29.5.tar.gz" sha256: "ddbf84791f0980c0bbce3902feb93a2c7006f6f53bfd798926143e31d4d756f0" @@ -8,9 +14,6 @@ sources: "6.20.3": url: "https://github.com/facebook/rocksdb/archive/refs/tags/v6.20.3.tar.gz" sha256: "c6502c7aae641b7e20fafa6c2b92273d935d2b7b2707135ebd9a67b092169dca" - "8.8.1": - url: "https://github.com/facebook/rocksdb/archive/refs/tags/v8.8.1.tar.gz" - sha256: "056c7e21ad8ae36b026ac3b94b9d6e0fcc60e1d937fc80330921e4181be5c36e" patches: "6.29.5": - patch_file: "patches/6.29.5-0001-add-include-cstdint-for-gcc-13.patch" diff --git a/recipes/rocksdb/all/conanfile.py b/recipes/rocksdb/all/conanfile.py index 09425b9f86390..f9abafa35f177 100644 --- a/recipes/rocksdb/all/conanfile.py +++ b/recipes/rocksdb/all/conanfile.py @@ -163,6 +163,8 @@ def generate(self): if self.options.with_jemalloc: deps.set_property("jemalloc", "cmake_file_name", "JeMalloc") deps.set_property("jemalloc", "cmake_target_name", "JeMalloc::JeMalloc") + if self.options.with_zstd: + deps.set_property("zstd", "cmake_target_name", "zstd::zstd") deps.generate() def build(self): diff --git a/recipes/rocksdb/config.yml b/recipes/rocksdb/config.yml index 3691365f4f4a3..ee10c33aa9899 100644 --- a/recipes/rocksdb/config.yml +++ b/recipes/rocksdb/config.yml @@ -1,9 +1,11 @@ versions: + "9.0.0": + folder: all + "8.8.1": + folder: all "6.29.5": folder: all "6.27.3": folder: all "6.20.3": folder: all - "8.8.1": - folder: all From 54f1769e1bd1b1cf1ae5f19d55772add748fcb65 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Tue, 16 Apr 2024 05:49:19 -0500 Subject: [PATCH 0003/1652] (#23440) freeglut: Don't require xkbcommon's with_wayland option * freeglut: Don't require xkbcommon's with_wayland option This option only enables building Wayland utility programs, not the library. I added this previously, so I'm fixing my mistake. * Remove opengl/system requirement from test package --- recipes/freeglut/all/conanfile.py | 4 ---- recipes/freeglut/all/test_package/conanfile.py | 1 - recipes/freeglut/all/test_package_module/conanfile.py | 1 - 3 files changed, 6 deletions(-) diff --git a/recipes/freeglut/all/conanfile.py b/recipes/freeglut/all/conanfile.py index 9b7f21448c416..dc8ac66bf9e42 100644 --- a/recipes/freeglut/all/conanfile.py +++ b/recipes/freeglut/all/conanfile.py @@ -85,8 +85,6 @@ def configure(self): self.options["libglvnd"].gles2 = True if self._requires_libglvnd_glx: self.options["libglvnd"].glx = True - if self.options.get_safe("with_wayland"): - self.options["xkbcommon"].with_wayland = True def layout(self): cmake_layout(self, src_folder="src") @@ -126,8 +124,6 @@ def validate(self): raise ConanInvalidConfiguration(f"{self.ref} requires the gles2 option of libglvnd to be enabled when the gles option is enabled") if self._requires_libglvnd_glx and not self.dependencies["libglvnd"].options.glx: raise ConanInvalidConfiguration(f"{self.ref} requires the glx option of libglvnd to be enabled when the gles option is disabled") - if self.options.get_safe("with_wayland") and not self.dependencies["xkbcommon"].options.with_wayland: - raise ConanInvalidConfiguration(f"{self.ref} requires the with_wayland option of xkbcommon to be enabled when the with_wayland option is enabled") def source(self): diff --git a/recipes/freeglut/all/test_package/conanfile.py b/recipes/freeglut/all/test_package/conanfile.py index 6e146f0e38642..0a6bc68712d90 100644 --- a/recipes/freeglut/all/test_package/conanfile.py +++ b/recipes/freeglut/all/test_package/conanfile.py @@ -14,7 +14,6 @@ def layout(self): def requirements(self): self.requires(self.tested_reference_str) - self.requires("opengl/system") def build(self): cmake = CMake(self) diff --git a/recipes/freeglut/all/test_package_module/conanfile.py b/recipes/freeglut/all/test_package_module/conanfile.py index 6e146f0e38642..0a6bc68712d90 100644 --- a/recipes/freeglut/all/test_package_module/conanfile.py +++ b/recipes/freeglut/all/test_package_module/conanfile.py @@ -14,7 +14,6 @@ def layout(self): def requirements(self): self.requires(self.tested_reference_str) - self.requires("opengl/system") def build(self): cmake = CMake(self) From 288fd70e6f544c3585eb1da923208406ff6dd5d2 Mon Sep 17 00:00:00 2001 From: Wadim Klincov Date: Tue, 16 Apr 2024 13:09:23 +0200 Subject: [PATCH 0004/1652] (#23442) Upgrade opentelemetry-cpp to 1.14.2 --- recipes/opentelemetry-cpp/all/conandata.yml | 3 ++ recipes/opentelemetry-cpp/all/conanfile.py | 35 ++++++++++++++------- recipes/opentelemetry-cpp/config.yml | 2 ++ 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/recipes/opentelemetry-cpp/all/conandata.yml b/recipes/opentelemetry-cpp/all/conandata.yml index f30d3731760b0..ce31f611ba274 100644 --- a/recipes/opentelemetry-cpp/all/conandata.yml +++ b/recipes/opentelemetry-cpp/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.14.2": + url: "https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.14.2.tar.gz" + sha256: "c7e7801c9f6228751cdb9dd4724d0f04777ed53f524c8828e73bf4c9f894e0bd" "1.12.0": url: "https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.12.0.tar.gz" sha256: "09c208a21fb1159d114a3ea15dc1bcc5dee28eb39907ba72a6012d2c7b7564a0" diff --git a/recipes/opentelemetry-cpp/all/conanfile.py b/recipes/opentelemetry-cpp/all/conanfile.py index f96b644388da0..60940dcfcab3b 100644 --- a/recipes/opentelemetry-cpp/all/conanfile.py +++ b/recipes/opentelemetry-cpp/all/conanfile.py @@ -92,6 +92,8 @@ def config_options(self): self.options.rm_safe("fPIC") if Version(self.version) >= "1.10": del self.options.with_jaeger + if Version(self.version) >= "1.11": + del self.options.with_logs_preview def configure(self): if self.options.shared: @@ -110,8 +112,10 @@ def requirements(self): if self.options.with_abseil: self.requires("abseil/20230125.3", transitive_headers=True) - if self.options.with_otlp_grpc: + if self.options.with_otlp_grpc or self.options.with_otlp_http: self.requires("protobuf/3.21.12", transitive_headers=True, transitive_libs=True) + + if self.options.with_otlp_grpc: self.requires("grpc/1.54.3", transitive_headers=True, transitive_libs=True) if (self.options.with_zipkin or @@ -170,9 +174,11 @@ def validate(self): raise ConanInvalidConfiguration("opentelemetry-cpp >= 1.12.0 does not support Apple Clang on Conan v1") def build_requirements(self): - if self.options.with_otlp_grpc: - self.tool_requires("opentelemetry-proto/1.0.0") + if self.options.with_otlp_grpc or self.options.with_otlp_http: + self.tool_requires("opentelemetry-proto/1.2.0") self.tool_requires("protobuf/") + + if self.options.with_otlp_grpc: self.tool_requires("grpc/") def _create_cmake_module_variables(self, module_file): @@ -216,7 +222,8 @@ def generate(self): tc.cache_variables["WITH_JAEGER"] = self.options.get_safe("with_jaeger", False) tc.cache_variables["WITH_NO_GETENV"] = self.options.with_no_getenv tc.cache_variables["WITH_ETW"] = self.options.with_etw - tc.cache_variables["WITH_LOGS_PREVIEW"] = self.options.with_logs_preview + if Version(self.version) < "1.11": + tc.cache_variables["WITH_LOGS_PREVIEW"] = self.options.with_logs_preview tc.cache_variables["WITH_ASYNC_EXPORT_PREVIEW"] = self.options.with_async_export_preview tc.cache_variables["WITH_METRICS_EXEMPLAR_PREVIEW"] = self.options.with_metrics_exemplar_preview tc.cache_variables["OPENTELEMETRY_INSTALL"] = True @@ -286,6 +293,7 @@ def _otel_libraries(self): "opentelemetry_trace", "opentelemetry_version", ] + if self.options.with_otlp_http or self.options.with_elasticsearch or self.options.get_safe("with_jaeger") or self.options.with_zipkin: # https://github.com/open-telemetry/opentelemetry-cpp/blob/v1.12.0/CMakeLists.txt#L452-L460 libraries.append(self._http_client_name) @@ -298,17 +306,17 @@ def _otel_libraries(self): libraries.append("opentelemetry_exporter_otlp_grpc") libraries.append("opentelemetry_exporter_otlp_grpc_metrics") libraries.append("opentelemetry_exporter_otlp_grpc_client") - if self.options.with_logs_preview: + if Version(self.version) >= "1.11" or self.options.with_logs_preview: libraries.append("opentelemetry_exporter_otlp_grpc_log") if self.options.with_otlp_http: libraries.append("opentelemetry_exporter_otlp_http") libraries.append("opentelemetry_exporter_otlp_http_client") libraries.append("opentelemetry_exporter_otlp_http_metric") - if self.options.with_logs_preview: + if Version(self.version) >= "1.11" or self.options.with_logs_preview: libraries.append("opentelemetry_exporter_otlp_http_log") if self.options.with_prometheus: libraries.append("opentelemetry_exporter_prometheus") - if self.options.with_elasticsearch and self.options.with_logs_preview: + if self.options.with_elasticsearch and (Version(self.version) >= "1.11" or self.options.with_logs_preview): libraries.append("opentelemetry_exporter_elasticsearch_logs") if self.options.with_zipkin: libraries.append("opentelemetry_exporter_zipkin_trace") @@ -316,7 +324,7 @@ def _otel_libraries(self): libraries.append("opentelemetry_exporter_jaeger_trace") libraries.append("opentelemetry_metrics") libraries.append("opentelemetry_exporter_ostream_metrics") - if self.options.with_logs_preview: + if Version(self.version) >= "1.11" or self.options.with_logs_preview: libraries.extend([ "opentelemetry_logs", "opentelemetry_exporter_ostream_logs", @@ -347,7 +355,7 @@ def package_info(self): self.cpp_info.components["opentelemetry_exporter_in_memory"].libs = [] - if self.options.with_logs_preview: + if Version(self.version) >= "1.11" or self.options.with_logs_preview: self.cpp_info.components["opentelemetry_logs"].requires.extend([ "opentelemetry_resources", "opentelemetry_common", @@ -379,6 +387,11 @@ def package_info(self): "opentelemetry_trace", ]) + if Version(self.version) >= "1.11": + self.cpp_info.components["opentelemetry_otlp_recordable"].requires.extend([ + "opentelemetry_logs", + ]) + if self.options.with_otlp_grpc: self.cpp_info.components["opentelemetry_exporter_otlp_grpc_client"].requires.extend([ "grpc::grpc++", @@ -395,7 +408,7 @@ def package_info(self): "opentelemetry_exporter_otlp_grpc_client" ]) - if self.options.with_logs_preview: + if Version(self.version) >= "1.11" or self.options.with_logs_preview: self.cpp_info.components["opentelemetry_exporter_otlp_grpc_log"].requires.extend([ "opentelemetry_otlp_recordable", "opentelemetry_exporter_otlp_grpc_client", @@ -425,7 +438,7 @@ def package_info(self): "opentelemetry_exporter_otlp_http_client" ]) - if self.options.with_logs_preview: + if Version(self.version) >= "1.11" or self.options.with_logs_preview: self.cpp_info.components["opentelemetry_exporter_otlp_http_log"].requires.extend([ "opentelemetry_otlp_recordable", "opentelemetry_exporter_otlp_http_client", diff --git a/recipes/opentelemetry-cpp/config.yml b/recipes/opentelemetry-cpp/config.yml index a678af123ada5..2d959457e4aec 100644 --- a/recipes/opentelemetry-cpp/config.yml +++ b/recipes/opentelemetry-cpp/config.yml @@ -1,4 +1,6 @@ versions: + "1.14.2": + folder: all "1.12.0": folder: all "1.9.1": From a9d8cfe4921aba1e110f420423203210a1dca1d9 Mon Sep 17 00:00:00 2001 From: Gang Wu Date: Tue, 16 Apr 2024 19:32:47 +0800 Subject: [PATCH 0005/1652] (#23468) fix arrow typo --- recipes/arrow/all/conandata.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/arrow/all/conandata.yml b/recipes/arrow/all/conandata.yml index 030422c3d34b6..7579743855f0f 100644 --- a/recipes/arrow/all/conandata.yml +++ b/recipes/arrow/all/conandata.yml @@ -41,21 +41,21 @@ sources: patches: "8.0.1": - patch_file: "patches/8.0.0-0005-install-utils.patch" - patch_description: "enable utilis installation" + patch_description: "enable utils installation" patch_type: "conan" - patch_file: "patches/8.0.0-0006-fix-cmake.patch" patch_description: "use cci package" patch_type: "conan" "8.0.0": - patch_file: "patches/8.0.0-0005-install-utils.patch" - patch_description: "enable utilis installation" + patch_description: "enable utils installation" patch_type: "conan" - patch_file: "patches/8.0.0-0006-fix-cmake.patch" patch_description: "use cci package" patch_type: "conan" "7.0.0": - patch_file: "patches/7.0.0-0006-install-utils.patch" - patch_description: "enable utilis installation" + patch_description: "enable utils installation" patch_type: "conan" - patch_file: "patches/7.0.0-0007-fix-cmake.patch" patch_description: "use cci package" From ca7580339d8ff665e92e24df268c9cd8544df643 Mon Sep 17 00:00:00 2001 From: Jacob Bandes-Storch Date: Tue, 16 Apr 2024 06:55:28 -0500 Subject: [PATCH 0006/1652] (#23470) mcap: add version 1.4.0 --- recipes/mcap/all/conandata.yml | 23 +++++++++++++---------- recipes/mcap/config.yml | 22 ++++++++++++---------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/recipes/mcap/all/conandata.yml b/recipes/mcap/all/conandata.yml index 4ede1237bc36c..86d2a620395b9 100644 --- a/recipes/mcap/all/conandata.yml +++ b/recipes/mcap/all/conandata.yml @@ -1,37 +1,40 @@ sources: + "1.4.0": + url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v1.4.0.tar.gz" + sha256: "64ff3e51119f37ffcfaf9deecbd987a7cb4d4d9035d74a3fd3773395a470fda1" "1.3.0": url: "https://github.com/foxglove/mcap/archive/releases/cpp/v1.3.0.tar.gz" sha256: "41acf6e85d75556c64407f077e05492d31db1f099e07242ef04364bb2939acf1" "1.2.1": url: "https://github.com/foxglove/mcap/archive/releases/cpp/v1.2.1.tar.gz" sha256: "fdc0c351bbcf8883fec0047ff84fed74da88446859083beb6624a584e2cde669" - 1.2.0: + "1.2.0": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v1.2.0/main.tar.gz" sha256: "11a6badecac2b10e9687e912648a6e9679ef8731e4ab9570346ae9845ae64a65" - 1.1.0: + "1.1.0": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v1.1.0/main.tar.gz" sha256: "1cb2ae9f2e910eeb2e93b3ab722744d1805b9da45764e4fd88703b669413350d" - 1.0.0: + "1.0.0": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v1.0.0/main.tar.gz" sha256: "e36169e46a67a9431f73df335f67488461817bc423f9af63ac0af7f29e0bd696" - 0.9.0: + "0.9.0": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v0.9.0/main.tar.gz" sha256: "e17702fcc0259bf72eab0d84d3fa6e02c051256357ab7ba4421462f2c02b434f" - 0.5.0: + "0.5.0": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v0.5.0/main.tar.gz" sha256: "408e255a6c6419b16de38a9ecbdd9729d60adc657767b2d52a234d1da1185349" - 0.4.0: + "0.4.0": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v0.4.0/main.tar.gz" sha256: "c0ab99e51005fa8b74fe9ca1ed23b205cf532b8b0723eedd243f35a28d7b466b" - 0.3.0: + "0.3.0": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v0.3.0/main.tar.gz" sha256: "ef29ea4c09520b8aaa2d78ce5e79cbbcd87511ed14d6abf3c4b249ae67a4153b" - 0.1.2: + "0.1.2": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v0.1.2/main.tar.gz" sha256: "0f456d6c53730445c3dbf57afd285493cf748c66a02f77d6e48c075128fd0896" - 0.1.1: + "0.1.1": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v0.1.1/main.tar.gz" sha256: "a9ea899315851bfacdb234b7acc917b1a9c67593f0d68e1920321a8f6fa2cfbf" - 0.1.0: + "0.1.0": url: "https://github.com/foxglove/mcap/archive/refs/tags/releases/cpp/v0.1.0/main.tar.gz" sha256: "a936abb1493b0d189d7909a79c45bdc6703b6016801e10b5cd129ba39642d2b2" diff --git a/recipes/mcap/config.yml b/recipes/mcap/config.yml index fb6aa455469ea..693870396f82a 100644 --- a/recipes/mcap/config.yml +++ b/recipes/mcap/config.yml @@ -1,25 +1,27 @@ versions: + "1.4.0": + folder: all "1.3.0": folder: all "1.2.1": folder: all - 1.2.0: + "1.2.0": folder: all - 1.1.0: + "1.1.0": folder: all - 1.0.0: + "1.0.0": folder: all - 0.9.0: + "0.9.0": folder: all - 0.5.0: + "0.5.0": folder: all - 0.4.0: + "0.4.0": folder: all - 0.3.0: + "0.3.0": folder: all - 0.1.2: + "0.1.2": folder: all - 0.1.1: + "0.1.1": folder: all - 0.1.0: + "0.1.0": folder: all From edad01864a9b75957dd3a61a6ab4342ea11036ee Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Tue, 16 Apr 2024 07:15:02 -0500 Subject: [PATCH 0007/1652] (#23485) ninja: Add version 1.12.0 --- recipes/ninja/all/conandata.yml | 3 +++ recipes/ninja/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/ninja/all/conandata.yml b/recipes/ninja/all/conandata.yml index 02891869efb97..1d5bfd0432947 100644 --- a/recipes/ninja/all/conandata.yml +++ b/recipes/ninja/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.12.0": + url: "https://github.com/ninja-build/ninja/archive/v1.12.0.tar.gz" + sha256: "8b2c86cd483dc7fcb7975c5ec7329135d210099a89bc7db0590a07b0bbfe49a5" "1.11.1": url: "https://github.com/ninja-build/ninja/archive/v1.11.1.tar.gz" sha256: "31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea" diff --git a/recipes/ninja/config.yml b/recipes/ninja/config.yml index 0a0061dfb232d..cad99de344ea1 100644 --- a/recipes/ninja/config.yml +++ b/recipes/ninja/config.yml @@ -1,4 +1,6 @@ versions: + "1.12.0": + folder: all "1.11.1": folder: all "1.11.0": From 55aab5a2fae639f13149531f3bb4992af92d2709 Mon Sep 17 00:00:00 2001 From: toge Date: Tue, 16 Apr 2024 21:30:43 +0900 Subject: [PATCH 0008/1652] (#23488) ada: add version 2.7.8 --- recipes/ada/all/conandata.yml | 3 +++ recipes/ada/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/ada/all/conandata.yml b/recipes/ada/all/conandata.yml index 8588363204f2a..235136d4b7acf 100644 --- a/recipes/ada/all/conandata.yml +++ b/recipes/ada/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "2.7.8": + url: "https://github.com/ada-url/ada/archive/v2.7.8.tar.gz" + sha256: "8de067b7cb3da1808bf5439279aee6048d761ba246bf8a854c2af73b16b41c75" "2.7.7": url: "https://github.com/ada-url/ada/archive/v2.7.7.tar.gz" sha256: "7116d86a80b79886efbc9d946d3919801815060ae62daf78de68c508552af554" diff --git a/recipes/ada/config.yml b/recipes/ada/config.yml index 2c78344707765..50d72ec6cb8b6 100644 --- a/recipes/ada/config.yml +++ b/recipes/ada/config.yml @@ -1,4 +1,6 @@ versions: + "2.7.8": + folder: all "2.7.7": folder: all "2.7.5": From 0bff8bdba279cee3d2195986b4836d4d9cdfee1b Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Tue, 16 Apr 2024 15:49:10 +0300 Subject: [PATCH 0009/1652] (#23489) imguizmo: bump imgui --- recipes/imguizmo/all/conanfile.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/recipes/imguizmo/all/conanfile.py b/recipes/imguizmo/all/conanfile.py index 6591de3a6b559..5246d80ba03c1 100644 --- a/recipes/imguizmo/all/conanfile.py +++ b/recipes/imguizmo/all/conanfile.py @@ -42,8 +42,7 @@ def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - # 1.89 is the newest imgui version compatible with imguizmo - self.requires("imgui/1.90.4", transitive_headers=True) + self.requires("imgui/1.90.5", transitive_headers=True) def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) From 32f692d4cd5429a99a97e20d9d012857c978fb45 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Tue, 16 Apr 2024 08:16:01 -0500 Subject: [PATCH 0010/1652] (#23500) libglvnd: Set the default datadir appropriately for the system Currently, ICD discovery doesn't work properly for the system. This is because `datadir` is either configured to the package directory for Conan versions before 1.64 and 2.2 or not set at all for later versions. When the datadir is not set, it results in the default search path for ICD discovery using /share/glvnd/egl_vendor.d, which is not correct for any platform. This is due to the empty `prefix`. This PR sets datadir to `/usr/share` on Linux, fixing the search path to include `/usr/share/glvnd/egl_vendor.d`. The `prefix` is not modified to avoid installing everything under `/usr` in the install step. On FreeBSD, the `datadir` is set to `/usr/local/share`, where I assume that the Mesa package's vendor configs are installed. I haven't confirmed this for FreeBSD. These changes can be verified by checking the generated `compile_commands.json` file in the build directory. The value for `-DDEFAULT_EGL_VENDOR_CONFIG_DIRS=` will include the default search paths that libglvnd is built with. The first path which is under `sysconfigdir`, should be correct for Linux, as it is `/etc`. Under FreeBSD, this should be `/usr/local/etc`. --- recipes/libglvnd/all/conanfile.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipes/libglvnd/all/conanfile.py b/recipes/libglvnd/all/conanfile.py index 2362f8db4e5aa..422acffdcd2c7 100644 --- a/recipes/libglvnd/all/conanfile.py +++ b/recipes/libglvnd/all/conanfile.py @@ -8,7 +8,7 @@ import os import textwrap -required_conan_version = ">=1.50.0" +required_conan_version = ">=1.64.0 <2 || >=2.2.0" class LibGlvndConan(ConanFile): name = "libglvnd" @@ -59,7 +59,7 @@ def validate(self): raise ConanInvalidConfiguration(f"{self.name} is only compatible with Linux and FreeBSD") def build_requirements(self): - self.tool_requires("meson/1.3.2") + self.tool_requires("meson/1.4.0") if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str): self.tool_requires("pkgconf/2.1.0") @@ -87,6 +87,10 @@ def generate(self): tc.project_options["headers"] = self.options.headers tc.project_options["entrypoint-patching"] = "enabled" if self.options.entrypoint_patching else "disabled" tc.project_options["libdir"] = "lib" + # Configure the data directory so that it defaults to the correct location for ICD discovery on the local system. + tc.project_options["datadir"] = os.path.join("usr", "share") if self.settings.os == "Linux" else os.path.join("usr", "local", "share") + if self.settings.os == "FreeBSD": + tc.project_options["sysconfdir"] = os.path.join("usr", "local", "etc") tc.generate() def build(self): From c2268c009d6312c10f410e7888bdbb4e9cdcb9d9 Mon Sep 17 00:00:00 2001 From: Tobias Hermann Date: Tue, 16 Apr 2024 15:40:35 +0200 Subject: [PATCH 0011/1652] (#23570) functionalplus: add version 0.2.24 --- recipes/functionalplus/all/conandata.yml | 24 +++--------------------- recipes/functionalplus/config.yml | 16 ++-------------- 2 files changed, 5 insertions(+), 35 deletions(-) diff --git a/recipes/functionalplus/all/conandata.yml b/recipes/functionalplus/all/conandata.yml index a99f4612ba4db..995124a2aca90 100644 --- a/recipes/functionalplus/all/conandata.yml +++ b/recipes/functionalplus/all/conandata.yml @@ -1,28 +1,10 @@ sources: + "0.2.24": + url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.24.tar.gz" + sha256: "446c63ac3f2045e7587f694501882a3d7c7b962b70bcc08deacf5777bdaaff8c" "0.2.23": url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.23.tar.gz" sha256: "5c2d28d2ba7d0cdeab9e31bbf2e7f8a9d6f2ff6111a54bfc11d1b05422096f19" "0.2.22": url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.22.tar.gz" sha256: "79378668dff6ffa8abc1abde2c2fe37dc6fe1ac040c55d5ee7886924fa6a1376" - "0.2.20-p0": - url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.20-p0.tar.gz" - sha256: "6a8e56bd7976b7d5a6a31001f36bc199c2997f1144994fa0b48a1a5b8497abbc" - "0.2.18-p0": - url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.18-p0.tar.gz" - sha256: "ffc63fc86f89a205accafa85c35790eda307adf5f1d6d51bb7ceb5c5e21e013b" - "0.2.17-p0": - url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.17-p0.tar.gz" - sha256: "c41514b24a81ad47a8f98b3ef3a3bd3fe8109085f7965e9678386b08721e3620" - "0.2.16": - url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.16-p0.tar.gz" - sha256: "6026e64260afbd6941aaf19559d6e5dc51cbb3e045ef8d8e158d96bcd8651ed6" - "0.2.15": - url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.15-p0.tar.gz" - sha256: "4c76104ec8f6da5e66ed768380bdf128e0ba01725056c40a3c1b850cf4b441ad" - "0.2.14-p0": - url: "https://github.com/Dobiasd/FunctionalPlus/archive/refs/tags/v0.2.14-p0.tar.gz" - sha256: "68a0e715aa18d2fe558fede06d65ec125959895efe4d0ef21b102037c9864ba1" - "0.2.13-p0": - url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.13-p0.tar.gz" - sha256: "62f61ce6500859f0d77306b1644b5c6992287688de38e170b17b8a66b2448b54" diff --git a/recipes/functionalplus/config.yml b/recipes/functionalplus/config.yml index ebd7ef7a33637..13685d2ebceaf 100644 --- a/recipes/functionalplus/config.yml +++ b/recipes/functionalplus/config.yml @@ -1,19 +1,7 @@ versions: + "0.2.24": + folder: all "0.2.23": folder: all "0.2.22": folder: all - "0.2.20-p0": - folder: all - "0.2.18-p0": - folder: all - "0.2.17-p0": - folder: all - "0.2.16": - folder: all - "0.2.15": - folder: all - "0.2.14-p0": - folder: all - "0.2.13-p0": - folder: all From 252e790dca8111de912149cf86b3827ef08f35ed Mon Sep 17 00:00:00 2001 From: ericLemanissier Date: Tue, 16 Apr 2024 20:34:23 +0200 Subject: [PATCH 0012/1652] (#23538) cpython 3.11.9: re-apply patches there was an typo in https://github.com/conan-io/conan-center-index/pull/22599 --- recipes/cpython/all/conandata.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/cpython/all/conandata.yml b/recipes/cpython/all/conandata.yml index 97a5105587069..d49b900576339 100644 --- a/recipes/cpython/all/conandata.yml +++ b/recipes/cpython/all/conandata.yml @@ -28,7 +28,7 @@ patches: - patch_file: "patches/3.12/3.12.1-0002-remove-module-deps.patch" patch_description: "Remove section of solution file forcing projects to be built that might not be used for this recipe" patch_type: "conan" - "3.11.8": + "3.11.9": - patch_file: "patches/3.9/3.9.7-0002-_msi-vcxproj.patch" patch_description: "Fix ARM/ARM64 mismatch in project file" patch_type: "bugfix" From 56ca59263f11ea8b096a4e5a893ddf99d697adf4 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 07:32:41 +0200 Subject: [PATCH 0013/1652] (#23510) fontconfig: security, remove old unused versions, bump expat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fontconfig: remove old unused versions, bump expat versions<2.13.93 are not used in CCI and are older patch versions of 2.13 which is still available. expat<2.6.2 has known vulnerabilites, bump to 2.6.2 * Update recipes/fontconfig/meson/conanfile.py --------- Co-authored-by: Rubén Rincón Blanco --- recipes/fontconfig/all/conandata.yml | 7 - recipes/fontconfig/all/conanfile.py | 150 ------------------ .../all/test_package/CMakeLists.txt | 8 - .../fontconfig/all/test_package/conanfile.py | 26 --- .../all/test_package/test_package.c | 6 - .../all/test_v1_package/CMakeLists.txt | 8 - .../all/test_v1_package/conanfile.py | 17 -- recipes/fontconfig/config.yml | 4 - recipes/fontconfig/meson/conanfile.py | 6 +- 9 files changed, 3 insertions(+), 229 deletions(-) delete mode 100644 recipes/fontconfig/all/conandata.yml delete mode 100644 recipes/fontconfig/all/conanfile.py delete mode 100644 recipes/fontconfig/all/test_package/CMakeLists.txt delete mode 100644 recipes/fontconfig/all/test_package/conanfile.py delete mode 100644 recipes/fontconfig/all/test_package/test_package.c delete mode 100644 recipes/fontconfig/all/test_v1_package/CMakeLists.txt delete mode 100644 recipes/fontconfig/all/test_v1_package/conanfile.py diff --git a/recipes/fontconfig/all/conandata.yml b/recipes/fontconfig/all/conandata.yml deleted file mode 100644 index d4f92f5455a44..0000000000000 --- a/recipes/fontconfig/all/conandata.yml +++ /dev/null @@ -1,7 +0,0 @@ -sources: - "2.13.92": - url: "https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.13.92.tar.gz" - sha256: "3406a05b83a42231e3df68d02bc0a0cf47b3f2e8f11c8ede62267daf5f130016" - "2.13.91": - url: "https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.13.91.tar.gz" - sha256: "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5" diff --git a/recipes/fontconfig/all/conanfile.py b/recipes/fontconfig/all/conanfile.py deleted file mode 100644 index 543e746cf6bf8..0000000000000 --- a/recipes/fontconfig/all/conanfile.py +++ /dev/null @@ -1,150 +0,0 @@ -from conan import ConanFile -from conan.errors import ConanInvalidConfiguration -from conan.tools.apple import fix_apple_shared_install_name -from conan.tools.build import cross_building -from conan.tools.env import VirtualBuildEnv, VirtualRunEnv -from conan.tools.files import copy, get, replace_in_file, rm, rmdir -from conan.tools.gnu import Autotools, AutotoolsDeps, AutotoolsToolchain, PkgConfigDeps -from conan.tools.layout import basic_layout -from conan.tools.microsoft import is_msvc -import os - -required_conan_version = ">=1.54.0" - - -class FontconfigConan(ConanFile): - name = "fontconfig" - license = "MIT" - url = "https://github.com/conan-io/conan-center-index" - description = "Fontconfig is a library for configuring and customizing font access" - homepage = "https://gitlab.freedesktop.org/fontconfig/fontconfig" - topics = ("fonts", "freedesktop") - settings = "os", "arch", "compiler", "build_type" - options = { - "shared": [True, False], - "fPIC": [True, False], - } - default_options = { - "shared": False, - "fPIC": True, - } - - @property - def _settings_build(self): - return getattr(self, "settings_build", self.settings) - - def config_options(self): - if self.settings.os == "Windows": - del self.options.fPIC - - def configure(self): - if self.options.shared: - self.options.rm_safe("fPIC") - self.settings.rm_safe("compiler.cppstd") - self.settings.rm_safe("compiler.libcxx") - - def layout(self): - basic_layout(self, src_folder="src") - - def requirements(self): - self.requires("freetype/2.13.2") - self.requires("expat/2.6.0") - if self.settings.os == "Linux": - self.requires("util-linux-libuuid/2.39.2") - - def validate(self): - if is_msvc(self): - raise ConanInvalidConfiguration("fontconfig does not support Visual Studio for versions < 2.13.93.") - - def build_requirements(self): - self.tool_requires("gperf/3.1") - if not self.conf.get("tools.gnu:pkg_config", check_type=str): - self.tool_requires("pkgconf/2.0.3") - if self._settings_build.os == "Windows": - self.win_bash = True - if not self.conf.get("tools.microsoft.bash:path", check_type=str): - self.tool_requires("msys2/cci.latest") - - def source(self): - get(self, **self.conan_data["sources"][self.version], strip_root=True) - - def generate(self): - env = VirtualBuildEnv(self) - env.generate() - if not cross_building(self): - env = VirtualRunEnv(self) - env.generate(scope="build") - - tc = AutotoolsToolchain(self) - yes_no = lambda v: "yes" if v else "no" - tc.configure_args.extend([ - f"--enable-shared={yes_no(self.options.shared)}", - f"--enable-static={yes_no(not self.options.shared)}", - "--disable-docs", - "--disable-nls", - "--sysconfdir=${prefix}/bin/etc", - "--datadir=${prefix}/bin/share", - "--datarootdir=${prefix}/bin/share", - "--localstatedir=${prefix}/bin/var", - ]) - tc.generate() - - deps = AutotoolsDeps(self) - deps.generate() - deps = PkgConfigDeps(self) - deps.generate() - - def _patch_files(self): - # fontconfig requires libtool version number, change it for the corresponding freetype one - replace_in_file( - self, os.path.join(self.generators_folder, "freetype2.pc"), - "Version: {}".format(self.dependencies["freetype"].ref.version), - "Version: {}".format(self.dependencies["freetype"].conf_info.get("user.freetype:libtool_version")), - ) - # disable fc-cache test to enable cross compilation but also builds with shared libraries on MacOS - replace_in_file(self, - os.path.join(self.source_folder, "Makefile.in"), - "@CROSS_COMPILING_TRUE@RUN_FC_CACHE_TEST = false", - "RUN_FC_CACHE_TEST=false" - ) - - def build(self): - self._patch_files() - autotools = Autotools(self) - autotools.configure() - replace_in_file(self, os.path.join(self.build_folder, "Makefile"), "po-conf test", "po-conf") - autotools.make() - - def package(self): - copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses")) - autotools = Autotools(self) - autotools.install() - rm(self, "*.pdb", os.path.join(self.package_folder, "bin")) - rm(self, "*.conf", os.path.join(self.package_folder, "bin", "etc", "fonts", "conf.d")) - rm(self, "*.def", os.path.join(self.package_folder, "lib")) - rm(self, "*.la", os.path.join(self.package_folder, "lib")) - rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) - rmdir(self, os.path.join(self.package_folder, "etc")) - rmdir(self, os.path.join(self.package_folder, "share")) - fix_apple_shared_install_name(self) - - def package_info(self): - self.cpp_info.set_property("cmake_find_mode", "both") - self.cpp_info.set_property("cmake_file_name", "Fontconfig") - self.cpp_info.set_property("cmake_target_name", "Fontconfig::Fontconfig") - self.cpp_info.set_property("pkg_config_name", "fontconfig") - self.cpp_info.libs = ["fontconfig"] - if self.settings.os in ("Linux", "FreeBSD"): - self.cpp_info.system_libs.extend(["m", "pthread"]) - - fontconfig_file = os.path.join(self.package_folder, "bin", "etc", "fonts", "fonts.conf") - self.runenv_info.prepend_path("FONTCONFIG_FILE", fontconfig_file) - - fontconfig_path = os.path.join(self.package_folder, "bin", "etc", "fonts") - self.runenv_info.prepend_path("FONTCONFIG_PATH", fontconfig_path) - - # TODO: to remove in conan v2 - self.cpp_info.names["cmake_find_package"] = "Fontconfig" - self.cpp_info.names["cmake_find_package_multi"] = "Fontconfig" - self.env_info.FONTCONFIG_FILE = fontconfig_file - self.env_info.FONTCONFIG_PATH = fontconfig_path diff --git a/recipes/fontconfig/all/test_package/CMakeLists.txt b/recipes/fontconfig/all/test_package/CMakeLists.txt deleted file mode 100644 index 5def13d67bcff..0000000000000 --- a/recipes/fontconfig/all/test_package/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(test_package LANGUAGES C) - -find_package(Fontconfig REQUIRED) - -add_executable(${PROJECT_NAME} test_package.c) -target_link_libraries(${PROJECT_NAME} PRIVATE Fontconfig::Fontconfig) -target_compile_features(${PROJECT_NAME} PRIVATE c_std_99) diff --git a/recipes/fontconfig/all/test_package/conanfile.py b/recipes/fontconfig/all/test_package/conanfile.py deleted file mode 100644 index 98ab55852ad56..0000000000000 --- a/recipes/fontconfig/all/test_package/conanfile.py +++ /dev/null @@ -1,26 +0,0 @@ -from conan import ConanFile -from conan.tools.build import can_run -from conan.tools.cmake import CMake, cmake_layout -import os - - -class TestPackageConan(ConanFile): - settings = "os", "arch", "compiler", "build_type" - generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" - test_type = "explicit" - - def layout(self): - cmake_layout(self) - - def requirements(self): - self.requires(self.tested_reference_str) - - def build(self): - cmake = CMake(self) - cmake.configure() - cmake.build() - - def test(self): - if can_run(self): - bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") - self.run(bin_path, env="conanrun") diff --git a/recipes/fontconfig/all/test_package/test_package.c b/recipes/fontconfig/all/test_package/test_package.c deleted file mode 100644 index 3d2556b9cca2e..0000000000000 --- a/recipes/fontconfig/all/test_package/test_package.c +++ /dev/null @@ -1,6 +0,0 @@ -#include - -int main() { - FcInit(); - return 0; -} diff --git a/recipes/fontconfig/all/test_v1_package/CMakeLists.txt b/recipes/fontconfig/all/test_v1_package/CMakeLists.txt deleted file mode 100644 index 0d20897301b68..0000000000000 --- a/recipes/fontconfig/all/test_v1_package/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -cmake_minimum_required(VERSION 3.1) -project(test_package) - -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup(TARGETS) - -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package - ${CMAKE_CURRENT_BINARY_DIR}/test_package) diff --git a/recipes/fontconfig/all/test_v1_package/conanfile.py b/recipes/fontconfig/all/test_v1_package/conanfile.py deleted file mode 100644 index 19e6a0c06e3d8..0000000000000 --- a/recipes/fontconfig/all/test_v1_package/conanfile.py +++ /dev/null @@ -1,17 +0,0 @@ -from conans import ConanFile, CMake, tools -import os - - -class TestPackageConan(ConanFile): - settings = "os", "arch", "compiler", "build_type" - generators = "cmake", "cmake_find_package" - - def build(self): - cmake = CMake(self) - cmake.configure() - cmake.build() - - def test(self): - if not tools.cross_building(self): - bin_path = os.path.join("bin", "test_package") - self.run(bin_path, run_environment=True) diff --git a/recipes/fontconfig/config.yml b/recipes/fontconfig/config.yml index 41c4db45e111e..dafaaf15309ac 100644 --- a/recipes/fontconfig/config.yml +++ b/recipes/fontconfig/config.yml @@ -5,7 +5,3 @@ versions: folder: meson "2.13.93": folder: meson - "2.13.92": - folder: all - "2.13.91": - folder: all diff --git a/recipes/fontconfig/meson/conanfile.py b/recipes/fontconfig/meson/conanfile.py index 95e3579f0f549..828bf72f6aba3 100644 --- a/recipes/fontconfig/meson/conanfile.py +++ b/recipes/fontconfig/meson/conanfile.py @@ -50,15 +50,15 @@ def layout(self): def requirements(self): self.requires("freetype/2.13.2") - self.requires("expat/2.6.0") + self.requires("expat/[>=2.6.2 <3]") if self.settings.os == "Linux": self.requires("util-linux-libuuid/2.39.2") def build_requirements(self): self.tool_requires("gperf/3.1") - self.tool_requires("meson/1.2.3") + self.tool_requires("meson/1.4.0") if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str): - self.tool_requires("pkgconf/2.0.3") + self.tool_requires("pkgconf/2.1.0") def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) From 6c97f17c9f6b20f1ea5a8c14bd5ba930f2037df8 Mon Sep 17 00:00:00 2001 From: Luis Caro Campos <3535649+jcar87@users.noreply.github.com> Date: Wed, 17 Apr 2024 07:25:43 +0100 Subject: [PATCH 0014/1652] (#23573) protobuf: simplify test package * protobuf: simplify test package * remove test_v1_package --- .../protobuf/all/test_package/CMakeLists.txt | 4 +-- .../protobuf/all/test_package/conanfile.py | 11 +++++--- .../all/test_package/test_package.cpp | 14 +++++----- .../all/test_v1_package/CMakeLists.txt | 8 ------ .../protobuf/all/test_v1_package/conanfile.py | 27 ------------------- 5 files changed, 14 insertions(+), 50 deletions(-) delete mode 100644 recipes/protobuf/all/test_v1_package/CMakeLists.txt delete mode 100644 recipes/protobuf/all/test_v1_package/conanfile.py diff --git a/recipes/protobuf/all/test_package/CMakeLists.txt b/recipes/protobuf/all/test_package/CMakeLists.txt index a5240f3215abb..e9b0cf64f692a 100644 --- a/recipes/protobuf/all/test_package/CMakeLists.txt +++ b/recipes/protobuf/all/test_package/CMakeLists.txt @@ -4,7 +4,7 @@ project(test_package LANGUAGES CXX) find_package(protobuf CONFIG REQUIRED) -add_executable(${PROJECT_NAME} test_package.cpp addressbook.proto) +add_executable(${PROJECT_NAME} test_package.cpp) target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}") if (protobuf_LITE) @@ -17,5 +17,3 @@ if(TARGET protobuf::libprotoc) target_link_libraries(${PROJECT_NAME} PRIVATE protobuf::libprotoc) endif() -protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS TARGET ${PROJECT_NAME}) -protobuf_generate(LANGUAGE cpp TARGET ${PROJECT_NAME} PROTOS addressbook.proto) diff --git a/recipes/protobuf/all/test_package/conanfile.py b/recipes/protobuf/all/test_package/conanfile.py index 81404c86104a8..f31fbd67038e1 100644 --- a/recipes/protobuf/all/test_package/conanfile.py +++ b/recipes/protobuf/all/test_package/conanfile.py @@ -13,10 +13,8 @@ def layout(self): cmake_layout(self) def requirements(self): - self.requires(self.tested_reference_str) - - def build_requirements(self): - self.tool_requires(self.tested_reference_str) + # note `run=True` so that the runenv can find protoc + self.requires(self.tested_reference_str, run=True) def generate(self): tc = CMakeToolchain(self) @@ -32,3 +30,8 @@ def test(self): if can_run(self): bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") self.run(bin_path, env="conanrun") + + # Invoke protoc in the same way CMake would + self.run(f"protoc --proto_path={self.source_folder} --cpp_out={self.build_folder} {self.source_folder}/addressbook.proto", env="conanrun") + assert os.path.exists(os.path.join(self.build_folder,"addressbook.pb.cc")) + assert os.path.exists(os.path.join(self.build_folder,"addressbook.pb.h")) diff --git a/recipes/protobuf/all/test_package/test_package.cpp b/recipes/protobuf/all/test_package/test_package.cpp index aee0c47205eed..3d3122ddd2587 100644 --- a/recipes/protobuf/all/test_package/test_package.cpp +++ b/recipes/protobuf/all/test_package/test_package.cpp @@ -1,17 +1,15 @@ #include #include -#include "addressbook.pb.h" +#include +#include int main() { - std::cout << "Bincrafters\n"; + google::protobuf::Timestamp ts; + google::protobuf::util::TimeUtil::FromString("1972-01-01T10:00:20.021Z", &ts); + const auto nanoseconds = ts.nanos(); - tutorial::Person p; - p.set_id(21); - p.set_name("conan-center-index"); - p.set_email("info@conan.io"); - - std::cout << p.SerializeAsString() << "\n"; + std::cout << nanoseconds << "\n"; return EXIT_SUCCESS; } diff --git a/recipes/protobuf/all/test_v1_package/CMakeLists.txt b/recipes/protobuf/all/test_v1_package/CMakeLists.txt deleted file mode 100644 index f16bc97992e86..0000000000000 --- a/recipes/protobuf/all/test_v1_package/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -cmake_minimum_required(VERSION 3.8) -project(test_v1_package LANGUAGES CXX) - -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup(TARGETS) - -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/ - ${CMAKE_CURRENT_BINARY_DIR}/test_package/) diff --git a/recipes/protobuf/all/test_v1_package/conanfile.py b/recipes/protobuf/all/test_v1_package/conanfile.py deleted file mode 100644 index f31e33d3b0ff4..0000000000000 --- a/recipes/protobuf/all/test_v1_package/conanfile.py +++ /dev/null @@ -1,27 +0,0 @@ -from conans import ConanFile, CMake, tools -import os - - -class TestPackageConan(ConanFile): - settings = "os", "arch", "compiler", "build_type" - generators = "cmake", "cmake_find_package_multi" - test_type = "explicit" - - def requirements(self): - self.requires(self.tested_reference_str) - - def build_requirements(self): - if hasattr(self, "settings_build"): - self.build_requires(self.tested_reference_str) - - def build(self): - with tools.no_op() if hasattr(self, "settings_build") else tools.run_environment(self): - cmake = CMake(self) - cmake.definitions["protobuf_LITE"] = self.options["protobuf"].lite - cmake.configure() - cmake.build() - - def test(self): - if not tools.cross_building(self): - self.run("protoc --version", run_environment=True) - self.run(os.path.join("bin", "test_package"), run_environment=True) From a8862526fa651ca1ca7657e776fb7e5ea933fdea Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 17 Apr 2024 01:55:33 -0500 Subject: [PATCH 0015/1652] (#23575) mold: Remove unused OpenSSL dependency * mold: Remove unused OpenSSL dependency * mold: use vendored-in minimal tbb * fix * fix --------- Co-authored-by: Luis Caro Campos <3535649+jcar87@users.noreply.github.com> --- recipes/mold/all/conandata.yml | 6 +++--- recipes/mold/all/conanfile.py | 7 ++++--- recipes/mold/config.yml | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/recipes/mold/all/conandata.yml b/recipes/mold/all/conandata.yml index 27fad647a9723..a7ab499712b32 100644 --- a/recipes/mold/all/conandata.yml +++ b/recipes/mold/all/conandata.yml @@ -5,6 +5,9 @@ sources: "2.0.0": url: "https://github.com/rui314/mold/archive/refs/tags/v2.0.0.tar.gz" sha256: "2ae8a22db09cbff626df74c945079fa29c1e5f60bbe02502dcf69191cf43527b" + "1.11.0": + url: "https://github.com/rui314/mold/archive/refs/tags/v1.11.0.tar.gz" + sha256: "99318eced81b09a77e4c657011076cc8ec3d4b6867bd324b8677974545bc4d6f" "1.4.2": url: "https://github.com/rui314/mold/archive/refs/tags/v1.4.2.tar.gz" sha256: "47e6c48d20f49e5b47dfb8197dd9ffcb11a8833d614f7a03bd29741c658a69cd" @@ -17,6 +20,3 @@ sources: "1.8.0": url: "https://github.com/rui314/mold/archive/refs/tags/v1.8.0.tar.gz" sha256: "7210225478796c2528aae30320232a5a3b93a640292575a8c55aa2b140041b5c" - "1.11.0": - url: "https://github.com/rui314/mold/archive/refs/tags/v1.11.0.tar.gz" - sha256: "99318eced81b09a77e4c657011076cc8ec3d4b6867bd324b8677974545bc4d6f" diff --git a/recipes/mold/all/conanfile.py b/recipes/mold/all/conanfile.py index a760cce0d4728..68b6db435177a 100644 --- a/recipes/mold/all/conanfile.py +++ b/recipes/mold/all/conanfile.py @@ -40,11 +40,12 @@ def layout(self): def requirements(self): self.requires("zlib/[>=1.2.11 <2]") - self.requires("openssl/[>=1.1 <4]") self.requires("xxhash/0.8.2") - self.requires("onetbb/2021.10.0") if self.options.with_mimalloc: self.requires("mimalloc/2.1.2") + if Version(self.version) < "2.2.0": + # Newer versions use vendored-in BLAKE3 + self.requires("openssl/[>=1.1 <4]") def package_id(self): del self.info.settings.compiler @@ -75,7 +76,7 @@ def generate(self): tc = CMakeToolchain(self) tc.variables["MOLD_USE_MIMALLOC"] = self.options.with_mimalloc tc.variables["MOLD_USE_SYSTEM_MIMALLOC"] = True - tc.variables["MOLD_USE_SYSTEM_TBB"] = True + tc.variables["MOLD_USE_SYSTEM_TBB"] = False # see https://github.com/conan-io/conan-center-index/pull/23575#issuecomment-2059154281 tc.variables["CMAKE_INSTALL_LIBEXECDIR"] = "libexec" tc.generate() diff --git a/recipes/mold/config.yml b/recipes/mold/config.yml index b4070800652f5..d74f43310778e 100644 --- a/recipes/mold/config.yml +++ b/recipes/mold/config.yml @@ -3,6 +3,8 @@ versions: folder: all "2.0.0": folder: all + "1.11.0": + folder: all "1.4.2": folder: all "1.5.1": @@ -11,5 +13,3 @@ versions: folder: all "1.8.0": folder: all - "1.11.0": - folder: all From 966ae3122c49a9aee6354dc50f8292a6e16c3e96 Mon Sep 17 00:00:00 2001 From: Jarle Aase Date: Wed, 17 Apr 2024 10:08:33 +0300 Subject: [PATCH 0016/1652] (#23126) Logfault header only library MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * First take on a conan-recipe for logfault This is my first submission to the conan-center-index. * Corrected yaml indention * Changed requirements. self.test_requires() failed with object has no attribute 'test_requires' * Update recipes/logfault/all/conanfile.py Co-authored-by: Rubén Rincón Blanco * Update recipes/logfault/all/conanfile.py Co-authored-by: Rubén Rincón Blanco * Update recipes/logfault/all/conanfile.py Co-authored-by: Rubén Rincón Blanco * Update recipes/logfault/all/conanfile.py Co-authored-by: Rubén Rincón Blanco * Removed comments and 'def export_sources(self):' as suggested in code review. * trying to fix build error: '... Check that you are using CMakeToolchain as generator to ensure its correct initialization' * Update recipes/logfault/all/conanfile.py Co-authored-by: Uilian Ries * Update recipes/logfault/all/conanfile.py Co-authored-by: Uilian Ries * Update recipes/logfault/all/conanfile.py Co-authored-by: Uilian Ries * Update recipes/logfault/all/conanfile.py Co-authored-by: Uilian Ries * Update recipes/logfault/all/conanfile.py Co-authored-by: Uilian Ries * Changed cmake.test() to cmake.ctest(). There is no 'test' target. * cmake.ctest() worked when I tested it locally, but failed v2_linter. Using cmake.test() with 'conan build .' with the original code checked out works. There is a 'test' target. Testing this receipie locally with 'conan create all/conanfile.py --version 0.5.0' fails because of a missing 'test' target. Changing the target of cmake.test() to 'all' works locally, and the test is executed. So trying that. * Fixed problems with GTest link target in logfault code. Now pointing to version 0.5.1 Set tools.build:skip_test setting consistently to False. It was mixed, causing problems with test target. * Updating version to 0.5.1 * Trying to restore the build by modifying the Cmake files in the origibnal code (bumpped to 0.5.2 to get a new tarball from github). Everything works fine locally and while building the original code with Github Actions on all platforms. But so it did for 0.5.1 as well. * Disabling unit tests. * Removed unit tests option * Update recipes/logfault/all/test_package/CMakeLists.txt Co-authored-by: Martin Valgur * Update recipes/logfault/config.yml Co-authored-by: Martin Valgur * Removed 'generate' method. --------- Co-authored-by: Rubén Rincón Blanco Co-authored-by: Uilian Ries Co-authored-by: Martin Valgur --- recipes/logfault/all/conandata.yml | 5 ++ recipes/logfault/all/conanfile.py | 69 +++++++++++++++++++ .../logfault/all/test_package/CMakeLists.txt | 8 +++ .../logfault/all/test_package/conanfile.py | 27 ++++++++ .../all/test_package/test_package.cpp | 13 ++++ recipes/logfault/config.yml | 3 + 6 files changed, 125 insertions(+) create mode 100644 recipes/logfault/all/conandata.yml create mode 100644 recipes/logfault/all/conanfile.py create mode 100644 recipes/logfault/all/test_package/CMakeLists.txt create mode 100644 recipes/logfault/all/test_package/conanfile.py create mode 100644 recipes/logfault/all/test_package/test_package.cpp create mode 100644 recipes/logfault/config.yml diff --git a/recipes/logfault/all/conandata.yml b/recipes/logfault/all/conandata.yml new file mode 100644 index 0000000000000..4ef9e5e9edbe3 --- /dev/null +++ b/recipes/logfault/all/conandata.yml @@ -0,0 +1,5 @@ +sources: + 0.5.2: + url: + - https://github.com/jgaa/logfault/archive/refs/tags/v0.5.2.tar.gz + sha256: b6c7a4faca340bb7e3105c2094acd2afd52ce1bcfbe7e3ed2233c1ec933a904f diff --git a/recipes/logfault/all/conanfile.py b/recipes/logfault/all/conanfile.py new file mode 100644 index 0000000000000..d93b9976fa00f --- /dev/null +++ b/recipes/logfault/all/conanfile.py @@ -0,0 +1,69 @@ +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import check_min_cppstd +from conan.tools.files import copy, get +from conan.tools.layout import basic_layout +from conan.tools.scm import Version +from conan.tools.cmake import CMake, CMakeToolchain +import os + + +required_conan_version = ">=1.52.0" + + +class PackageConan(ConanFile): + name = "logfault" + description = "Simple to use, header only C++ library for application-logging on all major platforms." + license = "MIT" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/jgaa/logfault" + topics = ("logging", "header-only") + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + no_copy_source = True + + @property + def _min_cppstd(self): + return 17 + + @property + def _compilers_minimum_version(self): + return { + "Visual Studio": "15", + "msvc": "191", + "gcc": "8", + "clang": "7", + "apple-clang": "12", + } + + def layout(self): + basic_layout(self, src_folder="src") + + def package_id(self): + self.info.clear() + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False) + if minimum_version and Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration( + f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support." + ) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def package(self): + copy(self, "LICENSE", self.source_folder, os.path.join(self.package_folder, "licenses")) + copy( + self, + "*.h", + os.path.join(self.source_folder, "include"), + os.path.join(self.package_folder, "include"), + ) + + def package_info(self): + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] + diff --git a/recipes/logfault/all/test_package/CMakeLists.txt b/recipes/logfault/all/test_package/CMakeLists.txt new file mode 100644 index 0000000000000..fcdef5afc6817 --- /dev/null +++ b/recipes/logfault/all/test_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(LOGFAULT REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE logfault::logfault) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17) diff --git a/recipes/logfault/all/test_package/conanfile.py b/recipes/logfault/all/test_package/conanfile.py new file mode 100644 index 0000000000000..0a808db45f245 --- /dev/null +++ b/recipes/logfault/all/test_package/conanfile.py @@ -0,0 +1,27 @@ +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +# It will become the standard on Conan 2.x +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/logfault/all/test_package/test_package.cpp b/recipes/logfault/all/test_package/test_package.cpp new file mode 100644 index 0000000000000..a80ce4ba7c1ff --- /dev/null +++ b/recipes/logfault/all/test_package/test_package.cpp @@ -0,0 +1,13 @@ + +// General tests for manual testing during development + +#include +#include "logfault/logfault.h" + +using namespace std; + +int main( int argc, char *argv[]) { + + logfault::LogManager::Instance().AddHandler(std::make_unique(clog, logfault::LogLevel::DEBUGGING)); + LFLOG_INFO << "Testing" << 1 << 2 << 3; +} diff --git a/recipes/logfault/config.yml b/recipes/logfault/config.yml new file mode 100644 index 0000000000000..ccf525f369b0e --- /dev/null +++ b/recipes/logfault/config.yml @@ -0,0 +1,3 @@ +versions: + "0.5.2": + folder: all From df6764afcf190f7135c162ef225cbc916066d1b8 Mon Sep 17 00:00:00 2001 From: toge Date: Wed, 17 Apr 2024 16:21:03 +0900 Subject: [PATCH 0017/1652] (#23581) sqlite3: add version 3.45.3 --- recipes/sqlite3/all/conandata.yml | 3 +++ recipes/sqlite3/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/sqlite3/all/conandata.yml b/recipes/sqlite3/all/conandata.yml index 1f5bb786d1767..7897a31f61211 100644 --- a/recipes/sqlite3/all/conandata.yml +++ b/recipes/sqlite3/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "3.45.3": + url: "https://sqlite.org/2024/sqlite-amalgamation-3450300.zip" + sha256: "ea170e73e447703e8359308ca2e4366a3ae0c4304a8665896f068c736781c651" "3.45.2": url: "https://sqlite.org/2024/sqlite-amalgamation-3450200.zip" sha256: "65230414820d43a6d1445d1d98cfe57e8eb9f7ac0d6a96ad6932e0647cce51db" diff --git a/recipes/sqlite3/config.yml b/recipes/sqlite3/config.yml index 97c45a94fa443..a320cb91df08a 100644 --- a/recipes/sqlite3/config.yml +++ b/recipes/sqlite3/config.yml @@ -1,4 +1,6 @@ versions: + "3.45.3": + folder: all "3.45.2": folder: all "3.45.1": From 5a6232a539f2f91a3a3d42f95c2845bf6db1d923 Mon Sep 17 00:00:00 2001 From: SSE4 Date: Wed, 17 Apr 2024 15:30:03 +0700 Subject: [PATCH 0018/1652] (#23522) fix template conan doesn't pass the linter --- docs/package_templates/autotools_package/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/package_templates/autotools_package/all/conanfile.py b/docs/package_templates/autotools_package/all/conanfile.py index 0d8464ec8e6f0..2bd1c8b1bd5e9 100644 --- a/docs/package_templates/autotools_package/all/conanfile.py +++ b/docs/package_templates/autotools_package/all/conanfile.py @@ -132,7 +132,7 @@ def generate(self): # --enable/disable-shared is automatically managed when 'shared' option is declared tc = AutotoolsToolchain(self) # autotools usually uses 'yes' and 'no' to enable/disable options - yes_no = lambda v: "yes" if v else "no" + def yes_no(v): return "yes" if v else "no" tc.configure_args.extend([ f"--with-foobar={yes_no(self.options.with_foobar)}", "--enable-tools=no", From acd4157f0b63508a48945bb881bbaae7d0eaf7d5 Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Wed, 17 Apr 2024 11:55:46 +0300 Subject: [PATCH 0019/1652] (#23250) binutils: add v2.42, drop vulnerable versions (< 2.40.50) Based on https://repology.org/project/binutils/information --- recipes/binutils/all/conandata.yml | 30 ++++------- recipes/binutils/all/conanfile.py | 6 +-- .../all/patches/2.38-0001-no-texinfo.patch | 20 ------- ...xinfo.patch => 2.42-0001-no-texinfo.patch} | 53 ++++++++++--------- recipes/binutils/config.yml | 8 +-- 5 files changed, 41 insertions(+), 76 deletions(-) delete mode 100644 recipes/binutils/all/patches/2.38-0001-no-texinfo.patch rename recipes/binutils/all/patches/{2.40-0001-no-texinfo.patch => 2.42-0001-no-texinfo.patch} (77%) diff --git a/recipes/binutils/all/conandata.yml b/recipes/binutils/all/conandata.yml index 92a40425b2590..f0dd0d5db997f 100644 --- a/recipes/binutils/all/conandata.yml +++ b/recipes/binutils/all/conandata.yml @@ -1,26 +1,16 @@ sources: + "2.42": + url: "https://ftp.gnu.org/gnu/binutils/binutils-2.42.tar.xz" + sha256: "f6e4d41fd5fc778b06b7891457b3620da5ecea1006c6a4a41ae998109f85a800" "2.41": - url: "https://ftp.gnu.org/gnu/binutils/binutils-2.41.tar.gz" - sha256: "48d00a8dc73aa7d2394a7dc069b96191d95e8de8f0da6dc91da5cce655c20e45" - "2.40": - url: "https://ftp.gnu.org/gnu/binutils/binutils-2.40.tar.gz" - sha256: "d7f82c4047decf43a6f769ac32456a92ddb6932409a585c633cdd4e9df23d956" - "2.38": # 2022-02-09 - url: "https://ftp.gnu.org/gnu/binutils/binutils-2.38.tar.gz" - sha256: "b3f1dc5b17e75328f19bd88250bee2ef9f91fc8cbb7bd48bdb31390338636052" - "2.37": - url: "https://ftp.gnu.org/gnu/binutils/binutils-2.37.tar.gz" - sha256: "c44968b97cd86499efbc4b4ab7d98471f673e5414c554ef54afa930062dbbfcb" + url: "https://ftp.gnu.org/gnu/binutils/binutils-2.41.tar.xz" + sha256: "ae9a5789e23459e59606e6714723f2d3ffc31c03174191ef0d015bdf06007450" patches: + "2.42": + - patch_file: "patches/2.42-0001-no-texinfo.patch" + patch_type: "conan" + patch_description: "disable texinfo" "2.41": - patch_file: "patches/2.41-0001-no-texinfo.patch" - patch_type: conan - patch_description: "disable texinfo" - "2.40": - - patch_file: "patches/2.40-0001-no-texinfo.patch" - patch_type: conan - patch_description: "disable texinfo" - "2.38": - - patch_file: "patches/2.38-0001-no-texinfo.patch" - patch_type: conan + patch_type: "conan" patch_description: "disable texinfo" diff --git a/recipes/binutils/all/conanfile.py b/recipes/binutils/all/conanfile.py index 327c2f6a2a198..09d66fc511d1f 100644 --- a/recipes/binutils/all/conanfile.py +++ b/recipes/binutils/all/conanfile.py @@ -132,10 +132,8 @@ def build_requirements(self): self.win_bash = True if not self.conf.get("tools.microsoft.bash:path", check_type="str"): self.tool_requires("msys2/cci.latest") - - if self.version >= "2.39": - self.tool_requires("bison/3.8.2") - self.tool_requires("flex/2.6.4") + self.tool_requires("bison/3.8.2") + self.tool_requires("flex/2.6.4") def requirements(self): self.requires("zlib/[>=1.2.11 <2]") diff --git a/recipes/binutils/all/patches/2.38-0001-no-texinfo.patch b/recipes/binutils/all/patches/2.38-0001-no-texinfo.patch deleted file mode 100644 index 1e0698965c0de..0000000000000 --- a/recipes/binutils/all/patches/2.38-0001-no-texinfo.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- gas/Makefile.in -+++ gas/Makefile.in -@@ -1778,7 +1778,7 @@ - check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU - check: check-recursive --all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS) config.h -+all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) config.h - installdirs: installdirs-recursive - installdirs-am: - for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \ -@@ -1854,7 +1854,7 @@ info: info-recursive - - info-am: $(INFO_DEPS) info-local - --install-data-am: install-data-local install-info-am install-man -+install-data-am: install-man - - install-dvi: install-dvi-recursive - diff --git a/recipes/binutils/all/patches/2.40-0001-no-texinfo.patch b/recipes/binutils/all/patches/2.42-0001-no-texinfo.patch similarity index 77% rename from recipes/binutils/all/patches/2.40-0001-no-texinfo.patch rename to recipes/binutils/all/patches/2.42-0001-no-texinfo.patch index fbd00f17e49e4..231668a13cce4 100644 --- a/recipes/binutils/all/patches/2.40-0001-no-texinfo.patch +++ b/recipes/binutils/all/patches/2.42-0001-no-texinfo.patch @@ -1,26 +1,6 @@ ---- gas/Makefile.in -+++ gas/Makefile.in -@@ -1794,7 +1794,7 @@ - check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU - check: check-recursive --all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS) config.h -+all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) config.h - installdirs: installdirs-recursive - installdirs-am: - for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \ -@@ -1870,7 +1870,7 @@ - - info-am: $(INFO_DEPS) info-local - --install-data-am: install-info-am install-man -+install-data-am: install-man - - install-dvi: install-dvi-recursive - --- bfd/Makefile.in +++ bfd/Makefile.in -@@ -266,7 +266,7 @@ +@@ -259,7 +259,7 @@ am__v_texidevnull_0 = > /dev/null am__v_texidevnull_1 = am__dirstamp = $(am__leading_dot)dirstamp @@ -29,16 +9,16 @@ am__TEXINFO_TEX_DIR = $(srcdir) DVIS = doc/bfd.dvi PDFS = doc/bfd.pdf -@@ -2053,7 +2053,7 @@ +@@ -2050,7 +2050,7 @@ check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive --all-am: Makefile $(INFO_DEPS) $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) \ -+all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) \ - config.h +-all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) $(HEADERS) config.h ++all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h installdirs: installdirs-recursive installdirs-am: -@@ -2122,8 +2122,7 @@ + for dir in "$(DESTDIR)$(bfdlibdir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(bfdincludedir)"; do \ +@@ -2117,8 +2117,7 @@ info-am: $(INFO_DEPS) @@ -48,3 +28,24 @@ install-dvi: install-dvi-recursive + +--- gas/Makefile.in ++++ gas/Makefile.in +@@ -1825,7 +1825,7 @@ + check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU + check: check-recursive +-all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS) config.h ++all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) config.h + installdirs: installdirs-recursive + installdirs-am: + for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \ +@@ -1901,7 +1901,7 @@ + + info-am: $(INFO_DEPS) info-local + +-install-data-am: install-info-am install-man ++install-data-am: install-man + + install-dvi: install-dvi-recursive + diff --git a/recipes/binutils/config.yml b/recipes/binutils/config.yml index 97d0d2ecab157..58766488a2584 100644 --- a/recipes/binutils/config.yml +++ b/recipes/binutils/config.yml @@ -1,9 +1,5 @@ versions: - "2.41": - folder: all - "2.40": + "2.42": folder: all - "2.38": - folder: all - "2.37": + "2.41": folder: all From dc2e652a3daac5ce09e60db987743a17e05092b9 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 17 Apr 2024 04:11:36 -0500 Subject: [PATCH 0020/1652] (#23438) libdrm: Use relative folders for directories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use relative folders due to this change: https://github.com/conan-io/conan/pull/15706. Bump Meson to 1.4.0. Co-authored-by: Rubén Rincón Blanco Co-authored-by: Francisco Ramírez --- recipes/libdrm/all/conanfile.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipes/libdrm/all/conanfile.py b/recipes/libdrm/all/conanfile.py index 6b0ee32f2161c..77ae8bd664da4 100644 --- a/recipes/libdrm/all/conanfile.py +++ b/recipes/libdrm/all/conanfile.py @@ -9,7 +9,7 @@ from conan.tools.meson import MesonToolchain, Meson from conan.tools.scm import Version -required_conan_version = ">=1.53.0" +required_conan_version = ">=1.64.0 <2 || >=2.2.0" class LibdrmConan(ConanFile): @@ -88,7 +88,7 @@ def validate(self): raise ConanInvalidConfiguration("libdrm supports only Linux or FreeBSD") def build_requirements(self): - self.tool_requires("meson/1.3.0") + self.tool_requires("meson/1.4.0") if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str): self.tool_requires("pkgconf/2.1.0") @@ -116,8 +116,8 @@ def generate(self): else: tc.project_options[o] = "true" if getattr(self.options, o) else "false" - tc.project_options["datadir"] = os.path.join(self.package_folder, "res") - tc.project_options["mandir"] = os.path.join(self.package_folder, "res", "man") + tc.project_options["datadir"] = "res" + tc.project_options["mandir"] = os.path.join("res", "man") tc.generate() def build(self): From 6cb201300a9c20e016196610839ba219bdd5905d Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 17 Apr 2024 11:26:23 +0200 Subject: [PATCH 0021/1652] (#23480) [arrow] fix: Protobuf option is required when using flight grpc * [arrow] fix: Protobuf option is required when using flight grpc * add orc requirement * add restriction for parquet, boost and thrift * fix typo as well --- recipes/arrow/all/conanfile.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/recipes/arrow/all/conanfile.py b/recipes/arrow/all/conanfile.py index 85669bc3ca76d..a94962ec1298d 100644 --- a/recipes/arrow/all/conanfile.py +++ b/recipes/arrow/all/conanfile.py @@ -163,7 +163,7 @@ def requirements(self): if self.options.with_thrift: self.requires("thrift/0.17.0") if self.options.with_protobuf: - self.requires("protobuf/3.21.9") + self.requires("protobuf/3.21.12") if self.options.with_jemalloc: self.requires("jemalloc/5.3.0") if self.options.with_mimalloc: @@ -213,6 +213,8 @@ def requirements(self): self.requires("utf8proc/2.8.0") if self.options.with_backtrace: self.requires("libbacktrace/cci.20210118") + if self.options.with_orc: + self.requires("orc/2.0.0") def validate(self): # Do not allow options with 'auto' value @@ -230,6 +232,13 @@ def validate(self): raise ConanException("'with_boost' option should be True when'gandiva=True'") if not self.options.with_utf8proc: raise ConanException("'with_utf8proc' option should be True when'gandiva=True'") + if self.options.parquet: + if not self.options.with_boost: + raise ConanException("'with_boost' option should be True when'parquet=True'") + if not self.options.with_thrift: + raise ConanException("'with_thrift' option should be True when'parquet=True'") + if self.options.with_flight_rpc and not self.options.with_protobuf: + raise ConanException("'with_protobuf' option should be True when'with_flight_rpc=True'") if self.settings.compiler.get_safe("cppstd"): check_min_cppstd(self, self._min_cppstd) @@ -244,8 +253,6 @@ def validate(self): raise ConanInvalidConfiguration("CCI has no librados recipe (yet)") if self.options.with_cuda: raise ConanInvalidConfiguration("CCI has no cuda recipe (yet)") - if self.options.with_orc: - raise ConanInvalidConfiguration("CCI has no orc recipe (yet)") if self.options.with_s3 and not self.dependencies["aws-sdk-cpp"].options.config: raise ConanInvalidConfiguration("arrow:with_s3 requires aws-sdk-cpp:config is True.") From 61455ce1d8227022262cd58f24546f1dbbc53f7a Mon Sep 17 00:00:00 2001 From: Ivo Hedtke Date: Wed, 17 Apr 2024 11:55:01 +0200 Subject: [PATCH 0022/1652] (#22917) soplex: add version 7.0.0 * Add Soplex version 7.0.0 * Bump Boost dependency * Add bigobj in tests * Set policy 0077 Co-authored-by: Martin Valgur --------- Co-authored-by: Martin Valgur --- recipes/soplex/all/conandata.yml | 3 +++ recipes/soplex/all/conanfile.py | 6 ++++-- recipes/soplex/all/test_package/CMakeLists.txt | 4 ++++ recipes/soplex/config.yml | 2 ++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/recipes/soplex/all/conandata.yml b/recipes/soplex/all/conandata.yml index b034a63a75693..a845c6567df9a 100644 --- a/recipes/soplex/all/conandata.yml +++ b/recipes/soplex/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "7.0.0": + url: "https://github.com/scipopt/soplex/archive/refs/tags/release-700.tar.gz" + sha256: "ab1906d3afb1793a6f129a5baef9dd8eee929ee945aade427cb9f0b17888239c" "6.0.4": url: "https://github.com/scipopt/soplex/archive/refs/tags/release-604.tar.gz" sha256: "691f5b593cb85c2586522d5de5a5a7692958d22ff1ddffb4fc395f4696590b6f" diff --git a/recipes/soplex/all/conanfile.py b/recipes/soplex/all/conanfile.py index 047f359f2bb4b..9dc99e1409055 100644 --- a/recipes/soplex/all/conanfile.py +++ b/recipes/soplex/all/conanfile.py @@ -73,7 +73,7 @@ def requirements(self): # see https://github.com/conan-io/conan-center-index/pull/16017#issuecomment-1495688452 self.requires("gmp/6.3.0", transitive_headers=True, transitive_libs=True) if self.options.with_boost: - self.requires("boost/1.83.0", transitive_headers=True) # also update Boost_VERSION_MACRO below! + self.requires("boost/1.84.0", transitive_headers=True) # also update Boost_VERSION_MACRO below! def validate(self): if self.settings.compiler.cppstd: @@ -90,9 +90,11 @@ def source(self): def generate(self): tc = CMakeToolchain(self) + tc.variables["MPFR"] = False tc.variables["GMP"] = self.options.with_gmp tc.variables["BOOST"] = self.options.with_boost - tc.variables["Boost_VERSION_MACRO"] = "108300" + tc.variables["Boost_VERSION_MACRO"] = "108400" + tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW" tc.generate() deps = CMakeDeps(self) if self.options.with_gmp: diff --git a/recipes/soplex/all/test_package/CMakeLists.txt b/recipes/soplex/all/test_package/CMakeLists.txt index e74edd1950d7a..f734804072478 100644 --- a/recipes/soplex/all/test_package/CMakeLists.txt +++ b/recipes/soplex/all/test_package/CMakeLists.txt @@ -9,5 +9,9 @@ if(TARGET soplex::soplex) set_target_properties(soplex PROPERTIES INTERFACE_LINK_LIBRARIES soplex::soplex) endif() +if (MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") +endif () + add_executable(${PROJECT_NAME} main.cpp) target_link_libraries(${PROJECT_NAME} PRIVATE soplex) diff --git a/recipes/soplex/config.yml b/recipes/soplex/config.yml index 73bcf839da618..d6a55b6bed56d 100644 --- a/recipes/soplex/config.yml +++ b/recipes/soplex/config.yml @@ -1,4 +1,6 @@ versions: + "7.0.0": + folder: all "6.0.4": folder: all "6.0.3": From c4495e47cf56cdc97b0815bdd40dcec56dd11a6a Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 12:22:59 +0200 Subject: [PATCH 0023/1652] (#23509) libarchive: security, remove old versions, bump deps * libarchive: remove vulnerable unused versions All versions<3.7.0 have some CVEs, let's remove all versions not used in CCI which are vulnerable. * libarchive: bump deps expat<2.6.2 have known security issues libxml2<2.12.5 have known security issues * libarchive: remove vulnerable version 3.6.2 only used in qarchive recipe * use version range for expat --- recipes/libarchive/all/conandata.yml | 85 ---------- recipes/libarchive/all/conanfile.py | 9 +- .../all/patches/0001-3.4.0-zlib-winapi.patch | 20 --- .../all/patches/0001-3.4.3-zlib-winapi.patch | 20 --- .../all/patches/0001-3.6.0-zlib-winapi.patch | 20 --- .../all/patches/0001-3.6.2-zlib-winapi.patch | 27 ---- .../patches/0002-3.4.0-msvc-no-we4061.patch | 12 -- .../all/patches/0003-3.4.0-cmake.patch | 142 ---------------- .../all/patches/0003-3.4.3-cmake.patch | 150 ----------------- .../all/patches/0003-3.5.1-cmake.patch | 142 ---------------- .../all/patches/0003-3.5.2-cmake.patch | 142 ---------------- .../all/patches/0003-3.6.0-cmake.patch | 153 ------------------ .../all/patches/0003-3.6.2-cmake.patch | 98 ----------- .../all/patches/0004-3.6.0-android.patch | 15 -- .../0005-3.6.2-try-compile-cmakedeps.patch | 39 ----- .../patches/0006-3.6.2-fix-msvc-build.patch | 48 ------ recipes/libarchive/config.yml | 14 -- 17 files changed, 3 insertions(+), 1133 deletions(-) delete mode 100644 recipes/libarchive/all/patches/0001-3.4.0-zlib-winapi.patch delete mode 100644 recipes/libarchive/all/patches/0001-3.4.3-zlib-winapi.patch delete mode 100644 recipes/libarchive/all/patches/0001-3.6.0-zlib-winapi.patch delete mode 100644 recipes/libarchive/all/patches/0001-3.6.2-zlib-winapi.patch delete mode 100644 recipes/libarchive/all/patches/0002-3.4.0-msvc-no-we4061.patch delete mode 100644 recipes/libarchive/all/patches/0003-3.4.0-cmake.patch delete mode 100644 recipes/libarchive/all/patches/0003-3.4.3-cmake.patch delete mode 100644 recipes/libarchive/all/patches/0003-3.5.1-cmake.patch delete mode 100644 recipes/libarchive/all/patches/0003-3.5.2-cmake.patch delete mode 100644 recipes/libarchive/all/patches/0003-3.6.0-cmake.patch delete mode 100644 recipes/libarchive/all/patches/0003-3.6.2-cmake.patch delete mode 100644 recipes/libarchive/all/patches/0004-3.6.0-android.patch delete mode 100644 recipes/libarchive/all/patches/0005-3.6.2-try-compile-cmakedeps.patch delete mode 100644 recipes/libarchive/all/patches/0006-3.6.2-fix-msvc-build.patch diff --git a/recipes/libarchive/all/conandata.yml b/recipes/libarchive/all/conandata.yml index 77a39a634029a..01c85d94ab821 100644 --- a/recipes/libarchive/all/conandata.yml +++ b/recipes/libarchive/all/conandata.yml @@ -8,27 +8,6 @@ sources: "3.7.1": url: "https://github.com/libarchive/libarchive/releases/download/v3.7.1/libarchive-3.7.1.tar.xz" sha256: "b17403ce670ff18d8e06fea05a9ea9accf70678c88f1b9392a2e29b51127895f" - "3.6.2": - url: "https://github.com/libarchive/libarchive/releases/download/v3.6.2/libarchive-3.6.2.tar.xz" - sha256: "9e2c1b80d5fbe59b61308fdfab6c79b5021d7ff4ff2489fb12daf0a96a83551d" - "3.6.1": - url: "https://github.com/libarchive/libarchive/releases/download/v3.6.1/libarchive-3.6.1.tar.xz" - sha256: "5a411aceb978f43e626f0c2d1812ddd8807b645ed892453acabd532376c148e6" - "3.6.0": - url: "https://github.com/libarchive/libarchive/releases/download/v3.6.0/libarchive-3.6.0.tar.xz" - sha256: "df283917799cb88659a5b33c0a598f04352d61936abcd8a48fe7b64e74950de7" - "3.5.2": - url: "https://github.com/libarchive/libarchive/releases/download/v3.5.2/libarchive-3.5.2.tar.xz" - sha256: "f0b19ff39c3c9a5898a219497ababbadab99d8178acc980155c7e1271089b5a0" - "3.5.1": - url: "https://github.com/libarchive/libarchive/releases/download/v3.5.1/libarchive-3.5.1.tar.xz" - sha256: "0e17d3a8d0b206018693b27f08029b598f6ef03600c2b5d10c94ce58692e299b" - "3.4.3": - url: "https://github.com/libarchive/libarchive/releases/download/v3.4.3/libarchive-3.4.3.tar.xz" - sha256: "0bfc3fd40491768a88af8d9b86bf04a9e95b6d41a94f9292dbc0ec342288c05f" - "3.4.0": - url: "https://github.com/libarchive/libarchive/releases/download/v3.4.0/libarchive-3.4.0.tar.gz" - sha256: "8643d50ed40c759f5412a3af4e353cffbce4fdf3b5cf321cb72cacf06b2d825e" patches: "3.7.3": - patch_file: "patches/0001-3.7.3-zlib-winapi.patch" @@ -73,67 +52,3 @@ patches: - patch_file: "patches/0006-3.7.1-fix-msvc-build.patch" patch_description: "Fix MSVC build" patch_type: "conan" - "3.6.2": - - patch_file: "patches/0001-3.6.2-zlib-winapi.patch" - patch_description: "Remove broken ZLIB WINAPI check" - patch_type: "portability" - - patch_file: "patches/0003-3.6.2-cmake.patch" - patch_description: "Make CMake build-system compatible with Conan" - patch_type: "conan" - - patch_file: "patches/0005-3.6.2-try-compile-cmakedeps.patch" - patch_description: "Patch try_compile check to work with imported CMake targets from Conan packages" - patch_type: "conan" - - patch_file: "patches/0006-3.6.2-fix-msvc-build.patch" - patch_description: "Fix MSVC build" - patch_type: "conan" - "3.6.1": - - patch_file: "patches/0001-3.6.0-zlib-winapi.patch" - patch_description: "Remove broken ZLIB WINAPI check" - patch_type: "portability" - - patch_file: "patches/0003-3.6.0-cmake.patch" - patch_description: "Make CMake build-system compatible with Conan" - patch_type: "conan" - - patch_file: "patches/0004-3.6.0-android.patch" - patch_description: "Add missing include directory for Android" - patch_type: "portability" - "3.6.0": - - patch_file: "patches/0001-3.6.0-zlib-winapi.patch" - patch_description: "Remove broken ZLIB WINAPI check" - patch_type: "portability" - - patch_file: "patches/0003-3.6.0-cmake.patch" - patch_description: "Make CMake cooperate with Conan" - patch_type: "conan" - - patch_file: "patches/0004-3.6.0-android.patch" - patch_description: "Add missing include directory for Android" - patch_type: "portability" - "3.5.2": - - patch_file: "patches/0001-3.4.3-zlib-winapi.patch" - patch_description: "Remove broken ZLIB WINAPI check" - patch_type: "portability" - - patch_file: "patches/0003-3.5.2-cmake.patch" - patch_description: "Make CMake cooperate with Conan" - patch_type: "conan" - "3.5.1": - - patch_file: "patches/0001-3.4.3-zlib-winapi.patch" - patch_description: "Remove broken ZLIB WINAPI check" - patch_type: "portability" - - patch_file: "patches/0003-3.5.1-cmake.patch" - patch_description: "Make CMake cooperate with Conan" - patch_type: "conan" - "3.4.3": - - patch_file: "patches/0001-3.4.3-zlib-winapi.patch" - patch_description: "Remove broken ZLIB WINAPI check" - patch_type: "portability" - - patch_file: "patches/0003-3.4.3-cmake.patch" - patch_description: "Make CMake cooperate with Conan" - patch_type: "conan" - "3.4.0": - - patch_file: "patches/0001-3.4.0-zlib-winapi.patch" - patch_description: "Remove broken ZLIB WINAPI check" - patch_type: "portability" - - patch_file: "patches/0002-3.4.0-msvc-no-we4061.patch" - patch_description: "Remove MSVC compiler warning e4061" - patch_type: "portability" - - patch_file: "patches/0003-3.4.0-cmake.patch" - patch_description: "Make CMake cooperate with Conan" - patch_type: "conan" diff --git a/recipes/libarchive/all/conanfile.py b/recipes/libarchive/all/conanfile.py index 6013bc25052c4..f83e7f6e3413d 100644 --- a/recipes/libarchive/all/conanfile.py +++ b/recipes/libarchive/all/conanfile.py @@ -69,8 +69,6 @@ def export_sources(self): def config_options(self): if self.settings.os == "Windows": del self.options.fPIC - if Version(self.version) < "3.4.2": - del self.options.with_mbedtls if Version(self.version) < "3.7.3": del self.options.with_pcre2 @@ -89,9 +87,9 @@ def requirements(self): if self.options.with_bzip2: self.requires("bzip2/1.0.8") if self.options.with_libxml2: - self.requires("libxml2/2.12.3") + self.requires("libxml2/2.12.5") if self.options.with_expat: - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") if self.options.with_iconv: self.requires("libiconv/1.17") if self.options.with_pcreposix: @@ -158,8 +156,7 @@ def generate(self): tc.variables["ENABLE_UNZIP"] = False # too strict check tc.variables["ENABLE_WERROR"] = False - if Version(self.version) >= "3.4.2": - tc.variables["ENABLE_MBEDTLS"] = self.options.with_mbedtls + tc.variables["ENABLE_MBEDTLS"] = self.options.with_mbedtls if Version(self.version) >= "3.7.3": tc.variables["ENABLE_PCRE2POSIX"] = self.options.with_pcre2 tc.variables["ENABLE_XATTR"] = self.options.with_xattr diff --git a/recipes/libarchive/all/patches/0001-3.4.0-zlib-winapi.patch b/recipes/libarchive/all/patches/0001-3.4.0-zlib-winapi.patch deleted file mode 100644 index 5acce6e86c2cd..0000000000000 --- a/recipes/libarchive/all/patches/0001-3.4.0-zlib-winapi.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4fd93d04..922efd15 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -415,14 +415,7 @@ IF(ZLIB_FOUND) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) - LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) - IF(WIN32 AND NOT CYGWIN) -- # -- # Test if ZLIB_WINAPI macro is needed to use. -- # -- TRY_MACRO_FOR_LIBRARY( -- "${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}" -- RUNS -- "#include \nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }" -- ZLIB_WINAPI) -+ set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) - ADD_DEFINITIONS(-DZLIB_WINAPI) - ELSE(ZLIB_WINAPI) diff --git a/recipes/libarchive/all/patches/0001-3.4.3-zlib-winapi.patch b/recipes/libarchive/all/patches/0001-3.4.3-zlib-winapi.patch deleted file mode 100644 index b0d70de9dec3b..0000000000000 --- a/recipes/libarchive/all/patches/0001-3.4.3-zlib-winapi.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6b00410c..e0359b51 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -420,14 +420,7 @@ IF(ZLIB_FOUND) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) - LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) - IF(WIN32 AND NOT CYGWIN) -- # -- # Test if ZLIB_WINAPI macro is needed to use. -- # -- TRY_MACRO_FOR_LIBRARY( -- "${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}" -- RUNS -- "#include \nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }" -- ZLIB_WINAPI) -+ set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) - ADD_DEFINITIONS(-DZLIB_WINAPI) - ELSE(ZLIB_WINAPI) diff --git a/recipes/libarchive/all/patches/0001-3.6.0-zlib-winapi.patch b/recipes/libarchive/all/patches/0001-3.6.0-zlib-winapi.patch deleted file mode 100644 index dceed2848f701..0000000000000 --- a/recipes/libarchive/all/patches/0001-3.6.0-zlib-winapi.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7a0d300a..646e5ce7 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -426,14 +426,7 @@ IF(ZLIB_FOUND) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) - LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) - IF(WIN32 AND NOT CYGWIN) -- # -- # Test if ZLIB_WINAPI macro is needed to use. -- # -- TRY_MACRO_FOR_LIBRARY( -- "${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}" -- RUNS -- "#include \nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }" -- ZLIB_WINAPI) -+ set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) - ADD_DEFINITIONS(-DZLIB_WINAPI) - ELSE(ZLIB_WINAPI) diff --git a/recipes/libarchive/all/patches/0001-3.6.2-zlib-winapi.patch b/recipes/libarchive/all/patches/0001-3.6.2-zlib-winapi.patch deleted file mode 100644 index 9e88323972df9..0000000000000 --- a/recipes/libarchive/all/patches/0001-3.6.2-zlib-winapi.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 713e3bc..2315da5 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -430,14 +430,14 @@ IF(ZLIB_FOUND) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) - LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) - IF(WIN32 AND NOT CYGWIN) -- # -- # Test if ZLIB_WINAPI macro is needed to use. -- # -- TRY_MACRO_FOR_LIBRARY( -- "${ZLIB_INCLUDE_DIR}" "${ZLIB_LIBRARIES}" -- RUNS -- "#include \nint main() {uLong f = zlibCompileFlags(); return (f&(1U<<10))?0:-1; }" -- ZLIB_WINAPI) -+ -+ -+ -+ -+ -+ -+ -+ set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) - ADD_DEFINITIONS(-DZLIB_WINAPI) - ELSE(ZLIB_WINAPI) diff --git a/recipes/libarchive/all/patches/0002-3.4.0-msvc-no-we4061.patch b/recipes/libarchive/all/patches/0002-3.4.0-msvc-no-we4061.patch deleted file mode 100644 index ff6f218ef3e36..0000000000000 --- a/recipes/libarchive/all/patches/0002-3.4.0-msvc-no-we4061.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 922efd15..4ffd0930 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -157,7 +157,6 @@ IF (MSVC) - # 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 C4254: A larger bit field was assigned to a smaller bit - # field. - SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /we4254") diff --git a/recipes/libarchive/all/patches/0003-3.4.0-cmake.patch b/recipes/libarchive/all/patches/0003-3.4.0-cmake.patch deleted file mode 100644 index 7b34085f1a3a2..0000000000000 --- a/recipes/libarchive/all/patches/0003-3.4.0-cmake.patch +++ /dev/null @@ -1,142 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4ffd0930..01e8592c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,7 +6,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() -@@ -412,7 +412,7 @@ IF(ZLIB_FOUND) - SET(HAVE_LIBZ 1) - SET(HAVE_ZLIB_H 1) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) -- LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) -+ LIST(APPEND ADDITIONAL_LIBS ZLIB::ZLIB) - IF(WIN32 AND NOT CYGWIN) - set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) -@@ -474,7 +474,7 @@ 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_INCLUDES ${LIBLZMA_INCLUDE_DIRS}) - SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES}) - INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS}) - LIST(APPEND ADDITIONAL_LIBS ${LIBLZMA_LIBRARIES}) -@@ -491,7 +491,7 @@ IF(LIBLZMA_FOUND) - ELSE(LIBLZMA_FOUND) - # LZMA not found and will not be used. - ENDIF(LIBLZMA_FOUND) --MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIR) -+MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIRS) - MARK_AS_ADVANCED(CLEAR LIBLZMA_LIBRARY) - - # -@@ -561,7 +561,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) -@@ -757,7 +757,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) -@@ -1316,7 +1316,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) -@@ -1348,11 +1348,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(_ctime64_s HAVE__CTIME64_S) - CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64) - CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE) -@@ -1364,10 +1364,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 - -diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt -index ec775bb4..8ef2d620 100644 ---- a/libarchive/CMakeLists.txt -+++ b/libarchive/CMakeLists.txt -@@ -235,11 +235,15 @@ ELSEIF(ARCHIVE_ACL_SUNOS) - ENDIF() - - # Libarchive is a shared library -+if (BUILD_SHARED_LIBS) -+ - ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .) - TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS}) - SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION}) - -+else() -+ - # archive_static is a static library - ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS}) -@@ -249,13 +253,21 @@ SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS - IF(NOT WIN32 OR CYGWIN) - SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) - ENDIF(NOT WIN32 OR CYGWIN) -+endif() - - IF(ENABLE_INSTALL) - # How to install the libraries -- INSTALL(TARGETS archive archive_static -+ if (BUILD_SHARED_LIBS) -+ INSTALL(TARGETS archive -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) -+ 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() diff --git a/recipes/libarchive/all/patches/0003-3.4.3-cmake.patch b/recipes/libarchive/all/patches/0003-3.4.3-cmake.patch deleted file mode 100644 index 45a9561474f8e..0000000000000 --- a/recipes/libarchive/all/patches/0003-3.4.3-cmake.patch +++ /dev/null @@ -1,150 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6013d9e6..125b1cb3 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,7 +6,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() -@@ -418,7 +418,7 @@ IF(ZLIB_FOUND) - SET(HAVE_LIBZ 1) - SET(HAVE_ZLIB_H 1) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) -- LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) -+ LIST(APPEND ADDITIONAL_LIBS ZLIB::ZLIB) - IF(WIN32 AND NOT CYGWIN) - set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) -@@ -480,7 +480,7 @@ 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_INCLUDES ${LIBLZMA_INCLUDE_DIRS}) - SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES}) - INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS}) - LIST(APPEND ADDITIONAL_LIBS ${LIBLZMA_LIBRARIES}) -@@ -497,7 +497,7 @@ IF(LIBLZMA_FOUND) - ELSE(LIBLZMA_FOUND) - # LZMA not found and will not be used. - ENDIF(LIBLZMA_FOUND) --MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIR) -+MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIRS) - MARK_AS_ADVANCED(CLEAR LIBLZMA_LIBRARY) - - # -@@ -567,7 +567,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) -@@ -783,7 +783,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) -@@ -1349,7 +1349,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) -@@ -1371,6 +1371,7 @@ CHECK_FUNCTION_EXISTS_GLIBC(strchr HAVE_STRCHR) - CHECK_FUNCTION_EXISTS_GLIBC(strdup HAVE_STRDUP) - CHECK_FUNCTION_EXISTS_GLIBC(strerror HAVE_STRERROR) - CHECK_FUNCTION_EXISTS_GLIBC(strncpy_s HAVE_STRNCPY_S) -+CHECK_FUNCTION_EXISTS_GLIBC(strnlen HAVE_STRNLEN) - CHECK_FUNCTION_EXISTS_GLIBC(strrchr HAVE_STRRCHR) - CHECK_FUNCTION_EXISTS_GLIBC(symlink HAVE_SYMLINK) - CHECK_FUNCTION_EXISTS_GLIBC(timegm HAVE_TIMEGM) -@@ -1381,11 +1382,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(_ctime64_s HAVE__CTIME64_S) - CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64) - CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE) -@@ -1398,10 +1399,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 - -diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt -index 9389bbc9..76e0b5c7 100644 ---- a/libarchive/CMakeLists.txt -+++ b/libarchive/CMakeLists.txt -@@ -236,11 +236,15 @@ ELSEIF(ARCHIVE_ACL_SUNOS) - ENDIF() - - # Libarchive is a shared library -+if (BUILD_SHARED_LIBS) -+ - ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .) - TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS}) - SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION}) - -+else() -+ - # archive_static is a static library - ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS}) -@@ -250,13 +254,21 @@ SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS - IF(NOT WIN32 OR CYGWIN) - SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) - ENDIF(NOT WIN32 OR CYGWIN) -+endif() - - IF(ENABLE_INSTALL) - # How to install the libraries -- INSTALL(TARGETS archive archive_static -+ if (BUILD_SHARED_LIBS) -+ INSTALL(TARGETS archive -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) -+ 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() diff --git a/recipes/libarchive/all/patches/0003-3.5.1-cmake.patch b/recipes/libarchive/all/patches/0003-3.5.1-cmake.patch deleted file mode 100644 index 181a183093fc3..0000000000000 --- a/recipes/libarchive/all/patches/0003-3.5.1-cmake.patch +++ /dev/null @@ -1,142 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 256b966e..30c42967 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,7 +6,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() -@@ -418,7 +418,7 @@ IF(ZLIB_FOUND) - SET(HAVE_LIBZ 1) - SET(HAVE_ZLIB_H 1) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) -- LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) -+ LIST(APPEND ADDITIONAL_LIBS ZLIB::ZLIB) - IF(WIN32 AND NOT CYGWIN) - set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) -@@ -480,7 +480,7 @@ 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_INCLUDES ${LIBLZMA_INCLUDE_DIRS}) - SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES}) - INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS}) - LIST(APPEND ADDITIONAL_LIBS ${LIBLZMA_LIBRARIES}) -@@ -497,7 +497,7 @@ IF(LIBLZMA_FOUND) - ELSE(LIBLZMA_FOUND) - # LZMA not found and will not be used. - ENDIF(LIBLZMA_FOUND) --MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIR) -+MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIRS) - MARK_AS_ADVANCED(CLEAR LIBLZMA_LIBRARY) - - # -@@ -567,7 +567,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) -@@ -783,7 +783,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) -@@ -1349,7 +1349,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) -@@ -1382,11 +1382,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(_ctime64_s HAVE__CTIME64_S) - CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64) - CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE) -@@ -1399,10 +1399,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 - -diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt -index 9389bbc9..76e0b5c7 100644 ---- a/libarchive/CMakeLists.txt -+++ b/libarchive/CMakeLists.txt -@@ -236,11 +236,15 @@ ELSEIF(ARCHIVE_ACL_SUNOS) - ENDIF() - - # Libarchive is a shared library -+if (BUILD_SHARED_LIBS) -+ - ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .) - TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS}) - SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION}) - -+else() -+ - # archive_static is a static library - ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS}) -@@ -250,13 +254,21 @@ SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS - IF(NOT WIN32 OR CYGWIN) - SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) - ENDIF(NOT WIN32 OR CYGWIN) -+endif() - - IF(ENABLE_INSTALL) - # How to install the libraries -- INSTALL(TARGETS archive archive_static -+ if (BUILD_SHARED_LIBS) -+ INSTALL(TARGETS archive -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) -+ 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() diff --git a/recipes/libarchive/all/patches/0003-3.5.2-cmake.patch b/recipes/libarchive/all/patches/0003-3.5.2-cmake.patch deleted file mode 100644 index 46955b7f8f7ce..0000000000000 --- a/recipes/libarchive/all/patches/0003-3.5.2-cmake.patch +++ /dev/null @@ -1,142 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e0359b51..3927a742 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -6,7 +6,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() -@@ -418,7 +418,7 @@ IF(ZLIB_FOUND) - SET(HAVE_LIBZ 1) - SET(HAVE_ZLIB_H 1) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) -- LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) -+ LIST(APPEND ADDITIONAL_LIBS ZLIB::ZLIB) - IF(WIN32 AND NOT CYGWIN) - set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) -@@ -480,7 +480,7 @@ 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_INCLUDES ${LIBLZMA_INCLUDE_DIRS}) - SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES}) - INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS}) - LIST(APPEND ADDITIONAL_LIBS ${LIBLZMA_LIBRARIES}) -@@ -497,7 +497,7 @@ IF(LIBLZMA_FOUND) - ELSE(LIBLZMA_FOUND) - # LZMA not found and will not be used. - ENDIF(LIBLZMA_FOUND) --MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIR) -+MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIRS) - MARK_AS_ADVANCED(CLEAR LIBLZMA_LIBRARY) - - # -@@ -567,7 +567,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) -@@ -783,7 +783,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) -@@ -1350,7 +1350,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) -@@ -1383,11 +1383,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(_ctime64_s HAVE__CTIME64_S) - CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64) - CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE) -@@ -1400,10 +1400,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 - -diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt -index e1d76a51..792b26b3 100644 ---- a/libarchive/CMakeLists.txt -+++ b/libarchive/CMakeLists.txt -@@ -238,11 +238,15 @@ ELSEIF(ARCHIVE_ACL_SUNOS) - ENDIF() - - # Libarchive is a shared library -+if (BUILD_SHARED_LIBS) -+ - ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .) - TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS}) - SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION}) - -+else() -+ - # archive_static is a static library - ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS}) -@@ -252,13 +256,21 @@ SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS - IF(NOT WIN32 OR CYGWIN) - SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) - ENDIF(NOT WIN32 OR CYGWIN) -+endif() - - IF(ENABLE_INSTALL) - # How to install the libraries -- INSTALL(TARGETS archive archive_static -+ if (BUILD_SHARED_LIBS) -+ INSTALL(TARGETS archive -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) -+ 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() diff --git a/recipes/libarchive/all/patches/0003-3.6.0-cmake.patch b/recipes/libarchive/all/patches/0003-3.6.0-cmake.patch deleted file mode 100644 index 3c89010df2aba..0000000000000 --- a/recipes/libarchive/all/patches/0003-3.6.0-cmake.patch +++ /dev/null @@ -1,153 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 646e5ce7..9bca273f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -9,7 +9,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() -@@ -424,7 +424,7 @@ IF(ZLIB_FOUND) - SET(HAVE_LIBZ 1) - SET(HAVE_ZLIB_H 1) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) -- LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) -+ LIST(APPEND ADDITIONAL_LIBS ZLIB::ZLIB) - IF(WIN32 AND NOT CYGWIN) - set(ZLIB_WINAPI yes) - IF(ZLIB_WINAPI) -@@ -486,7 +486,7 @@ 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_INCLUDES ${LIBLZMA_INCLUDE_DIRS}) - SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES}) - INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS}) - LIST(APPEND ADDITIONAL_LIBS ${LIBLZMA_LIBRARIES}) -@@ -503,7 +503,7 @@ IF(LIBLZMA_FOUND) - ELSE(LIBLZMA_FOUND) - # LZMA not found and will not be used. - ENDIF(LIBLZMA_FOUND) --MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIR) -+MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIRS) - MARK_AS_ADVANCED(CLEAR LIBLZMA_LIBRARY) - - # -@@ -573,7 +573,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) -@@ -790,7 +790,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) -@@ -1357,7 +1357,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) -@@ -1390,11 +1390,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(_ctime64_s HAVE__CTIME64_S) - CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64) - CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE) -@@ -1407,10 +1407,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 - -diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt -index e1d76a51..713c6496 100644 ---- a/libarchive/CMakeLists.txt -+++ b/libarchive/CMakeLists.txt -@@ -5,6 +5,10 @@ - # - ############################################ - -+if (ANDROID) -+ include_directories(${PROJECT_SOURCE_DIR}/contrib/android/include) -+endif() -+ - # Public headers - SET(include_HEADERS - archive.h -@@ -238,11 +242,15 @@ ELSEIF(ARCHIVE_ACL_SUNOS) - ENDIF() - - # Libarchive is a shared library -+if (BUILD_SHARED_LIBS) -+ - ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .) - TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS}) - SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION}) - -+else() -+ - # archive_static is a static library - ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS}) -@@ -252,13 +260,21 @@ SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS - IF(NOT WIN32 OR CYGWIN) - SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) - ENDIF(NOT WIN32 OR CYGWIN) -+endif() - - IF(ENABLE_INSTALL) - # How to install the libraries -- INSTALL(TARGETS archive archive_static -+ if (BUILD_SHARED_LIBS) -+ INSTALL(TARGETS archive -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib) -+ 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() diff --git a/recipes/libarchive/all/patches/0003-3.6.2-cmake.patch b/recipes/libarchive/all/patches/0003-3.6.2-cmake.patch deleted file mode 100644 index aca2961950d2d..0000000000000 --- a/recipes/libarchive/all/patches/0003-3.6.2-cmake.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a4a9284a..f5dbccac 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -9,7 +9,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() -@@ -428,7 +428,7 @@ IF(ZLIB_FOUND) - SET(HAVE_LIBZ 1) - SET(HAVE_ZLIB_H 1) - INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) -- LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) -+ LIST(APPEND ADDITIONAL_LIBS ZLIB::ZLIB) - IF(WIN32 AND NOT CYGWIN) - - -@@ -497,7 +497,7 @@ 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_INCLUDES ${LIBLZMA_INCLUDE_DIRS}) - SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES}) - INCLUDE_DIRECTORIES(${LIBLZMA_INCLUDE_DIRS}) - LIST(APPEND ADDITIONAL_LIBS ${LIBLZMA_LIBRARIES}) -@@ -514,7 +514,7 @@ IF(LIBLZMA_FOUND) - ELSE(LIBLZMA_FOUND) - # LZMA not found and will not be used. - ENDIF(LIBLZMA_FOUND) --MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIR) -+MARK_AS_ADVANCED(CLEAR LIBLZMA_INCLUDE_DIRS) - MARK_AS_ADVANCED(CLEAR LIBLZMA_LIBRARY) - - # -@@ -584,7 +584,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) -@@ -806,7 +806,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 ff7ade00..8c867130 100644 ---- a/libarchive/CMakeLists.txt -+++ b/libarchive/CMakeLists.txt -@@ -242,13 +242,13 @@ ELSEIF(ARCHIVE_ACL_SUNOS) - LIST(APPEND libarchive_SOURCES archive_disk_acl_sunos.c) - ENDIF() - --# Libarchive is a shared library -+if (BUILD_SHARED_LIBS) - ADD_LIBRARY(archive SHARED ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_INCLUDE_DIRECTORIES(archive PUBLIC .) - TARGET_LINK_LIBRARIES(archive ${ADDITIONAL_LIBS}) - SET_TARGET_PROPERTIES(archive PROPERTIES SOVERSION ${SOVERSION}) - --# archive_static is a static library -+else() - ADD_LIBRARY(archive_static STATIC ${libarchive_SOURCES} ${include_HEADERS}) - TARGET_LINK_LIBRARIES(archive_static ${ADDITIONAL_LIBS}) - SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS -@@ -257,13 +257,13 @@ SET_TARGET_PROPERTIES(archive_static PROPERTIES COMPILE_DEFINITIONS - IF(NOT WIN32 OR CYGWIN) - SET_TARGET_PROPERTIES(archive_static PROPERTIES OUTPUT_NAME archive) - ENDIF(NOT WIN32 OR CYGWIN) -- -+endif() - IF(ENABLE_INSTALL) -- # How to install the libraries -- INSTALL(TARGETS archive archive_static -- RUNTIME DESTINATION bin -- LIBRARY DESTINATION lib -- ARCHIVE DESTINATION lib) -+ if (BUILD_SHARED_LIBS) -+ INSTALL(TARGETS archive RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -+ 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() diff --git a/recipes/libarchive/all/patches/0004-3.6.0-android.patch b/recipes/libarchive/all/patches/0004-3.6.0-android.patch deleted file mode 100644 index c4c91d3ecb18a..0000000000000 --- a/recipes/libarchive/all/patches/0004-3.6.0-android.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt -index 792b26b3..713c6496 100644 ---- a/libarchive/CMakeLists.txt -+++ b/libarchive/CMakeLists.txt -@@ -5,6 +5,10 @@ - # - ############################################ - -+if (ANDROID) -+ include_directories(${PROJECT_SOURCE_DIR}/contrib/android/include) -+endif() -+ - # Public headers - SET(include_HEADERS - archive.h diff --git a/recipes/libarchive/all/patches/0005-3.6.2-try-compile-cmakedeps.patch b/recipes/libarchive/all/patches/0005-3.6.2-try-compile-cmakedeps.patch deleted file mode 100644 index 69e42f1f5678b..0000000000000 --- a/recipes/libarchive/all/patches/0005-3.6.2-try-compile-cmakedeps.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f5dbccac..ea7ff16a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -830,12 +830,11 @@ IF(NOT OPENSSL_FOUND) - ENDIF(NOT OPENSSL_FOUND) - - # --# How to prove that CRYPTO functions, which have several names on various --# platforms, just see if archive_digest.c can compile and link against --# required libraries. - # - MACRO(CHECK_CRYPTO ALGORITHMS IMPLEMENTATION) -- FOREACH(ALGORITHM ${ALGORITHMS}) -+ FOREACH(ALGORITHM ${ALGORITHMS}) -+ include(CMakePushCheckState) -+ cmake_push_check_state() - IF(NOT ARCHIVE_CRYPTO_${ALGORITHM}) - STRING(TOLOWER "${ALGORITHM}" lower_algorithm) - STRING(TOUPPER "${ALGORITHM}" algorithm) -@@ -856,8 +855,8 @@ MACRO(CHECK_CRYPTO ALGORITHMS IMPLEMENTATION) - IF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND) - SET(TRY_CRYPTO_REQUIRED_INCLUDES - "${TRY_CRYPTO_REQUIRED_INCLUDES};${OPENSSL_INCLUDE_DIR}") -- SET(TRY_CRYPTO_REQUIRED_LIBS -- "-DLINK_LIBRARIES:STRING=${OPENSSL_LIBRARIES}") -+ set(CMAKE_REQUIRED_LIBRARIES -+ ${OPENSSL_LIBRARIES}) - ELSEIF("${IMPLEMENTATION}" MATCHES "^MBEDTLS$" AND MBEDTLS_FOUND) - SET(TRY_CRYPTO_REQUIRED_INCLUDES - "${TRY_CRYPTO_REQUIRED_INCLUDES};${MBEDTLS_INCLUDE_DIRS}") -@@ -934,6 +933,7 @@ main(int argc, char **argv) - ENDIF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND) - ENDIF (ARCHIVE_CRYPTO_${ALGORITHM}_${IMPLEMENTATION}) - ENDIF(NOT ARCHIVE_CRYPTO_${ALGORITHM}) -+ cmake_pop_check_state() - ENDFOREACH(ALGORITHM ${ALGORITHMS}) - ENDMACRO(CHECK_CRYPTO ALGORITHMS IMPLEMENTATION) - diff --git a/recipes/libarchive/all/patches/0006-3.6.2-fix-msvc-build.patch b/recipes/libarchive/all/patches/0006-3.6.2-fix-msvc-build.patch deleted file mode 100644 index c0903cf80cf94..0000000000000 --- a/recipes/libarchive/all/patches/0006-3.6.2-fix-msvc-build.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 713e3bc5..9bc36214 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1374,7 +1374,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) -@@ -1407,11 +1407,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(_ctime64_s HAVE__CTIME64_S) - CHECK_FUNCTION_EXISTS_GLIBC(_fseeki64 HAVE__FSEEKI64) - CHECK_FUNCTION_EXISTS_GLIBC(_get_timezone HAVE__GET_TIMEZONE) -@@ -1424,10 +1424,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 - --- -2.33.0.windows.1 - diff --git a/recipes/libarchive/config.yml b/recipes/libarchive/config.yml index 628dfea5b0312..c448b0fce710b 100644 --- a/recipes/libarchive/config.yml +++ b/recipes/libarchive/config.yml @@ -5,17 +5,3 @@ versions: folder: all "3.7.1": folder: all - "3.6.2": - folder: all - "3.6.1": - folder: all - "3.6.0": - folder: all - "3.5.2": - folder: all - "3.5.1": - folder: all - "3.4.3": - folder: all - "3.4.0": - folder: all From f0ced4a4f137943e036d3bf31be9e5b5c040d4d6 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 12:41:13 +0200 Subject: [PATCH 0024/1652] (#23514) sdbus-cpp: security, bump expat * sdbus-cpp: security, bump expat * use version range for expat --- recipes/sdbus-cpp/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/sdbus-cpp/all/conanfile.py b/recipes/sdbus-cpp/all/conanfile.py index b466198f4d0ea..f4bb28acf81cc 100644 --- a/recipes/sdbus-cpp/all/conanfile.py +++ b/recipes/sdbus-cpp/all/conanfile.py @@ -76,7 +76,7 @@ def validate(self): def build_requirements(self): self.tool_requires("pkgconf/2.1.0") if self.options.with_code_gen: - self.tool_requires("expat/2.6.0") + self.tool_requires("expat/[>=2.6.2 <3]") def layout(self): cmake_layout(self, src_folder="src") From b822a71374d88f3689a32ecde23dbb87b729e939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Rinc=C3=B3n=20Blanco?= Date: Wed, 17 Apr 2024 12:49:39 +0200 Subject: [PATCH 0025/1652] (#23580) capnproto: Simplify testpackage * Simplify check * Simplify check * Rename, use capnp * Simplify even more --- .../capnproto/all/test_package/CMakeLists.txt | 14 +- .../all/test_package/addressbook.c++ | 288 -------------- .../all/test_package/addressbook.capnp | 55 --- .../all/test_package/calculator-client.c++ | 367 ------------------ .../all/test_package/calculator-server.c++ | 215 ---------- .../all/test_package/calculator.capnp | 118 ------ .../capnproto/all/test_package/conanfile.py | 12 +- .../all/test_package/test_package.c++ | 9 + .../all/test_v1_package/CMakeLists.txt | 8 - .../all/test_v1_package/conanfile.py | 26 -- 10 files changed, 16 insertions(+), 1096 deletions(-) delete mode 100644 recipes/capnproto/all/test_package/addressbook.c++ delete mode 100644 recipes/capnproto/all/test_package/addressbook.capnp delete mode 100644 recipes/capnproto/all/test_package/calculator-client.c++ delete mode 100644 recipes/capnproto/all/test_package/calculator-server.c++ delete mode 100644 recipes/capnproto/all/test_package/calculator.capnp create mode 100644 recipes/capnproto/all/test_package/test_package.c++ delete mode 100644 recipes/capnproto/all/test_v1_package/CMakeLists.txt delete mode 100644 recipes/capnproto/all/test_v1_package/conanfile.py diff --git a/recipes/capnproto/all/test_package/CMakeLists.txt b/recipes/capnproto/all/test_package/CMakeLists.txt index 8ffc65e9ffa4b..5e0d93f57dde5 100644 --- a/recipes/capnproto/all/test_package/CMakeLists.txt +++ b/recipes/capnproto/all/test_package/CMakeLists.txt @@ -3,19 +3,9 @@ project(test_package LANGUAGES CXX) find_package(CapnProto REQUIRED capnp capnp-rpc CONFIG) -capnp_generate_cpp(addressbookSources addressbookHeaders addressbook.capnp) -add_executable(addressbook addressbook.c++ ${addressbookSources}) + +add_executable(addressbook test_package.c++ ${addressbookSources}) target_include_directories(addressbook PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(addressbook PRIVATE CapnProto::capnp) target_compile_features(addressbook PRIVATE cxx_std_14) -capnp_generate_cpp(calculatorSources calculatorHeaders calculator.capnp) -add_library(calculator_protocol STATIC ${calculatorSources}) -target_include_directories(calculator_protocol PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) -target_link_libraries(calculator_protocol PUBLIC CapnProto::capnp-rpc) -target_compile_features(calculator_protocol PUBLIC cxx_std_14) - -add_executable(calculator-client calculator-client.c++) -target_link_libraries(calculator-client PRIVATE calculator_protocol) -add_executable(calculator-server calculator-server.c++) -target_link_libraries(calculator-server PRIVATE calculator_protocol) diff --git a/recipes/capnproto/all/test_package/addressbook.c++ b/recipes/capnproto/all/test_package/addressbook.c++ deleted file mode 100644 index b2bece9472b88..0000000000000 --- a/recipes/capnproto/all/test_package/addressbook.c++ +++ /dev/null @@ -1,288 +0,0 @@ -// Copyright (c) 2013-2014 Sandstorm Development Group, Inc. and contributors -// Licensed under the MIT License: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -// This sample code appears in the documentation for the C++ implementation. -// -// If Cap'n Proto is installed, build the sample like: -// capnp compile -oc++ addressbook.capnp -// c++ -std=c++14 -Wall addressbook.c++ addressbook.capnp.c++ `pkg-config --cflags --libs capnp` -o addressbook -// -// If Cap'n Proto is not installed, but the source is located at $SRC and has been -// compiled in $BUILD (often both are simply ".." from here), you can do: -// $BUILD/capnp compile -I$SRC/src -o$BUILD/capnpc-c++ addressbook.capnp -// c++ -std=c++14 -Wall addressbook.c++ addressbook.capnp.c++ -I$SRC/src -L$BUILD/.libs -lcapnp -lkj -o addressbook -// -// Run like: -// ./addressbook write | ./addressbook read -// Use "dwrite" and "dread" to use dynamic code instead. - -// TODO(test): Needs cleanup. - -#include "addressbook.capnp.h" -#include -#include -#include - -using addressbook::Person; -using addressbook::AddressBook; - -void writeAddressBook(int fd) { - ::capnp::MallocMessageBuilder message; - - AddressBook::Builder addressBook = message.initRoot(); - ::capnp::List::Builder people = addressBook.initPeople(2); - - Person::Builder alice = people[0]; - alice.setId(123); - alice.setName("Alice"); - alice.setEmail("alice@example.com"); - // Type shown for explanation purposes; normally you'd use auto. - ::capnp::List::Builder alicePhones = - alice.initPhones(1); - alicePhones[0].setNumber("555-1212"); - alicePhones[0].setType(Person::PhoneNumber::Type::MOBILE); - alice.getEmployment().setSchool("MIT"); - - Person::Builder bob = people[1]; - bob.setId(456); - bob.setName("Bob"); - bob.setEmail("bob@example.com"); - auto bobPhones = bob.initPhones(2); - bobPhones[0].setNumber("555-4567"); - bobPhones[0].setType(Person::PhoneNumber::Type::HOME); - bobPhones[1].setNumber("555-7654"); - bobPhones[1].setType(Person::PhoneNumber::Type::WORK); - bob.getEmployment().setUnemployed(); - - writePackedMessageToFd(fd, message); -} - -void printAddressBook(int fd) { - ::capnp::PackedFdMessageReader message(fd); - - AddressBook::Reader addressBook = message.getRoot(); - - for (Person::Reader person : addressBook.getPeople()) { - std::cout << person.getName().cStr() << ": " - << person.getEmail().cStr() << std::endl; - for (Person::PhoneNumber::Reader phone: person.getPhones()) { - const char* typeName = "UNKNOWN"; - switch (phone.getType()) { - case Person::PhoneNumber::Type::MOBILE: typeName = "mobile"; break; - case Person::PhoneNumber::Type::HOME: typeName = "home"; break; - case Person::PhoneNumber::Type::WORK: typeName = "work"; break; - } - std::cout << " " << typeName << " phone: " - << phone.getNumber().cStr() << std::endl; - } - Person::Employment::Reader employment = person.getEmployment(); - switch (employment.which()) { - case Person::Employment::UNEMPLOYED: - std::cout << " unemployed" << std::endl; - break; - case Person::Employment::EMPLOYER: - std::cout << " employer: " - << employment.getEmployer().cStr() << std::endl; - break; - case Person::Employment::SCHOOL: - std::cout << " student at: " - << employment.getSchool().cStr() << std::endl; - break; - case Person::Employment::SELF_EMPLOYED: - std::cout << " self-employed" << std::endl; - break; - } - } -} - -#if !CAPNP_LITE - -#include "addressbook.capnp.h" -#include -#include -#include -#include -#include - -using ::capnp::DynamicValue; -using ::capnp::DynamicStruct; -using ::capnp::DynamicEnum; -using ::capnp::DynamicList; -using ::capnp::List; -using ::capnp::Schema; -using ::capnp::StructSchema; -using ::capnp::EnumSchema; - -using ::capnp::Void; -using ::capnp::Text; -using ::capnp::MallocMessageBuilder; -using ::capnp::PackedFdMessageReader; - -void dynamicWriteAddressBook(int fd, StructSchema schema) { - // Write a message using the dynamic API to set each - // field by text name. This isn't something you'd - // normally want to do; it's just for illustration. - - MallocMessageBuilder message; - - // Types shown for explanation purposes; normally you'd - // use auto. - DynamicStruct::Builder addressBook = - message.initRoot(schema); - - DynamicList::Builder people = - addressBook.init("people", 2).as(); - - DynamicStruct::Builder alice = - people[0].as(); - alice.set("id", 123); - alice.set("name", "Alice"); - alice.set("email", "alice@example.com"); - auto alicePhones = alice.init("phones", 1).as(); - auto phone0 = alicePhones[0].as(); - phone0.set("number", "555-1212"); - phone0.set("type", "mobile"); - alice.get("employment").as() - .set("school", "MIT"); - - auto bob = people[1].as(); - bob.set("id", 456); - bob.set("name", "Bob"); - bob.set("email", "bob@example.com"); - - // Some magic: We can convert a dynamic sub-value back to - // the native type with as()! - List::Builder bobPhones = - bob.init("phones", 2).as>(); - bobPhones[0].setNumber("555-4567"); - bobPhones[0].setType(Person::PhoneNumber::Type::HOME); - bobPhones[1].setNumber("555-7654"); - bobPhones[1].setType(Person::PhoneNumber::Type::WORK); - bob.get("employment").as() - .set("unemployed", ::capnp::VOID); - - writePackedMessageToFd(fd, message); -} - -void dynamicPrintValue(DynamicValue::Reader value) { - // Print an arbitrary message via the dynamic API by - // iterating over the schema. Look at the handling - // of STRUCT in particular. - - switch (value.getType()) { - case DynamicValue::VOID: - std::cout << ""; - break; - case DynamicValue::BOOL: - std::cout << (value.as() ? "true" : "false"); - break; - case DynamicValue::INT: - std::cout << value.as(); - break; - case DynamicValue::UINT: - std::cout << value.as(); - break; - case DynamicValue::FLOAT: - std::cout << value.as(); - break; - case DynamicValue::TEXT: - std::cout << '\"' << value.as().cStr() << '\"'; - break; - case DynamicValue::LIST: { - std::cout << "["; - bool first = true; - for (auto element: value.as()) { - if (first) { - first = false; - } else { - std::cout << ", "; - } - dynamicPrintValue(element); - } - std::cout << "]"; - break; - } - case DynamicValue::ENUM: { - auto enumValue = value.as(); - KJ_IF_MAYBE(enumerant, enumValue.getEnumerant()) { - std::cout << - enumerant->getProto().getName().cStr(); - } else { - // Unknown enum value; output raw number. - std::cout << enumValue.getRaw(); - } - break; - } - case DynamicValue::STRUCT: { - std::cout << "("; - auto structValue = value.as(); - bool first = true; - for (auto field: structValue.getSchema().getFields()) { - if (!structValue.has(field)) continue; - if (first) { - first = false; - } else { - std::cout << ", "; - } - std::cout << field.getProto().getName().cStr() - << " = "; - dynamicPrintValue(structValue.get(field)); - } - std::cout << ")"; - break; - } - default: - // There are other types, we aren't handling them. - std::cout << "?"; - break; - } -} - -void dynamicPrintMessage(int fd, StructSchema schema) { - PackedFdMessageReader message(fd); - dynamicPrintValue(message.getRoot(schema)); - std::cout << std::endl; -} - -#endif // !CAPNP_LITE - -int main(int argc, char* argv[]) { - if (argc != 2) { - std::cerr << "Missing arg." << std::endl; - return 1; - } else if (strcmp(argv[1], "write") == 0) { - writeAddressBook(1); - } else if (strcmp(argv[1], "read") == 0) { - printAddressBook(0); -#if !CAPNP_LITE - } else if (strcmp(argv[1], "dwrite") == 0) { - StructSchema schema = Schema::from(); - dynamicWriteAddressBook(1, schema); - } else if (strcmp(argv[1], "dread") == 0) { - StructSchema schema = Schema::from(); - dynamicPrintMessage(0, schema); -#endif - } else { - std::cerr << "Invalid arg: " << argv[1] << std::endl; - return 1; - } - return 0; -} diff --git a/recipes/capnproto/all/test_package/addressbook.capnp b/recipes/capnproto/all/test_package/addressbook.capnp deleted file mode 100644 index 1a6c60937e8af..0000000000000 --- a/recipes/capnproto/all/test_package/addressbook.capnp +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright (c) 2013-2014 Sandstorm Development Group, Inc. and contributors -# Licensed under the MIT License: -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -@0x9eb32e19f86ee174; - -using Cxx = import "/capnp/c++.capnp"; -$Cxx.namespace("addressbook"); - -struct Person { - id @0 :UInt32; - name @1 :Text; - email @2 :Text; - phones @3 :List(PhoneNumber); - - struct PhoneNumber { - number @0 :Text; - type @1 :Type; - - enum Type { - mobile @0; - home @1; - work @2; - } - } - - employment :union { - unemployed @4 :Void; - employer @5 :Text; - school @6 :Text; - selfEmployed @7 :Void; - # We assume that a person is only one of these. - } -} - -struct AddressBook { - people @0 :List(Person); -} diff --git a/recipes/capnproto/all/test_package/calculator-client.c++ b/recipes/capnproto/all/test_package/calculator-client.c++ deleted file mode 100644 index 5d8452921cde9..0000000000000 --- a/recipes/capnproto/all/test_package/calculator-client.c++ +++ /dev/null @@ -1,367 +0,0 @@ -// Copyright (c) 2013-2014 Sandstorm Development Group, Inc. and contributors -// Licensed under the MIT License: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#include "calculator.capnp.h" -#include -#include -#include -#include - -class PowerFunction final: public Calculator::Function::Server { - // An implementation of the Function interface wrapping pow(). Note that - // we're implementing this on the client side and will pass a reference to - // the server. The server will then be able to make calls back to the client. - -public: - kj::Promise call(CallContext context) { - auto params = context.getParams().getParams(); - KJ_REQUIRE(params.size() == 2, "Wrong number of parameters."); - context.getResults().setValue(pow(params[0], params[1])); - return kj::READY_NOW; - } -}; - -int main(int argc, const char* argv[]) { - if (argc != 2) { - std::cerr << "usage: " << argv[0] << " HOST:PORT\n" - "Connects to the Calculator server at the given address and " - "does some RPCs." << std::endl; - return 1; - } - - capnp::EzRpcClient client(argv[1]); - Calculator::Client calculator = client.getMain(); - - // Keep an eye on `waitScope`. Whenever you see it used is a place where we - // stop and wait for the server to respond. If a line of code does not use - // `waitScope`, then it does not block! - auto& waitScope = client.getWaitScope(); - - { - // Make a request that just evaluates the literal value 123. - // - // What's interesting here is that evaluate() returns a "Value", which is - // another interface and therefore points back to an object living on the - // server. We then have to call read() on that object to read it. - // However, even though we are making two RPC's, this block executes in - // *one* network round trip because of promise pipelining: we do not wait - // for the first call to complete before we send the second call to the - // server. - - std::cout << "Evaluating a literal... "; - std::cout.flush(); - - // Set up the request. - auto request = calculator.evaluateRequest(); - request.getExpression().setLiteral(123); - - // Send it, which returns a promise for the result (without blocking). - auto evalPromise = request.send(); - - // Using the promise, create a pipelined request to call read() on the - // returned object, and then send that. - auto readPromise = evalPromise.getValue().readRequest().send(); - - // Now that we've sent all the requests, wait for the response. Until this - // point, we haven't waited at all! - auto response = readPromise.wait(waitScope); - KJ_ASSERT(response.getValue() == 123); - - std::cout << "PASS" << std::endl; - } - - { - // Make a request to evaluate 123 + 45 - 67. - // - // The Calculator interface requires that we first call getOperator() to - // get the addition and subtraction functions, then call evaluate() to use - // them. But, once again, we can get both functions, call evaluate(), and - // then read() the result -- four RPCs -- in the time of *one* network - // round trip, because of promise pipelining. - - std::cout << "Using add and subtract... "; - std::cout.flush(); - - Calculator::Function::Client add = nullptr; - Calculator::Function::Client subtract = nullptr; - - { - // Get the "add" function from the server. - auto request = calculator.getOperatorRequest(); - request.setOp(Calculator::Operator::ADD); - add = request.send().getFunc(); - } - - { - // Get the "subtract" function from the server. - auto request = calculator.getOperatorRequest(); - request.setOp(Calculator::Operator::SUBTRACT); - subtract = request.send().getFunc(); - } - - // Build the request to evaluate 123 + 45 - 67. - auto request = calculator.evaluateRequest(); - - auto subtractCall = request.getExpression().initCall(); - subtractCall.setFunction(subtract); - auto subtractParams = subtractCall.initParams(2); - subtractParams[1].setLiteral(67); - - auto addCall = subtractParams[0].initCall(); - addCall.setFunction(add); - auto addParams = addCall.initParams(2); - addParams[0].setLiteral(123); - addParams[1].setLiteral(45); - - // Send the evaluate() request, read() the result, and wait for read() to - // finish. - auto evalPromise = request.send(); - auto readPromise = evalPromise.getValue().readRequest().send(); - - auto response = readPromise.wait(waitScope); - KJ_ASSERT(response.getValue() == 101); - - std::cout << "PASS" << std::endl; - } - - { - // Make a request to evaluate 4 * 6, then use the result in two more - // requests that add 3 and 5. - // - // Since evaluate() returns its result wrapped in a `Value`, we can pass - // that `Value` back to the server in subsequent requests before the first - // `evaluate()` has actually returned. Thus, this example again does only - // one network round trip. - - std::cout << "Pipelining eval() calls... "; - std::cout.flush(); - - Calculator::Function::Client add = nullptr; - Calculator::Function::Client multiply = nullptr; - - { - // Get the "add" function from the server. - auto request = calculator.getOperatorRequest(); - request.setOp(Calculator::Operator::ADD); - add = request.send().getFunc(); - } - - { - // Get the "multiply" function from the server. - auto request = calculator.getOperatorRequest(); - request.setOp(Calculator::Operator::MULTIPLY); - multiply = request.send().getFunc(); - } - - // Build the request to evaluate 4 * 6 - auto request = calculator.evaluateRequest(); - - auto multiplyCall = request.getExpression().initCall(); - multiplyCall.setFunction(multiply); - auto multiplyParams = multiplyCall.initParams(2); - multiplyParams[0].setLiteral(4); - multiplyParams[1].setLiteral(6); - - auto multiplyResult = request.send().getValue(); - - // Use the result in two calls that add 3 and add 5. - - auto add3Request = calculator.evaluateRequest(); - auto add3Call = add3Request.getExpression().initCall(); - add3Call.setFunction(add); - auto add3Params = add3Call.initParams(2); - add3Params[0].setPreviousResult(multiplyResult); - add3Params[1].setLiteral(3); - auto add3Promise = add3Request.send().getValue().readRequest().send(); - - auto add5Request = calculator.evaluateRequest(); - auto add5Call = add5Request.getExpression().initCall(); - add5Call.setFunction(add); - auto add5Params = add5Call.initParams(2); - add5Params[0].setPreviousResult(multiplyResult); - add5Params[1].setLiteral(5); - auto add5Promise = add5Request.send().getValue().readRequest().send(); - - // Now wait for the results. - KJ_ASSERT(add3Promise.wait(waitScope).getValue() == 27); - KJ_ASSERT(add5Promise.wait(waitScope).getValue() == 29); - - std::cout << "PASS" << std::endl; - } - - { - // Our calculator interface supports defining functions. Here we use it - // to define two functions and then make calls to them as follows: - // - // f(x, y) = x * 100 + y - // g(x) = f(x, x + 1) * 2; - // f(12, 34) - // g(21) - // - // Once again, the whole thing takes only one network round trip. - - std::cout << "Defining functions... "; - std::cout.flush(); - - Calculator::Function::Client add = nullptr; - Calculator::Function::Client multiply = nullptr; - Calculator::Function::Client f = nullptr; - Calculator::Function::Client g = nullptr; - - { - // Get the "add" function from the server. - auto request = calculator.getOperatorRequest(); - request.setOp(Calculator::Operator::ADD); - add = request.send().getFunc(); - } - - { - // Get the "multiply" function from the server. - auto request = calculator.getOperatorRequest(); - request.setOp(Calculator::Operator::MULTIPLY); - multiply = request.send().getFunc(); - } - - { - // Define f. - auto request = calculator.defFunctionRequest(); - request.setParamCount(2); - - { - // Build the function body. - auto addCall = request.getBody().initCall(); - addCall.setFunction(add); - auto addParams = addCall.initParams(2); - addParams[1].setParameter(1); // y - - auto multiplyCall = addParams[0].initCall(); - multiplyCall.setFunction(multiply); - auto multiplyParams = multiplyCall.initParams(2); - multiplyParams[0].setParameter(0); // x - multiplyParams[1].setLiteral(100); - } - - f = request.send().getFunc(); - } - - { - // Define g. - auto request = calculator.defFunctionRequest(); - request.setParamCount(1); - - { - // Build the function body. - auto multiplyCall = request.getBody().initCall(); - multiplyCall.setFunction(multiply); - auto multiplyParams = multiplyCall.initParams(2); - multiplyParams[1].setLiteral(2); - - auto fCall = multiplyParams[0].initCall(); - fCall.setFunction(f); - auto fParams = fCall.initParams(2); - fParams[0].setParameter(0); - - auto addCall = fParams[1].initCall(); - addCall.setFunction(add); - auto addParams = addCall.initParams(2); - addParams[0].setParameter(0); - addParams[1].setLiteral(1); - } - - g = request.send().getFunc(); - } - - // OK, we've defined all our functions. Now create our eval requests. - - // f(12, 34) - auto fEvalRequest = calculator.evaluateRequest(); - auto fCall = fEvalRequest.initExpression().initCall(); - fCall.setFunction(f); - auto fParams = fCall.initParams(2); - fParams[0].setLiteral(12); - fParams[1].setLiteral(34); - auto fEvalPromise = fEvalRequest.send().getValue().readRequest().send(); - - // g(21) - auto gEvalRequest = calculator.evaluateRequest(); - auto gCall = gEvalRequest.initExpression().initCall(); - gCall.setFunction(g); - gCall.initParams(1)[0].setLiteral(21); - auto gEvalPromise = gEvalRequest.send().getValue().readRequest().send(); - - // Wait for the results. - KJ_ASSERT(fEvalPromise.wait(waitScope).getValue() == 1234); - KJ_ASSERT(gEvalPromise.wait(waitScope).getValue() == 4244); - - std::cout << "PASS" << std::endl; - } - - { - // Make a request that will call back to a function defined locally. - // - // Specifically, we will compute 2^(4 + 5). However, exponent is not - // defined by the Calculator server. So, we'll implement the Function - // interface locally and pass it to the server for it to use when - // evaluating the expression. - // - // This example requires two network round trips to complete, because the - // server calls back to the client once before finishing. In this - // particular case, this could potentially be optimized by using a tail - // call on the server side -- see CallContext::tailCall(). However, to - // keep the example simpler, we haven't implemented this optimization in - // the sample server. - - std::cout << "Using a callback... "; - std::cout.flush(); - - Calculator::Function::Client add = nullptr; - - { - // Get the "add" function from the server. - auto request = calculator.getOperatorRequest(); - request.setOp(Calculator::Operator::ADD); - add = request.send().getFunc(); - } - - // Build the eval request for 2^(4+5). - auto request = calculator.evaluateRequest(); - - auto powCall = request.getExpression().initCall(); - powCall.setFunction(kj::heap()); - auto powParams = powCall.initParams(2); - powParams[0].setLiteral(2); - - auto addCall = powParams[1].initCall(); - addCall.setFunction(add); - auto addParams = addCall.initParams(2); - addParams[0].setLiteral(4); - addParams[1].setLiteral(5); - - // Send the request and wait. - auto response = request.send().getValue().readRequest() - .send().wait(waitScope); - KJ_ASSERT(response.getValue() == 512); - - std::cout << "PASS" << std::endl; - } - - return 0; -} diff --git a/recipes/capnproto/all/test_package/calculator-server.c++ b/recipes/capnproto/all/test_package/calculator-server.c++ deleted file mode 100644 index c2593be3a9064..0000000000000 --- a/recipes/capnproto/all/test_package/calculator-server.c++ +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright (c) 2013-2014 Sandstorm Development Group, Inc. and contributors -// Licensed under the MIT License: -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#include "calculator.capnp.h" -#include -#include -#include -#include - -typedef unsigned int uint; - -kj::Promise readValue(Calculator::Value::Client value) { - // Helper function to asynchronously call read() on a Calculator::Value and - // return a promise for the result. (In the future, the generated code might - // include something like this automatically.) - - return value.readRequest().send() - .then([](capnp::Response result) { - return result.getValue(); - }); -} - -kj::Promise evaluateImpl( - Calculator::Expression::Reader expression, - capnp::List::Reader params = capnp::List::Reader()) { - // Implementation of CalculatorImpl::evaluate(), also shared by - // FunctionImpl::call(). In the latter case, `params` are the parameter - // values passed to the function; in the former case, `params` is just an - // empty list. - - switch (expression.which()) { - case Calculator::Expression::LITERAL: - return expression.getLiteral(); - - case Calculator::Expression::PREVIOUS_RESULT: - return readValue(expression.getPreviousResult()); - - case Calculator::Expression::PARAMETER: { - KJ_REQUIRE(expression.getParameter() < params.size(), - "Parameter index out-of-range."); - return params[expression.getParameter()]; - } - - case Calculator::Expression::CALL: { - auto call = expression.getCall(); - auto func = call.getFunction(); - - // Evaluate each parameter. - kj::Array> paramPromises = - KJ_MAP(param, call.getParams()) { - return evaluateImpl(param, params); - }; - - // Join the array of promises into a promise for an array. - kj::Promise> joinedParams = - kj::joinPromises(kj::mv(paramPromises)); - - // When the parameters are complete, call the function. - return joinedParams.then([KJ_CPCAP(func)](kj::Array&& paramValues) mutable { - auto request = func.callRequest(); - request.setParams(paramValues); - return request.send().then( - [](capnp::Response&& result) { - return result.getValue(); - }); - }); - } - - default: - // Throw an exception. - KJ_FAIL_REQUIRE("Unknown expression type."); - } -} - -class ValueImpl final: public Calculator::Value::Server { - // Simple implementation of the Calculator.Value Cap'n Proto interface. - -public: - ValueImpl(double value): value(value) {} - - kj::Promise read(ReadContext context) { - context.getResults().setValue(value); - return kj::READY_NOW; - } - -private: - double value; -}; - -class FunctionImpl final: public Calculator::Function::Server { - // Implementation of the Calculator.Function Cap'n Proto interface, where the - // function is defined by a Calculator.Expression. - -public: - FunctionImpl(uint paramCount, Calculator::Expression::Reader body) - : paramCount(paramCount) { - this->body.setRoot(body); - } - - kj::Promise call(CallContext context) { - auto params = context.getParams().getParams(); - KJ_REQUIRE(params.size() == paramCount, "Wrong number of parameters."); - - return evaluateImpl(body.getRoot(), params) - .then([KJ_CPCAP(context)](double value) mutable { - context.getResults().setValue(value); - }); - } - -private: - uint paramCount; - // The function's arity. - - capnp::MallocMessageBuilder body; - // Stores a permanent copy of the function body. -}; - -class OperatorImpl final: public Calculator::Function::Server { - // Implementation of the Calculator.Function Cap'n Proto interface, wrapping - // basic binary arithmetic operators. - -public: - OperatorImpl(Calculator::Operator op): op(op) {} - - kj::Promise call(CallContext context) { - auto params = context.getParams().getParams(); - KJ_REQUIRE(params.size() == 2, "Wrong number of parameters."); - - double result; - switch (op) { - case Calculator::Operator::ADD: result = params[0] + params[1]; break; - case Calculator::Operator::SUBTRACT:result = params[0] - params[1]; break; - case Calculator::Operator::MULTIPLY:result = params[0] * params[1]; break; - case Calculator::Operator::DIVIDE: result = params[0] / params[1]; break; - default: - KJ_FAIL_REQUIRE("Unknown operator."); - } - - context.getResults().setValue(result); - return kj::READY_NOW; - } - -private: - Calculator::Operator op; -}; - -class CalculatorImpl final: public Calculator::Server { - // Implementation of the Calculator Cap'n Proto interface. - -public: - kj::Promise evaluate(EvaluateContext context) override { - return evaluateImpl(context.getParams().getExpression()) - .then([KJ_CPCAP(context)](double value) mutable { - context.getResults().setValue(kj::heap(value)); - }); - } - - kj::Promise defFunction(DefFunctionContext context) override { - auto params = context.getParams(); - context.getResults().setFunc(kj::heap( - params.getParamCount(), params.getBody())); - return kj::READY_NOW; - } - - kj::Promise getOperator(GetOperatorContext context) override { - context.getResults().setFunc(kj::heap( - context.getParams().getOp())); - return kj::READY_NOW; - } -}; - -int main(int argc, const char* argv[]) { - if (argc != 2) { - std::cerr << "usage: " << argv[0] << " ADDRESS[:PORT]\n" - "Runs the server bound to the given address/port.\n" - "ADDRESS may be '*' to bind to all local addresses.\n" - ":PORT may be omitted to choose a port automatically." << std::endl; - return 1; - } - - // Set up a server. - capnp::EzRpcServer server(kj::heap(), argv[1]); - - // Write the port number to stdout, in case it was chosen automatically. - auto& waitScope = server.getWaitScope(); - uint port = server.getPort().wait(waitScope); - if (port == 0) { - // The address format "unix:/path/to/socket" opens a unix domain socket, - // in which case the port will be zero. - std::cout << "Listening on Unix socket..." << std::endl; - } else { - std::cout << "Listening on port " << port << "..." << std::endl; - } - - // Run forever, accepting connections and handling requests. - kj::NEVER_DONE.wait(waitScope); -} diff --git a/recipes/capnproto/all/test_package/calculator.capnp b/recipes/capnproto/all/test_package/calculator.capnp deleted file mode 100644 index adc8294e57578..0000000000000 --- a/recipes/capnproto/all/test_package/calculator.capnp +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (c) 2013-2014 Sandstorm Development Group, Inc. and contributors -# Licensed under the MIT License: -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -@0x85150b117366d14b; - -interface Calculator { - # A "simple" mathematical calculator, callable via RPC. - # - # But, to show off Cap'n Proto, we add some twists: - # - # - You can use the result from one call as the input to the next - # without a network round trip. To accomplish this, evaluate() - # returns a `Value` object wrapping the actual numeric value. - # This object may be used in a subsequent expression. With - # promise pipelining, the Value can actually be used before - # the evaluate() call that creates it returns! - # - # - You can define new functions, and then call them. This again - # shows off pipelining, but it also gives the client the - # opportunity to define a function on the client side and have - # the server call back to it. - # - # - The basic arithmetic operators are exposed as Functions, and - # you have to call getOperator() to obtain them from the server. - # This again demonstrates pipelining -- using getOperator() to - # get each operator and then using them in evaluate() still - # only takes one network round trip. - - evaluate @0 (expression :Expression) -> (value :Value); - # Evaluate the given expression and return the result. The - # result is returned wrapped in a Value interface so that you - # may pass it back to the server in a pipelined request. To - # actually get the numeric value, you must call read() on the - # Value -- but again, this can be pipelined so that it incurs - # no additional latency. - - struct Expression { - # A numeric expression. - - union { - literal @0 :Float64; - # A literal numeric value. - - previousResult @1 :Value; - # A value that was (or, will be) returned by a previous - # evaluate(). - - parameter @2 :UInt32; - # A parameter to the function (only valid in function bodies; - # see defFunction). - - call :group { - # Call a function on a list of parameters. - function @3 :Function; - params @4 :List(Expression); - } - } - } - - interface Value { - # Wraps a numeric value in an RPC object. This allows the value - # to be used in subsequent evaluate() requests without the client - # waiting for the evaluate() that returns the Value to finish. - - read @0 () -> (value :Float64); - # Read back the raw numeric value. - } - - defFunction @1 (paramCount :Int32, body :Expression) - -> (func :Function); - # Define a function that takes `paramCount` parameters and returns the - # evaluation of `body` after substituting these parameters. - - interface Function { - # An algebraic function. Can be called directly, or can be used inside - # an Expression. - # - # A client can create a Function that runs on the server side using - # `defFunction()` or `getOperator()`. Alternatively, a client can - # implement a Function on the client side and the server will call back - # to it. However, a function defined on the client side will require a - # network round trip whenever the server needs to call it, whereas - # functions defined on the server and then passed back to it are called - # locally. - - call @0 (params :List(Float64)) -> (value :Float64); - # Call the function on the given parameters. - } - - getOperator @2 (op :Operator) -> (func :Function); - # Get a Function representing an arithmetic operator, which can then be - # used in Expressions. - - enum Operator { - add @0; - subtract @1; - multiply @2; - divide @3; - } -} diff --git a/recipes/capnproto/all/test_package/conanfile.py b/recipes/capnproto/all/test_package/conanfile.py index d4d32590a51cc..85b7dcba030f5 100644 --- a/recipes/capnproto/all/test_package/conanfile.py +++ b/recipes/capnproto/all/test_package/conanfile.py @@ -14,11 +14,7 @@ def layout(self): cmake_layout(self) def requirements(self): - self.requires(self.tested_reference_str) - - def build_requirements(self): - if hasattr(self, "settings_build") and cross_building(self): - self.tool_requires(self.tested_reference_str) + self.requires(self.tested_reference_str, run=True) def generate(self): VirtualRunEnv(self).generate() @@ -34,5 +30,7 @@ def build(self): def test(self): if can_run(self): - bin_path = os.path.join(self.cpp.build.bindirs[0], "addressbook") - self.run(f"{bin_path} write", env="conanrun") + bin_path = os.path.join(self.cpp.build.bindir, "addressbook") + self.run(bin_path, env="conanrun") + + self.run("capnp id") diff --git a/recipes/capnproto/all/test_package/test_package.c++ b/recipes/capnproto/all/test_package/test_package.c++ new file mode 100644 index 0000000000000..8ed58079da0b0 --- /dev/null +++ b/recipes/capnproto/all/test_package/test_package.c++ @@ -0,0 +1,9 @@ +#include +#include + + +int main() { + capnp::MallocMessageBuilder message; + std::cout << sizeof(message) << std::endl; + return 0; +} diff --git a/recipes/capnproto/all/test_v1_package/CMakeLists.txt b/recipes/capnproto/all/test_v1_package/CMakeLists.txt deleted file mode 100644 index 0d20897301b68..0000000000000 --- a/recipes/capnproto/all/test_v1_package/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -cmake_minimum_required(VERSION 3.1) -project(test_package) - -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup(TARGETS) - -add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package - ${CMAKE_CURRENT_BINARY_DIR}/test_package) diff --git a/recipes/capnproto/all/test_v1_package/conanfile.py b/recipes/capnproto/all/test_v1_package/conanfile.py deleted file mode 100644 index 9c7aa58ab8868..0000000000000 --- a/recipes/capnproto/all/test_v1_package/conanfile.py +++ /dev/null @@ -1,26 +0,0 @@ -from conans import ConanFile, CMake, tools -import os - - -class TestPackageConan(ConanFile): - settings = "os", "arch", "compiler", "build_type" - generators = "cmake", "cmake_find_package_multi" - test_type = "explicit" - - def requirements(self): - self.requires(self.tested_reference_str) - - def build_requirements(self): - if hasattr(self, "settings_build"): - self.build_requires(self.tested_reference_str) - - def build(self): - with tools.no_op() if hasattr(self, "settings_build") else tools.run_environment(self): - cmake = CMake(self) - cmake.configure() - cmake.build() - - def test(self): - if not tools.cross_building(self): - bin_path = os.path.join("bin", "addressbook") - self.run(f"{bin_path} write", run_environment=True) From 3264e15a2117e10f4d286d033876d4bc800e47ff Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 13:15:40 +0200 Subject: [PATCH 0026/1652] (#23515) wayland: security, bump deps * wayland: security, bump deps * use version range for expat --- recipes/wayland/all/conanfile.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/wayland/all/conanfile.py b/recipes/wayland/all/conanfile.py index 865c98752b9de..84765da40cd8e 100644 --- a/recipes/wayland/all/conanfile.py +++ b/recipes/wayland/all/conanfile.py @@ -50,15 +50,15 @@ def requirements(self): if self.options.enable_libraries: self.requires("libffi/3.4.4") if self.options.enable_dtd_validation: - self.requires("libxml2/2.12.3") - self.requires("expat/2.6.0") + self.requires("libxml2/2.12.5") + self.requires("expat/[>=2.6.2 <3]") def validate(self): if self.settings.os != "Linux": raise ConanInvalidConfiguration(f"{self.ref} only supports Linux") def build_requirements(self): - self.tool_requires("meson/1.3.1") + self.tool_requires("meson/1.4.0") if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str): self.tool_requires("pkgconf/2.1.0") if not can_run(self): From c108bc2d0e44d1c623004b64694cb6961557c057 Mon Sep 17 00:00:00 2001 From: Conan Center Index Bot <54393557+conan-center-bot@users.noreply.github.com> Date: Wed, 17 Apr 2024 12:23:58 +0100 Subject: [PATCH 0027/1652] (#23593) [bot] Update authorized users list (2024-04-17) Co-authored-by: conan-center-bot --- .c3i/authorized_users.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.c3i/authorized_users.yml b/.c3i/authorized_users.yml index 1d7876397356e..3782948d20054 100644 --- a/.c3i/authorized_users.yml +++ b/.c3i/authorized_users.yml @@ -1327,3 +1327,12 @@ authorized_users: - sivachandran - oteffahi - Ruwei +- TibiIius +- MattBelanger321 +- X1aomu +- datalogics-rgailiunas +- yhsng +- omdxp +- pierricgimmig +- laci-aura +- BenBudr From c3a8f51634b27f97195399aa5a0661f0572ad93d Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 13:49:40 +0200 Subject: [PATCH 0028/1652] (#23512) dbus: security, bump expat * dbus: security, bump expat expat<2.6.2 has known vulnerabilites, bump to 2.6.2 * use version range for expat --- recipes/dbus/1.x.x/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/dbus/1.x.x/conanfile.py b/recipes/dbus/1.x.x/conanfile.py index 3f8c353bc153e..252b821357ceb 100644 --- a/recipes/dbus/1.x.x/conanfile.py +++ b/recipes/dbus/1.x.x/conanfile.py @@ -80,7 +80,7 @@ def layout(self): basic_layout(self, src_folder="src") def requirements(self): - self.requires("expat/2.6.0") + self.requires("expat/[>=2.6.2 <3]") if self.options.get_safe("with_systemd"): self.requires("libsystemd/253.6") if self.options.get_safe("with_selinux"): From f9bb0a902a2992804457fc6ae768bc0167a71fee Mon Sep 17 00:00:00 2001 From: toge Date: Wed, 17 Apr 2024 21:09:32 +0900 Subject: [PATCH 0029/1652] (#23518) dacap-clip: add version 1.9 --- recipes/dacap-clip/all/conandata.yml | 3 +++ recipes/dacap-clip/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/dacap-clip/all/conandata.yml b/recipes/dacap-clip/all/conandata.yml index a548f37295671..4c3c17aeedcf5 100644 --- a/recipes/dacap-clip/all/conandata.yml +++ b/recipes/dacap-clip/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.9": + url: "https://github.com/dacap/clip/archive/refs/tags/v1.9.tar.gz" + sha256: "e8af414c720784a6005419afb087786c05602e998ec52b2efe9e3112b7535d30" "1.8": url: "https://github.com/dacap/clip/archive/refs/tags/v1.8.tar.gz" sha256: "a54d243451fb483590ffd9239a3c55f8d8e672d44df63dc2b81da01a229074bc" diff --git a/recipes/dacap-clip/config.yml b/recipes/dacap-clip/config.yml index 80ca8c43729e6..baafafbfe03c1 100644 --- a/recipes/dacap-clip/config.yml +++ b/recipes/dacap-clip/config.yml @@ -1,4 +1,6 @@ versions: + "1.9": + folder: "all" "1.8": folder: "all" "1.7": From 959b7184f046fee420731046408d07787f7a5033 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 14:31:24 +0200 Subject: [PATCH 0030/1652] (#23130) libvips: security, use libpng version range, bump deps * libvips: use libpng version range, bump deps * bump deps * bump expat * bump openexr * use version range for expat --------- Co-authored-by: Uilian Ries --- recipes/libvips/all/conanfile.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/recipes/libvips/all/conanfile.py b/recipes/libvips/all/conanfile.py index 4e2008334f2bb..bad73d4834f39 100644 --- a/recipes/libvips/all/conanfile.py +++ b/recipes/libvips/all/conanfile.py @@ -126,7 +126,7 @@ def layout(self): basic_layout(self, src_folder="src") def requirements(self): - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") self.requires("glib/2.78.3", transitive_headers=True, transitive_libs=True) if self.options.get_safe("with_archive"): self.requires("libarchive/3.7.2") @@ -139,7 +139,7 @@ def requirements(self): if self.options.with_fftw: self.requires("fftw/3.3.10") if self.options.with_fontconfig: - self.requires("fontconfig/2.14.2") + self.requires("fontconfig/2.15.0") if self.options.with_heif: self.requires("libheif/1.16.2") if self.options.get_safe("with_highway"): @@ -147,7 +147,7 @@ def requirements(self): if self.options.with_jpeg == "libjpeg": self.requires("libjpeg/9e") elif self.options.with_jpeg == "libjpeg-turbo": - self.requires("libjpeg-turbo/3.0.1") + self.requires("libjpeg-turbo/3.0.2") elif self.options.with_jpeg == "mozjpeg": self.requires("mozjpeg/4.1.5") if self.options.with_jpeg_xl: @@ -159,15 +159,15 @@ def requirements(self): if self.options.with_matio: self.requires("matio/1.5.24") if self.options.with_openexr: - self.requires("openexr/3.2.1") + self.requires("openexr/3.2.3") if self.options.with_openjpeg: - self.requires("openjpeg/2.5.0") + self.requires("openjpeg/2.5.2") if self.options.with_pangocairo: self.requires("pango/1.50.10") if self.options.with_pdfium: self.requires("pdfium/95.0.4629") if self.options.with_png == "libpng": - self.requires("libpng/1.6.40") + self.requires("libpng/[>=1.6 <2]") elif self.options.with_png == "libspng": self.requires("libspng/0.7.4") if self.options.with_poppler: @@ -215,7 +215,7 @@ def validate(self): raise ConanInvalidConfiguration("librsvg recipe not available in conancenter yet") def build_requirements(self): - self.tool_requires("meson/1.3.0") + self.tool_requires("meson/1.4.0") if not self.conf.get("tools.gnu:pkg_config", check_type=str): self.tool_requires("pkgconf/2.1.0") if self.options.introspection: @@ -227,7 +227,7 @@ def build_requirements(self): # a different/incompatible libiconv than the one being exposed # in the runtime environment (DYLD_LIBRARY_PATH) # See https://github.com/conan-io/conan-center-index/pull/17502#issuecomment-1542492466 - self.tool_requires("gettext/0.21") + self.tool_requires("gettext/0.22.5") def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) From 9f991e4a89420d7909aaa250ca62325844b7e17e Mon Sep 17 00:00:00 2001 From: toge Date: Wed, 17 Apr 2024 22:01:01 +0900 Subject: [PATCH 0031/1652] (#23495) perfetto: add version 44.0 * perfetto: add version 44.0 * link math lib --- recipes/perfetto/all/conandata.yml | 3 +++ recipes/perfetto/all/conanfile.py | 2 +- recipes/perfetto/config.yml | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/perfetto/all/conandata.yml b/recipes/perfetto/all/conandata.yml index 7ea6229bf24ad..cccc42e851f55 100644 --- a/recipes/perfetto/all/conandata.yml +++ b/recipes/perfetto/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "44.0": + url: "https://github.com/google/perfetto/archive/refs/tags/v44.0.tar.gz" + sha256: "db4162ee6495b1fcc13ba7aca77d67f9fd1766d184743137a04af8b1e3906b9d" "43.1": url: "https://github.com/google/perfetto/archive/refs/tags/v43.1.tar.gz" sha256: "0f23ba39520c9ec629c48dc36a3a4bb92ed9653ac6694445be22985205a3f4ce" diff --git a/recipes/perfetto/all/conanfile.py b/recipes/perfetto/all/conanfile.py index 6c9cecd7c62ef..53a602bd0b160 100644 --- a/recipes/perfetto/all/conanfile.py +++ b/recipes/perfetto/all/conanfile.py @@ -101,7 +101,7 @@ def package(self): def package_info(self): self.cpp_info.libs = ["perfetto"] if self.settings.os in ["Linux", "FreeBSD"]: - self.cpp_info.system_libs.append("pthread") + self.cpp_info.system_libs.extend(["pthread", "m"]) if self.settings.os == "Windows": self.cpp_info.system_libs.append("ws2_32") if is_msvc(self): diff --git a/recipes/perfetto/config.yml b/recipes/perfetto/config.yml index e704c3a7bc879..d160e73474155 100644 --- a/recipes/perfetto/config.yml +++ b/recipes/perfetto/config.yml @@ -1,4 +1,6 @@ versions: + "44.0": + folder: all "43.1": folder: all "42.0": From a2fd996e5cf3adf0d44ea44b9d63a07ab9b3b53d Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 15:18:29 +0200 Subject: [PATCH 0032/1652] (#23513) cpython: security, bump deps * cpython: security, bump deps fix use of vulnerable version of expat, versions<2.6.2 have known vulnerabilites * use version range for expat --- recipes/cpython/all/conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/cpython/all/conanfile.py b/recipes/cpython/all/conanfile.py index ee7d7fdc621f9..0a6a08312b3d5 100644 --- a/recipes/cpython/all/conanfile.py +++ b/recipes/cpython/all/conanfile.py @@ -110,7 +110,7 @@ def requirements(self): self.requires("zlib/[>=1.2.11 <2]") if self._supports_modules: self.requires("openssl/[>=1.1 <4]") - self.requires("expat/2.6.0") + self.requires("expat/[>=2.6.2 <3]") self.requires("libffi/3.4.4") if Version(self.version) < "3.10" or is_apple_os(self): # FIXME: mpdecimal > 2.5.0 on MacOS causes the _decimal module to not be importable @@ -134,7 +134,7 @@ def requirements(self): # TODO: Add nis when available. raise ConanInvalidConfiguration("nis is not available on CCI (yet)") if self.options.get_safe("with_sqlite3"): - self.requires("sqlite3/3.45.0") + self.requires("sqlite3/3.45.2") if self.options.get_safe("with_tkinter"): self.requires("tk/8.6.10") if self.options.get_safe("with_curses", False): From b938d85481d458eb767f1e3fa60818efae37bc96 Mon Sep 17 00:00:00 2001 From: Gang Wu Date: Wed, 17 Apr 2024 21:41:29 +0800 Subject: [PATCH 0033/1652] (#23467) add orc/1.9.3 and orc/1.8.7 --- recipes/orc/all/conandata.yml | 14 ++++++++++---- recipes/orc/config.yml | 4 ++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/recipes/orc/all/conandata.yml b/recipes/orc/all/conandata.yml index 52fa72322f304..93dd0aef42c8e 100644 --- a/recipes/orc/all/conandata.yml +++ b/recipes/orc/all/conandata.yml @@ -1,13 +1,19 @@ sources: "2.0.0": - url: "https://dlcdn.apache.org/orc/orc-2.0.0/orc-2.0.0.tar.gz" + url: "https://archive.apache.org/dist/orc/orc-2.0.0/orc-2.0.0.tar.gz" sha256: "9107730919c29eb39efaff1b9e36166634d1d4d9477e5fee76bfd6a8fec317df" + "1.9.3": + url: "https://archive.apache.org/dist/orc/orc-1.9.3/orc-1.9.3.tar.gz" + sha256: "f737d005d0c4deb65688ac3c0223ed530b0ba6258552555b2774dcdb77359b0f" "1.9.2": - url: "https://dlcdn.apache.org/orc/orc-1.9.2/orc-1.9.2.tar.gz" + url: "https://archive.apache.org/dist/orc/orc-1.9.2/orc-1.9.2.tar.gz" sha256: "7f46f2c184ecefd6791f1a53fb062286818bd8710c3f08b94dd3cac365e240ee" + "1.8.7": + url: "https://archive.apache.org/dist/orc/orc-1.8.7/orc-1.8.7.tar.gz" + sha256: "57c9d12bf74b2752b1ce1039c15035c3b6f6531d865df962a99b3e079b3dfdb7" "1.8.6": - url: "https://dlcdn.apache.org/orc/orc-1.8.6/orc-1.8.6.tar.gz" + url: "https://archive.apache.org/dist/orc/orc-1.8.6/orc-1.8.6.tar.gz" sha256: "5675b18118df4dd7f86cc6ba859ed75b425ea1b7ddff805e1d671a17fd57d7f7" "1.7.10": - url: "https://dlcdn.apache.org/orc/orc-1.7.10/orc-1.7.10.tar.gz" + url: "https://archive.apache.org/dist/orc/orc-1.7.10/orc-1.7.10.tar.gz" sha256: "85aef9368dc9bcdffaaf10010b66dfe053ce22f30b64854f63852248164686a3" diff --git a/recipes/orc/config.yml b/recipes/orc/config.yml index 956aa2a1d2506..ad011c33e6349 100644 --- a/recipes/orc/config.yml +++ b/recipes/orc/config.yml @@ -1,8 +1,12 @@ versions: "2.0.0": folder: all + "1.9.3": + folder: all "1.9.2": folder: all + "1.8.7": + folder: all "1.8.6": folder: all "1.7.10": From 4e2794963961798eed46a2bd87d8e9b8893f15b8 Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Wed, 17 Apr 2024 17:08:28 +0300 Subject: [PATCH 0034/1652] (#18642) libidn2: migrate to Conan v2, add shared MSVC build * libidn2: migrate to Conan v2 * libidn2: bump deps * libidn2: tidy * libidn2: fix shared lib not being found in v1 * libidn2: fix test_package * libidn2: fix MSVC build * libidn2: add shared MSVC build support * libidn2: tc.extra_cflags.append("-FS") * libidn2: fix_apple_shared_install_name() --- recipes/libidn2/all/conandata.yml | 1 - recipes/libidn2/all/conanfile.py | 175 ++++++++++-------- .../libidn2/all/test_package/CMakeLists.txt | 7 +- recipes/libidn2/all/test_package/conanfile.py | 24 ++- .../all/test_v1_package/CMakeLists.txt | 8 + .../libidn2/all/test_v1_package/conanfile.py | 20 ++ 6 files changed, 144 insertions(+), 91 deletions(-) create mode 100644 recipes/libidn2/all/test_v1_package/CMakeLists.txt create mode 100644 recipes/libidn2/all/test_v1_package/conanfile.py diff --git a/recipes/libidn2/all/conandata.yml b/recipes/libidn2/all/conandata.yml index b710e69645f11..d33653d85c4f6 100644 --- a/recipes/libidn2/all/conandata.yml +++ b/recipes/libidn2/all/conandata.yml @@ -5,4 +5,3 @@ sources: patches: "2.3.0": - patch_file: "patches/0001-no-versioning-of-symbols.patch" - base_path: "source_subfolder" diff --git a/recipes/libidn2/all/conanfile.py b/recipes/libidn2/all/conanfile.py index 0a83958ffe3fd..18257e8db29d2 100644 --- a/recipes/libidn2/all/conanfile.py +++ b/recipes/libidn2/all/conanfile.py @@ -1,18 +1,30 @@ -from conans import AutoToolsBuildEnvironment, ConanFile, tools -from conans.errors import ConanInvalidConfiguration -from contextlib import contextmanager import os -required_conan_version = ">=1.33.0" +from conan import ConanFile +from conan.tools.apple import fix_apple_shared_install_name +from conan.tools.build import cross_building +from conan.tools.env import Environment, VirtualBuildEnv, VirtualRunEnv +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir +from conan.tools.gnu import Autotools, AutotoolsDeps, AutotoolsToolchain +from conan.tools.layout import basic_layout +from conan.tools.microsoft import is_msvc, unix_path + +required_conan_version = ">=1.53.0" class LibIdn(ConanFile): name = "libidn2" - description = "GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA 2003 specifications." - homepage = "https://www.gnu.org/software/libidn/" - topics = ("libidn", "encode", "decode", "internationalized", "domain", "name") + description = ( + "GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA 2003" + " specifications." + ) license = "GPL-3.0-or-later" url = "https://github.com/conan-io/conan-center-index" + homepage = "https://www.gnu.org/software/libidn/" + topics = ("libidn", "encode", "decode", "internationalized", "domain", "name") + + package_type = "library" + settings = "os", "arch", "compiler", "build_type" options = { "shared": [True, False], "fPIC": [True, False], @@ -21,17 +33,13 @@ class LibIdn(ConanFile): "shared": False, "fPIC": True, } - settings = "os", "arch", "compiler", "build_type" - - _autotools = None @property - def _source_subfolder(self): - return "source_subfolder" + def _settings_build(self): + return getattr(self, "settings_build", self.settings) def export_sources(self): - for patch in self.conan_data.get("patches", {}).get(self.version, []): - self.copy(patch["patch_file"]) + export_conandata_patches(self) def config_options(self): if self.settings.os == "Windows": @@ -39,93 +47,104 @@ def config_options(self): def configure(self): if self.options.shared: - del self.options.fPIC - del self.settings.compiler.libcxx - del self.settings.compiler.cppstd + self.options.rm_safe("fPIC") + self.settings.rm_safe("compiler.libcxx") + self.settings.rm_safe("compiler.cppstd") - def requirements(self): - self.requires("libiconv/1.16") - - def validate(self): - if self.settings.os == "Windows" and self.options.shared: - raise ConanInvalidConfiguration("Shared libraries are not supported on Windows due to libtool limitation") + def layout(self): + basic_layout(self, src_folder="src") - @property - def _settings_build(self): - return getattr(self, "settings_build", self.settings) + def requirements(self): + self.requires("libiconv/1.17") def build_requirements(self): - if self._settings_build.os == "Windows" and not tools.get_env("CONAN_BASH_PATH"): - self.build_requires("msys2/cci.latest") - if self.settings.compiler == "Visual Studio": - self.build_requires("automake/1.16.4") + if self._settings_build.os == "Windows": + self.win_bash = True + if not self.conf.get("tools.microsoft.bash:path", check_type=str): + self.tool_requires("msys2/cci.latest") + if is_msvc(self): + self.tool_requires("automake/1.16.5") def source(self): - tools.get(**self.conan_data["sources"][self.version], - destination=self._source_subfolder, strip_root=True) - - @contextmanager - def _build_context(self): - if self.settings.compiler == "Visual Studio": - with tools.vcvars(self.settings): - env = { - "CC": "{} cl -nologo".format(tools.unix_path(self.deps_user_info["automake"].compile)), - "CXX": "{} cl -nologo".format(tools.unix_path(self.deps_user_info["automake"].compile)), - "LD": "{} link -nologo".format(tools.unix_path(self.deps_user_info["automake"].compile)), - "AR": "{} lib".format(tools.unix_path(self.deps_user_info["automake"].ar_lib)), - } - with tools.environment_append(env): - yield - else: - yield + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + env = VirtualBuildEnv(self) + env.generate() + + if not cross_building(self): + env = VirtualRunEnv(self) + env.generate(scope="build") - def _configure_autotools(self): - if self._autotools: - return self._autotools - self._autotools = AutoToolsBuildEnvironment(self, win_bash=tools.os_info.is_windows) - self._autotools.libs = [] + tc = AutotoolsToolchain(self) if not self.options.shared: - self._autotools.defines.append("IDN2_STATIC") - if self.settings.compiler == "Visual Studio": - if tools.Version(self.settings.compiler.version) >= "12": - self._autotools.flags.append("-FS") - self._autotools.link_flags.extend("-L{}".format(p.replace("\\", "/")) for p in self.deps_cpp_info.lib_paths) - yes_no = lambda v: "yes" if v else "no" - conf_args = [ - "--enable-shared={}".format(yes_no(self.options.shared)), - "--enable-static={}".format(yes_no(not self.options.shared)), - "--with-libiconv-prefix={}".format(tools.unix_path(self.deps_cpp_info["libiconv"].rootpath)), + tc.extra_defines.append("IDN2_STATIC") + if is_msvc(self): + tc.extra_cflags.append("-FS") + tc.extra_cxxflags.append("-FS") + tc.configure_args += [ + f"--with-libiconv-prefix={unix_path(self, self.dependencies['libiconv'].package_folder)}", "--disable-nls", "--disable-rpath", ] - self._autotools.configure(args=conf_args, configure_dir=self._source_subfolder) - return self._autotools + tc.generate() + + if is_msvc(self): + env = Environment() + dep_info = self.dependencies["libiconv"].cpp_info.aggregated_components() + env.append("CPPFLAGS", [f"-I{unix_path(self, p)}" for p in dep_info.includedirs] + [f"-D{d}" for d in dep_info.defines]) + env.append("_LINK_", [lib if lib.endswith(".lib") else f"{lib}.lib" for lib in (dep_info.libs + dep_info.system_libs)]) + env.append("LDFLAGS", [f"-L{unix_path(self, p)}" for p in dep_info.libdirs] + dep_info.sharedlinkflags + dep_info.exelinkflags) + env.append("CFLAGS", dep_info.cflags) + env.vars(self).save_script("conanautotoolsdeps_cl_workaround") + else: + deps = AutotoolsDeps(self) + deps.generate() + + if is_msvc(self): + env = Environment() + automake_conf = self.dependencies.build["automake"].conf_info + compile_wrapper = unix_path(self, automake_conf.get("user.automake:compile-wrapper", check_type=str)) + ar_wrapper = unix_path(self, automake_conf.get("user.automake:lib-wrapper", check_type=str)) + dumpbin_nm = unix_path(self, os.path.join(self.source_folder, "dumpbin_nm.py")) + env.define("CC", f"{compile_wrapper} cl -nologo") + env.define("CXX", f"{compile_wrapper} cl -nologo") + env.define("LD", "link -nologo") + env.define("AR", f'{ar_wrapper} lib') + env.vars(self).save_script("conanbuild_msvc") def build(self): - for patch in self.conan_data.get("patches", {}).get(self.version, []): - tools.patch(**patch) - with self._build_context(): - autotools = self._configure_autotools() - autotools.make() + apply_conandata_patches(self) + autotools = Autotools(self) + autotools.configure() + autotools.make() def package(self): - self.copy("COPYING", src=self._source_subfolder, dst="licenses") - with self._build_context(): - autotools = self._configure_autotools() - autotools.install() + copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses")) + autotools = Autotools(self) + autotools.install() os.unlink(os.path.join(self.package_folder, "lib", "libidn2.la")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "share")) + fix_apple_shared_install_name(self) - tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig")) - tools.rmdir(os.path.join(self.package_folder, "share")) + if is_msvc(self) and self.options.shared: + os.rename(os.path.join(self.package_folder, "lib", "idn2.dll.lib"), + os.path.join(self.package_folder, "lib", "idn2-0.lib")) + copy(self, "idn2.exe", + os.path.join(self.build_folder, "src", ".libs"), + os.path.join(self.package_folder, "bin")) def package_info(self): - self.cpp_info.libs = ["idn2"] - self.cpp_info.names["pkg_config"] = "libidn2" + if is_msvc(self) and self.options.shared: + self.cpp_info.libs = ["idn2-0"] + else: + self.cpp_info.libs = ["idn2"] + self.cpp_info.set_property("pkg_config_name", "libidn2") if self.settings.os == "Windows": if not self.options.shared: self.cpp_info.defines = ["IDN2_STATIC"] bin_path = os.path.join(self.package_folder, "bin") - self.output.info("Appending PATH environment variable: {}".format(bin_path)) self.env_info.PATH.append(bin_path) diff --git a/recipes/libidn2/all/test_package/CMakeLists.txt b/recipes/libidn2/all/test_package/CMakeLists.txt index 7b9b613cbb24a..2279e3cb07d2a 100644 --- a/recipes/libidn2/all/test_package/CMakeLists.txt +++ b/recipes/libidn2/all/test_package/CMakeLists.txt @@ -1,8 +1,7 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package C) -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() +find_package(libidn2 REQUIRED CONFIG) add_executable(${PROJECT_NAME} test_package.c) -target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS}) +target_link_libraries(${PROJECT_NAME} PRIVATE libidn2::libidn2) diff --git a/recipes/libidn2/all/test_package/conanfile.py b/recipes/libidn2/all/test_package/conanfile.py index ae0c2ab3c933c..f56ad0548e3d9 100644 --- a/recipes/libidn2/all/test_package/conanfile.py +++ b/recipes/libidn2/all/test_package/conanfile.py @@ -1,10 +1,19 @@ -from conans import ConanFile, CMake, tools +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake import os class TestPackageConan(ConanFile): - settings = "os", "compiler", "build_type", "arch" - generators = "cmake" + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str, run=True) + + def layout(self): + cmake_layout(self) def build(self): cmake = CMake(self) @@ -12,9 +21,8 @@ def build(self): cmake.build() def test(self): - if not tools.cross_building(self.settings): - self.run("idn2 --help", run_environment=True) - - bin_path = os.path.join("bin", "test_package") - self.run(bin_path, run_environment=True) + if can_run(self): + self.run("idn2 --help", env="conanrun") + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/libidn2/all/test_v1_package/CMakeLists.txt b/recipes/libidn2/all/test_v1_package/CMakeLists.txt new file mode 100644 index 0000000000000..91630d79f4abb --- /dev/null +++ b/recipes/libidn2/all/test_v1_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package) + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup(TARGETS) + +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/ + ${CMAKE_CURRENT_BINARY_DIR}/test_package/) diff --git a/recipes/libidn2/all/test_v1_package/conanfile.py b/recipes/libidn2/all/test_v1_package/conanfile.py new file mode 100644 index 0000000000000..a5e01055d3933 --- /dev/null +++ b/recipes/libidn2/all/test_v1_package/conanfile.py @@ -0,0 +1,20 @@ +from conans import ConanFile, CMake, tools +import os + + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "cmake", "cmake_find_package_multi" + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if not tools.cross_building(self.settings): + self.run("idn2 --help", run_environment=True) + + bin_path = os.path.join("bin", "test_package") + self.run(bin_path, run_environment=True) + From d4673c752c50a0dc98e59bc278ea10d30fa9b17f Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 16:32:39 +0200 Subject: [PATCH 0035/1652] (#23504) gdcm: security, conflicts, bump deps * gdcm: bump deps fix conflict with opencv * bump expat * use version range for expat --- recipes/gdcm/all/conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/gdcm/all/conanfile.py b/recipes/gdcm/all/conanfile.py index 5a0b267df427d..226e90aa0ee71 100644 --- a/recipes/gdcm/all/conanfile.py +++ b/recipes/gdcm/all/conanfile.py @@ -57,8 +57,8 @@ def layout(self): def requirements(self): self.requires("charls/2.4.2") - self.requires("expat/2.5.0") - self.requires("openjpeg/2.5.0") + self.requires("expat/[>=2.6.2 <3]") + self.requires("openjpeg/2.5.2") if self.options.with_zlibng: self.requires("zlib-ng/2.1.6") else: From 7e913bb3428c2091d5164146fde9a45cedc34ed8 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 17:04:47 +0200 Subject: [PATCH 0036/1652] (#23511) cairo: security, bump expat * cairo: bump expat expat<2.6.2 has known vulnerabilites, bump to 2.6.2 * use version range for expat --- recipes/cairo/meson/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/cairo/meson/conanfile.py b/recipes/cairo/meson/conanfile.py index 69fa936ada1c4..9b42f6bc4a8e0 100644 --- a/recipes/cairo/meson/conanfile.py +++ b/recipes/cairo/meson/conanfile.py @@ -88,7 +88,7 @@ def layout(self): def requirements(self): self.requires("pixman/0.43.4") if self.options.with_zlib and self.options.with_png: - self.requires("expat/2.6.0") + self.requires("expat/[>=2.6.2 <3]") if self.options.with_lzo: self.requires("lzo/2.10") if self.options.with_zlib: From d77f26257c429e731accae26e7728a1225a16d57 Mon Sep 17 00:00:00 2001 From: Bruce Emehiser Date: Wed, 17 Apr 2024 08:53:53 -0700 Subject: [PATCH 0037/1652] (#23184) libcurl: update to c-ares/1.27.0 --- recipes/libcurl/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/libcurl/all/conanfile.py b/recipes/libcurl/all/conanfile.py index 41ce8fa327a98..ee8cb69990cd0 100644 --- a/recipes/libcurl/all/conanfile.py +++ b/recipes/libcurl/all/conanfile.py @@ -188,7 +188,7 @@ def requirements(self): if self.options.with_zstd: self.requires("zstd/1.5.5") if self.options.with_c_ares: - self.requires("c-ares/1.25.0") + self.requires("c-ares/1.27.0") if self.options.get_safe("with_libpsl"): self.requires("libpsl/0.21.1") From ebfd2381ce14f5a5a19aa3f987df91019cf78089 Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Wed, 17 Apr 2024 20:04:53 +0300 Subject: [PATCH 0038/1652] (#23276) libxml2: add v2.12.6, drop some unused and vulnerable versions --- recipes/libxml2/all/conandata.yml | 12 +++--------- recipes/libxml2/config.yml | 8 ++------ 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/recipes/libxml2/all/conandata.yml b/recipes/libxml2/all/conandata.yml index a0070b6bc4a60..6bc7dcf31e2ca 100644 --- a/recipes/libxml2/all/conandata.yml +++ b/recipes/libxml2/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "2.12.6": + url: "https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.6.tar.xz" + sha256: "889c593a881a3db5fdd96cc9318c87df34eb648edfc458272ad46fd607353fbb" "2.12.5": url: "https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.5.tar.xz" sha256: "a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21" @@ -8,12 +11,6 @@ sources: "2.12.3": url: "https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.3.tar.xz" sha256: "8c8f1092340a89ff32bc44ad5c9693aff9bc8a7a3e161bb239666e5d15ac9aaa" - "2.12.2": - url: "https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.2.tar.xz" - sha256: "3f2e6464fa15073eb8f3d18602d54fafc489b7715171064615a40490c6be9f4f" - "2.12.1": - url: "https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.1.tar.xz" - sha256: "8982b9ccdf7f456e30d8f7012d50858c6623e495333b6191def455c7e95427eb" "2.11.7": url: "https://download.gnome.org/sources/libxml2/2.11/libxml2-2.11.7.tar.xz" sha256: "fb27720e25eaf457f94fd3d7189bcf2626c6dccf4201553bc8874d50e3560162" @@ -32,9 +29,6 @@ sources: "2.9.14": url: "https://download.gnome.org/sources/libxml2/2.9/libxml2-2.9.14.tar.xz" sha256: "60d74a257d1ccec0475e749cba2f21559e48139efba6ff28224357c7c798dfee" - "2.9.13": - url: "https://download.gnome.org/sources/libxml2/2.9/libxml2-2.9.13.tar.xz" - sha256: "276130602d12fe484ecc03447ee5e759d0465558fbc9d6bd144e3745306ebf0e" "2.9.12": url: "https://download.gnome.org/sources/libxml2/2.9/libxml2-2.9.12.tar.xz" sha256: "28a92f6ab1f311acf5e478564c49088ef0ac77090d9c719bbc5d518f1fe62eb9" diff --git a/recipes/libxml2/config.yml b/recipes/libxml2/config.yml index 1c968c066198a..b6d3d1fca3e56 100644 --- a/recipes/libxml2/config.yml +++ b/recipes/libxml2/config.yml @@ -1,14 +1,12 @@ versions: + "2.12.6": + folder: all "2.12.5": folder: all "2.12.4": folder: all "2.12.3": folder: all - "2.12.2": - folder: all - "2.12.1": - folder: all "2.11.7": folder: all "2.11.6": @@ -21,8 +19,6 @@ versions: folder: all "2.9.14": folder: all - "2.9.13": - folder: all "2.9.12": folder: all "2.9.10": From 518af5799b888e68eff414ce887004ffdba88a66 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 20:23:54 +0200 Subject: [PATCH 0039/1652] (#23508) freexl: security, bump expat * freexl: bump expat * bump expat version <2.6.2 have known vulnerabilites * use version range for expat --- recipes/freexl/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/freexl/all/conanfile.py b/recipes/freexl/all/conanfile.py index 6f97355b38f7c..7cbab97fd7d07 100644 --- a/recipes/freexl/all/conanfile.py +++ b/recipes/freexl/all/conanfile.py @@ -54,7 +54,7 @@ def layout(self): def requirements(self): self.requires("libiconv/1.17") if Version(self.version) >= "2.0.0": - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") self.requires("minizip/1.2.13") def build_requirements(self): From e7027dd0762cd3dadbd4a566e7f9cef9612523d1 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 20:49:18 +0200 Subject: [PATCH 0040/1652] (#23516) avahi: security, bump expat * avahi: security, bump expat * use version range for expat --- recipes/avahi/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/avahi/all/conanfile.py b/recipes/avahi/all/conanfile.py index 7c5e4d7f868ae..2920eabb9e448 100644 --- a/recipes/avahi/all/conanfile.py +++ b/recipes/avahi/all/conanfile.py @@ -46,7 +46,7 @@ def layout(self): def requirements(self): self.requires("glib/2.78.3") - self.requires("expat/2.6.0") + self.requires("expat/[>=2.6.2 <3]") self.requires("libdaemon/0.14") self.requires("dbus/1.15.8") self.requires("gdbm/1.23") From dcc9de7867f849d813cc2c7a9809ca2052f0f980 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 17 Apr 2024 14:01:35 -0500 Subject: [PATCH 0041/1652] (#23525) harfbuzz: Bump glib to 2.78.3 to avoid conflicts Bump Meson. --- recipes/harfbuzz/all/conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/harfbuzz/all/conanfile.py b/recipes/harfbuzz/all/conanfile.py index a0f1c1c55554a..873c8a5081e27 100644 --- a/recipes/harfbuzz/all/conanfile.py +++ b/recipes/harfbuzz/all/conanfile.py @@ -84,7 +84,7 @@ def requirements(self): if self.options.with_icu: self.requires("icu/74.1") if self.options.with_glib: - self.requires("glib/2.78.1") + self.requires("glib/2.78.3") def validate(self): if self.options.shared and self.options.with_glib and not self.dependencies["glib"].options.shared: @@ -100,7 +100,7 @@ def validate(self): ) def build_requirements(self): - self.tool_requires("meson/1.3.2") + self.tool_requires("meson/1.4.0") if not self.conf.get("tools.gnu:pkg_config", check_type=str): self.tool_requires("pkgconf/2.1.0") if self.options.with_glib: From f5774db0db01bd95c69cab73b5a5b61cd8237166 Mon Sep 17 00:00:00 2001 From: Michael Keck Date: Wed, 17 Apr 2024 21:11:25 +0200 Subject: [PATCH 0042/1652] (#23564) add enet/1.3.18 * add cmake/1.3.18 * remove 1.3.14 + 1.3.15 --- recipes/enet/all/conandata.yml | 15 +++---- .../enet/all/patches/fix-cmake-1.3.18.patch | 41 +++++++++++++++++++ recipes/enet/config.yml | 6 +-- 3 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 recipes/enet/all/patches/fix-cmake-1.3.18.patch diff --git a/recipes/enet/all/conandata.yml b/recipes/enet/all/conandata.yml index c03ba9c9c59fb..346f8469ae010 100644 --- a/recipes/enet/all/conandata.yml +++ b/recipes/enet/all/conandata.yml @@ -1,22 +1,17 @@ sources: + "1.3.18": + url: "https://github.com/lsalzman/enet/archive/refs/tags/v1.3.18.tar.gz" + sha256: "28603c895f9ed24a846478180ee72c7376b39b4bb1287b73877e5eae7d96b0dd" "1.3.17": url: "https://github.com/lsalzman/enet/archive/refs/tags/v1.3.17.tar.gz" sha256: "1e0b4bc0b7127a2d779dd7928f0b31830f5b3dcb7ec9588c5de70033e8d2434a" "1.3.16": url: "https://github.com/lsalzman/enet/archive/refs/tags/v1.3.16.tar.gz" sha256: "b3aa85b43e4309fec9441b4e6639c268e22962a578bd5e2307bb3a7b6fe73714" - "1.3.15": - url: "https://github.com/lsalzman/enet/archive/refs/tags/v1.3.15.tar.gz" - sha256: "e749887a19b5a4a0a16daae2d695fd7ed581ec517f3b15aedc3cdce2d999d471" - "1.3.14": - url: "https://github.com/lsalzman/enet/archive/refs/tags/v1.3.14.tar.gz" - sha256: "3660e12d32164b2d814a897f50caa4e68db6396c00ef22806db45c2308b439e6" patches: + "1.3.18": + - patch_file: "patches/fix-cmake-1.3.18.patch" "1.3.17": - patch_file: "patches/fix-cmake.patch" "1.3.16": - patch_file: "patches/fix-cmake.patch" - "1.3.15": - - patch_file: "patches/fix-cmake.patch" - "1.3.14": - - patch_file: "patches/fix-cmake.patch" diff --git a/recipes/enet/all/patches/fix-cmake-1.3.18.patch b/recipes/enet/all/patches/fix-cmake-1.3.18.patch new file mode 100644 index 0000000000000..6a6af96885d57 --- /dev/null +++ b/recipes/enet/all/patches/fix-cmake-1.3.18.patch @@ -0,0 +1,41 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c6459b6..d7e68bd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -84,19 +84,27 @@ set(SOURCE_FILES + source_group(include FILES ${INCLUDE_FILES}) + source_group(source FILES ${SOURCE_FILES}) + +-add_library(enet STATIC ++if(MSVC AND BUILD_SHARED_LIBS) ++ add_definitions(-DENET_DLL) ++ add_definitions(-DENET_BUILDING_LIB) ++endif() ++add_library(enet + ${INCLUDE_FILES} + ${SOURCE_FILES} + ) + +-if (MINGW) ++if (WIN32) + target_link_libraries(enet winmm ws2_32) + endif() + +-install(TARGETS enet +- RUNTIME DESTINATION bin +- ARCHIVE DESTINATION lib/static +- LIBRARY DESTINATION lib) +- +-install(DIRECTORY include/ +- DESTINATION include) ++include(GNUInstallDirs) ++install( ++ TARGETS enet ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++) ++install( ++ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/enet ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ++) diff --git a/recipes/enet/config.yml b/recipes/enet/config.yml index 1e0720325112a..9574bb80165a0 100644 --- a/recipes/enet/config.yml +++ b/recipes/enet/config.yml @@ -1,9 +1,7 @@ versions: + "1.3.18": + folder: all "1.3.17": folder: all "1.3.16": folder: all - "1.3.15": - folder: all - "1.3.14": - folder: all From 7e36604adf85caebfc3e38435a9b5d2b8f7cd1f0 Mon Sep 17 00:00:00 2001 From: toge Date: Thu, 18 Apr 2024 04:59:23 +0900 Subject: [PATCH 0043/1652] (#23577) leopard: add recipe * leopard: add recipe * drop support apple-clang 13 * link dl, mathlib --- recipes/leopard/all/conandata.yml | 4 + recipes/leopard/all/conanfile.py | 80 +++++++++++++++++++ .../leopard/all/test_package/CMakeLists.txt | 8 ++ recipes/leopard/all/test_package/conanfile.py | 26 ++++++ .../leopard/all/test_package/test_package.cpp | 65 +++++++++++++++ recipes/leopard/config.yml | 3 + 6 files changed, 186 insertions(+) create mode 100644 recipes/leopard/all/conandata.yml create mode 100644 recipes/leopard/all/conanfile.py create mode 100644 recipes/leopard/all/test_package/CMakeLists.txt create mode 100644 recipes/leopard/all/test_package/conanfile.py create mode 100644 recipes/leopard/all/test_package/test_package.cpp create mode 100644 recipes/leopard/config.yml diff --git a/recipes/leopard/all/conandata.yml b/recipes/leopard/all/conandata.yml new file mode 100644 index 0000000000000..8db107b962635 --- /dev/null +++ b/recipes/leopard/all/conandata.yml @@ -0,0 +1,4 @@ +sources: + "2.0.0": + url: "https://github.com/hosseinmoein/Leopard/archive/refs/tags/2.0.0.tar.gz" + sha256: "c24ac5d2555c4496f26662925061a52ae1b2265ae9fc91b0cce19d1647d62699" diff --git a/recipes/leopard/all/conanfile.py b/recipes/leopard/all/conanfile.py new file mode 100644 index 0000000000000..f2a3c9d555477 --- /dev/null +++ b/recipes/leopard/all/conanfile.py @@ -0,0 +1,80 @@ +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import check_min_cppstd +from conan.tools.files import get, copy +from conan.tools.layout import basic_layout +from conan.tools.scm import Version +import os + + +required_conan_version = ">=1.52.0" + + +class LeopardConan(ConanFile): + name = "leopard" + description = "C++ light-weight Thread Pool library" + license = "BSD-3-Clause" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/hosseinmoein/Leopard" + topics = ("async", "concurrency", "multithreading", "threadpool", "header-only") + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + no_copy_source = True + + @property + def _min_cppstd(self): + return 20 + + @property + def _compilers_minimum_version(self): + return { + "gcc": "11", + "clang": "12", + "apple-clang": "14", + "Visual Studio": "16", + "msvc": "192", + } + + def layout(self): + basic_layout(self, src_folder="src") + + def package_id(self): + self.info.clear() + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False) + if minimum_version and Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration( + f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support." + ) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def package(self): + copy(self, pattern="License", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder) + copy( + self, + pattern="*.h", + dst=os.path.join(self.package_folder, "include"), + src=os.path.join(self.source_folder, "include"), + ) + copy( + self, + pattern="*.tcc", + dst=os.path.join(self.package_folder, "include"), + src=os.path.join(self.source_folder, "include"), + ) + + def package_info(self): + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] + + self.cpp_info.set_property("cmake_file_name", "ThreadPool") + self.cpp_info.set_property("cmake_target_name", "ThreadPool::ThreadPool") + self.cpp_info.set_property("pkg_config_name", "ThreadPool") + + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.system_libs.extend(["pthread", "dl", "m"]) diff --git a/recipes/leopard/all/test_package/CMakeLists.txt b/recipes/leopard/all/test_package/CMakeLists.txt new file mode 100644 index 0000000000000..f4cfdb829d7c9 --- /dev/null +++ b/recipes/leopard/all/test_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(ThreadPool REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE ThreadPool::ThreadPool) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20) diff --git a/recipes/leopard/all/test_package/conanfile.py b/recipes/leopard/all/test_package/conanfile.py new file mode 100644 index 0000000000000..3a91c9439218e --- /dev/null +++ b/recipes/leopard/all/test_package/conanfile.py @@ -0,0 +1,26 @@ +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/leopard/all/test_package/test_package.cpp b/recipes/leopard/all/test_package/test_package.cpp new file mode 100644 index 0000000000000..f04dada22a2ec --- /dev/null +++ b/recipes/leopard/all/test_package/test_package.cpp @@ -0,0 +1,65 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace hmthrp; + +// ---------------------------------------------------------------------------- + +static constexpr std::size_t THREAD_COUNT = 5; + +// ---------------------------------------------------------------------------- + +static void parallel_accumulate() { + + std::cout << "Running parallel_accumulate() ..." << std::endl; + + constexpr std::size_t n { 10003 }; + constexpr std::size_t the_sum { (n * (n + 1)) / 2 }; + std::vector vec (n); + + std::iota(vec.begin(), vec.end(), 1); + + constexpr std::size_t block_size { n / THREAD_COUNT }; + std::vector> futs; + auto block_start = vec.begin(); + ThreadPool thr_pool { THREAD_COUNT }; + + futs.reserve(THREAD_COUNT - 1); + for (std::size_t i = 0; i < (THREAD_COUNT - 1); ++i) { + const auto block_end { block_start + block_size }; + + futs.push_back( + thr_pool.dispatch( + false, + std::accumulate, + block_start, block_end, 0)); + block_start = block_end; + } + + // Last result + // + std::size_t result { std::accumulate(block_start, vec.end(), 0UL) }; + + for (std::size_t i = 0; i < futs.size(); ++i) + result += futs[i].get(); + + assert(result == the_sum); + return; +} + +// ---------------------------------------------------------------------------- + +int main (int, char *[]) { + + parallel_accumulate(); + + return (EXIT_SUCCESS); +} diff --git a/recipes/leopard/config.yml b/recipes/leopard/config.yml new file mode 100644 index 0000000000000..d77ad03cbf510 --- /dev/null +++ b/recipes/leopard/config.yml @@ -0,0 +1,3 @@ +versions: + "2.0.0": + folder: all From a53b188cb325f89019243055feb0dc499ca17899 Mon Sep 17 00:00:00 2001 From: toge Date: Thu, 18 Apr 2024 06:01:53 +0900 Subject: [PATCH 0044/1652] (#23584) sfl: add version 1.4.0 --- recipes/sfl/all/conandata.yml | 3 +++ recipes/sfl/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/sfl/all/conandata.yml b/recipes/sfl/all/conandata.yml index 121900e615afb..f4fc4ae3ff6a2 100644 --- a/recipes/sfl/all/conandata.yml +++ b/recipes/sfl/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.4.0": + url: "https://github.com/slavenf/sfl-library/archive/refs/tags/1.4.0.tar.gz" + sha256: "dcdc6c40a60116075910e3321fe12065142d78f4947826aac263ade1d84d449a" "1.3.1": url: "https://github.com/slavenf/sfl-library/archive/refs/tags/1.3.1.tar.gz" sha256: "e541857067ae3e6c8d9933736e70ef92c1ce0a0e374872497328edd2e4e47ae9" diff --git a/recipes/sfl/config.yml b/recipes/sfl/config.yml index 6afe808172f22..75a12cbe4687a 100644 --- a/recipes/sfl/config.yml +++ b/recipes/sfl/config.yml @@ -1,4 +1,6 @@ versions: + "1.4.0": + folder: "all" "1.3.1": folder: "all" "1.3.0": From 790a2008cb126fb4c4c119fe227dead91e8326bf Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 23:18:51 +0200 Subject: [PATCH 0045/1652] (#23585) nsync: add version 1.27.0 --- recipes/nsync/all/conandata.yml | 5 +++++ ...-exclude_semaphore_mutex_c_from_nsync_cpp_lib.patch | 10 ++++++++++ recipes/nsync/config.yml | 2 ++ 3 files changed, 17 insertions(+) create mode 100644 recipes/nsync/all/patches/0001-1.27.0-darwin-exclude_semaphore_mutex_c_from_nsync_cpp_lib.patch diff --git a/recipes/nsync/all/conandata.yml b/recipes/nsync/all/conandata.yml index b694103d49b84..f620b793bde60 100644 --- a/recipes/nsync/all/conandata.yml +++ b/recipes/nsync/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.27.0": + url: "https://github.com/google/nsync/archive/1.27.0.tar.gz" + sha256: "e8e552a358f4a28e844207a7c5cb51767e4aeb0b29e22d23ac2a09924130f761" "1.26.0": url: "https://github.com/google/nsync/archive/1.26.0.tar.gz" sha256: "80fc1e605bb3cf5f272811ece39c4fb6761ffcb9b30563301845cc9ff381eb8b" @@ -12,6 +15,8 @@ sources: sha256: "b7e75b17957c62bd02dd73890bde22da3a564903fcaad651b395453d41d3325b" url: "https://github.com/google/nsync/archive/refs/tags/1.23.0.tar.gz" patches: + "1.27.0": + - patch_file: "patches/0001-1.27.0-darwin-exclude_semaphore_mutex_c_from_nsync_cpp_lib.patch" "1.26.0": - patch_file: "patches/0001-darwin-exclude_semaphore_mutex_c_from_nsync_cpp_lib.patch" "1.25.0": diff --git a/recipes/nsync/all/patches/0001-1.27.0-darwin-exclude_semaphore_mutex_c_from_nsync_cpp_lib.patch b/recipes/nsync/all/patches/0001-1.27.0-darwin-exclude_semaphore_mutex_c_from_nsync_cpp_lib.patch new file mode 100644 index 0000000000000..1f3fd75999335 --- /dev/null +++ b/recipes/nsync/all/patches/0001-1.27.0-darwin-exclude_semaphore_mutex_c_from_nsync_cpp_lib.patch @@ -0,0 +1,10 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -125,7 +125,6 @@ + ${NSYNC_OS_CPP_SRC} + "platform/c++11/src/nsync_semaphore_mutex.cc" + "platform/posix/src/clock_gettime.c" +- "platform/posix/src/nsync_semaphore_mutex.c" + ) + elseif ("${CMAKE_SYSTEM_NAME}X" STREQUAL "LinuxX") + set (NSYNC_POSIX ON) diff --git a/recipes/nsync/config.yml b/recipes/nsync/config.yml index 960f98574a708..b5fdbb8ed55be 100644 --- a/recipes/nsync/config.yml +++ b/recipes/nsync/config.yml @@ -1,4 +1,6 @@ versions: + "1.27.0": + folder: "all" "1.26.0": folder: "all" "1.25.0": From 4fa695392df362ab7856af344be7367df8302e8c Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 17 Apr 2024 23:41:13 +0200 Subject: [PATCH 0046/1652] (#23586) libwebp: add 1.4.0 --- recipes/libwebp/all/conandata.yml | 7 +++++++ .../all/patches/1.4.0-0001-fix-cmake.patch | 21 +++++++++++++++++++ recipes/libwebp/config.yml | 2 ++ 3 files changed, 30 insertions(+) create mode 100644 recipes/libwebp/all/patches/1.4.0-0001-fix-cmake.patch diff --git a/recipes/libwebp/all/conandata.yml b/recipes/libwebp/all/conandata.yml index 0aaa6446c5482..a68caa1df2fd9 100644 --- a/recipes/libwebp/all/conandata.yml +++ b/recipes/libwebp/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.4.0": + url: "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.4.0.tar.gz" + sha256: "61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5" "1.3.2": url: "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.3.2.tar.gz" sha256: "2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4" @@ -12,6 +15,10 @@ sources: url: "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.1.0.tar.gz" sha256: "98a052268cc4d5ece27f76572a7f50293f439c17a98e67c4ea0c7ed6f50ef043" patches: + "1.4.0": + - patch_file: "patches/1.4.0-0001-fix-cmake.patch" + patch_description: "disable PIC, disable prefix library name on MSVC" + patch_type: "conan" "1.3.2": - patch_file: "patches/1.3.1-0001-fix-cmake.patch" patch_description: "disable PIC, disable prefix library name on MSVC" diff --git a/recipes/libwebp/all/patches/1.4.0-0001-fix-cmake.patch b/recipes/libwebp/all/patches/1.4.0-0001-fix-cmake.patch new file mode 100644 index 0000000000000..f819b1e43d235 --- /dev/null +++ b/recipes/libwebp/all/patches/1.4.0-0001-fix-cmake.patch @@ -0,0 +1,21 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ad5e14c3..89c836f3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -60,7 +60,6 @@ if(WEBP_LINK_STATIC) + else() + set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) + endif() +- set(CMAKE_POSITION_INDEPENDENT_CODE ON) + # vwebp does not compile on Ubuntu with static libraries so disabling it for + # now. + set(WEBP_BUILD_VWEBP OFF) +@@ -155,7 +154,7 @@ endif() + set(PTHREAD_LIBS ${CMAKE_THREAD_LIBS_INIT}) + set(INSTALLED_LIBRARIES) + +-if(MSVC) ++if(0) + # match the naming convention used by nmake + set(webp_libname_prefix "lib") + set(CMAKE_SHARED_LIBRARY_PREFIX "${webp_libname_prefix}") diff --git a/recipes/libwebp/config.yml b/recipes/libwebp/config.yml index e184761fe568e..c2fa30e005fdd 100644 --- a/recipes/libwebp/config.yml +++ b/recipes/libwebp/config.yml @@ -1,4 +1,6 @@ versions: + "1.4.0": + folder: all "1.3.2": folder: all "1.3.1": From a110cad650da0c3b76cc577bb4818055388bb135 Mon Sep 17 00:00:00 2001 From: Tobias Hermann Date: Wed, 17 Apr 2024 23:58:24 +0200 Subject: [PATCH 0047/1652] (#23587) frugally-deep: add version 0.16.0 --- recipes/frugally-deep/all/conandata.yml | 24 +++--------------------- recipes/frugally-deep/all/conanfile.py | 2 +- recipes/frugally-deep/config.yml | 16 ++-------------- 3 files changed, 6 insertions(+), 36 deletions(-) diff --git a/recipes/frugally-deep/all/conandata.yml b/recipes/frugally-deep/all/conandata.yml index e666368bd2a72..8e2ab1f676fe6 100644 --- a/recipes/frugally-deep/all/conandata.yml +++ b/recipes/frugally-deep/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "0.16.0": + url: "https://github.com/Dobiasd/frugally-deep/archive/v0.16.0.tar.gz" + sha256: "5ffe8dddb43a645094b2ca1d48e4ee78e685fbef3c89f08cea8425a39dad9865" "0.15.31": url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.31.tar.gz" sha256: "49bf5e30ad2d33e464433afbc8b6fe8536fc959474004a1ce2ac03d7c54bc8ba" @@ -8,24 +11,3 @@ sources: "0.15.29": url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.29.tar.gz" sha256: "032cd525d4a7b9b3ebe28fd5e3984ac3e569da496f65d52c81030aabd9d0c52e" - "0.15.25-p0": - url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.25-p0.tar.gz" - sha256: "d1204bc13ace603e97696aa7a1331d6af819c3a9b4952b4fd1e3d72dd8f524c3" - "0.15.24-p0": - url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.24-p0.tar.gz" - sha256: "118b0219a3f17c6d5a3535874acb145ee2079fd309e1fb83884facc684810baf" - "0.15.19-p0": - url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.19-p0.tar.gz" - sha256: "acaba428ae19ef8d57a53b3767373cd96770c190dd57909e52d2759be89ac942" - "0.15.18-p0": - url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.18-p0.tar.gz" - sha256: "b721bd7b2fa842a1a10f00008e079c057fab7a5cfc4c394d64238ee59ad7e189" - "0.15.16-p0": - url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.16-p0.tar.gz" - sha256: "778b8cf0da847239a2ad21c611331b231831c6c175154c68ca30dd87489336a5" - "0.15.13-p0": - url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.13-p0.tar.gz" - sha256: "ca18c7b8dc0df3a36dba3c2578df35592e61ff51e5bbaa1c1ed3e6c529e14075" - "0.15.1-p0": - url: "https://github.com/Dobiasd/frugally-deep/archive/v0.15.1-p0.tar.gz" - sha256: "ab15cb540a8ddeffa56cd8235bfdf709f5d6b3b2543d9ec83658c5d9bad02f18" diff --git a/recipes/frugally-deep/all/conanfile.py b/recipes/frugally-deep/all/conanfile.py index 5fb9992a315dc..f2070b97639e6 100644 --- a/recipes/frugally-deep/all/conanfile.py +++ b/recipes/frugally-deep/all/conanfile.py @@ -39,7 +39,7 @@ def layout(self): def requirements(self): self.requires("eigen/3.4.0") - self.requires("functionalplus/0.2.23") + self.requires("functionalplus/0.2.24") self.requires("nlohmann_json/3.11.3") def package_id(self): diff --git a/recipes/frugally-deep/config.yml b/recipes/frugally-deep/config.yml index ef73eeeb31a1b..4b946ca53d49d 100644 --- a/recipes/frugally-deep/config.yml +++ b/recipes/frugally-deep/config.yml @@ -1,21 +1,9 @@ versions: + "0.16.0": + folder: all "0.15.31": folder: all "0.15.30": folder: all "0.15.29": folder: all - "0.15.25-p0": - folder: all - "0.15.24-p0": - folder: all - "0.15.19-p0": - folder: all - "0.15.18-p0": - folder: all - "0.15.16-p0": - folder: all - "0.15.13-p0": - folder: all - "0.15.1-p0": - folder: all From fc451fa180b0fd554b51a763c60a0572493f5599 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 00:14:02 +0200 Subject: [PATCH 0048/1652] (#23588) abseil: add version 20240116.2 --- recipes/abseil/all/conandata.yml | 12 ++++++++++++ recipes/abseil/config.yml | 2 ++ 2 files changed, 14 insertions(+) diff --git a/recipes/abseil/all/conandata.yml b/recipes/abseil/all/conandata.yml index c6bc5198c7de0..7958f236ae252 100644 --- a/recipes/abseil/all/conandata.yml +++ b/recipes/abseil/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "20240116.2": + url: "https://github.com/abseil/abseil-cpp/archive/20240116.2.tar.gz" + sha256: "733726b8c3a6d39a4120d7e45ea8b41a434cdacde401cba500f14236c49b39dc" "20240116.1": url: "https://github.com/abseil/abseil-cpp/archive/20240116.1.tar.gz" sha256: "3c743204df78366ad2eaf236d6631d83f6bc928d1705dd0000b872e53b73dc6a" @@ -15,6 +18,15 @@ sources: url: "https://github.com/abseil/abseil-cpp/archive/20211102.0.tar.gz" sha256: "dcf71b9cba8dc0ca9940c4b316a0c796be8fab42b070bb6b7cab62b48f0e66c4" patches: + "20240116.2": + - patch_file: "patches/0003-absl-string-libm-20240116.patch" + patch_description: "link libm to absl string" + patch_type: "portability" + patch_source: "https://github.com/abseil/abseil-cpp/issues/1100" + - patch_file: "patches/20240116.1-0001-fix-filesystem-include.patch" + patch_description: "Fix GCC 7 including in C++17 mode when it is not available (until GCC 8)" + patch_type: "portability" + patch_source: "https://github.com/abseil/abseil-cpp/commit/bb83aceacb554e79e7cd2404856f0be30bd00303" "20240116.1": - patch_file: "patches/0003-absl-string-libm-20240116.patch" patch_description: "link libm to absl string" diff --git a/recipes/abseil/config.yml b/recipes/abseil/config.yml index 4db2fe8f16b71..0af2b7beb4451 100644 --- a/recipes/abseil/config.yml +++ b/recipes/abseil/config.yml @@ -1,4 +1,6 @@ versions: + "20240116.2": + folder: all "20240116.1": folder: all "20230802.1": From 8d5b6fc92de57f849545b62cda7be887402a6abc Mon Sep 17 00:00:00 2001 From: Roberto Rossini <71787608+robomics@users.noreply.github.com> Date: Thu, 18 Apr 2024 00:29:48 +0200 Subject: [PATCH 0049/1652] (#23589) hictk: add v0.0.12 and drop v0.0.11 * Update test package to include one of the main headers * Drop broken version This version does not correctly install some of its targets. This is highlighted by the new test_package, which fails to compile (as it should). * Bump deps * Drop unnecessary include from test_package * Add v0.0.12 --- recipes/hictk/all/conandata.yml | 6 +++--- recipes/hictk/all/conanfile.py | 4 ++-- recipes/hictk/all/test_package/test_package.cpp | 13 +++++++++---- recipes/hictk/config.yml | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/recipes/hictk/all/conandata.yml b/recipes/hictk/all/conandata.yml index 8f7bc333d7e7a..950caed4f27fb 100644 --- a/recipes/hictk/all/conandata.yml +++ b/recipes/hictk/all/conandata.yml @@ -1,7 +1,7 @@ sources: - "0.0.11": - url: "https://github.com/paulsengroup/hictk/archive/refs/tags/v0.0.11.tar.gz" - sha256: "a06b674de2301918188d1c890a95aaa4d6164377ebaa44cc07efb77fd9eb654c" + "0.0.12": + url: "https://github.com/paulsengroup/hictk/archive/refs/tags/v0.0.12.tar.gz" + sha256: "03e8f7c0076ea6209fdfee1580658e871895f6a59b895407c4a25512b9558fb7" "0.0.10": url: "https://github.com/paulsengroup/hictk/archive/refs/tags/v0.0.10.tar.gz" sha256: "0b2d60af73578b292317e5ab513f24965176f9852ceda29e8d02007a434588c3" diff --git a/recipes/hictk/all/conanfile.py b/recipes/hictk/all/conanfile.py index 5e466db516caa..287868ebce18c 100644 --- a/recipes/hictk/all/conanfile.py +++ b/recipes/hictk/all/conanfile.py @@ -40,7 +40,7 @@ def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - self.requires("bshoshany-thread-pool/4.0.1", transitive_headers=True) + self.requires("bshoshany-thread-pool/4.1.0", transitive_headers=True) self.requires("fast_float/6.1.1", transitive_headers=True) if self.options.with_eigen: self.requires("eigen/3.4.0", transitive_headers=True) @@ -51,7 +51,7 @@ def requirements(self): self.requires("parallel-hashmap/1.3.11", transitive_headers=True) # Note: v1.3.11 is more recent than v1.37 self.requires("span-lite/0.11.0", transitive_headers=True) self.requires("spdlog/1.13.0", transitive_headers=True) - self.requires("zstd/1.5.5", transitive_headers=True) + self.requires("zstd/1.5.6", transitive_headers=True) if Version(self.version) == "0.0.3": self.requires("xxhash/0.8.2", transitive_headers=True) diff --git a/recipes/hictk/all/test_package/test_package.cpp b/recipes/hictk/all/test_package/test_package.cpp index bbe13ab6a3219..30467b8f8512b 100644 --- a/recipes/hictk/all/test_package/test_package.cpp +++ b/recipes/hictk/all/test_package/test_package.cpp @@ -1,8 +1,13 @@ -#include -#include "hictk/fmt.hpp" -#include "hictk/cooler/utils.hpp" +#include + +#include "hictk/file.hpp" int main(int argc, char** argv) { - fmt::print("{}\n", hictk::cooler::utils::is_cooler(argv[0])); + try { + const hictk::File f(argv[0], 10); // This is expected to throw + return 1; + } catch (const std::exception& e) { + return 0; + } } diff --git a/recipes/hictk/config.yml b/recipes/hictk/config.yml index 3ff8e282beaa5..2b16ffcd223a6 100644 --- a/recipes/hictk/config.yml +++ b/recipes/hictk/config.yml @@ -1,5 +1,5 @@ versions: - "0.0.11": + "0.0.12": folder: all "0.0.10": folder: all From bd980067a3945c4c90c488204b05d24b6de9121f Mon Sep 17 00:00:00 2001 From: toge Date: Thu, 18 Apr 2024 07:48:13 +0900 Subject: [PATCH 0050/1652] (#23487) wasmtime: add version 19.0.2 --- recipes/wasmtime/all/conandata.yml | 30 ++++++++++++++++++++++++++++++ recipes/wasmtime/config.yml | 2 ++ 2 files changed, 32 insertions(+) diff --git a/recipes/wasmtime/all/conandata.yml b/recipes/wasmtime/all/conandata.yml index 033b48ec7ab2e..b2728f2a0c8c0 100644 --- a/recipes/wasmtime/all/conandata.yml +++ b/recipes/wasmtime/all/conandata.yml @@ -1,4 +1,34 @@ sources: + "19.0.2": + Windows: + "x86_64": + url: "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-x86_64-windows-c-api.zip" + sha256: "9814038a400680a322f8c287ccba68fc0c5ffccede31f9ed444e945bdeec5c70" + MinGW: + "x86_64": + url: "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-x86_64-mingw-c-api.zip" + sha256: "0a1c37ec9eebc2322632c8275386f99cdb08c58020ad01409aecde874b8ad364" + Linux: + "x86_64": + url: "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-x86_64-linux-c-api.tar.xz" + sha256: "734f82bc0fcf9e3214db37f4275536ee3b59be8935ec3ffac379b312423ee3ae" + "armv8": + url: "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-aarch64-linux-c-api.tar.xz" + sha256: "6952c3ffcbb0d04c1c7f07c17e945d0fe2b756965d17717fde2c51dcce7465ab" + "s390x": + url: "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-s390x-linux-c-api.tar.xz" + sha256: "536a9a676ffaa143c77fa4e9712e19f6035e93e0d58865d243ad5e15302ef9e8" + Macos: + "x86_64": + url: "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-x86_64-macos-c-api.tar.xz" + sha256: "42948b3dc8ba7061101d83c55d1fb2ed2f537061291739e0582aa8375d6baf76" + "armv8": + url: "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-aarch64-macos-c-api.tar.xz" + sha256: "d5b1121219d3503dac0f8cfc04a0557eea2330107867d0b32b91bd9fe0b62322" + Android: + "armv8": + url: "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-aarch64-linux-c-api.tar.xz" + sha256: "6952c3ffcbb0d04c1c7f07c17e945d0fe2b756965d17717fde2c51dcce7465ab" "18.0.3": Windows: "x86_64": diff --git a/recipes/wasmtime/config.yml b/recipes/wasmtime/config.yml index e2a5b299e7fea..689b3a8f05ac8 100644 --- a/recipes/wasmtime/config.yml +++ b/recipes/wasmtime/config.yml @@ -1,4 +1,6 @@ versions: + "19.0.2": + folder: all "18.0.3": folder: all "16.0.0": From ed40a993227e7c0b838feda80cf8fa5d1ab45e7b Mon Sep 17 00:00:00 2001 From: Dmitry Baryshev Date: Thu, 18 Apr 2024 03:50:59 +0300 Subject: [PATCH 0051/1652] (#23600) [sail] Bump version to 0.9.4 --- recipes/sail/all/conandata.yml | 3 +++ recipes/sail/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/sail/all/conandata.yml b/recipes/sail/all/conandata.yml index 999f5e67c9331..912a033d71e01 100644 --- a/recipes/sail/all/conandata.yml +++ b/recipes/sail/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "0.9.4": + url: "https://github.com/HappySeaFox/sail/archive/v0.9.4.tar.gz" + sha256: "9a8b93c15c4a1afe07c760d2087895a18626034f55917f333aaabe9c9704438f" "0.9.1": url: "https://github.com/HappySeaFox/sail/archive/v0.9.1.tar.gz" sha256: "d02ce889b70d9e237b64806df26b044753e3edf3e87c8af42c32ec9968133a88" diff --git a/recipes/sail/config.yml b/recipes/sail/config.yml index 4f3643b98f32b..2a8dad7a0ab37 100644 --- a/recipes/sail/config.yml +++ b/recipes/sail/config.yml @@ -1,4 +1,6 @@ versions: + "0.9.4": + folder: all "0.9.1": folder: all "0.9.0": From d49e649b68ce3c5bb40e6bb0cae9dc87c8a475c3 Mon Sep 17 00:00:00 2001 From: ericLemanissier Date: Thu, 18 Apr 2024 09:17:01 +0200 Subject: [PATCH 0052/1652] (#23637) wayland: fix conflict with xkbcommon `Version conflict: wayland/1.22.0->libxml2/2.12.5, xkbcommon/1.5.0->libxml2/2.12.6.` https://github.com/ericLemanissier/proof-of-conan/actions/runs/8733193394/job/23961456446#step:7:179 --- recipes/wayland/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/wayland/all/conanfile.py b/recipes/wayland/all/conanfile.py index 84765da40cd8e..a946c8f8c05b2 100644 --- a/recipes/wayland/all/conanfile.py +++ b/recipes/wayland/all/conanfile.py @@ -50,7 +50,7 @@ def requirements(self): if self.options.enable_libraries: self.requires("libffi/3.4.4") if self.options.enable_dtd_validation: - self.requires("libxml2/2.12.5") + self.requires("libxml2/[>=2.12.5 <3]") self.requires("expat/[>=2.6.2 <3]") def validate(self): From 9ebadee2a53d59d11097e1eb6d5d174a6eb2bccb Mon Sep 17 00:00:00 2001 From: toge Date: Thu, 18 Apr 2024 16:28:59 +0900 Subject: [PATCH 0053/1652] (#23605) proxy: add version 2.3.1 --- recipes/proxy/all/conandata.yml | 3 +++ recipes/proxy/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/proxy/all/conandata.yml b/recipes/proxy/all/conandata.yml index ac500679c65c7..91ead9304a757 100644 --- a/recipes/proxy/all/conandata.yml +++ b/recipes/proxy/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "2.3.1": + url: "https://github.com/microsoft/proxy/archive/refs/tags/2.3.1.tar.gz" + sha256: "bfec45ada9cd3dc576df34bbe877c5d03a81906a00759970c0197c3fa041c5c7" "2.3.0": url: "https://github.com/microsoft/proxy/archive/refs/tags/2.3.0.tar.gz" sha256: "ff6f17c5360895776d29ce2b1235de7b42912468b52729810506431e352a78d0" diff --git a/recipes/proxy/config.yml b/recipes/proxy/config.yml index d65710bdd4972..a54a1870999b7 100644 --- a/recipes/proxy/config.yml +++ b/recipes/proxy/config.yml @@ -1,4 +1,6 @@ versions: + "2.3.1": + folder: all "2.3.0": folder: all "2.2.1": From 0c11900294364c4b044ef392c735cf305b0e1ac4 Mon Sep 17 00:00:00 2001 From: toge Date: Thu, 18 Apr 2024 16:41:10 +0900 Subject: [PATCH 0054/1652] (#23604) asio: add version 1.30.2 --- recipes/asio/all/conandata.yml | 3 +++ recipes/asio/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/asio/all/conandata.yml b/recipes/asio/all/conandata.yml index 7484b2d50e440..2701f5013ce40 100644 --- a/recipes/asio/all/conandata.yml +++ b/recipes/asio/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.30.2": + url: "https://github.com/chriskohlhoff/asio/archive/asio-1-30-2.tar.gz" + sha256: "755bd7f85a4b269c67ae0ea254907c078d408cce8e1a352ad2ed664d233780e8" "1.30.1": url: "https://github.com/chriskohlhoff/asio/archive/asio-1-30-1.tar.gz" sha256: "94b121cc2016680f2314ef58eadf169c2d34fff97fba01df325a192d502d3a58" diff --git a/recipes/asio/config.yml b/recipes/asio/config.yml index 1a239b697b8da..1655f339efad7 100644 --- a/recipes/asio/config.yml +++ b/recipes/asio/config.yml @@ -1,4 +1,6 @@ versions: + "1.30.2": + folder: all "1.30.1": folder: all "1.29.0": From 78fe040aa6f5f6a3b09ff919167cbef22bc43e3a Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 09:54:34 +0200 Subject: [PATCH 0055/1652] (#23610) aaf: use expat version range --- recipes/aaf/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/aaf/all/conanfile.py b/recipes/aaf/all/conanfile.py index ee7906ff05936..471ea8132e2ce 100644 --- a/recipes/aaf/all/conanfile.py +++ b/recipes/aaf/all/conanfile.py @@ -35,7 +35,7 @@ def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") self.requires("libjpeg/9e") if self.settings.os in ("FreeBSD", "Linux"): self.requires("util-linux-libuuid/2.39") From 5deb787af418b4397837296eeb0db8a1e86e0e62 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 10:28:57 +0200 Subject: [PATCH 0056/1652] (#23608) exiv2: use expat version range --- recipes/exiv2/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/exiv2/all/conanfile.py b/recipes/exiv2/all/conanfile.py index e0f3dda5c9ab6..749096cccd372 100644 --- a/recipes/exiv2/all/conanfile.py +++ b/recipes/exiv2/all/conanfile.py @@ -76,7 +76,7 @@ def requirements(self): self.requires("libpng/[>=1.6 <2]") self.requires("zlib/[>=1.2.11 <2]") if self.options.with_xmp == "bundled": - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") if self.options.with_curl: self.requires("libcurl/[>=7.78.0 <9]") if self.options.get_safe("with_brotli"): From 11d737760e81793999df766889424882fa9c6aa3 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 10:41:16 +0200 Subject: [PATCH 0057/1652] (#23609) jsbsim: use expat version range --- recipes/jsbsim/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/jsbsim/all/conanfile.py b/recipes/jsbsim/all/conanfile.py index 3d180281b5649..048e4a19a18e0 100644 --- a/recipes/jsbsim/all/conanfile.py +++ b/recipes/jsbsim/all/conanfile.py @@ -48,7 +48,7 @@ def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") def validate(self): if self.settings.compiler.get_safe("cppstd"): From 6ed4bf63c5b2b9dd7a4199c04ab8cfa9be38802f Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 10:54:48 +0200 Subject: [PATCH 0058/1652] (#23611) apr-util: use expat version range --- recipes/apr-util/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/apr-util/all/conanfile.py b/recipes/apr-util/all/conanfile.py index ed635923b1c3a..92e0be4b1f040 100644 --- a/recipes/apr-util/all/conanfile.py +++ b/recipes/apr-util/all/conanfile.py @@ -90,7 +90,7 @@ def requirements(self): if self.options.with_sqlite3: self.requires("sqlite3/3.45.0") if self.options.with_expat: - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") if self.options.with_postgresql: self.requires("libpq/15.4") From dbc68b71b6a84ee66db2c134e7a22913e6d51736 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 11:11:10 +0200 Subject: [PATCH 0059/1652] (#23613) libmetalink: use version range for expat & libxml2 --- recipes/libmetalink/all/conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/libmetalink/all/conanfile.py b/recipes/libmetalink/all/conanfile.py index 10c23cc875879..57b9b280bec17 100644 --- a/recipes/libmetalink/all/conanfile.py +++ b/recipes/libmetalink/all/conanfile.py @@ -53,9 +53,9 @@ def layout(self): def requirements(self): if self.options.xml_backend == "expat": - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") elif self.options.xml_backend == "libxml2": - self.requires("libxml2/2.12.3") + self.requires("libxml2/[>=2.12.5 <3]") def validate(self): if is_msvc(self): From 85854290b51c1bb754e672bd2884e08814206750 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 11:24:51 +0200 Subject: [PATCH 0060/1652] (#23617) xlsxio: use version range for expat --- recipes/xlsxio/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/xlsxio/all/conanfile.py b/recipes/xlsxio/all/conanfile.py index 7724a07d64464..ed6652c07a361 100644 --- a/recipes/xlsxio/all/conanfile.py +++ b/recipes/xlsxio/all/conanfile.py @@ -62,7 +62,7 @@ def requirements(self): self.requires("minizip-ng/4.0.1") else: self.requires("minizip/1.2.13") - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") def validate(self): if Version(self.version) >= "0.2.34": From 14a1c86d8d0603294cd0f70c40bc8c3c944210c9 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 16:54:27 +0200 Subject: [PATCH 0061/1652] (#23623) libarchive: use version range for libxml2 --- recipes/libarchive/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/libarchive/all/conanfile.py b/recipes/libarchive/all/conanfile.py index f83e7f6e3413d..c68aabe657d31 100644 --- a/recipes/libarchive/all/conanfile.py +++ b/recipes/libarchive/all/conanfile.py @@ -87,7 +87,7 @@ def requirements(self): if self.options.with_bzip2: self.requires("bzip2/1.0.8") if self.options.with_libxml2: - self.requires("libxml2/2.12.5") + self.requires("libxml2/[>=2.12.5 <3]") if self.options.with_expat: self.requires("expat/[>=2.6.2 <3]") if self.options.with_iconv: From ab622e0f22627c2d765cba0b90e520e3fbd16f14 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 17:13:20 +0200 Subject: [PATCH 0062/1652] (#23627) hwloc: use version range for libxml2 --- recipes/hwloc/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/hwloc/all/conanfile.py b/recipes/hwloc/all/conanfile.py index 231701d41f587..ff20e76545dae 100644 --- a/recipes/hwloc/all/conanfile.py +++ b/recipes/hwloc/all/conanfile.py @@ -32,7 +32,7 @@ def configure(self): def requirements(self): if self.options.with_libxml2: - self.requires("libxml2/2.12.3") + self.requires("libxml2/[>=2.12.5 <3]") def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) From 2f5627cff08fab4f3ddbeee2d5ecae7224d7796c Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 18 Apr 2024 17:26:21 +0200 Subject: [PATCH 0063/1652] (#23628) norm: use version range for libxml2 --- recipes/norm/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/norm/all/conanfile.py b/recipes/norm/all/conanfile.py index 06df6975769c2..3d4877a41e642 100644 --- a/recipes/norm/all/conanfile.py +++ b/recipes/norm/all/conanfile.py @@ -39,7 +39,7 @@ def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - self.requires("libxml2/2.12.3") # dependency of protolib actually + self.requires("libxml2/[>=2.12.5 <3]") # dependency of protolib actually def source(self): get(self, **self.conan_data["sources"][self.version]) From cc08e2ff73aa6720f1c7a1825873cf0d355d7297 Mon Sep 17 00:00:00 2001 From: ericLemanissier Date: Thu, 18 Apr 2024 17:43:17 +0200 Subject: [PATCH 0064/1652] (#23636) xkbcommon: fix conflict with wayland since https://github.com/conan-io/conan-center-index/commit/3264e15a2117e10f4d286d033876d4bc800e47ff#diff-5c99ca1cb44d19a32c9f1373d8effc9125f8e1b094489ef02ee1cf755feb82f7R53 --- recipes/xkbcommon/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/xkbcommon/all/conanfile.py b/recipes/xkbcommon/all/conanfile.py index 6c59c78b63932..cc9c77df8e95f 100644 --- a/recipes/xkbcommon/all/conanfile.py +++ b/recipes/xkbcommon/all/conanfile.py @@ -66,7 +66,7 @@ def requirements(self): if self.options.with_x11: self.requires("xorg/system") if self.options.get_safe("xkbregistry"): - self.requires("libxml2/2.12.3") + self.requires("libxml2/[>=2.12.5 <3]") if self.options.get_safe("with_wayland"): self.requires("wayland/1.22.0") From 156d3592a823c0d3d297d8c365eee01f27532a49 Mon Sep 17 00:00:00 2001 From: yhsng <153517809+yhsng@users.noreply.github.com> Date: Thu, 18 Apr 2024 23:24:26 +0200 Subject: [PATCH 0065/1652] (#23491) minizip-ng: add missing system dependencies --- recipes/minizip-ng/all/conanfile.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipes/minizip-ng/all/conanfile.py b/recipes/minizip-ng/all/conanfile.py index 7d26ebb7bc61f..6185768b2d0c8 100644 --- a/recipes/minizip-ng/all/conanfile.py +++ b/recipes/minizip-ng/all/conanfile.py @@ -197,6 +197,8 @@ def package_info(self): self.cpp_info.components["minizip"].requires.append("openssl::openssl") elif is_apple_os(self): self.cpp_info.components["minizip"].frameworks.extend(["CoreFoundation", "Security"]) + elif self.settings.os == "Windows": + self.cpp_info.components["minizip"].system_libs.append("crypt32") if self.settings.os != "Windows" and self.options.with_iconv: self.cpp_info.components["minizip"].requires.append("libiconv::libiconv") From 2c8bcee56b6ffaafacef63ba72d8d0f9a9bc9b3c Mon Sep 17 00:00:00 2001 From: Vladimir Shaleev Date: Fri, 19 Apr 2024 03:07:28 +0300 Subject: [PATCH 0066/1652] (#23206) ipaddress: add recipe * ipaddress: add recipe * Improved readability and template compliance from package_templates in conanfile.py * Compiling a test package using C++11 * Target compile features cxx_std_11 --- recipes/ipaddress/all/conandata.yml | 4 + recipes/ipaddress/all/conanfile.py | 89 +++++++++++++++++++ .../ipaddress/all/test_package/CMakeLists.txt | 8 ++ .../ipaddress/all/test_package/conanfile.py | 26 ++++++ .../all/test_package/test_package.cpp | 11 +++ recipes/ipaddress/config.yml | 3 + 6 files changed, 141 insertions(+) create mode 100644 recipes/ipaddress/all/conandata.yml create mode 100644 recipes/ipaddress/all/conanfile.py create mode 100644 recipes/ipaddress/all/test_package/CMakeLists.txt create mode 100644 recipes/ipaddress/all/test_package/conanfile.py create mode 100644 recipes/ipaddress/all/test_package/test_package.cpp create mode 100644 recipes/ipaddress/config.yml diff --git a/recipes/ipaddress/all/conandata.yml b/recipes/ipaddress/all/conandata.yml new file mode 100644 index 0000000000000..05cfe6de06df9 --- /dev/null +++ b/recipes/ipaddress/all/conandata.yml @@ -0,0 +1,4 @@ +sources: + "1.0.1": + url: "https://github.com/VladimirShaleev/ipaddress/archive/v1.0.1.tar.gz" + sha256: "49c16294f06fe95ffc66cae828dc08d116efb4a1ede3dddd21dcc182a2eceb03" diff --git a/recipes/ipaddress/all/conanfile.py b/recipes/ipaddress/all/conanfile.py new file mode 100644 index 0000000000000..1bdda098db7d5 --- /dev/null +++ b/recipes/ipaddress/all/conanfile.py @@ -0,0 +1,89 @@ +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import check_min_cppstd +from conan.tools.files import copy, get +from conan.tools.layout import basic_layout +from conan.tools.scm import Version +import os + + +required_conan_version = ">=1.52.0" + + +class IpAddressConan(ConanFile): + name = "ipaddress" + description = "A library for working and manipulating IPv4/IPv6 addresses and networks" + license = "MIT" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/VladimirShaleev/ipaddress" + topics = ("ipv4", "ipv6", "ipaddress", "ip", "network", "header-only") + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + no_copy_source = True + + options = { + "exceptions": [True, False], + "overload_std": [True, False], + "ipv6_scope": [True, False], + "ipv6_scope_max_length": ["ANY"], + } + default_options = { + "exceptions": True, + "overload_std": True, + "ipv6_scope": True, + "ipv6_scope_max_length": 16, + } + + @property + def _min_cppstd(self): + return 11 + + @property + def _compilers_minimum_version(self): + return { + "apple-clang": "13.0", + "clang": "6.0", + "gcc": "7.5", + "msvc": "192", + "Visual Studio": "16", + } + + def layout(self): + basic_layout(self, src_folder="src") + + def package_id(self): + self.info.clear() + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False) + if minimum_version and Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration( + f"{self.ref} doesn't support {self.settings.compiler} < {minimum_version}" + ) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def package(self): + copy(self, "LICENSE", self.source_folder, os.path.join(self.package_folder, "licenses")) + copy( + self, + "*.hpp", + os.path.join(self.source_folder, "include"), + os.path.join(self.package_folder, "include") + ) + + def package_info(self): + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] + + if not self.options.exceptions: + self.cpp_info.defines.append("IPADDRESS_NO_EXCEPTIONS") + if not self.options.overload_std: + self.cpp_info.defines.append("IPADDRESS_NO_OVERLOAD_STD") + if not self.options.ipv6_scope: + self.cpp_info.defines.append("IPADDRESS_NO_IPV6_SCOPE") + else: + self.cpp_info.defines.append(f"IPADDRESS_IPV6_SCOPE_MAX_LENGTH={int(self.options.ipv6_scope_max_length)}") diff --git a/recipes/ipaddress/all/test_package/CMakeLists.txt b/recipes/ipaddress/all/test_package/CMakeLists.txt new file mode 100644 index 0000000000000..f9368cb4ca108 --- /dev/null +++ b/recipes/ipaddress/all/test_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(ipaddress CONFIG REQUIRED) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} ipaddress::ipaddress) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) diff --git a/recipes/ipaddress/all/test_package/conanfile.py b/recipes/ipaddress/all/test_package/conanfile.py new file mode 100644 index 0000000000000..3a91c9439218e --- /dev/null +++ b/recipes/ipaddress/all/test_package/conanfile.py @@ -0,0 +1,26 @@ +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/ipaddress/all/test_package/test_package.cpp b/recipes/ipaddress/all/test_package/test_package.cpp new file mode 100644 index 0000000000000..1e0a4a4597eaf --- /dev/null +++ b/recipes/ipaddress/all/test_package/test_package.cpp @@ -0,0 +1,11 @@ +#include +#include +#include "ipaddress/ipaddress.hpp" + + +int main(void) { + auto ip = ipaddress::ipv6_address::parse("fec0::1ff:fe23:4567:890a%eth2"); + std::cout << "Parsing ipv6: " << ip << std::endl; + + return EXIT_SUCCESS; +} diff --git a/recipes/ipaddress/config.yml b/recipes/ipaddress/config.yml new file mode 100644 index 0000000000000..715e55357a17b --- /dev/null +++ b/recipes/ipaddress/config.yml @@ -0,0 +1,3 @@ +versions: + "1.0.1": + folder: all From ddd25f95598ed991993a71f9ad138fb2d1c902da Mon Sep 17 00:00:00 2001 From: Carlos Zoido Date: Fri, 19 Apr 2024 02:17:12 +0200 Subject: [PATCH 0067/1652] (#23644) Remove `os.version` from package ID and also removing `no_copy_source = True` in openjdk recipe * remove os.version from package ID * remove no_copy_source * fix recipe --- recipes/openjdk/all/conanfile.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/recipes/openjdk/all/conanfile.py b/recipes/openjdk/all/conanfile.py index 9da58ed44e05f..33d8977b70cc4 100644 --- a/recipes/openjdk/all/conanfile.py +++ b/recipes/openjdk/all/conanfile.py @@ -16,12 +16,14 @@ class OpenJDK(ConanFile): license = "GPL-2.0-only WITH Classpath-exception-2.0", "GPL-2.0-only WITH OpenJDK-assembly-exception-1.0" topics = ("java", "jdk", "openjdk") settings = "os", "arch", "compiler", "build_type" - no_copy_source = True def package_id(self): del self.info.settings.compiler del self.info.settings.build_type + def configure(self): + self.settings.rm_safe("os.version") + def validate(self): if Version(self.version) < "19.0.2" and self.settings.arch != "x86_64": raise ConanInvalidConfiguration("Unsupported Architecture. This package currently only supports x86_64.") @@ -33,35 +35,35 @@ def build(self): if self.settings.os in ["Macos", "Linux"]: key = f"{self.settings.os}_{self.settings.arch}" get(self, **self.conan_data["sources"][self.version][str(key)], - destination=self.source_folder, strip_root=True) + destination=self.build_folder, strip_root=True) def package(self): if self.settings.os == "Macos": - source_folder = os.path.join(self.source_folder, f"jdk-{self.version}.jdk", "Contents", "Home") + build_folder = os.path.join(self.build_folder, f"jdk-{self.version}.jdk", "Contents", "Home") else: - source_folder = self.source_folder - symlinks.remove_broken_symlinks(self, source_folder) + build_folder = self.build_folder + symlinks.remove_broken_symlinks(self, build_folder) copy(self, pattern="*", - src=os.path.join(source_folder, "bin"), + src=os.path.join(build_folder, "bin"), dst=os.path.join(self.package_folder, "bin"), excludes=("msvcp140.dll", "vcruntime140.dll", "vcruntime140_1.dll")) copy(self, pattern="*", - src=os.path.join(source_folder, "include"), + src=os.path.join(build_folder, "include"), dst=os.path.join(self.package_folder, "include")) copy(self, pattern="*", - src=os.path.join(source_folder, "lib"), + src=os.path.join(build_folder, "lib"), dst=os.path.join(self.package_folder, "lib")) copy(self, pattern="*", - src=os.path.join(source_folder, "jmods"), + src=os.path.join(build_folder, "jmods"), dst=os.path.join(self.package_folder, "lib", "jmods")) copy(self, pattern="*", - src=os.path.join(source_folder, "legal"), + src=os.path.join(build_folder, "legal"), dst=os.path.join(self.package_folder, "licenses")) # conf folder is required for security settings, to avoid # java.lang.SecurityException: Can't read cryptographic policy directory: unlimited # https://github.com/conan-io/conan-center-index/pull/4491#issuecomment-774555069 copy(self, pattern="*", - src=os.path.join(source_folder, "conf"), + src=os.path.join(build_folder, "conf"), dst=os.path.join(self.package_folder, "conf")) def package_info(self): From b547df8527ded145ca7afcd04b9ce2243bf8d98b Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Fri, 19 Apr 2024 03:32:08 +0300 Subject: [PATCH 0068/1652] (#18641) libidn: migrate to Conan v2, add shared MSVC build support * libidn: migrate to Conan v2 * libidn: fix MSVC build * libidn: --disable-csharp * libidn: fix shared lib not being found in v1 * libidn: fix MSVC build, add shared MSVC build support * libidn: tc.extra_cflags.append("-FS") --- recipes/libidn/all/conandata.yml | 1 - recipes/libidn/all/conanfile.py | 180 ++++++++++-------- .../libidn/all/test_package/CMakeLists.txt | 7 +- recipes/libidn/all/test_package/conanfile.py | 24 ++- .../libidn/all/test_v1_package/CMakeLists.txt | 8 + .../libidn/all/test_v1_package/conanfile.py | 19 ++ 6 files changed, 150 insertions(+), 89 deletions(-) create mode 100644 recipes/libidn/all/test_v1_package/CMakeLists.txt create mode 100644 recipes/libidn/all/test_v1_package/conanfile.py diff --git a/recipes/libidn/all/conandata.yml b/recipes/libidn/all/conandata.yml index 8be8baf6f09f3..fcb454914799b 100644 --- a/recipes/libidn/all/conandata.yml +++ b/recipes/libidn/all/conandata.yml @@ -5,4 +5,3 @@ sources: patches: "1.36": - patch_file: "patches/0001-unconditional-system-stdint-h.patch" - base_path: "source_subfolder" diff --git a/recipes/libidn/all/conanfile.py b/recipes/libidn/all/conanfile.py index 49221670d5e8e..2512e8efab52b 100644 --- a/recipes/libidn/all/conanfile.py +++ b/recipes/libidn/all/conanfile.py @@ -1,13 +1,14 @@ -from conan import ConanFile -from conan.errors import ConanInvalidConfiguration -from conan.tools.files import get, rmdir -from conan.tools.scm import Version -from conans import AutoToolsBuildEnvironment, tools -import contextlib -import functools import os -required_conan_version = ">=1.33.0" +from conan import ConanFile +from conan.tools.build import cross_building +from conan.tools.env import VirtualBuildEnv, VirtualRunEnv, Environment +from conan.tools.files import get, rmdir, export_conandata_patches, apply_conandata_patches, copy, replace_in_file, rm, save +from conan.tools.gnu import AutotoolsToolchain, Autotools, AutotoolsDeps +from conan.tools.layout import basic_layout +from conan.tools.microsoft import unix_path, is_msvc + +required_conan_version = ">=1.53.0" class LibIdnConan(ConanFile): @@ -17,6 +18,8 @@ class LibIdnConan(ConanFile): topics = ("libidn", "encode", "decode", "internationalized", "domain", "name") license = "GPL-3.0-or-later" url = "https://github.com/conan-io/conan-center-index" + + package_type = "library" settings = "os", "arch", "compiler", "build_type" options = { "shared": [True, False], @@ -29,17 +32,12 @@ class LibIdnConan(ConanFile): "threads": True, } - @property - def _source_subfolder(self): - return "source_subfolder" - @property def _settings_build(self): return getattr(self, "settings_build", self.settings) def export_sources(self): - for patch in self.conan_data.get("patches", {}).get(self.version, []): - self.copy(patch["patch_file"]) + export_conandata_patches(self) def config_options(self): if self.settings.os == "Windows": @@ -47,91 +45,120 @@ def config_options(self): def configure(self): if self.options.shared: - del self.options.fPIC - del self.settings.compiler.libcxx - del self.settings.compiler.cppstd + self.options.rm_safe("fPIC") + self.settings.rm_safe("compiler.libcxx") + self.settings.rm_safe("compiler.cppstd") + + def layout(self): + basic_layout(self, src_folder="src") def requirements(self): self.requires("libiconv/1.17") - def validate(self): - if self.settings.os == "Windows" and self.options.shared: - raise ConanInvalidConfiguration("Shared libraries are not supported on Windows due to libtool limitation") - def build_requirements(self): - if self._settings_build.os == "Windows" and not tools.get_env("CONAN_BASH_PATH"): - self.build_requires("msys2/cci.latest") - if self.settings.compiler == "Visual Studio": - self.build_requires("automake/1.16.5") + if self._settings_build.os == "Windows": + self.win_bash = True + if not self.conf.get("tools.microsoft.bash:path", check_type=str): + self.tool_requires("msys2/cci.latest") + if is_msvc(self): + self.tool_requires("automake/1.16.5") def source(self): - get(self, **self.conan_data["sources"][self.version], - destination=self._source_subfolder, strip_root=True) - - @contextlib.contextmanager - def _build_context(self): - if self.settings.compiler == "Visual Studio": - with tools.vcvars(self): - env = { - "CC": "{} cl -nologo".format(tools.unix_path(self.deps_user_info["automake"].compile)), - "CXX": "{} cl -nologo".format(tools.unix_path(self.deps_user_info["automake"].compile)), - "LD": "{} link -nologo".format(tools.unix_path(self.deps_user_info["automake"].compile)), - "AR": "{} lib".format(tools.unix_path(self.deps_user_info["automake"].ar_lib)), - } - with tools.environment_append(env): - yield - else: - yield + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + env = VirtualBuildEnv(self) + env.generate() + + if not cross_building(self): + env = VirtualRunEnv(self) + env.generate(scope="build") - @functools.lru_cache(1) - def _configure_autotools(self): - autotools = AutoToolsBuildEnvironment(self, win_bash=tools.os_info.is_windows) - autotools.libs = [] + tc = AutotoolsToolchain(self) if not self.options.shared: - autotools.defines.append("LIBIDN_STATIC") - if self.settings.compiler == "Visual Studio": - if Version(self.settings.compiler.version) >= "12": - autotools.flags.append("-FS") - autotools.link_flags.extend("-L{}".format(p.replace("\\", "/")) for p in self.deps_cpp_info.lib_paths) + tc.extra_defines.append("LIBIDN_STATIC") yes_no = lambda v: "yes" if v else "no" - conf_args = [ - "--enable-shared={}".format(yes_no(self.options.shared)), - "--enable-static={}".format(yes_no(not self.options.shared)), + tc.configure_args += [ "--enable-threads={}".format(yes_no(self.options.threads)), - "--with-libiconv-prefix={}".format(tools.unix_path(self.deps_cpp_info["libiconv"].rootpath)), + "--with-libiconv-prefix={}".format(unix_path(self, self.dependencies["libiconv"].package_folder)), + "--disable-csharp", "--disable-nls", "--disable-rpath", ] - autotools.configure(args=conf_args, configure_dir=self._source_subfolder) - return autotools - - def build(self): - for patch in self.conan_data.get("patches", {}).get(self.version, []): - tools.patch(**patch) - if self.settings.compiler == "Visual Studio": + if is_msvc(self): + tc.extra_cflags.append("-FS") + tc.extra_cxxflags.append("-FS") + tc.generate() + + if is_msvc(self): + env = Environment() + dep_info = self.dependencies["libiconv"].cpp_info.aggregated_components() + env.append("CPPFLAGS", [f"-I{unix_path(self, p)}" for p in dep_info.includedirs] + [f"-D{d}" for d in dep_info.defines]) + env.append("_LINK_", [lib if lib.endswith(".lib") else f"{lib}.lib" for lib in (dep_info.libs + dep_info.system_libs)]) + env.append("LDFLAGS", [f"-L{unix_path(self, p)}" for p in dep_info.libdirs] + dep_info.sharedlinkflags + dep_info.exelinkflags) + env.append("CFLAGS", dep_info.cflags) + env.vars(self).save_script("conanautotoolsdeps_cl_workaround") + else: + deps = AutotoolsDeps(self) + deps.generate() + + if is_msvc(self): + env = Environment() + automake_conf = self.dependencies.build["automake"].conf_info + compile_wrapper = unix_path(self, automake_conf.get("user.automake:compile-wrapper", check_type=str)) + ar_wrapper = unix_path(self, automake_conf.get("user.automake:lib-wrapper", check_type=str)) + # Workaround for iconv.lib not being found due to linker flag order + libiconv_libdir = unix_path(self, self.dependencies["libiconv"].cpp_info.aggregated_components().libdir) + env.define("CC", f"{compile_wrapper} cl -nologo -L{libiconv_libdir}") + env.define("CXX", f"{compile_wrapper} cl -nologo") + env.define("LD", "link -nologo") + env.define("AR", f'{ar_wrapper} lib') + env.vars(self).save_script("conanbuild_msvc") + + def _patch_sources(self): + apply_conandata_patches(self) + # Disable examples and tests + for subdir in ["examples", "tests", "fuzz", "gltests", os.path.join("lib", "gltests"), "doc"]: + save(self, os.path.join(self.source_folder, subdir, "Makefile.in"), "all:\ninstall:\n") + + if is_msvc(self): if self.settings.arch in ("x86_64", "armv8", "armv8.3"): ssize = "signed long long int" else: ssize = "signed long int" - tools.replace_in_file(os.path.join(self._source_subfolder, "lib", "stringprep.h"), - "ssize_t", ssize) - with self._build_context(): - autotools = self._configure_autotools() - autotools.make(args=["V=1"]) + replace_in_file(self, os.path.join(self.source_folder, "lib", "stringprep.h"), "ssize_t", ssize) - def package(self): - self.copy("COPYING", src=self._source_subfolder, dst="licenses") - with self._build_context(): - autotools = self._configure_autotools() - autotools.install() + if self.settings.os == "Windows": + # Otherwise tries to create a symlink from GNUmakefile to itself, which fails on Windows + replace_in_file(self, os.path.join(self.source_folder, "configure"), + '"$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;;', "") + replace_in_file(self, os.path.join(self.source_folder, "configure"), + 'ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile"', "") + def build(self): + self._patch_sources() + autotools = Autotools(self) + autotools.configure() + autotools.make() + + def package(self): + copy(self, "COPYING", self.source_folder, os.path.join(self.package_folder, "licenses")) + autotools = Autotools(self) + autotools.install() rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) - tools.remove_files_by_mask(os.path.join(self.package_folder, "lib"), "*.la") + rm(self, "*.la", os.path.join(self.package_folder, "lib"), recursive=True) + + if is_msvc(self) and self.options.shared: + os.rename(os.path.join(self.package_folder, "lib", "idn.dll.lib"), + os.path.join(self.package_folder, "lib", "idn-12.lib")) def package_info(self): - self.cpp_info.libs = ["idn"] - self.cpp_info.names["pkg_config"] = "libidn" + if is_msvc(self) and self.options.shared: + self.cpp_info.libs = ["idn-12"] + else: + self.cpp_info.libs = ["idn"] + self.cpp_info.set_property("pkg_config_name", "libidn") if self.settings.os in ["Linux", "FreeBSD"]: if self.options.threads: self.cpp_info.system_libs = ["pthread"] @@ -139,7 +166,6 @@ def package_info(self): if not self.options.shared: self.cpp_info.defines = ["LIBIDN_STATIC"] + # TODO: to remove in conan v2 bin_path = os.path.join(self.package_folder, "bin") - self.output.info("Appending PATH environment variable: {}".format(bin_path)) self.env_info.PATH.append(bin_path) - diff --git a/recipes/libidn/all/test_package/CMakeLists.txt b/recipes/libidn/all/test_package/CMakeLists.txt index 7b9b613cbb24a..3482998466c6b 100644 --- a/recipes/libidn/all/test_package/CMakeLists.txt +++ b/recipes/libidn/all/test_package/CMakeLists.txt @@ -1,8 +1,7 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package C) -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup() +find_package(libidn REQUIRED CONFIG) add_executable(${PROJECT_NAME} test_package.c) -target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS}) +target_link_libraries(${PROJECT_NAME} PRIVATE libidn::libidn) diff --git a/recipes/libidn/all/test_package/conanfile.py b/recipes/libidn/all/test_package/conanfile.py index 07c965844de9b..441cef7471a37 100644 --- a/recipes/libidn/all/test_package/conanfile.py +++ b/recipes/libidn/all/test_package/conanfile.py @@ -1,10 +1,20 @@ -from conans import ConanFile, CMake, tools import os +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake + class TestPackageConan(ConanFile): - settings = "os", "compiler", "build_type", "arch" - generators = "cmake" + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str, run=True) + + def layout(self): + cmake_layout(self) def build(self): cmake = CMake(self) @@ -12,8 +22,8 @@ def build(self): cmake.build() def test(self): - if not tools.cross_building(self): - self.run("idn --help", run_environment=True) + if can_run(self): + self.run("idn --help", env="conanrun") - bin_path = os.path.join("bin", "test_package") - self.run(bin_path, run_environment=True) + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/libidn/all/test_v1_package/CMakeLists.txt b/recipes/libidn/all/test_v1_package/CMakeLists.txt new file mode 100644 index 0000000000000..91630d79f4abb --- /dev/null +++ b/recipes/libidn/all/test_v1_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package) + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup(TARGETS) + +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/ + ${CMAKE_CURRENT_BINARY_DIR}/test_package/) diff --git a/recipes/libidn/all/test_v1_package/conanfile.py b/recipes/libidn/all/test_v1_package/conanfile.py new file mode 100644 index 0000000000000..3eaa9f0102538 --- /dev/null +++ b/recipes/libidn/all/test_v1_package/conanfile.py @@ -0,0 +1,19 @@ +from conans import ConanFile, CMake, tools +import os + + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "cmake", "cmake_find_package_multi" + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if not tools.cross_building(self): + self.run("idn --help", run_environment=True) + + bin_path = os.path.join("bin", "test_package") + self.run(bin_path, run_environment=True) From 7eed39a8f5a139752a35e57a3b9982c4fb4eb960 Mon Sep 17 00:00:00 2001 From: Lefteris Kotsonis Date: Fri, 19 Apr 2024 08:24:24 +0300 Subject: [PATCH 0069/1652] (#23640) gtest: don't link pthreads if disabled MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rubén Rincón Blanco --- recipes/gtest/all/conanfile.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/recipes/gtest/all/conanfile.py b/recipes/gtest/all/conanfile.py index 556a1401b077b..79d0749381a6f 100644 --- a/recipes/gtest/all/conanfile.py +++ b/recipes/gtest/all/conanfile.py @@ -158,7 +158,8 @@ def package_info(self): self.cpp_info.components["libgtest"].libs = [f"gtest{self._postfix}"] if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.components["libgtest"].system_libs.append("m") - self.cpp_info.components["libgtest"].system_libs.append("pthread") + if not self.options.disable_pthreads: + self.cpp_info.components["libgtest"].system_libs.append("pthread") if self.settings.os == "Neutrino" and self.settings.os.version == "7.1": self.cpp_info.components["libgtest"].system_libs.append("regex") if self.options.shared: From a08c9dbeb48500cfe6b768fd94b8bcd1fe6e79e4 Mon Sep 17 00:00:00 2001 From: Darren Bolduc Date: Fri, 19 Apr 2024 01:37:31 -0400 Subject: [PATCH 0070/1652] (#23267) [google-cloud-cpp] fix grpc_cpp_plugin on macOS, shared * [google-cloud-cpp] try to fix grpc_cpp_plugin on macOS, shared * fix indents * address review comments --- recipes/google-cloud-cpp/2.x/conanfile.py | 13 ++++++++++--- .../google-cloud-cpp/2.x/test_package/conanfile.py | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/recipes/google-cloud-cpp/2.x/conanfile.py b/recipes/google-cloud-cpp/2.x/conanfile.py index 31ff84a094f69..18e1843526a3c 100644 --- a/recipes/google-cloud-cpp/2.x/conanfile.py +++ b/recipes/google-cloud-cpp/2.x/conanfile.py @@ -3,7 +3,7 @@ from conan import ConanFile from conan.tools.build import check_min_cppstd, cross_building from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout -from conan.tools.env import VirtualRunEnv +from conan.tools.env import VirtualBuildEnv, VirtualRunEnv from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, replace_in_file, rmdir from conan.tools.microsoft import check_min_vs, is_msvc from conan.tools.scm import Version @@ -72,6 +72,10 @@ class GoogleCloudCppConan(ConanFile): "bigquery", "bigtable", "iam", "oauth2", "pubsub", "spanner", "storage", } + @property + def _is_legacy_one_profile(self): + return not hasattr(self, "settings_build") + def export_sources(self): export_conandata_patches(self) @@ -157,7 +161,8 @@ def requirements(self): def build_requirements(self): # For the `grpc-cpp-plugin` executable, and indirectly `protoc` - self.tool_requires("grpc/") + if not self._is_legacy_one_profile: + self.tool_requires("grpc/") def generate(self): tc = CMakeToolchain(self) @@ -166,7 +171,9 @@ def generate(self): tc.variables["GOOGLE_CLOUD_CPP_ENABLE_WERROR"] = False tc.variables["GOOGLE_CLOUD_CPP_ENABLE"] = ",".join(self._components()) tc.generate() - VirtualRunEnv(self).generate(scope="build") + VirtualBuildEnv(self).generate() + if self._is_legacy_one_profile: + VirtualRunEnv(self).generate(scope="build") deps = CMakeDeps(self) deps.generate() diff --git a/recipes/google-cloud-cpp/2.x/test_package/conanfile.py b/recipes/google-cloud-cpp/2.x/test_package/conanfile.py index 4544391b62f56..a1ab26b6de654 100644 --- a/recipes/google-cloud-cpp/2.x/test_package/conanfile.py +++ b/recipes/google-cloud-cpp/2.x/test_package/conanfile.py @@ -3,7 +3,7 @@ from conan import ConanFile from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout from conan.tools.build import can_run -from conan.tools.env import VirtualRunEnv +from conan.tools.env import VirtualBuildEnv, VirtualRunEnv from conan.tools.scm import Version @@ -14,6 +14,10 @@ class TestPackageConan(ConanFile): def requirements(self): self.requires(self.tested_reference_str) + @property + def _is_legacy_one_profile(self): + return not hasattr(self, "settings_build") + def layout(self): cmake_layout(self) @@ -30,9 +34,12 @@ def generate(self): tc = CMakeToolchain(self) tc.variables["WITH_COMPUTE"] = self._supports_compute() tc.generate() + if self._is_legacy_one_profile: + VirtualRunEnv(self).generate(scope="build") + else: + VirtualBuildEnv(self).generate() # Environment so that the compiled test executable can load shared libraries - runenv = VirtualRunEnv(self) - runenv.generate(scope="run") + VirtualRunEnv(self).generate(scope="run") deps = CMakeDeps(self) deps.generate() From 597a11b48bd3e5164cbbee0f73622ecbcb898029 Mon Sep 17 00:00:00 2001 From: adamws Date: Fri, 19 Apr 2024 09:10:37 +0200 Subject: [PATCH 0071/1652] (#23498) cyrus-sasl: add option to disable saslauthd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `saslauthd` is a daemon that handles authentication requests on behalf of the SASL library. Package consumers might not be interested in compiling this daemon when integrating SASL protocol in own application. Introduced `with_saslauthd` option which defaults to `True`. On Linux & FreeBSD that was the default when not explicitly added to `configure`. For some cross-compilation scenarios, having this option always enabled was an issue because `-lcrypt` might be missing and it would fail to link (for example when using arm-linux-gnueabihf-gcc toolchain). From now on this optional daemon can be disabled using `with_saslauthd=False`. In such case, `crypt` is not added to `system_libs`. Co-authored-by: Rubén Rincón Blanco --- recipes/cyrus-sasl/all/conanfile.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/recipes/cyrus-sasl/all/conanfile.py b/recipes/cyrus-sasl/all/conanfile.py index e29d9fed196d8..78ec1f2f5f46a 100644 --- a/recipes/cyrus-sasl/all/conanfile.py +++ b/recipes/cyrus-sasl/all/conanfile.py @@ -41,6 +41,7 @@ class CyrusSaslConan(ConanFile): "with_postgresql": [True, False], "with_mysql": [True, False], "with_sqlite3": [True, False], + "with_saslauthd": [True, False], } default_options = { "shared": False, @@ -57,6 +58,7 @@ class CyrusSaslConan(ConanFile): "with_postgresql": False, "with_mysql": False, "with_sqlite3": False, + "with_saslauthd": True, } @property @@ -66,6 +68,9 @@ def _settings_build(self): def config_options(self): if self.settings.os == "Windows": del self.options.fPIC + # saslauthd doesn't compile on Windows + # https://www.cyrusimap.org/sasl/sasl/windows.html#install-windows + del self.options.with_saslauthd if is_msvc(self): # always required del self.options.with_openssl @@ -137,6 +142,7 @@ def _generate_autotools(self): "--with-mysql={}".format(rootpath_no(self.options.with_mysql, "libmysqlclient")), "--without-sqlite", "--with-sqlite3={}".format(rootpath_no(self.options.with_sqlite3, "sqlite3")), + "--with-saslauthd={}".format(yes_no(self.options.with_saslauthd)), ]) if self.options.with_gssapi: tc.configure_args.append("--with-gss_impl=mit") @@ -242,7 +248,9 @@ def package_info(self): self.cpp_info.libs = ["sasl2"] if self.settings.os in ["Linux", "FreeBSD"]: - self.cpp_info.system_libs = ["resolv", "crypt"] + self.cpp_info.system_libs = ["resolv"] + if self.options.with_saslauthd: + self.cpp_info.system_libs.append("crypt") elif is_msvc(self): self.cpp_info.system_libs = ["ws2_32"] From 208ee61598bbd8cf35c1a79c39dd210a8bd55d0d Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Fri, 19 Apr 2024 09:24:34 +0200 Subject: [PATCH 0072/1652] (#23615) openfx: use version range for expat --- recipes/openfx/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/openfx/all/conanfile.py b/recipes/openfx/all/conanfile.py index 935c3113a9393..2fa66bbb90d2a 100644 --- a/recipes/openfx/all/conanfile.py +++ b/recipes/openfx/all/conanfile.py @@ -50,7 +50,7 @@ def layout(self): def requirements(self): self.requires("opengl/system") - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") def validate(self): if self.settings.compiler.get_safe("cppstd"): From 65844ca8498019d7da1f3e3e2b408c0f44a79262 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Fri, 19 Apr 2024 09:38:52 +0200 Subject: [PATCH 0073/1652] (#23616) readosm: use version range for expat --- recipes/readosm/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/readosm/all/conanfile.py b/recipes/readosm/all/conanfile.py index b9c849a552887..8a9b5054afef4 100644 --- a/recipes/readosm/all/conanfile.py +++ b/recipes/readosm/all/conanfile.py @@ -54,7 +54,7 @@ def layout(self): basic_layout(self, src_folder="src") def requirements(self): - self.requires("expat/2.5.0") + self.requires("expat/[>=2.6.2 <3]") self.requires("zlib/[>=1.2.11 <2]") def build_requirements(self): From 20afee68c362208efd5844179ead88f32a15d7fa Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Fri, 19 Apr 2024 09:54:56 +0200 Subject: [PATCH 0074/1652] (#23618) libstudxml: use version range for expat --- recipes/libstudxml/1.1.x/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/libstudxml/1.1.x/conanfile.py b/recipes/libstudxml/1.1.x/conanfile.py index 42db9e71046d4..f5228bce1c824 100644 --- a/recipes/libstudxml/1.1.x/conanfile.py +++ b/recipes/libstudxml/1.1.x/conanfile.py @@ -38,7 +38,7 @@ def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - self.requires("expat/2.5.0", transitive_headers=True, transitive_libs=True) + self.requires("expat/[>=2.6.2 <3]", transitive_headers=True, transitive_libs=True) def source(self): get(self, **self.conan_data["sources"][self.version], From 1d0211d47d1bfed058bcfc559901a8035da3b34e Mon Sep 17 00:00:00 2001 From: Artem Panfilov Date: Fri, 19 Apr 2024 11:10:53 +0300 Subject: [PATCH 0075/1652] (#23633) libxslt: bump libxml2 to v2.12.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * libxslt: bump libxml2 to v2.12.6 * Update recipes/libxslt/all/conanfile.py --------- Co-authored-by: Rubén Rincón Blanco --- recipes/libxslt/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/libxslt/all/conanfile.py b/recipes/libxslt/all/conanfile.py index 711c11f5938b0..ebed177675bb0 100644 --- a/recipes/libxslt/all/conanfile.py +++ b/recipes/libxslt/all/conanfile.py @@ -62,7 +62,7 @@ def layout(self): def requirements(self): if Version(self.version) >= "1.1.39": # see https://github.com/conan-io/conan-center-index/pull/16205#discussion_r1149570846 - self.requires("libxml2/2.12.3", transitive_headers=True, transitive_libs=True) + self.requires("libxml2/[>=2.12.5 <3]", transitive_headers=True, transitive_libs=True) else: self.requires("libxml2/2.11.6", transitive_headers=True, transitive_libs=True) From 1b479ce6a7b1e9a854be7835ee956005fb2276df Mon Sep 17 00:00:00 2001 From: toge Date: Fri, 19 Apr 2024 17:31:29 +0900 Subject: [PATCH 0076/1652] (#23635) streaming-percentile: add recipe * streaming-percentile: add recipe * modify old style * enable C++11 --- .../streaming-percentiles/all/conandata.yml | 10 +++ .../streaming-percentiles/all/conanfile.py | 54 ++++++++++++++++ .../all/patches/3.1.0-0001-add-includes.patch | 62 +++++++++++++++++++ .../all/test_package/CMakeLists.txt | 8 +++ .../all/test_package/conanfile.py | 26 ++++++++ .../all/test_package/test_package.cpp | 16 +++++ recipes/streaming-percentiles/config.yml | 3 + 7 files changed, 179 insertions(+) create mode 100644 recipes/streaming-percentiles/all/conandata.yml create mode 100644 recipes/streaming-percentiles/all/conanfile.py create mode 100644 recipes/streaming-percentiles/all/patches/3.1.0-0001-add-includes.patch create mode 100644 recipes/streaming-percentiles/all/test_package/CMakeLists.txt create mode 100644 recipes/streaming-percentiles/all/test_package/conanfile.py create mode 100644 recipes/streaming-percentiles/all/test_package/test_package.cpp create mode 100644 recipes/streaming-percentiles/config.yml diff --git a/recipes/streaming-percentiles/all/conandata.yml b/recipes/streaming-percentiles/all/conandata.yml new file mode 100644 index 0000000000000..475aaed46b221 --- /dev/null +++ b/recipes/streaming-percentiles/all/conandata.yml @@ -0,0 +1,10 @@ +sources: + "3.1.0": + url: "https://github.com/sengelha/streaming-percentiles/archive/refs/tags/v3.1.0.tar.gz" + sha256: "196d76a7d7ce1bcdb6f720b1c2d8feb1cda62ac18cc6412f8bd907e4eafbab6c" +patches: + "3.1.0": + - patch_file: "patches/3.1.0-0001-add-includes.patch" + patch_description: "include missing headers (already applied to upstream)" + patch_type: "backport" + patch_source: "https://github.com/sengelha/streaming-percentiles/commit/058037eca3e05fafa1b53071137f3c168a9fdd92" diff --git a/recipes/streaming-percentiles/all/conanfile.py b/recipes/streaming-percentiles/all/conanfile.py new file mode 100644 index 0000000000000..6b5b0813aa365 --- /dev/null +++ b/recipes/streaming-percentiles/all/conanfile.py @@ -0,0 +1,54 @@ +from conan import ConanFile +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get +from conan.tools.layout import basic_layout +from conan.tools.build import check_min_cppstd +import os + +required_conan_version = ">=1.52.0" + +class StreamingPercentilesConan(ConanFile): + name = "streaming-percentiles" + description = "Cross-platform, multi-language implementation of multiple streaming percentile algorithms" + license = "MIT" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/sengelha/streaming-percentiles" + topics = ("streaming", "percentiles", "header-only") + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + no_copy_source = True + + @property + def _min_cppstd(self): + return 11 + + def export_sources(self): + export_conandata_patches(self) + + def layout(self): + basic_layout(self, src_folder="src") + + def package_id(self): + self.info.clear() + + def validate(self): + if self.settings.compiler.cppstd: + check_min_cppstd(self, self._min_cppstd) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def build(self): + apply_conandata_patches(self) + + def package(self): + copy(self, "LICENSE", self.source_folder, os.path.join(self.package_folder, "licenses")) + copy( + self, + "*.hpp", + os.path.join(self.source_folder, "cpp", "src"), + self.package_folder, + ) + + def package_info(self): + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] diff --git a/recipes/streaming-percentiles/all/patches/3.1.0-0001-add-includes.patch b/recipes/streaming-percentiles/all/patches/3.1.0-0001-add-includes.patch new file mode 100644 index 0000000000000..8c015b7b047b4 --- /dev/null +++ b/recipes/streaming-percentiles/all/patches/3.1.0-0001-add-includes.patch @@ -0,0 +1,62 @@ +diff --git a/cpp/src/include/stmpct/ckms_hbq.hpp b/cpp/src/include/stmpct/ckms_hbq.hpp +index 87cf860..850d527 100644 +--- a/cpp/src/include/stmpct/ckms_hbq.hpp ++++ b/cpp/src/include/stmpct/ckms_hbq.hpp +@@ -4,6 +4,7 @@ + // quantiles as defined in the paper _Effective Computation of Biased + // Quantiles over Data Streams_ + ++#include + #include "ckms_impl.hpp" + + namespace stmpct { +diff --git a/cpp/src/include/stmpct/ckms_lbq.hpp b/cpp/src/include/stmpct/ckms_lbq.hpp +index fb932af..c62d61d 100644 +--- a/cpp/src/include/stmpct/ckms_lbq.hpp ++++ b/cpp/src/include/stmpct/ckms_lbq.hpp +@@ -4,6 +4,7 @@ + // quantiles as defined in the paper _Effective Computation of Biased + // Quantiles over Data Streams_ + ++#include + #include "ckms_impl.hpp" + + namespace stmpct { +diff --git a/cpp/src/include/stmpct/ckms_tq.hpp b/cpp/src/include/stmpct/ckms_tq.hpp +index ac9dde8..5d1f093 100644 +--- a/cpp/src/include/stmpct/ckms_tq.hpp ++++ b/cpp/src/include/stmpct/ckms_tq.hpp +@@ -4,6 +4,8 @@ + // quantiles as defined in the paper _Effective Computation of Biased + // Quantiles over Data Streams_ + ++#include ++#include + #include "ckms_impl.hpp" + #include "targeted_quantile.hpp" + +diff --git a/cpp/src/include/stmpct/ckms_uq.hpp b/cpp/src/include/stmpct/ckms_uq.hpp +index d0d3837..c417ddc 100644 +--- a/cpp/src/include/stmpct/ckms_uq.hpp ++++ b/cpp/src/include/stmpct/ckms_uq.hpp +@@ -5,6 +5,7 @@ + // Quantiles over Data Streams_. Conceptually nearly equivalent to + // the GK algorithm. + ++#include + #include "ckms_impl.hpp" + + namespace stmpct { +diff --git a/cpp/src/include/stmpct/gk.hpp b/cpp/src/include/stmpct/gk.hpp +index 6b7a1c6..bf4e163 100644 +--- a/cpp/src/include/stmpct/gk.hpp ++++ b/cpp/src/include/stmpct/gk.hpp +@@ -1,6 +1,8 @@ + #pragma once + ++#include + #include ++#include + + // The Greenwald-Khanna algorithm as defined in the paper + // Space-Efficient Online Computation of Quantile Summaries diff --git a/recipes/streaming-percentiles/all/test_package/CMakeLists.txt b/recipes/streaming-percentiles/all/test_package/CMakeLists.txt new file mode 100644 index 0000000000000..0259c93280ffb --- /dev/null +++ b/recipes/streaming-percentiles/all/test_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(streaming-percentiles REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE streaming-percentiles::streaming-percentiles) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) diff --git a/recipes/streaming-percentiles/all/test_package/conanfile.py b/recipes/streaming-percentiles/all/test_package/conanfile.py new file mode 100644 index 0000000000000..3a91c9439218e --- /dev/null +++ b/recipes/streaming-percentiles/all/test_package/conanfile.py @@ -0,0 +1,26 @@ +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/streaming-percentiles/all/test_package/test_package.cpp b/recipes/streaming-percentiles/all/test_package/test_package.cpp new file mode 100644 index 0000000000000..6bead07a3dd0f --- /dev/null +++ b/recipes/streaming-percentiles/all/test_package/test_package.cpp @@ -0,0 +1,16 @@ +#include +#include + +#include "stmpct/gk.hpp" +int main(int argc, char* argv[]) { + double epsilon = 0.1; + stmpct::gk g(epsilon); + for (int i = 0; i < 1000; ++i) + g.insert(rand()); + double p50 = g.quantile(0.5); // Approx. median + double p95 = g.quantile(0.95); // Approx. 95th percentile + + std::cout << "median : " << p50 << " 95th percentile : " << p95 << std::endl; + + return 0; +} diff --git a/recipes/streaming-percentiles/config.yml b/recipes/streaming-percentiles/config.yml new file mode 100644 index 0000000000000..baa80af0c4b7d --- /dev/null +++ b/recipes/streaming-percentiles/config.yml @@ -0,0 +1,3 @@ +versions: + "3.1.0": + folder: all From 7af68ce9b88986b3dd01ed4b419e1c559884d5b8 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Fri, 19 Apr 2024 04:27:34 -0500 Subject: [PATCH 0077/1652] (#23025) libliftoff: Update deps --- recipes/libliftoff/all/conanfile.py | 6 +++--- recipes/libliftoff/all/test_package/conanfile.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/recipes/libliftoff/all/conanfile.py b/recipes/libliftoff/all/conanfile.py index 28626c0146534..372fffe6e790f 100644 --- a/recipes/libliftoff/all/conanfile.py +++ b/recipes/libliftoff/all/conanfile.py @@ -39,16 +39,16 @@ def layout(self): basic_layout(self, src_folder="src") def requirements(self): - self.requires("libdrm/2.4.114") + self.requires("libdrm/2.4.119") def validate(self): if self.settings.os not in ["Linux", "FreeBSD"]: raise ConanInvalidConfiguration(f"{self.name} only supports FreeBSD and Linux") def build_requirements(self): - self.tool_requires("meson/1.2.2") + self.tool_requires("meson/1.3.2") if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str): - self.tool_requires("pkgconf/2.0.3") + self.tool_requires("pkgconf/2.1.0") def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) diff --git a/recipes/libliftoff/all/test_package/conanfile.py b/recipes/libliftoff/all/test_package/conanfile.py index 5aab0703e7a4e..cdcf9b281723d 100644 --- a/recipes/libliftoff/all/test_package/conanfile.py +++ b/recipes/libliftoff/all/test_package/conanfile.py @@ -17,9 +17,9 @@ def requirements(self): self.requires(self.tested_reference_str) def build_requirements(self): - self.tool_requires("meson/1.2.2") + self.tool_requires("meson/1.3.2") if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str): - self.tool_requires("pkgconf/2.0.3") + self.tool_requires("pkgconf/2.1.0") def build(self): meson = Meson(self) From 28b987ff9ac9a0f33a70fadde15cdc337524243d Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Fri, 19 Apr 2024 11:30:01 +0200 Subject: [PATCH 0078/1652] (#23619) poco: use version range for expat --- recipes/poco/all/conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/poco/all/conanfile.py b/recipes/poco/all/conanfile.py index b2d6762eae55d..8223c242f01e0 100644 --- a/recipes/poco/all/conanfile.py +++ b/recipes/poco/all/conanfile.py @@ -157,7 +157,7 @@ def requirements(self): self.requires("pcre2/10.42") self.requires("zlib/[>=1.2.11 <2]", transitive_headers=True) if self.options.enable_xml: - self.requires("expat/2.5.0", transitive_headers=True) + self.requires("expat/[>=2.6.2 <3]", transitive_headers=True) if self.options.enable_data_sqlite: self.requires("sqlite3/3.45.0") if self.options.enable_apacheconnector: From 72689dc9b9b660b7ae508e82ad3ac06f9801c12b Mon Sep 17 00:00:00 2001 From: toge Date: Fri, 19 Apr 2024 19:48:08 +0900 Subject: [PATCH 0079/1652] (#23343) glaze: add version 2.5.3, remove older versions * glaze: add version 2.4.2, remove older versions * update 2.4.4 * update 2.4.5 * update 2.5.0 * update 2.5.1 * update 2.5.2 * update 2.5.3 --- recipes/glaze/all/conandata.yml | 24 +++--------------------- recipes/glaze/all/conanfile.py | 7 ++----- recipes/glaze/config.yml | 16 ++-------------- 3 files changed, 7 insertions(+), 40 deletions(-) diff --git a/recipes/glaze/all/conandata.yml b/recipes/glaze/all/conandata.yml index 3e64f60544255..f5ff6f3fbd268 100644 --- a/recipes/glaze/all/conandata.yml +++ b/recipes/glaze/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "2.5.3": + url: "https://github.com/stephenberry/glaze/archive/v2.5.3.tar.gz" + sha256: "f4c5eb83c80f1caa0feaa831715e9982203908ea140242cb061aead161e2b09b" "2.4.0": url: "https://github.com/stephenberry/glaze/archive/v2.4.0.tar.gz" sha256: "be8cfb94c0b4b13c0a1fc846e2c112614d2dda02a49977fcdeea544876b3625b" @@ -17,31 +20,10 @@ sources: "2.1.9": url: "https://github.com/stephenberry/glaze/archive/v2.1.9.tar.gz" sha256: "678126f068e3c21c2b3d2e1ae914c72296b68610a004cf542ea050946ab06416" - "2.1.7": - url: "https://github.com/stephenberry/glaze/archive/v2.1.7.tar.gz" - sha256: "e110bfc6494ca3a0616beaec214e61a53d4e0bd1489d8f1a45ca6f87594a3502" # Keep 2.1.6 for now as 2.1.7 had some breaking changes "2.1.6": url: "https://github.com/stephenberry/glaze/archive/v2.1.6.tar.gz" sha256: "5ae31b1a48a5b54b84e115a12195341bfbe39f03f92bb3bcad074f984380f72d" - "2.1.4": - url: "https://github.com/stephenberry/glaze/archive/v2.1.4.tar.gz" - sha256: "cbaba4dfbaaf342c8be8e6834cb79933b080ac89f3aa1470bc7a83197d9ebc1a" - "2.1.0": - url: "https://github.com/stephenberry/glaze/archive/v2.1.0.tar.gz" - sha256: "b3bb4d886f17d266f37a6eec2c42b2e57e287918b20511297c4eb6b9960f0f8f" "2.0.9": url: "https://github.com/stephenberry/glaze/archive/v2.0.9.tar.gz" sha256: "c1ffede3db5c74d2c46a3abe576985dc729c95df1b48ab575079427b55488bbd" - "2.0.7": - url: "https://github.com/stephenberry/glaze/archive/v2.0.7.tar.gz" - sha256: "1bf981e72733fb5a02a91c9642d91fa39e4a1ebe42f81e8fc6a016c11ed762cb" - "2.0.6": - url: "https://github.com/stephenberry/glaze/archive/v2.0.6.tar.gz" - sha256: "aa5d4921382e9781998ebbf6d36964556daa3367a2aef5ca814122502b450abc" - "1.9.9": - url: "https://github.com/stephenberry/glaze/archive/v1.9.9.tar.gz" - sha256: "7e2605046742a89ec455887a5a0d6b3188ed5c14ea309c5eb9814848c26bedca" - "1.8.5": - url: "https://github.com/stephenberry/glaze/archive/v1.8.5.tar.gz" - sha256: "5d876eed5689f1947ea4eafd9f13a4e0b527611a6b1857c79a5d598a856287b4" diff --git a/recipes/glaze/all/conanfile.py b/recipes/glaze/all/conanfile.py index b7b6a8eb1447b..5aa4f4a0b6446 100644 --- a/recipes/glaze/all/conanfile.py +++ b/recipes/glaze/all/conanfile.py @@ -25,17 +25,14 @@ def _min_cppstd(self): @property def _compilers_minimum_version(self): - versions = { + return { "Visual Studio": "17", "msvc": "193", - "gcc": "10", + "gcc": "11", # glaze >= 2.1.6 uses std::bit_cast which is supported by clang >= 14 "clang": "12" if Version(self.version) < "2.1.6" else "14", "apple-clang": "13.1", } - if Version(self.version) >= "1.9.0": - versions["gcc"] = "11" - return versions def layout(self): basic_layout(self, src_folder="src") diff --git a/recipes/glaze/config.yml b/recipes/glaze/config.yml index bd5802e146152..1c181d0a555d2 100644 --- a/recipes/glaze/config.yml +++ b/recipes/glaze/config.yml @@ -1,4 +1,6 @@ versions: + "2.5.3": + folder: all "2.4.0": folder: all "2.3.2": @@ -11,21 +13,7 @@ versions: folder: all "2.1.9": folder: all - "2.1.7": - folder: all "2.1.6": folder: all - "2.1.4": - folder: all - "2.1.0": - folder: all "2.0.9": folder: all - "2.0.7": - folder: all - "2.0.6": - folder: all - "1.9.9": - folder: all - "1.8.5": - folder: all From 9bb342065ffaae1f6fd46594ea14e8ff7bfd9a4a Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Fri, 19 Apr 2024 16:11:26 +0300 Subject: [PATCH 0080/1652] (#18800) openldap: migrate to Conan v2 * openldap: migrate to Conan v2 * openldap: clean up package_folder * openldap: bump cyrus-sasl * openldap: add VirtualRunEnv for OpenSSL * openldap: add v2.6.6, simplify patching * openldap: project is C-only, not C++ * openldap: add resolv system dep * openldap: downgrade to cyrus-sasl/2.1.27 to fix missing binary, maybe * openldap: bump cyrus-sasl * openldap: bump to v2.6.7 * openldap: apply PR suggestions * openldap: add components with pkg_config_names * Simplify slapd install for openldap Signed-off-by: Uilian Ries --------- Signed-off-by: Uilian Ries Co-authored-by: Uilian Ries --- recipes/openldap/all/conandata.yml | 11 +- recipes/openldap/all/conanfile.py | 152 +++++++++--------- .../all/patches/configure-2.6.1.patch | 12 -- .../openldap/all/test_package/CMakeLists.txt | 13 +- .../openldap/all/test_package/conanfile.py | 21 ++- .../{test_package.cpp => test_package.c} | 5 +- .../all/test_v1_package/CMakeLists.txt | 8 + .../openldap/all/test_v1_package/conanfile.py | 17 ++ recipes/openldap/config.yml | 2 + 9 files changed, 134 insertions(+), 107 deletions(-) delete mode 100644 recipes/openldap/all/patches/configure-2.6.1.patch rename recipes/openldap/all/test_package/{test_package.cpp => test_package.c} (99%) create mode 100644 recipes/openldap/all/test_v1_package/CMakeLists.txt create mode 100644 recipes/openldap/all/test_v1_package/conanfile.py diff --git a/recipes/openldap/all/conandata.yml b/recipes/openldap/all/conandata.yml index 9fc035f4ad145..0b8d44649e6e8 100644 --- a/recipes/openldap/all/conandata.yml +++ b/recipes/openldap/all/conandata.yml @@ -1,8 +1,7 @@ sources: + "2.6.7": + url: "https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.6.7.tgz" + sha256: "cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930" "2.6.1": - url: https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.6.1.tgz - sha256: 9d576ea6962d7db8a2e2808574e8c257c15aef55f403a1fb5a0faf35de70e6f3 -patches: - "2.6.1": - - base_path: source_subfolder - patch_file: patches/configure-2.6.1.patch + url: "https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.6.1.tgz" + sha256: "9d576ea6962d7db8a2e2808574e8c257c15aef55f403a1fb5a0faf35de70e6f3" diff --git a/recipes/openldap/all/conanfile.py b/recipes/openldap/all/conanfile.py index 49a19895302e6..dd459608a66e3 100644 --- a/recipes/openldap/all/conanfile.py +++ b/recipes/openldap/all/conanfile.py @@ -1,110 +1,114 @@ import os -from conans import ConanFile, AutoToolsBuildEnvironment, tools -from conans.errors import ConanInvalidConfiguration -required_conan_version = ">=1.43.0" + +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import cross_building +from conan.tools.env import VirtualRunEnv +from conan.tools.files import chdir, copy, get, rm, rmdir, replace_in_file +from conan.tools.gnu import Autotools, AutotoolsDeps, AutotoolsToolchain +from conan.tools.layout import basic_layout + +required_conan_version = ">=1.53.0" class OpenldapConan(ConanFile): name = "openldap" - description = "OpenLDAP C++ library" + description = "OpenLDAP C library" + license = "OLDAP-2.8" url = "https://github.com/conan-io/conan-center-index" homepage = "https://www.openldap.org/" - license = "OLDAP-2.8" topics = ("ldap", "load-balancer", "directory-access") - exports_sources = ["patches/*"] - settings = settings = "os", "compiler", "build_type", "arch" + + package_type = "library" + settings = "os", "arch", "compiler", "build_type" options = { "shared": [True, False], "fPIC": [True, False], - "with_cyrus_sasl": [True, False] + "with_cyrus_sasl": [True, False], } default_options = { "shared": False, "fPIC": True, - "with_cyrus_sasl": True - + "with_cyrus_sasl": True, } - _autotools = None - _configure_vars = None - - @property - def _source_subfolder(self): - return "source_subfolder" def configure(self): if self.options.shared: - del self.options.fPIC + self.options.rm_safe("fPIC") + self.settings.rm_safe("compiler.cppstd") + self.settings.rm_safe("compiler.libcxx") - def source(self): - tools.get(**self.conan_data["sources"][self.version], - strip_root=True, destination=self._source_subfolder) + def layout(self): + basic_layout(self, src_folder="src") def requirements(self): - self.requires("openssl/1.1.1q") + self.requires("openssl/[>=1.1 <4]") if self.options.with_cyrus_sasl: - self.requires("cyrus-sasl/2.1.27") + self.requires("cyrus-sasl/2.1.28") def validate(self): - if self.settings.os != "Linux": - raise ConanInvalidConfiguration( - f"{self.name} is only supported on Linux") - - def _configure_autotools(self): - if self._autotools: - return self._autotools - - def yes_no(v): return "yes" if v else "no" - self._autotools = AutoToolsBuildEnvironment(self) - configure_args = [ - "--enable-shared={}".format(yes_no(self.options.shared)), - "--enable-static={}".format(yes_no(not self.options.shared)), + if self.settings.os not in ["Linux", "FreeBSD"]: + raise ConanInvalidConfiguration(f"{self.name} is only supported on Linux") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + if not cross_building(self): + env = VirtualRunEnv(self) + env.generate(scope="build") + + def yes_no(v): + return "yes" if v else "no" + + tc = AutotoolsToolchain(self) + tc.configure_args += [ "--with-cyrus_sasl={}".format(yes_no(self.options.with_cyrus_sasl)), - "--with-pic={}".format(yes_no(self.options.get_safe("fPIC", True))), "--without-fetch", "--with-tls=openssl", - "--enable-auditlog"] - self._configure_vars = self._autotools.vars - self._configure_vars["systemdsystemunitdir"] = os.path.join( - self.package_folder, "res") - - # Need to link to -pthread instead of -lpthread for gcc 8 shared=True - # on CI job. Otherwise, linking fails. - self._autotools.libs.remove("pthread") - self._configure_vars["LIBS"] = self._configure_vars["LIBS"].replace( - "-lpthread", "-pthread") - - self._autotools.configure( - args=configure_args, - configure_dir=self._source_subfolder, - vars=self._configure_vars) - return self._autotools + "--enable-auditlog", + "--libexecdir=${prefix}/bin", + f"systemdsystemunitdir={os.path.join(self.package_folder, 'res')}", + ] + tc.generate() + tc = AutotoolsDeps(self) + tc.generate() + + def _patch_sources(self): + replace_in_file(self, os.path.join(self.source_folder, "configure"), + "WITH_SYSTEMD=no\nsystemdsystemunitdir=", "WITH_SYSTEMD=no") def build(self): - for patch in self.conan_data["patches"][self.version]: - tools.patch(**patch) - autotools = self._configure_autotools() - - autotools.make(vars=self._configure_vars) + self._patch_sources() + with chdir(self, self.source_folder): + autotools = Autotools(self) + autotools.configure() + autotools.make() def package(self): - autotools = self._configure_autotools() - autotools.install(vars=self._configure_vars) - self.copy("LICENSE", dst="licenses", src=self._source_subfolder) - self.copy("COPYRIGHT", dst="licenses", src=self._source_subfolder) - for folder in ["var", "share", "etc", "lib/pkgconfig", "res"]: - tools.rmdir(os.path.join(self.package_folder, folder)) - tools.remove_files_by_mask( - os.path.join( - self.package_folder, - "lib"), - "*.la") + with chdir(self, self.source_folder): + autotools = Autotools(self) + autotools.install() + copy(self, "LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder) + copy(self, "COPYRIGHT", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder) + rm(self, "*.la", self.package_folder, recursive=True) + for folder in ["var", "share", "etc", os.path.join("lib", "pkgconfig"), "home"]: + rmdir(self, os.path.join(self.package_folder, folder)) def package_info(self): - bin_path = os.path.join(self.package_folder, "bin") - self.env_info.PATH.append(bin_path) - self.output.info( - "Appending PATH environment variable: {}".format(bin_path)) + self.cpp_info.components["ldap"].set_property("pkg_config_name", "ldap") + self.cpp_info.components["ldap"].libs = ["ldap"] + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.components["ldap"].system_libs = ["pthread", "resolv"] + self.cpp_info.components["ldap"].requires = ["lber", "openssl::ssl", "openssl::crypto"] + if self.options.with_cyrus_sasl: + self.cpp_info.components["ldap"].requires.append("cyrus-sasl::cyrus-sasl") - self.cpp_info.libs = ["ldap", "lber"] + self.cpp_info.components["lber"].set_property("pkg_config_name", "lber") + self.cpp_info.components["lber"].libs = ["lber"] if self.settings.os in ["Linux", "FreeBSD"]: - self.cpp_info.system_libs = ["pthread"] + self.cpp_info.components["lber"].system_libs = ["pthread"] + + # TODO: to remove in conan v2 + bin_path = os.path.join(self.package_folder, "bin") + self.env_info.PATH.append(bin_path) diff --git a/recipes/openldap/all/patches/configure-2.6.1.patch b/recipes/openldap/all/patches/configure-2.6.1.patch deleted file mode 100644 index 9fb405dfefc10..0000000000000 --- a/recipes/openldap/all/patches/configure-2.6.1.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/configure b/configure -index 8521174..8ea6133 100755 ---- a/configure -+++ b/configure -@@ -22337,7 +22337,6 @@ $as_echo "$as_me: WARNING: Strong authentication not supported!" >&2;} - fi - - WITH_SYSTEMD=no --systemdsystemunitdir= - ol_link_systemd=no - if test $ol_enable_slapd == no && test $ol_enable_balancer != yes ; then - if test $ol_with_systemd != no ; then diff --git a/recipes/openldap/all/test_package/CMakeLists.txt b/recipes/openldap/all/test_package/CMakeLists.txt index fb813fde0a56b..c77039fd606a9 100644 --- a/recipes/openldap/all/test_package/CMakeLists.txt +++ b/recipes/openldap/all/test_package/CMakeLists.txt @@ -1,8 +1,7 @@ -cmake_minimum_required(VERSION 3.1) -project(test_package) -include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) -conan_basic_setup(TARGETS) -find_package(openldap CONFIG REQUIRED) -add_executable(${PROJECT_NAME} test_package.cpp) +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES C) + +find_package(openldap REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.c) target_link_libraries(${PROJECT_NAME} openldap::openldap) -set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11) diff --git a/recipes/openldap/all/test_package/conanfile.py b/recipes/openldap/all/test_package/conanfile.py index 49a3a66ea5bad..ef5d7042163ec 100644 --- a/recipes/openldap/all/test_package/conanfile.py +++ b/recipes/openldap/all/test_package/conanfile.py @@ -1,10 +1,19 @@ -from conans import ConanFile, CMake, tools +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake import os class TestPackageConan(ConanFile): - settings = "os", "compiler", "build_type", "arch" - generators = "cmake", "cmake_find_package_multi" + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) def build(self): cmake = CMake(self) @@ -12,6 +21,6 @@ def build(self): cmake.build() def test(self): - if not tools.cross_building(self): - bin_path = os.path.join("bin", "test_package") - self.run(bin_path, run_environment=True) + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/openldap/all/test_package/test_package.cpp b/recipes/openldap/all/test_package/test_package.c similarity index 99% rename from recipes/openldap/all/test_package/test_package.cpp rename to recipes/openldap/all/test_package/test_package.c index ab1267d80b23a..ca578bf88f1df 100644 --- a/recipes/openldap/all/test_package/test_package.cpp +++ b/recipes/openldap/all/test_package/test_package.c @@ -29,10 +29,11 @@ * for inclusion in OpenLDAP software. */ -#include -#include #include "openldap.h" +#include +#include + static int do_uri_create(LDAPURLDesc *lud) { char *uri; diff --git a/recipes/openldap/all/test_v1_package/CMakeLists.txt b/recipes/openldap/all/test_v1_package/CMakeLists.txt new file mode 100644 index 0000000000000..91630d79f4abb --- /dev/null +++ b/recipes/openldap/all/test_v1_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package) + +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup(TARGETS) + +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/ + ${CMAKE_CURRENT_BINARY_DIR}/test_package/) diff --git a/recipes/openldap/all/test_v1_package/conanfile.py b/recipes/openldap/all/test_v1_package/conanfile.py new file mode 100644 index 0000000000000..49a3a66ea5bad --- /dev/null +++ b/recipes/openldap/all/test_v1_package/conanfile.py @@ -0,0 +1,17 @@ +from conans import ConanFile, CMake, tools +import os + + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "cmake", "cmake_find_package_multi" + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if not tools.cross_building(self): + bin_path = os.path.join("bin", "test_package") + self.run(bin_path, run_environment=True) diff --git a/recipes/openldap/config.yml b/recipes/openldap/config.yml index 36b28f1209ae7..7177bd469e00d 100644 --- a/recipes/openldap/config.yml +++ b/recipes/openldap/config.yml @@ -1,3 +1,5 @@ versions: + "2.6.7": + folder: all "2.6.1": folder: all From 9399ff65826a9070d49482ac9e9c7938db8ac79b Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Fri, 19 Apr 2024 22:09:46 +0800 Subject: [PATCH 0081/1652] (#23479) aws-kvs-pic: add version v1.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * aws-kvs-pic: add version v1.1.0 Signed-off-by: bigcat26 * Add mising config.yml entry * Update recipes/aws-kvs-pic/config.yml * Add missing debug_build define in cppinfo * Guard define based on version * Fix Version import --------- Signed-off-by: bigcat26 Co-authored-by: Rubén Rincón Blanco --- recipes/aws-kvs-pic/all/conandata.yml | 3 +++ recipes/aws-kvs-pic/all/conanfile.py | 5 +++++ recipes/aws-kvs-pic/config.yml | 2 ++ 3 files changed, 10 insertions(+) diff --git a/recipes/aws-kvs-pic/all/conandata.yml b/recipes/aws-kvs-pic/all/conandata.yml index 4be3843841ab1..5e5052a1a9680 100644 --- a/recipes/aws-kvs-pic/all/conandata.yml +++ b/recipes/aws-kvs-pic/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.1.0": + url: "https://github.com/awslabs/amazon-kinesis-video-streams-pic/archive/refs/tags/v1.1.0.tar.gz" + sha256: "ef45723cd439f855bae2304d9488b68cd6d1e0dc3203c97ebd1cbb26197edb55" "1.0.1": url: "https://github.com/awslabs/amazon-kinesis-video-streams-pic/archive/refs/tags/v1.0.1.tar.gz" sha256: "d04732217c74687c5498665b353cb089d725ca7f5b5da61a3f984f7fbefb2ac9" diff --git a/recipes/aws-kvs-pic/all/conanfile.py b/recipes/aws-kvs-pic/all/conanfile.py index a0653e082edea..e8a1073232807 100644 --- a/recipes/aws-kvs-pic/all/conanfile.py +++ b/recipes/aws-kvs-pic/all/conanfile.py @@ -4,6 +4,7 @@ from conan.errors import ConanInvalidConfiguration from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout from conan.tools.files import copy, get, rmdir, replace_in_file +from conan.tools.scm import Version required_conan_version = ">=1.53.0" @@ -72,6 +73,10 @@ def package_info(self): self.cpp_info.components["kvspic"].set_property("pkg_config_name", "libkvspic") if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.components["kvspic"].system_libs = ["dl", "rt", "pthread"] + + if Version(self.version) >= "1.1.0": + if self.settings.build_type == "Debug": + self.cpp_info.components["kvspic"].defines = ["DEBUG_BUILD"] self.cpp_info.components["kvspicClient"].libs = ["kvspicClient"] self.cpp_info.components["kvspicClient"].set_property("pkg_config_name", "libkvspicClient") diff --git a/recipes/aws-kvs-pic/config.yml b/recipes/aws-kvs-pic/config.yml index 42adf0e62a4df..f7630e1054b00 100644 --- a/recipes/aws-kvs-pic/config.yml +++ b/recipes/aws-kvs-pic/config.yml @@ -1,4 +1,6 @@ versions: + "1.1.0": + folder: all "1.0.1": folder: all "cci.20210812": From 85a1ba974be7877bb9a6395f462c041e244a439e Mon Sep 17 00:00:00 2001 From: Jens Carl Date: Fri, 19 Apr 2024 18:29:24 -0700 Subject: [PATCH 0082/1652] (#23582) cmake: add version 3.29.2 --- recipes/cmake/binary/conandata.yml | 19 +++++++++++++++++++ recipes/cmake/config.yml | 2 ++ 2 files changed, 21 insertions(+) diff --git a/recipes/cmake/binary/conandata.yml b/recipes/cmake/binary/conandata.yml index 25e592bef0ec8..71b9095645b4b 100644 --- a/recipes/cmake/binary/conandata.yml +++ b/recipes/cmake/binary/conandata.yml @@ -1,4 +1,23 @@ sources: + "3.29.2": + Linux: + armv8: + url: "https://cmake.org/files/v3.29/cmake-3.29.2-linux-aarch64.tar.gz" + sha256: "ca883c6dc3ce9eebd833804f0f940ecbbff603520cfd169ee58916dbbc23c2b8" + x86_64: + url: "https://cmake.org/files/v3.29/cmake-3.29.2-linux-x86_64.tar.gz" + sha256: "0416c70cf88e8f92efcbfe292e181bc09ead7d70e29ab37b697522c01121eab5" + Macos: + universal: + url: "https://cmake.org/files/v3.29/cmake-3.29.2-macos10.10-universal.tar.gz" + sha256: "0b542389345b28d2f73122b72ec9b899947e643fd86cf8f42bae2718884d2ad3" + Windows: + armv8: + url: "https://cmake.org/files/v3.29/cmake-3.29.2-windows-arm64.zip" + sha256: "5b16a0db4966c04582c40131038de49d5b0161fcd950dc9e955753dfab858882" + x86_64: + url: "https://cmake.org/files/v3.29/cmake-3.29.2-windows-x86_64.zip" + sha256: "86b5de51f60a0e9d62be4d8ca76ea467d154083d356fcc9af1409606be341cd8" "3.29.0": Linux: armv8: diff --git a/recipes/cmake/config.yml b/recipes/cmake/config.yml index 6f9c7e82ab831..839417c0a8da6 100644 --- a/recipes/cmake/config.yml +++ b/recipes/cmake/config.yml @@ -1,4 +1,6 @@ versions: + "3.29.2": + folder: "binary" "3.29.0": folder: "binary" "3.28.1": From aa46c242ab16abb51d904251220a91dce071d36f Mon Sep 17 00:00:00 2001 From: Marian Klymov Date: Sat, 20 Apr 2024 05:15:17 +0300 Subject: [PATCH 0083/1652] (#23651) onetbb: add 2021.12.0 * onetbb: add 2021.12.0 * cosmetic: split long line into multiple lines --- recipes/onetbb/all/conandata.yml | 3 +++ recipes/onetbb/all/conanfile.py | 9 ++++++--- recipes/onetbb/config.yml | 2 ++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/recipes/onetbb/all/conandata.yml b/recipes/onetbb/all/conandata.yml index 4839476518f75..d6288f698e49a 100644 --- a/recipes/onetbb/all/conandata.yml +++ b/recipes/onetbb/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "2021.12.0": + url: "https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2021.12.0.tar.gz" + sha256: "c7bb7aa69c254d91b8f0041a71c5bcc3936acb64408a1719aec0b2b7639dd84f" "2021.10.0": url: "https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2021.10.0.tar.gz" sha256: "487023a955e5a3cc6d3a0d5f89179f9b6c0ae7222613a7185b0227ba0c83700b" diff --git a/recipes/onetbb/all/conanfile.py b/recipes/onetbb/all/conanfile.py index b0c66b51e5856..7031f90417a73 100644 --- a/recipes/onetbb/all/conanfile.py +++ b/recipes/onetbb/all/conanfile.py @@ -3,7 +3,7 @@ from conan.tools.build import cross_building from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout from conan.tools.env import VirtualBuildEnv -from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, get, load, rmdir +from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, get, load, rmdir, rm from conan.tools.gnu import PkgConfigDeps from conan.tools.scm import Version import os @@ -52,7 +52,7 @@ def _tbbbind_hwloc_version(self): @property def _tbbbind_supported(self): - return self.settings.os != "Macos" + return self.settings.os != "Macos" or Version(self.version) >= "2021.11.0" @property def _tbbbind_build(self): @@ -120,7 +120,9 @@ def generate(self): toolchain.variables["TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH"] = not self._tbbbind_build if self._tbbbind_explicit_hwloc: hwloc_package_folder = self.dependencies["hwloc"].package_folder - hwloc_lib_name = "hwloc.lib" if self.settings.os == "Windows" else "libhwloc.so" + hwloc_lib_name = ("hwloc.lib" if self.settings.os == "Windows" else + "libhwloc.dylib" if self.settings.os == "Macos" else + "libhwloc.so") toolchain.variables[f"CMAKE_HWLOC_{self._tbbbind_hwloc_version}_LIBRARY_PATH"] = \ os.path.join(hwloc_package_folder, "lib", hwloc_lib_name).replace("\\", "/") toolchain.variables[f"CMAKE_HWLOC_{self._tbbbind_hwloc_version}_INCLUDE_PATH"] = \ @@ -147,6 +149,7 @@ def package(self): rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) + rm(self, "*.pdb", os.path.join(self.package_folder, "bin")) def package_info(self): self.cpp_info.set_property("cmake_file_name", "TBB") diff --git a/recipes/onetbb/config.yml b/recipes/onetbb/config.yml index 39b3726474302..4ef9dafa04d03 100644 --- a/recipes/onetbb/config.yml +++ b/recipes/onetbb/config.yml @@ -1,4 +1,6 @@ versions: + "2021.12.0": + folder: all "2021.10.0": folder: all "2021.9.0": From 0c3922d75757f6fe02d2f785d6bb3552e824dd4e Mon Sep 17 00:00:00 2001 From: Omar Date: Sat, 20 Apr 2024 04:29:58 +0200 Subject: [PATCH 0084/1652] (#23528) kuliya: new recipe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add kuliya/1.0.0 * add data header file * update sha256 * Download LICENSE from repository for the tagged release, relax test package CMakeLists * add assertion in test package --------- Co-authored-by: Rubén Rincón Blanco --- recipes/kuliya/all/conandata.yml | 10 +++++ recipes/kuliya/all/conanfile.py | 40 +++++++++++++++++++ .../kuliya/all/test_package/CMakeLists.txt | 7 ++++ recipes/kuliya/all/test_package/conanfile.py | 26 ++++++++++++ .../kuliya/all/test_package/test_package.c | 13 ++++++ recipes/kuliya/config.yml | 3 ++ 6 files changed, 99 insertions(+) create mode 100644 recipes/kuliya/all/conandata.yml create mode 100644 recipes/kuliya/all/conanfile.py create mode 100644 recipes/kuliya/all/test_package/CMakeLists.txt create mode 100644 recipes/kuliya/all/test_package/conanfile.py create mode 100644 recipes/kuliya/all/test_package/test_package.c create mode 100644 recipes/kuliya/config.yml diff --git a/recipes/kuliya/all/conandata.yml b/recipes/kuliya/all/conandata.yml new file mode 100644 index 0000000000000..06675980fd094 --- /dev/null +++ b/recipes/kuliya/all/conandata.yml @@ -0,0 +1,10 @@ +sources: + "1.0.0": + release: + url: "https://github.com/dzcode-io/kuliya/releases/download/c-v1.0.0/c-release.tar.gz" + sha256: "a0e064d29358e40245dc8b7b35160a6b15e10059e4bd42d9dc4f0af76d031e5f" + # Old versions don't have the license embed in the release tar, download it separatedly for now + # from the commit of the upstream tag + license: + url: "https://raw.githubusercontent.com/dzcode-io/kuliya/c-v1.0.0/LICENSE" + sha256: "70884fb7eff4f91c8d776f8cf7bd93cce0c93213f57153956189b488cfd911be" diff --git a/recipes/kuliya/all/conanfile.py b/recipes/kuliya/all/conanfile.py new file mode 100644 index 0000000000000..ad769bd5235f6 --- /dev/null +++ b/recipes/kuliya/all/conanfile.py @@ -0,0 +1,40 @@ +from conan import ConanFile +from conan.tools.files import copy, get, download +from conan.tools.layout import basic_layout +import os + +required_conan_version = ">=1.50.0" + + +class JsmnConan(ConanFile): + name = "kuliya" + description = "Algeria's college hierarchy dataset as a C library." + license = "MIT" + topics = ("dataset", "api", "dz", "header-only") + homepage = "https://github.com/dzcode-io/kuliya" + url = "https://github.com/conan-io/conan-center-index" + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + no_copy_source = True + + def layout(self): + basic_layout(self, src_folder="src") + + def package_id(self): + self.info.clear() + + def source(self): + get(self, **self.conan_data["sources"][self.version]["release"], strip_root=True) + download(self, **self.conan_data["sources"][self.version]["license"], filename="LICENSE") + + def build(self): + pass + + def package(self): + copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses")) + copy(self, "kuliya.h", src=self.source_folder, dst=os.path.join(self.package_folder, "include")) + copy(self, "data.h", src=self.source_folder, dst=os.path.join(self.package_folder, "include")) + + def package_info(self): + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] diff --git a/recipes/kuliya/all/test_package/CMakeLists.txt b/recipes/kuliya/all/test_package/CMakeLists.txt new file mode 100644 index 0000000000000..6ca62a693d64a --- /dev/null +++ b/recipes/kuliya/all/test_package/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES C) + +find_package(kuliya REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.c) +target_link_libraries(${PROJECT_NAME} PRIVATE kuliya::kuliya) diff --git a/recipes/kuliya/all/test_package/conanfile.py b/recipes/kuliya/all/test_package/conanfile.py new file mode 100644 index 0000000000000..0a6bc68712d90 --- /dev/null +++ b/recipes/kuliya/all/test_package/conanfile.py @@ -0,0 +1,26 @@ +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import CMake, cmake_layout +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/kuliya/all/test_package/test_package.c b/recipes/kuliya/all/test_package/test_package.c new file mode 100644 index 0000000000000..5e3b275cf2747 --- /dev/null +++ b/recipes/kuliya/all/test_package/test_package.c @@ -0,0 +1,13 @@ +#undef NDEBUG + +#include +#include +#include + +int main() +{ + kuliya_init(); + kuliya_schema *res = get_node_by_path("umkb/fst"); + assert(strcmp(res->name.en, "Faculty of Science and Technology") == 0); + kuliya_deinit(); +} diff --git a/recipes/kuliya/config.yml b/recipes/kuliya/config.yml new file mode 100644 index 0000000000000..40341aa3db6cd --- /dev/null +++ b/recipes/kuliya/config.yml @@ -0,0 +1,3 @@ +versions: + "1.0.0": + folder: all From f87f10beceb62733e328b49b5c2ff09063caa68d Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Sat, 20 Apr 2024 05:48:42 +0300 Subject: [PATCH 0085/1652] (#23658) annoy: new recipe * annoy: new recipe * annoy: self.info.clear() * annoy: cxx_std_11 --- recipes/annoy/all/conandata.yml | 4 ++ recipes/annoy/all/conanfile.py | 44 +++++++++++++++++++ recipes/annoy/all/test_package/CMakeLists.txt | 8 ++++ recipes/annoy/all/test_package/conanfile.py | 26 +++++++++++ .../annoy/all/test_package/test_package.cpp | 27 ++++++++++++ recipes/annoy/config.yml | 3 ++ 6 files changed, 112 insertions(+) create mode 100644 recipes/annoy/all/conandata.yml create mode 100644 recipes/annoy/all/conanfile.py create mode 100644 recipes/annoy/all/test_package/CMakeLists.txt create mode 100644 recipes/annoy/all/test_package/conanfile.py create mode 100644 recipes/annoy/all/test_package/test_package.cpp create mode 100644 recipes/annoy/config.yml diff --git a/recipes/annoy/all/conandata.yml b/recipes/annoy/all/conandata.yml new file mode 100644 index 0000000000000..540727dc55607 --- /dev/null +++ b/recipes/annoy/all/conandata.yml @@ -0,0 +1,4 @@ +sources: + "1.17.3": + url: "https://github.com/spotify/annoy/archive/refs/tags/v1.17.3.tar.gz" + sha256: "c121d38cacd98f5103b24ca4e94ca097f18179eed3037e9eb93ad70ec1e6356e" diff --git a/recipes/annoy/all/conanfile.py b/recipes/annoy/all/conanfile.py new file mode 100644 index 0000000000000..a583978167f26 --- /dev/null +++ b/recipes/annoy/all/conanfile.py @@ -0,0 +1,44 @@ +import os + +from conan import ConanFile +from conan.tools.files import copy, get +from conan.tools.layout import basic_layout + +required_conan_version = ">=1.53.0" + +class AnnoyConan(ConanFile): + name = "annoy" + description = "Approximate Nearest Neighbors optimized for memory usage and loading/saving to disk" + license = "Apache-2.0" + homepage = "https://github.com/spotify/annoy" + url = "https://github.com/conan-io/conan-center-index" + topics = ("approximate-nearest-neighbors", "machine-learning", "nearest-neighbors", "header-only") + + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + no_copy_source = True + + def layout(self): + basic_layout(self, src_folder="src") + + def package_id(self): + self.info.clear() + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def package(self): + copy(self, "LICENSE", self.source_folder, os.path.join(self.package_folder, "licenses")) + for header in ["annoylib.h", "kissrandom.h", "mman.h"]: + copy(self, header, os.path.join(self.source_folder, "src"), os.path.join(self.package_folder, "include", "annoy")) + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "Annoy") + self.cpp_info.set_property("cmake_target_name", "Annoy::Annoy") + + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] + + # TODO: to remove in conan v2 once cmake_find_package_* generators removed + self.cpp_info.names["cmake_find_package"] = "Annoy" + self.cpp_info.names["cmake_find_package_multi"] = "Annoy" diff --git a/recipes/annoy/all/test_package/CMakeLists.txt b/recipes/annoy/all/test_package/CMakeLists.txt new file mode 100644 index 0000000000000..33d34348b2425 --- /dev/null +++ b/recipes/annoy/all/test_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(Annoy REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE Annoy::Annoy) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) diff --git a/recipes/annoy/all/test_package/conanfile.py b/recipes/annoy/all/test_package/conanfile.py new file mode 100644 index 0000000000000..3a91c9439218e --- /dev/null +++ b/recipes/annoy/all/test_package/conanfile.py @@ -0,0 +1,26 @@ +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/annoy/all/test_package/test_package.cpp b/recipes/annoy/all/test_package/test_package.cpp new file mode 100644 index 0000000000000..ee5f4538042ea --- /dev/null +++ b/recipes/annoy/all/test_package/test_package.cpp @@ -0,0 +1,27 @@ +#include +#include + +#include +#include + +int main() { + const int n = 3; + Annoy::AnnoyIndex index(n); + + double x[3][3] = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}; + double needle[3] = {0.1, 0.1, 0.8}; + + for (int i = 0; i < n; i++) { + index.add_item(i, x[i]); + } + index.build(-1); + + std::vector result; + index.get_nns_by_vector(needle, 1, -1, &result, nullptr); + std::cout << "Nearest neighbor to vector [1.0, 0.5, 0.5]: "; + for (int i : result) { + std::cout << i << " "; + } + std::cout << std::endl; + return 0; +} diff --git a/recipes/annoy/config.yml b/recipes/annoy/config.yml new file mode 100644 index 0000000000000..a138b582eaf2e --- /dev/null +++ b/recipes/annoy/config.yml @@ -0,0 +1,3 @@ +versions: + "1.17.3": + folder: all From 26bc315555fd186d63ea67e899cfd938c10a942b Mon Sep 17 00:00:00 2001 From: toge Date: Sat, 20 Apr 2024 16:28:39 +0900 Subject: [PATCH 0086/1652] (#23630) iowow: add version 1.4.18 --- recipes/iowow/all/conandata.yml | 7 +++++++ .../patches/1.4.18-0002-fix-uint64_t-format.patch | 13 +++++++++++++ recipes/iowow/config.yml | 2 ++ 3 files changed, 22 insertions(+) create mode 100644 recipes/iowow/all/patches/1.4.18-0002-fix-uint64_t-format.patch diff --git a/recipes/iowow/all/conandata.yml b/recipes/iowow/all/conandata.yml index 3dc81fcb10588..047330d4f8fd9 100644 --- a/recipes/iowow/all/conandata.yml +++ b/recipes/iowow/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.4.18": + url: "https://github.com/Softmotions/iowow/archive/refs/tags/v1.4.18.tar.gz" + sha256: "ef4ee56dd77ce326fff25b6f41e7d78303322cca3f11cf5683ce9abfda34faf9" "1.4.17": url: "https://github.com/Softmotions/iowow/archive/refs/tags/v1.4.17.tar.gz" sha256: "13a851026dbc1f31583fba96986e86e94a7554f9e7d38aa12a9ea5dbebdf328b" @@ -6,6 +9,10 @@ sources: url: "https://github.com/Softmotions/iowow/archive/refs/tags/v1.4.16.tar.gz" sha256: "6e3b92b6c342ef6ef4a2731ca2d43368749d66ca876b24b773587364cff01003" patches: + "1.4.18": + - patch_file: "patches/1.4.18-0002-fix-uint64_t-format.patch" + patch_description: "fix uint64_t printf format" + patch_type: "portability" "1.4.17": - patch_file: "patches/1.4.16-0002-fix-uint64_t-format.patch" patch_description: "fix uint64_t printf format" diff --git a/recipes/iowow/all/patches/1.4.18-0002-fix-uint64_t-format.patch b/recipes/iowow/all/patches/1.4.18-0002-fix-uint64_t-format.patch new file mode 100644 index 0000000000000..3253bb3ff1bdd --- /dev/null +++ b/recipes/iowow/all/patches/1.4.18-0002-fix-uint64_t-format.patch @@ -0,0 +1,13 @@ +diff --git a/src/fs/iwfsmfile.c b/src/fs/iwfsmfile.c +index 2d1452a..121e989 100644 +--- a/src/fs/iwfsmfile.c ++++ b/src/fs/iwfsmfile.c +@@ -1339,7 +1339,7 @@ static iwrc _fsm_read_meta_lr(struct fsm *fsm) { + fsm->bmlen = llv; + if (llv & (64 - 1)) { + rc = IWFS_ERROR_INVALID_FILEMETA; +- iwlog_ecode_error(rc, "Free-space bitmap length is not 64bit aligned: %" PRIuMAX "", fsm->bmlen); ++ iwlog_ecode_error(rc, "Free-space bitmap length is not 64bit aligned: %" PRIx64 "", fsm->bmlen); + } + rp += sizeof(llv); + diff --git a/recipes/iowow/config.yml b/recipes/iowow/config.yml index 764e66b7855a6..c30ae14aca332 100644 --- a/recipes/iowow/config.yml +++ b/recipes/iowow/config.yml @@ -1,4 +1,6 @@ versions: + "1.4.18": + folder: all "1.4.17": folder: all "1.4.16": From 4d826813a0f07b7587de24a2356f5ade0fe98d27 Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Sat, 20 Apr 2024 10:46:11 +0300 Subject: [PATCH 0087/1652] (#22849) rmm: add v24.04.00, bump deps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * rmm: add v24.02.00, bump deps * rmm: bump 24.02.00->24.04.00 --------- Co-authored-by: Rubén Rincón Blanco --- recipes/rmm/all/conandata.yml | 3 +++ recipes/rmm/all/conanfile.py | 4 ++-- recipes/rmm/config.yml | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/rmm/all/conandata.yml b/recipes/rmm/all/conandata.yml index 67683994d5b6f..31ecfbfa6c6ef 100644 --- a/recipes/rmm/all/conandata.yml +++ b/recipes/rmm/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "24.04.00": + url: "https://github.com/rapidsai/rmm/archive/v24.04.00a.tar.gz" + sha256: "47a5d28a99165fc6e1f02399e0cc8b304f5bbc9aaf2071288ae92638ecdf516c" "23.10.00": url: "https://github.com/rapidsai/rmm/archive/v23.10.00.tar.gz" sha256: "4e2408073662fdfd92ca21d87f7d2afc64d2595fd5a1e3fa321d3472cfbd7f7a" diff --git a/recipes/rmm/all/conanfile.py b/recipes/rmm/all/conanfile.py index ca0e3861927c1..91388dbe02f58 100644 --- a/recipes/rmm/all/conanfile.py +++ b/recipes/rmm/all/conanfile.py @@ -42,8 +42,8 @@ def layout(self): def requirements(self): self.requires("thrust/1.17.2") - self.requires("spdlog/1.12.0") - self.requires("fmt/10.1.1") + self.requires("spdlog/1.13.0") + self.requires("fmt/10.2.1") def package_id(self): self.info.clear() diff --git a/recipes/rmm/config.yml b/recipes/rmm/config.yml index 20cd4f56dc99f..396bbc9cfd497 100644 --- a/recipes/rmm/config.yml +++ b/recipes/rmm/config.yml @@ -1,4 +1,6 @@ versions: + "24.04.00": + folder: all "23.10.00": folder: all "23.06.00": From afb0c9a54b4132b05656ae5681f97de59111ef80 Mon Sep 17 00:00:00 2001 From: X1aomu Date: Sat, 20 Apr 2024 20:47:20 +0800 Subject: [PATCH 0088/1652] (#23477) zeus_expected: new recipe * zeus_expected: new recipe * zeus_expected: keep only the latest bugfix version as a new recipe * Apply suggestions from code review Co-authored-by: Uilian Ries * zeus_expected: fix for linting * zeus_expected: bump to latest version * zeus_expected: test_package: removoe /Zc:__cplusplus as the new version doesn't require it * zeus_expected: testing: add patches * Apply suggestions from code review Co-authored-by: Uilian Ries --------- Co-authored-by: Uilian Ries --- recipes/zeus_expected/all/conandata.yml | 11 +++ recipes/zeus_expected/all/conanfile.py | 85 ++++++++++++++++++ ...1-fix-compiler-errors-with-msvc-v142.patch | 88 +++++++++++++++++++ .../all/test_package/CMakeLists.txt | 8 ++ .../all/test_package/conanfile.py | 25 ++++++ .../all/test_package/test_package.cpp | 21 +++++ recipes/zeus_expected/config.yml | 3 + 7 files changed, 241 insertions(+) create mode 100644 recipes/zeus_expected/all/conandata.yml create mode 100644 recipes/zeus_expected/all/conanfile.py create mode 100644 recipes/zeus_expected/all/patches/0001-fix-compiler-errors-with-msvc-v142.patch create mode 100644 recipes/zeus_expected/all/test_package/CMakeLists.txt create mode 100644 recipes/zeus_expected/all/test_package/conanfile.py create mode 100644 recipes/zeus_expected/all/test_package/test_package.cpp create mode 100644 recipes/zeus_expected/config.yml diff --git a/recipes/zeus_expected/all/conandata.yml b/recipes/zeus_expected/all/conandata.yml new file mode 100644 index 0000000000000..b16a470277274 --- /dev/null +++ b/recipes/zeus_expected/all/conandata.yml @@ -0,0 +1,11 @@ +sources: + "1.1.0": + url: "https://github.com/zeus-cpp/expected/archive/refs/tags/v1.1.0.tar.gz" + sha256: "a963eba43f227498da2cbb924265344209696320c75ee63a92073936bb49f7e5" + +patches: + "1.1.0": + - patch_file: "patches/0001-fix-compiler-errors-with-msvc-v142.patch" + patch_source: "https://github.com/zeus-cpp/expected/pull/7/commits/82ed513aa65a3c2c7b8f8af7c63e0b8b57637dfb" + patch_description: "Fix for MSVC v142" + patch_type: "bugfix" diff --git a/recipes/zeus_expected/all/conanfile.py b/recipes/zeus_expected/all/conanfile.py new file mode 100644 index 0000000000000..0647533bdec21 --- /dev/null +++ b/recipes/zeus_expected/all/conanfile.py @@ -0,0 +1,85 @@ +from conan import ConanFile +from conan.tools.build import check_min_cppstd +from conan.tools.files import copy, get +from conan.tools.layout import basic_layout +from conan.errors import ConanInvalidConfiguration +from conan.tools.scm import Version +from conan.tools.files import apply_conandata_patches, export_conandata_patches +import os + +required_conan_version = ">=1.54.0" + + +class ZeusExpectedConan(ConanFile): + name = "zeus_expected" + + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/zeus-cpp/expected" + description = "Backporting std::expected to C++17." + topics = ("cpp17", "expected") + license = "MIT" + + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + + no_copy_source = True + + def export_sources(self): + export_conandata_patches(self) + + @property + def _min_cppstd(self): + return 17 + + @property + def _minimum_compilers_version(self): + return { + "gcc": "7", + "clang": "5", + "Visual Studio": "15.7", + "apple-clang": "10", + } + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + + min_version = self._minimum_compilers_version.get(str(self.settings.compiler)) + if min_version and Version(self.settings.compiler.version) < min_version: + raise ConanInvalidConfiguration( + f"{self.name} requires C++{self._min_cppstd}, which your compiler does not support." + ) + + def layout(self): + basic_layout(self, src_folder="src") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def build(self): + apply_conandata_patches(self) + + def package(self): + copy( + self, + "LICENSE", + src=self.source_folder, + dst=os.path.join(self.package_folder, "licenses"), + ) + copy( + self, + "*", + src=os.path.join(self.source_folder, "include"), + dst=os.path.join(self.package_folder, "include"), + ) + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "zeus_expected") + self.cpp_info.set_property("cmake_target_name", "zeus::expected") + self.cpp_info.bindirs = [] + self.cpp_info.frameworkdirs = [] + self.cpp_info.libdirs = [] + self.cpp_info.resdirs = [] + + def package_id(self): + self.info.clear() diff --git a/recipes/zeus_expected/all/patches/0001-fix-compiler-errors-with-msvc-v142.patch b/recipes/zeus_expected/all/patches/0001-fix-compiler-errors-with-msvc-v142.patch new file mode 100644 index 0000000000000..82856fb33c345 --- /dev/null +++ b/recipes/zeus_expected/all/patches/0001-fix-compiler-errors-with-msvc-v142.patch @@ -0,0 +1,88 @@ +From 82ed513aa65a3c2c7b8f8af7c63e0b8b57637dfb Mon Sep 17 00:00:00 2001 +From: X1aomu +Date: Fri, 19 Apr 2024 14:15:14 +0800 +Subject: [PATCH] fix: compiler errors with msvc v142 + +--- + include/zeus/expected.hpp | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/include/zeus/expected.hpp b/include/zeus/expected.hpp +index 6492953..790f870 100644 +--- a/include/zeus/expected.hpp ++++ b/include/zeus/expected.hpp +@@ -2441,7 +2441,7 @@ public: + constexpr auto and_then(F &&f) & + { + using U = expected_detail::remove_cvref_t>; +- static_assert(expected_detail::is_specialization_v, "U (return type of F) must be specialization of expected"); ++ static_assert(expected_detail::is_specialization_v, "U (return type of F) must be specialization of expected"); + static_assert(std::is_same_v, "The error type must be the same after calling the F"); + + if (has_value()) +@@ -2453,7 +2453,7 @@ public: + constexpr auto and_then(F &&f) const & + { + using U = expected_detail::remove_cvref_t>; +- static_assert(expected_detail::is_specialization_v, "U (return type of F) must be specialization of expected"); ++ static_assert(expected_detail::is_specialization_v, "U (return type of F) must be specialization of expected"); + static_assert(std::is_same_v, "The error type must be the same after calling the F"); + + if (has_value()) +@@ -2465,7 +2465,7 @@ public: + constexpr auto and_then(F &&f) && + { + using U = expected_detail::remove_cvref_t>; +- static_assert(expected_detail::is_specialization_v, "U (return type of F) must be specialization of expected"); ++ static_assert(expected_detail::is_specialization_v, "U (return type of F) must be specialization of expected"); + static_assert(std::is_same_v, "The error type must be the same after calling the F"); + + if (has_value()) +@@ -2477,7 +2477,7 @@ public: + constexpr auto and_then(F &&f) const && + { + using U = expected_detail::remove_cvref_t>; +- static_assert(expected_detail::is_specialization_v, "U (return type of F) must be specialization of expected"); ++ static_assert(expected_detail::is_specialization_v, "U (return type of F) must be specialization of expected"); + static_assert(std::is_same_v, "The error type must be the same after calling the F"); + + if (has_value()) +@@ -2490,7 +2490,7 @@ public: + constexpr auto or_else(F &&f) & + { + using G = expected_detail::remove_cvref_t>; +- static_assert(expected_detail::is_specialization_v, "G (return type of F) must be specialization of expected"); ++ static_assert(expected_detail::is_specialization_v, "G (return type of F) must be specialization of expected"); + static_assert(std::is_same_v, "The value type must be the same after calling the F"); + + if (has_value()) +@@ -2502,7 +2502,7 @@ public: + constexpr auto or_else(F &&f) const & + { + using G = expected_detail::remove_cvref_t>; +- static_assert(expected_detail::is_specialization_v, "G (return type of F) must be specialization of expected"); ++ static_assert(expected_detail::is_specialization_v, "G (return type of F) must be specialization of expected"); + static_assert(std::is_same_v, "The value type must be the same after calling the F"); + + if (has_value()) +@@ -2514,7 +2514,7 @@ public: + constexpr auto or_else(F &&f) && + { + using G = expected_detail::remove_cvref_t>; +- static_assert(expected_detail::is_specialization_v, "G (return type of F) must be specialization of expected"); ++ static_assert(expected_detail::is_specialization_v, "G (return type of F) must be specialization of expected"); + static_assert(std::is_same_v, "The value type must be the same after calling the F"); + + if (has_value()) +@@ -2526,7 +2526,7 @@ public: + constexpr auto or_else(F &&f) const && + { + using G = expected_detail::remove_cvref_t>; +- static_assert(expected_detail::is_specialization_v, "G (return type of F) must be specialization of expected"); ++ static_assert(expected_detail::is_specialization_v, "G (return type of F) must be specialization of expected"); + static_assert(std::is_same_v, "The value type must be the same after calling the F"); + + if (has_value()) +-- +2.44.0.windows.1 + diff --git a/recipes/zeus_expected/all/test_package/CMakeLists.txt b/recipes/zeus_expected/all/test_package/CMakeLists.txt new file mode 100644 index 0000000000000..5afcbf812c8a3 --- /dev/null +++ b/recipes/zeus_expected/all/test_package/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.8) +project(test_package LANGUAGES CXX) + +find_package(zeus_expected REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE zeus::expected) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17) diff --git a/recipes/zeus_expected/all/test_package/conanfile.py b/recipes/zeus_expected/all/test_package/conanfile.py new file mode 100644 index 0000000000000..d120a992c06a6 --- /dev/null +++ b/recipes/zeus_expected/all/test_package/conanfile.py @@ -0,0 +1,25 @@ +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import CMake, cmake_layout +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/recipes/zeus_expected/all/test_package/test_package.cpp b/recipes/zeus_expected/all/test_package/test_package.cpp new file mode 100644 index 0000000000000..1577435ab0a55 --- /dev/null +++ b/recipes/zeus_expected/all/test_package/test_package.cpp @@ -0,0 +1,21 @@ +#include + +zeus::expected func(int argc) +{ + if (argc > 1) + { + return {}; + } + else + { + return zeus::unexpected(1); + } +} + +int main(int argc, char** argv) +{ + return func(argc) + .and_then([] { return zeus::expected {}; }) + .transform_error([](int) { return 0; }) + .error_or(1); +} diff --git a/recipes/zeus_expected/config.yml b/recipes/zeus_expected/config.yml new file mode 100644 index 0000000000000..b5c0d3cb2d409 --- /dev/null +++ b/recipes/zeus_expected/config.yml @@ -0,0 +1,3 @@ +versions: + "1.1.0": + folder: all From b174c784ff8c08684ec2ac47bd05db49432dc931 Mon Sep 17 00:00:00 2001 From: toge Date: Sat, 20 Apr 2024 23:29:16 +0900 Subject: [PATCH 0089/1652] (#23674) etl: add version 20.38.11 --- recipes/etl/all/conandata.yml | 3 +++ recipes/etl/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/etl/all/conandata.yml b/recipes/etl/all/conandata.yml index 74e149bfbcab5..6e31285b39c93 100644 --- a/recipes/etl/all/conandata.yml +++ b/recipes/etl/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "20.38.11": + url: "https://github.com/ETLCPP/etl/archive/20.38.11.tar.gz" + sha256: "c73b6b076ab59e02398a9f90a66198a9f8bf0cfa91af7be2eebefb3bb264ba83" "20.38.10": url: "https://github.com/ETLCPP/etl/archive/20.38.10.tar.gz" sha256: "562f9b5d9e6786350b09d87be9c5f030073e34d7bf0a975de3e91476ddd471a3" diff --git a/recipes/etl/config.yml b/recipes/etl/config.yml index 57618035ca09f..71f6060c84ef9 100644 --- a/recipes/etl/config.yml +++ b/recipes/etl/config.yml @@ -1,4 +1,6 @@ versions: + "20.38.11": + folder: all "20.38.10": folder: all "20.38.7": From 9a2be45e4ce3e94e607e38d483f3e3dda8f5c8d1 Mon Sep 17 00:00:00 2001 From: toge Date: Sat, 20 Apr 2024 23:50:39 +0900 Subject: [PATCH 0090/1652] (#23675) iguana: add version 1.0.4 --- recipes/iguana/all/conandata.yml | 3 +++ recipes/iguana/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/iguana/all/conandata.yml b/recipes/iguana/all/conandata.yml index 48d127d2fc21f..205ab4f53f1a9 100644 --- a/recipes/iguana/all/conandata.yml +++ b/recipes/iguana/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.0.4": + url: "https://github.com/qicosmos/iguana/archive/refs/tags/1.0.4.tar.gz" + sha256: "b584cd26e65902a14a3a349ebc480beb7b4502fd5a5ffa3cb7c6102d857958b1" "1.0.3": url: "https://github.com/qicosmos/iguana/archive/refs/tags/v1.0.3.tar.gz" sha256: "7dcb21a36bd64a63a9ea857f3563ac61e965c49ec60ad7b99a2bfb9192f3e4c3" diff --git a/recipes/iguana/config.yml b/recipes/iguana/config.yml index 372dd1cb646bd..20b5bf02cf8c7 100644 --- a/recipes/iguana/config.yml +++ b/recipes/iguana/config.yml @@ -1,3 +1,5 @@ versions: + "1.0.4": + folder: all "1.0.3": folder: all From c788bdddb269844ec72cfa6550259cc6fd6b5528 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Sat, 20 Apr 2024 17:48:20 +0200 Subject: [PATCH 0091/1652] (#23670) tmx: add version 1.10.0, use version range for libxml2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * tmx: add version 1.10.0, use version range for libxml2 * Modernize a bit --------- Co-authored-by: Rubén Rincón Blanco --- recipes/tmx/all/conandata.yml | 9 +++++++ recipes/tmx/all/conanfile.py | 26 ++++++++----------- .../patches/0001-missing-stdlib-include.patch | 22 ++++++++++++++++ recipes/tmx/config.yml | 2 ++ 4 files changed, 44 insertions(+), 15 deletions(-) create mode 100644 recipes/tmx/all/patches/0001-missing-stdlib-include.patch diff --git a/recipes/tmx/all/conandata.yml b/recipes/tmx/all/conandata.yml index 015638445fd3e..8a82786790fb4 100644 --- a/recipes/tmx/all/conandata.yml +++ b/recipes/tmx/all/conandata.yml @@ -1,4 +1,13 @@ sources: + "1.10.0": + url: "https://github.com/baylej/tmx/archive/refs/tags/tmx_1.10.0.tar.gz" + sha256: "8ee42d1728c567d6047a58b2624c39c8844aaf675c470f9f284c4ed17e94188f" "1.4.0": url: "https://github.com/baylej/tmx/archive/refs/tags/tmx_1.4.0.tar.gz" sha256: "5ab52e72976141260edd1b15ea34e1626c0f4ba9b8d2afe7f4d68b51fc9fedf7" +patches: + "1.4.0": + - patch_file: "patches/0001-missing-stdlib-include.patch" + patch_description: "fix missing stdlib include" + patch_type: "bugfix" + patch_source: "https://github.com/baylej/tmx/commit/2d20ed631618f5e9ca89d90147aab8157989f5da.patch" diff --git a/recipes/tmx/all/conanfile.py b/recipes/tmx/all/conanfile.py index a45d56f04f970..30a73f62e1cfe 100644 --- a/recipes/tmx/all/conanfile.py +++ b/recipes/tmx/all/conanfile.py @@ -1,10 +1,10 @@ from conan import ConanFile from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout -from conan.tools.files import copy, get, rmdir, save +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir, save import os import textwrap -required_conan_version = ">=1.51.1" +required_conan_version = ">=1.53.0" class TmxConan(ConanFile): @@ -15,6 +15,7 @@ class TmxConan(ConanFile): homepage = "https://github.com/baylej/tmx" url = "https://github.com/conan-io/conan-center-index" + package_type = "library" settings = "os", "arch", "compiler", "build_type" options = { "shared": [True, False], @@ -29,30 +30,24 @@ class TmxConan(ConanFile): "with_zstd": False, } + def export_sources(self): + export_conandata_patches(self) + def config_options(self): if self.settings.os == "Windows": del self.options.fPIC def configure(self): if self.options.shared: - try: - del self.options.fPIC - except Exception: - pass - try: - del self.settings.compiler.libcxx - except Exception: - pass - try: - del self.settings.compiler.cppstd - except Exception: - pass + self.options.rm_safe("fPIC") + self.settings.rm_safe("compiler.libcxx") + self.settings.rm_safe("compiler.cppstd") def layout(self): cmake_layout(self, src_folder="src") def requirements(self): - self.requires("libxml2/2.11.6") + self.requires("libxml2/[>=2.12.5 <3]") if self.options.with_zlib: self.requires("zlib/[>=1.2.11 <2]") if self.options.with_zstd: @@ -75,6 +70,7 @@ def generate(self): deps.generate() def build(self): + apply_conandata_patches(self) cmake = CMake(self) cmake.configure() cmake.build() diff --git a/recipes/tmx/all/patches/0001-missing-stdlib-include.patch b/recipes/tmx/all/patches/0001-missing-stdlib-include.patch new file mode 100644 index 0000000000000..9c45635658dfa --- /dev/null +++ b/recipes/tmx/all/patches/0001-missing-stdlib-include.patch @@ -0,0 +1,22 @@ +From 2d20ed631618f5e9ca89d90147aab8157989f5da Mon Sep 17 00:00:00 2001 +From: Connor Rigby +Date: Thu, 18 Jan 2024 18:40:53 -0700 +Subject: [PATCH] tmx_mem: add stdlib.h for free and realloc + +Signed-off-by: Connor Rigby +--- + src/tmx_mem.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/tmx_mem.c b/src/tmx_mem.c +index 5ff31c9..b421af6 100644 +--- a/src/tmx_mem.c ++++ b/src/tmx_mem.c +@@ -2,6 +2,7 @@ + Node allocation + */ + ++#include + #include + + #include diff --git a/recipes/tmx/config.yml b/recipes/tmx/config.yml index c957e4bc2d3c7..2403f62fecbf1 100644 --- a/recipes/tmx/config.yml +++ b/recipes/tmx/config.yml @@ -1,3 +1,5 @@ versions: + "1.10.0": + folder: all "1.4.0": folder: all From 7944bc21b021dd3d13024a5fdfcb343ec7e2e9af Mon Sep 17 00:00:00 2001 From: toge Date: Sun, 21 Apr 2024 01:48:42 +0900 Subject: [PATCH 0092/1652] (#23681) octo-logger-cpp: add version 1.9.0 --- recipes/octo-logger-cpp/all/conandata.yml | 3 +++ recipes/octo-logger-cpp/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/octo-logger-cpp/all/conandata.yml b/recipes/octo-logger-cpp/all/conandata.yml index da0e55d721a42..0b7ec65f54cc9 100644 --- a/recipes/octo-logger-cpp/all/conandata.yml +++ b/recipes/octo-logger-cpp/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.9.0": + url: "https://github.com/ofiriluz/octo-logger-cpp/archive/v1.9.0.tar.gz" + sha256: "95187b6e9ae5d405b53ecb12ff7cbde847a9824a340ca88922eecd712ce9a138" "1.6.1": url: "https://github.com/ofiriluz/octo-logger-cpp/archive/v1.6.1.tar.gz" sha256: "02c1d5303d8c129cb2527a92d49677229230a5feaec002791f96d47de3bccb5a" diff --git a/recipes/octo-logger-cpp/config.yml b/recipes/octo-logger-cpp/config.yml index c67832833d08a..d277e3d17d365 100644 --- a/recipes/octo-logger-cpp/config.yml +++ b/recipes/octo-logger-cpp/config.yml @@ -1,4 +1,6 @@ versions: + "1.9.0": + folder: "all" "1.6.1": folder: "all" "1.5.0": From ba9c9a271ae4d555722595adc286ce8ebae25f7d Mon Sep 17 00:00:00 2001 From: SpaceIm <30052553+SpaceIm@users.noreply.github.com> Date: Sat, 20 Apr 2024 19:27:00 +0200 Subject: [PATCH 0093/1652] (#21410) bitsery: add package_type * add package_type * drop old versions --- recipes/bitsery/all/conandata.yml | 9 --------- recipes/bitsery/all/conanfile.py | 19 +++++++++---------- recipes/bitsery/config.yml | 6 ------ 3 files changed, 9 insertions(+), 25 deletions(-) diff --git a/recipes/bitsery/all/conandata.yml b/recipes/bitsery/all/conandata.yml index 6d53e1633d5bf..5af8798ccd4e5 100644 --- a/recipes/bitsery/all/conandata.yml +++ b/recipes/bitsery/all/conandata.yml @@ -5,12 +5,3 @@ sources: "5.2.2": url: "https://github.com/fraillt/bitsery/archive/v5.2.2.tar.gz" sha256: "5e932c463f16db15228b2546632a5851a502c68e605a1e313b0f1a35c061e4ae" - "5.2.1": - url: "https://github.com/fraillt/bitsery/archive/v5.2.1.tar.gz" - sha256: "1e2ee66827c55ef82eaf6ef4c87a2c5b3a010dfe6c770eb0feeb3f0c35254d00" - "5.2.0": - url: "https://github.com/fraillt/bitsery/archive/v5.2.0.tar.gz" - sha256: "99f47bca227abb6b9e8030703dcc402ab930ff3bf0a87c89c3f0fb9536cad448" - "5.1.0": - url: "https://github.com/fraillt/bitsery/archive/v5.1.0.tar.gz" - sha256: "8f46667db5d0b62fdaab33612108498bcbcbe9cfa48d2cd220b2129734440a8d" diff --git a/recipes/bitsery/all/conanfile.py b/recipes/bitsery/all/conanfile.py index dd2f676b3757f..2e0ffa53b2c89 100644 --- a/recipes/bitsery/all/conanfile.py +++ b/recipes/bitsery/all/conanfile.py @@ -17,9 +17,13 @@ class BitseryConan(ConanFile): url = "https://github.com/conan-io/conan-center-index" homepage = "https://github.com/fraillt/bitsery" license = "MIT" + package_type = "header-library" settings = "os", "arch", "compiler", "build_type" no_copy_source = True + def layout(self): + basic_layout(self, src_folder="src") + def package_id(self): self.info.clear() @@ -27,12 +31,8 @@ def validate(self): if self.settings.compiler.get_safe("cppstd"): check_min_cppstd(self, 11) - def layout(self): - basic_layout(self, src_folder="src") - def source(self): - get(self, **self.conan_data["sources"][self.version], - destination=self.source_folder, strip_root=True) + get(self, **self.conan_data["sources"][self.version], strip_root=True) def build(self): pass @@ -44,11 +44,8 @@ def package(self): def package_info(self): self.cpp_info.set_property("cmake_file_name", "Bitsery") self.cpp_info.set_property("cmake_target_name", "Bitsery::bitsery") - # TODO: back to global scope in conan v2 once cmake_find_package_* generators removed - self.cpp_info.components["bitserylib"].bindirs = [] - self.cpp_info.components["bitserylib"].frameworkdirs = [] - self.cpp_info.components["bitserylib"].libdirs = [] - self.cpp_info.components["bitserylib"].resdirs = [] + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] # TODO: to remove in conan v2 once cmake_find_package* generators removed self.cpp_info.names["cmake_find_package"] = "Bitsery" @@ -56,3 +53,5 @@ def package_info(self): self.cpp_info.components["bitserylib"].names["cmake_find_package"] = "bitsery" self.cpp_info.components["bitserylib"].names["cmake_find_package_multi"] = "bitsery" self.cpp_info.components["bitserylib"].set_property("cmake_target_name", "Bitsery::bitsery") + self.cpp_info.components["bitserylib"].bindirs = [] + self.cpp_info.components["bitserylib"].libdirs = [] diff --git a/recipes/bitsery/config.yml b/recipes/bitsery/config.yml index 07e67c2710fe5..383bfb1cfff8d 100644 --- a/recipes/bitsery/config.yml +++ b/recipes/bitsery/config.yml @@ -3,9 +3,3 @@ versions: folder: all "5.2.2": folder: all - "5.2.1": - folder: all - "5.2.0": - folder: all - "5.1.0": - folder: all From d02ccc97a61cb169e9de4049d820a6103b60e5f2 Mon Sep 17 00:00:00 2001 From: toge Date: Sun, 21 Apr 2024 02:48:18 +0900 Subject: [PATCH 0094/1652] (#23682) rocksdb: add version 9.1.0 --- recipes/rocksdb/all/conandata.yml | 3 +++ recipes/rocksdb/config.yml | 2 ++ 2 files changed, 5 insertions(+) diff --git a/recipes/rocksdb/all/conandata.yml b/recipes/rocksdb/all/conandata.yml index 2236d1d78b40f..c18cf0870ce12 100644 --- a/recipes/rocksdb/all/conandata.yml +++ b/recipes/rocksdb/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "9.1.0": + url: "https://github.com/facebook/rocksdb/archive/refs/tags/v9.1.0.tar.gz" + sha256: "3c225e45bf6f6367cf5a4413f71abc4a3427627790e6d58c57adc2daa4b6309d" "9.0.0": url: "https://github.com/facebook/rocksdb/archive/refs/tags/v9.0.0.tar.gz" sha256: "013aac178aa12837cbfa3b1e20e9e91ff87962ab7fdd044fd820e859f8964f9b" diff --git a/recipes/rocksdb/config.yml b/recipes/rocksdb/config.yml index ee10c33aa9899..2ea72f2d1f1bd 100644 --- a/recipes/rocksdb/config.yml +++ b/recipes/rocksdb/config.yml @@ -1,4 +1,6 @@ versions: + "9.1.0": + folder: all "9.0.0": folder: all "8.8.1": From 09e79421fb8cc1b428193db3f615c07ee54b4f5b Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Sat, 20 Apr 2024 22:47:42 +0300 Subject: [PATCH 0095/1652] (#23434) implot: bump imgui for consistency with other packages * implot: don't build and link implot_demo.cpp * implot: IMGUI_DEFINE_MATH_OPERATORS does not need to be defined since v0.16 * implot: bump imgui versions to latest supported ones * implot: make v0.14 compatible with imgui/1.90.x * implot: restore implot_demo.cpp, add a comment * implot: bump imgui --- recipes/implot/all/CMakeLists.txt | 6 ++++-- recipes/implot/all/conanfile.py | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/recipes/implot/all/CMakeLists.txt b/recipes/implot/all/CMakeLists.txt index 8f2c9651b41e6..317f2805b1b38 100644 --- a/recipes/implot/all/CMakeLists.txt +++ b/recipes/implot/all/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.4) +cmake_minimum_required(VERSION 3.15) project(implot LANGUAGES CXX) file(GLOB HEADER_FILES ${IMPLOT_SRC_DIR}/*.h) @@ -6,6 +6,9 @@ file(GLOB HEADER_FILES ${IMPLOT_SRC_DIR}/*.h) add_library(${PROJECT_NAME} ${IMPLOT_SRC_DIR}/implot.cpp ${IMPLOT_SRC_DIR}/implot_items.cpp + # implot_demo.cpp is included so that user can use it to display the main documentation of implot. + # Note that these functions are not declared by the public headers. + # https://github.com/conan-io/conan-center-index/pull/20374 ${IMPLOT_SRC_DIR}/implot_demo.cpp ) target_include_directories(${PROJECT_NAME} PRIVATE ${IMPLOT_SRC_DIR}) @@ -14,7 +17,6 @@ find_package(imgui CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC imgui::imgui) -target_compile_definitions(${PROJECT_NAME} PRIVATE IMGUI_DEFINE_MATH_OPERATORS) target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) set_target_properties(${PROJECT_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) diff --git a/recipes/implot/all/conanfile.py b/recipes/implot/all/conanfile.py index 0f83131c24116..ce5a386b006bb 100644 --- a/recipes/implot/all/conanfile.py +++ b/recipes/implot/all/conanfile.py @@ -1,7 +1,7 @@ from conan import ConanFile from conan.errors import ConanInvalidConfiguration from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout -from conan.tools.files import get, copy +from conan.tools.files import get, copy, replace_in_file from conan.tools.scm import Version from conan.tools.microsoft import is_msvc import os @@ -31,17 +31,15 @@ def export_sources(self): def config_options(self): if self.settings.os == "Windows": - del self.options.fPIC # rm_safe not needed + del self.options.fPIC def configure(self): if self.options.shared: self.options.rm_safe("fPIC") def requirements(self): - if Version(self.version) >= "0.15": - self.requires("imgui/1.90", transitive_headers=True) - elif Version(self.version) >= "0.14": - self.requires("imgui/1.89.4", transitive_headers=True) + if Version(self.version) >= "0.14": + self.requires("imgui/1.90.5", transitive_headers=True) elif Version(self.version) >= "0.13": # imgui 1.89 renamed ImGuiKeyModFlags_* to ImGuiModFlags_* self.requires("imgui/1.88", transitive_headers=True) @@ -61,11 +59,22 @@ def source(self): def generate(self): tc = CMakeToolchain(self) tc.variables["IMPLOT_SRC_DIR"] = self.source_folder.replace("\\", "/") + if Version(self.version) < "0.16": + # Set in code since v0.16 https://github.com/epezent/implot/commit/33c5a965f55f80057f197257d1d1cdb06523e963 + tc.preprocessor_definitions["IMGUI_DEFINE_MATH_OPERATORS"] = "" tc.generate() deps = CMakeDeps(self) deps.generate() + def _patch_sources(self): + if Version(self.version) == "0.14" and Version(self.dependencies["imgui"].ref.version) >= "1.89.7": + # https://github.com/ocornut/imgui/commit/51f564eea6333bae9242f40c983a3e29d119a9c2 + replace_in_file(self, os.path.join(self.source_folder, "implot.cpp"), + "ImGuiButtonFlags_AllowItemOverlap", + "ImGuiButtonFlags_AllowOverlap") + def build(self): + self._patch_sources() cmake = CMake(self) cmake.configure(build_script_folder=os.path.join(self.source_folder, os.pardir)) cmake.build() From a4da520f0e22be7acb68dba8ade6fa8ae0c17373 Mon Sep 17 00:00:00 2001 From: toge Date: Mon, 22 Apr 2024 16:45:48 +0900 Subject: [PATCH 0096/1652] (#22378) capnproto: add version 1.0.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rubén Rincón Blanco Co-authored-by: Daniel --- recipes/capnproto/all/conandata.yml | 7 +++++++ recipes/capnproto/config.yml | 2 ++ 2 files changed, 9 insertions(+) diff --git a/recipes/capnproto/all/conandata.yml b/recipes/capnproto/all/conandata.yml index e635b41da8f05..6ecc4845785b6 100644 --- a/recipes/capnproto/all/conandata.yml +++ b/recipes/capnproto/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.0.2": + url: "https://github.com/capnproto/capnproto/archive/v1.0.2.tar.gz" + sha256: "3cfd0ed58080d78b3a3381305489f2175cdaf1ef1cb55425d8fc8246a76bdff3" "1.0.1": url: "https://github.com/capnproto/capnproto/archive/v1.0.1.tar.gz" sha256: "5bdb16f6b389a9e29b04214b9bae1759e8b7fe2b45049d7e3f1f286ba050a200" @@ -27,6 +30,10 @@ sources: url: "https://github.com/capnproto/capnproto/archive/v0.7.0.tar.gz" sha256: "76c7114a3d142ad08b7208b3964a26e72a6320ee81331d3f0b87569fc9c47a28" patches: + "1.0.2": + - patch_file: "patches/0015-disable-tests-for-1.0.0.patch" + patch_description: "disable test build" + patch_type: "conan" "1.0.1": - patch_file: "patches/0015-disable-tests-for-1.0.0.patch" patch_description: "disable test build" diff --git a/recipes/capnproto/config.yml b/recipes/capnproto/config.yml index 887e41e533af8..7439163d18050 100644 --- a/recipes/capnproto/config.yml +++ b/recipes/capnproto/config.yml @@ -1,4 +1,6 @@ versions: + "1.0.2": + folder: all "1.0.1": folder: all "1.0.0": From aa741978ca6ab9e90ce9f2e759e8775e96b5a9d8 Mon Sep 17 00:00:00 2001 From: toge Date: Mon, 22 Apr 2024 17:53:32 +0900 Subject: [PATCH 0097/1652] (#23687) libftp: add version 0.5.0 * libftp: add version 0.5.0 * require openssl * make openssl transitive_headers * make transitive_libs --- recipes/libftp/all/conandata.yml | 3 +++ recipes/libftp/all/conanfile.py | 2 ++ recipes/libftp/config.yml | 2 ++ 3 files changed, 7 insertions(+) diff --git a/recipes/libftp/all/conandata.yml b/recipes/libftp/all/conandata.yml index 6f6b3ca9dc582..b9db1b6b9e15d 100644 --- a/recipes/libftp/all/conandata.yml +++ b/recipes/libftp/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "0.5.0": + url: "https://github.com/deniskovalchuk/libftp/archive/refs/tags/v0.5.0.tar.gz" + sha256: "566d4d176bf754571e01563c4c0182a9c54b90903cd958a609fa0d6bd4c2141e" "0.4.1": url: "https://github.com/deniskovalchuk/libftp/archive/refs/tags/v0.4.1.tar.gz" sha256: "873dd7647234f72fecfe57150b0a4a60f4c16611d26ad7eb687e0561f54b9eec" diff --git a/recipes/libftp/all/conanfile.py b/recipes/libftp/all/conanfile.py index a3d283d843da6..c3b5180d8c9bf 100644 --- a/recipes/libftp/all/conanfile.py +++ b/recipes/libftp/all/conanfile.py @@ -58,6 +58,8 @@ def layout(self): def requirements(self): self.requires("boost/1.84.0", transitive_headers=True) + if Version(self.version) >= "0.5.0": + self.requires("openssl/[>=1.1 <4]", transitive_headers=True, transitive_libs=True) def validate(self): if is_msvc(self) and self.options.shared: diff --git a/recipes/libftp/config.yml b/recipes/libftp/config.yml index 3a9d5538921fc..bdf259c14aca4 100644 --- a/recipes/libftp/config.yml +++ b/recipes/libftp/config.yml @@ -1,3 +1,5 @@ versions: + "0.5.0": + folder: all "0.4.1": folder: all From 181ce6deec30a6570c1fcabdd36e3b6280ffa95a Mon Sep 17 00:00:00 2001 From: toge Date: Mon, 22 Apr 2024 18:10:10 +0900 Subject: [PATCH 0098/1652] (#23693) tsl-robin-map: add version 1.3.0 --- recipes/tsl-robin-map/all/conandata.yml | 3 +++ recipes/tsl-robin-map/all/conanfile.py | 4 ++-- recipes/tsl-robin-map/config.yml | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/recipes/tsl-robin-map/all/conandata.yml b/recipes/tsl-robin-map/all/conandata.yml index 0898c1e12fe8b..184cd30d5f022 100644 --- a/recipes/tsl-robin-map/all/conandata.yml +++ b/recipes/tsl-robin-map/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "1.3.0": + url: "https://github.com/Tessil/robin-map/archive/v1.3.0.tar.gz" + sha256: "a8424ad3b0affd4c57ed26f0f3d8a29604f0e1f2ef2089f497f614b1c94c7236" "1.2.2": url: "https://github.com/Tessil/robin-map/archive/v1.2.2.tar.gz" sha256: "c72767ecea2a90074c7efbe91620c8f955af666505e22782e82813c652710821" diff --git a/recipes/tsl-robin-map/all/conanfile.py b/recipes/tsl-robin-map/all/conanfile.py index 14ac380eaf691..d6ee665d5c051 100644 --- a/recipes/tsl-robin-map/all/conanfile.py +++ b/recipes/tsl-robin-map/all/conanfile.py @@ -11,9 +11,9 @@ class TslRobinMapConan(ConanFile): name = "tsl-robin-map" license = "MIT" description = "C++ implementation of a fast hash map and hash set using robin hood hashing." - topics = ("robin-map", "structure", "hash map", "hash set") - homepage = "https://github.com/Tessil/robin-map" url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/Tessil/robin-map" + topics = ("robin-map", "structure", "hash map", "hash set", "header-only") package_type = "header-library" settings = "os", "arch", "compiler", "build_type" no_copy_source = True diff --git a/recipes/tsl-robin-map/config.yml b/recipes/tsl-robin-map/config.yml index cd852f361a5d2..05411da627de4 100644 --- a/recipes/tsl-robin-map/config.yml +++ b/recipes/tsl-robin-map/config.yml @@ -1,4 +1,6 @@ versions: + "1.3.0": + folder: all "1.2.2": folder: all "1.2.1": From 22430878293e6d8a26d919889f5466d91d60b6ff Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Mon, 22 Apr 2024 06:08:38 -0500 Subject: [PATCH 0099/1652] (#22974) freetype/2.13.*: Switch to Meson build system * freetype: Switch to Meson build system This requires way less patching. Way less. * Add patch to find bzip2 * Bump PNG * Set pkg-config version appropriately * Don't use collect_libs * Fix version for Conan V1 * Enable short paths * Fix config * Update the OpenSans-Bold font to version 3 from version 1 This changes the license of the font from the Apache license to the OFL. This TTF file has been updated to include the full text of the license. This follows the recommendation of the OFL's FAQ: https://openfontlicense.org/how-to-use-ofl-fonts/#22a585885b5cb7cc58d60445ecf0d8ad6f76ef24 * Add license attribute to test package for the OpenSans font The license is available here: https://github.com/googlefonts/opensans/blob/main/OFL.txt * Account for the name of the static library on Windows * Revert "Account for the name of the static library on Windows" This reverts commit 89275d034809e7f138aea51a4b8435d5dddc400c. * Bump the minimum CMake version for the test packages * See if a newer version of CMake fixes the test packages * Try using short paths for the test package * Check variables for modules before defining the target * Enable short paths for the test_package_module * Use a newer version of CMake in test_package_module * Explicitly set the freetype library path for CMake * Try setting FREETYPE_LIBRARIES * Revert "Try setting FREETYPE_LIBRARIES" This reverts commit bb3907b61027653f2e03c89bfd4f305193925d02. * Revert "Explicitly set the freetype library path for CMake" This reverts commit babf66afd53eb4181df95ab40ce94fb89df5e521. * Set if CMAKE_FIND_LIBRARY_SUFFIXES to include ".a" suffixes on Windows * Revert "Set if CMAKE_FIND_LIBRARY_SUFFIXES to include ".a" suffixes on Windows" This reverts commit 0d30c043dafaf49110588469bf7e7a026a864555. * Rename .a to .lib to workaround CMake versions prior to 3.29 * Remove lib prefix on Windows as well to allow CMake to find the library * Build version 2.13.0 with Meson as well and remove tool_requires cmake * Rename the patch file * Remove pdb files * Update recipes/freetype/meson/conanfile.py Co-authored-by: Martin Valgur * Correctly order versions --------- Co-authored-by: Martin Valgur --- recipes/freetype/all/conandata.yml | 10 - recipes/freetype/all/conanfile.py | 4 +- .../all/test_package/OpenSans-Bold.ttf | Bin 224592 -> 149940 bytes .../freetype/all/test_package/conanfile.py | 1 + .../all/test_package_module/conanfile.py | 1 + .../freetype/all/test_v1_package/conanfile.py | 1 + .../all/test_v1_package_module/conanfile.py | 1 + recipes/freetype/config.yml | 4 +- recipes/freetype/meson/conandata.yml | 22 ++ recipes/freetype/meson/conanfile.py | 245 ++++++++++++++++++ ...andard-dependency-mechanism-to-find-.patch | 31 +++ .../meson/test_package/CMakeLists.txt | 7 + .../meson/test_package/OpenSans-Bold.ttf | Bin 0 -> 149940 bytes .../freetype/meson/test_package/conanfile.py | 29 +++ .../meson/test_package/test_package.c | 142 ++++++++++ .../meson/test_package_module/CMakeLists.txt | 23 ++ .../meson/test_package_module/conanfile.py | 29 +++ .../meson/test_v1_package/CMakeLists.txt | 8 + .../meson/test_v1_package/conanfile.py | 19 ++ .../test_v1_package_module/CMakeLists.txt | 8 + .../meson/test_v1_package_module/conanfile.py | 19 ++ 21 files changed, 590 insertions(+), 14 deletions(-) create mode 100644 recipes/freetype/meson/conandata.yml create mode 100644 recipes/freetype/meson/conanfile.py create mode 100644 recipes/freetype/meson/patches/2.13.0-0001-meson-Use-the-standard-dependency-mechanism-to-find-.patch create mode 100644 recipes/freetype/meson/test_package/CMakeLists.txt create mode 100644 recipes/freetype/meson/test_package/OpenSans-Bold.ttf create mode 100644 recipes/freetype/meson/test_package/conanfile.py create mode 100644 recipes/freetype/meson/test_package/test_package.c create mode 100644 recipes/freetype/meson/test_package_module/CMakeLists.txt create mode 100644 recipes/freetype/meson/test_package_module/conanfile.py create mode 100644 recipes/freetype/meson/test_v1_package/CMakeLists.txt create mode 100644 recipes/freetype/meson/test_v1_package/conanfile.py create mode 100644 recipes/freetype/meson/test_v1_package_module/CMakeLists.txt create mode 100644 recipes/freetype/meson/test_v1_package_module/conanfile.py diff --git a/recipes/freetype/all/conandata.yml b/recipes/freetype/all/conandata.yml index 8e6b6b6c5bfe8..c88f1eed40363 100644 --- a/recipes/freetype/all/conandata.yml +++ b/recipes/freetype/all/conandata.yml @@ -1,14 +1,4 @@ sources: - "2.13.2": - url: - - "https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.xz" - - "https://sourceforge.net/projects/freetype/files/freetype2/2.13.2/freetype-2.13.2.tar.xz" - sha256: "12991c4e55c506dd7f9b765933e62fd2be2e06d421505d7950a132e4f1bb484d" - "2.13.0": - url: - - "https://download.savannah.gnu.org/releases/freetype/freetype-2.13.0.tar.xz" - - "https://sourceforge.net/projects/freetype/files/freetype2/2.13.0/freetype-2.13.0.tar.xz" - sha256: "5ee23abd047636c24b2d43c6625dcafc66661d1aca64dec9e0d05df29592624c" "2.12.1": url: - "https://download.savannah.gnu.org/releases/freetype/freetype-2.12.1.tar.xz" diff --git a/recipes/freetype/all/conanfile.py b/recipes/freetype/all/conanfile.py index 5543e9e0a5962..c9ef129b80eea 100644 --- a/recipes/freetype/all/conanfile.py +++ b/recipes/freetype/all/conanfile.py @@ -254,10 +254,10 @@ def package_info(self): libtool_version = load(self, self._libtool_version_txt).strip() self.conf_info.define("user.freetype:libtool_version", libtool_version) - # FIXME: need to do override the pkg_config version (pkg_config_custom_content does not work) - # self.cpp_info.version["pkg_config"] = pkg_config_version + self.cpp_info.set_property("system_package_version", libtool_version) # TODO: to remove in conan v2 once cmake_find_package* & pkg_config generators removed + self.cpp_info.set_property("component_version", libtool_version) self.cpp_info.filenames["cmake_find_package"] = "Freetype" self.cpp_info.filenames["cmake_find_package_multi"] = "freetype" self.cpp_info.names["cmake_find_package"] = "Freetype" diff --git a/recipes/freetype/all/test_package/OpenSans-Bold.ttf b/recipes/freetype/all/test_package/OpenSans-Bold.ttf index fd79d43bea0293ac1b20e8aca1142627983d2c07..1588c2ced3a6c60ff39c36651e8861be3a2d13e0 100644 GIT binary patch literal 149940 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