-
Notifications
You must be signed in to change notification settings - Fork 3.7k
GH-46757: [CI][Packaging][Conan] Synchronize upstream conan #46758
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
diff --git a/recipes/arrow/all/conandata.yml b/recipes/arrow/all/conandata.yml
index f979a4480..a370e59e0 100644
--- a/recipes/arrow/all/conandata.yml
+++ b/recipes/arrow/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "19.0.1":
+ url: "https://www.apache.org/dyn/closer.lua/arrow/arrow-19.0.1/apache-arrow-19.0.1.tar.gz?action=download"
+ sha256: "acb76266e8b0c2fbb7eb15d542fbb462a73b3fd1e32b80fad6c2fafd95a51160"
"18.1.0":
url: "https://www.apache.org/dyn/closer.lua/arrow/arrow-18.1.0/apache-arrow-18.1.0.tar.gz?action=download"
sha256: "2dc8da5f8796afe213ecc5e5aba85bb82d91520eff3cf315784a52d0fa61d7fc"
@@ -18,6 +21,13 @@ sources:
url: "https://www.apache.org/dyn/closer.lua/arrow/arrow-14.0.2/apache-arrow-14.0.2.tar.gz?action=download"
sha256: "1304dedb41896008b89fe0738c71a95d9b81752efc77fa70f264cb1da15d9bc2"
patches:
+ "19.0.1":
+ - patch_file: "patches/19.0.1-0001-fix-cmake.patch"
+ patch_description: "use cci package"
+ patch_type: "conan"
+ - patch_file: "patches/19.0.1-0002-fix-downloaded-mimalloc.patch"
+ patch_description: "use cci package"
+ patch_type: "conan"
"18.1.0":
- patch_file: "patches/18.0.0-0001-fix-cmake.patch"
patch_description: "use cci package"
diff --git a/recipes/arrow/all/conanfile.py b/recipes/arrow/all/conanfile.py
index be8bacf5a..7aef9d284 100644
--- a/recipes/arrow/all/conanfile.py
+++ b/recipes/arrow/all/conanfile.py
@@ -1,3 +1,5 @@
+import os
+
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration, ConanException
from conan.tools.build import check_min_cppstd, cross_building
@@ -6,11 +8,9 @@ from conan.tools.files import apply_conandata_patches, copy, export_conandata_pa
from conan.tools.microsoft import is_msvc, is_msvc_static_runtime
from conan.tools.scm import Version
-import os
-import glob
-
required_conan_version = ">=2.1.0"
+
class ArrowConan(ConanFile):
name = "arrow"
description = "Apache Arrow is a cross-language development platform for in-memory data"
@@ -80,7 +80,7 @@ class ArrowConan(ConanFile):
"dataset_modules": False,
"deprecated": True,
"encryption": False,
- "filesystem_layer": False,
+ "filesystem_layer": True,
"hdfs_bridgs": False,
"plasma": "deprecated",
"simd_level": "default",
@@ -120,7 +120,7 @@ class ArrowConan(ConanFile):
def _min_cppstd(self):
# arrow >= 10.0.0 requires C++17.
# https://github.com/apache/arrow/pull/13991
- return "11" if Version(self.version) < "10.0.0" else "17"
+ return "17"
def export_sources(self):
export_conandata_patches(self)
@@ -129,10 +129,10 @@ class ArrowConan(ConanFile):
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
- if Version(self.version) < "8.0.0":
- del self.options.substrait
if is_msvc(self):
self.options.with_boost = True
+ if Version(self.version) >= "19.0.0":
+ self.options.with_mimalloc = True
def configure(self):
if self.options.shared:
@@ -187,9 +187,6 @@ class ArrowConan(ConanFile):
self.requires("snappy/1.1.9")
if self.options.get_safe("simd_level") != None or \
self.options.get_safe("runtime_simd_level") != None:
- if Version(self.version) < 8:
- self.requires("xsimd/9.0.1")
- else:
self.requires("xsimd/13.0.0")
if self.options.with_zlib:
self.requires("zlib/[>=1.2.11 <2]")
@@ -231,15 +228,6 @@ class ArrowConan(ConanFile):
if self.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, self._min_cppstd)
- if (
- Version(self.version) < "10.0.0"
- and self.settings.compiler == "clang"
- and Version(self.settings.compiler.version) < "3.9"
- ):
- raise ConanInvalidConfiguration(
- f"{self.ref} requires C++11, which needs at least clang-3.9"
- )
-
if self.options.get_safe("skyhook", False):
raise ConanInvalidConfiguration("CCI has no librados recipe (yet)")
if self.options.with_cuda:
@@ -383,28 +371,11 @@ class ArrowConan(ConanFile):
tc.generate()
deps = CMakeDeps(self)
+ deps.set_property("mimalloc", "cmake_target_name", "mimalloc::mimalloc")
deps.generate()
def _patch_sources(self):
apply_conandata_patches(self)
- if Version(self.version) < "10.0.0":
- for filename in glob.glob(os.path.join(self.source_folder, "cpp", "cmake_modules", "Find*.cmake")):
- if os.path.basename(filename) not in [
- "FindArrow.cmake",
- "FindArrowAcero.cmake",
- "FindArrowCUDA.cmake",
- "FindArrowDataset.cmake",
- "FindArrowFlight.cmake",
- "FindArrowFlightSql.cmake",
- "FindArrowFlightTesting.cmake",
- "FindArrowPython.cmake",
- "FindArrowPythonFlight.cmake",
- "FindArrowSubstrait.cmake",
- "FindArrowTesting.cmake",
- "FindGandiva.cmake",
- "FindParquet.cmake",
- ]:
- os.remove(filename)
def build(self):
self._patch_sources()
@@ -422,29 +393,6 @@ class ArrowConan(ConanFile):
rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
rmdir(self, os.path.join(self.package_folder, "share"))
- cmake_suffix = "shared" if self.options.shared else "static"
-
- alias_map = { f"Arrow::arrow_{cmake_suffix}": f"arrow::arrow_{cmake_suffix}" }
-
- if self.options.parquet:
- alias_map[f"Parquet::parquet_{cmake_suffix}"] = f"arrow::parquet_{cmake_suffix}"
-
- if self.options.get_safe("substrait"):
- alias_map[f"Arrow::arrow_substrait_{cmake_suffix}"] = f"arrow::arrow_substrait_{cmake_suffix}"
-
- if self.options.acero:
- alias_map[f"Arrow::arrow_acero_{cmake_suffix}"] = f"arrow::arrow_acero_{cmake_suffix}"
-
- if self.options.gandiva:
- alias_map[f"Gandiva::gandiva_{cmake_suffix}"] = f"arrow::gandiva_{cmake_suffix}"
-
- if self.options.with_flight_rpc:
- alias_map[f"ArrowFlight::arrow_flight_sql_{cmake_suffix}"] = f"arrow::arrow_flight_sql_{cmake_suffix}"
-
- @property
- def _module_subfolder(self):
- return os.path.join("lib", "cmake")
-
def package_info(self):
# FIXME: fix CMake targets of components
@@ -514,6 +462,8 @@ class ArrowConan(ConanFile):
self.cpp_info.components["dataset"].libs = ["arrow_dataset"]
if self.options.parquet:
self.cpp_info.components["dataset"].requires = ["libparquet"]
+ if self.options.acero and Version(self.version) >= "19.0.0":
+ self.cpp_info.components["dataset"].requires = ["libacero"]
if self.options.cli and (self.options.with_cuda or self.options.with_flight_rpc or self.options.parquet):
binpath = os.path.join(self.package_folder, "bin")
diff --git a/recipes/arrow/all/patches/19.0.1-0001-fix-cmake.patch b/recipes/arrow/all/patches/19.0.1-0001-fix-cmake.patch
new file mode 100644
index 000000000..af7e309cf
--- /dev/null
+++ b/recipes/arrow/all/patches/19.0.1-0001-fix-cmake.patch
@@ -0,0 +1,57 @@
+diff --git a/cpp/cmake_modules/FindThriftAlt.cmake b/cpp/cmake_modules/FindThriftAlt.cmake
+index 98a706d..edf195e 100644
+--- a/cpp/cmake_modules/FindThriftAlt.cmake
++++ b/cpp/cmake_modules/FindThriftAlt.cmake
+@@ -45,22 +45,20 @@ endif()
+ # * https://github.com/apache/thrift/pull/2725
+ # * https://github.com/apache/thrift/pull/2726
+ # * https://github.com/conda-forge/thrift-cpp-feedstock/issues/68
+-if(NOT WIN32)
+- set(find_package_args "")
+- if(ThriftAlt_FIND_VERSION)
+- list(APPEND find_package_args ${ThriftAlt_FIND_VERSION})
+- endif()
+- if(ThriftAlt_FIND_QUIETLY)
+- list(APPEND find_package_args QUIET)
+- endif()
+- find_package(Thrift ${find_package_args})
+- if(Thrift_FOUND)
+- set(ThriftAlt_FOUND TRUE)
+- add_executable(thrift::compiler IMPORTED)
+- set_target_properties(thrift::compiler PROPERTIES IMPORTED_LOCATION
+- "${THRIFT_COMPILER}")
+- return()
+- endif()
++set(find_package_args "")
++if(ThriftAlt_FIND_VERSION)
++ list(APPEND find_package_args ${ThriftAlt_FIND_VERSION})
++endif()
++if(ThriftAlt_FIND_QUIETLY)
++ list(APPEND find_package_args QUIET)
++endif()
++find_package(Thrift ${find_package_args})
++if(Thrift_FOUND)
++ set(ThriftAlt_FOUND TRUE)
++ add_executable(thrift::compiler IMPORTED)
++ set_target_properties(thrift::compiler PROPERTIES IMPORTED_LOCATION
++ "${THRIFT_COMPILER}")
++ return()
+ endif()
+
+ function(extract_thrift_version)
+diff --git a/cpp/src/parquet/size_statistics.cc b/cpp/src/parquet/size_statistics.cc
+index 1ce6c937a..e45eef3f0 100644
+--- a/cpp/src/parquet/size_statistics.cc
++++ b/cpp/src/parquet/size_statistics.cc
+@@ -18,9 +18,11 @@
+ #include "parquet/size_statistics.h"
+
+ #include <algorithm>
++#include <array>
+ #include <numeric>
+ #include <ostream>
+ #include <string_view>
++#include <vector>
+
+ #include "arrow/util/logging.h"
+ #include "parquet/exception.h"
diff --git a/recipes/arrow/all/patches/19.0.1-0002-fix-downloaded-mimalloc.patch b/recipes/arrow/all/patches/19.0.1-0002-fix-downloaded-mimalloc.patch
new file mode 100644
index 000000000..46725ea20
--- /dev/null
+++ b/recipes/arrow/all/patches/19.0.1-0002-fix-downloaded-mimalloc.patch
@@ -0,0 +1,15 @@
+diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
+index abfe6d2..cc0f3c5 100644
+--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
++++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
+@@ -2259,6 +2259,10 @@ endif()
+ # mimalloc - Cross-platform high-performance allocator, from Microsoft
+
+ if(ARROW_MIMALLOC)
++ find_package(mimalloc REQUIRED CONFIG)
++endif()
++
++if(0)
+ if(NOT ARROW_ENABLE_THREADING)
+ message(FATAL_ERROR "Can't use mimalloc with ARROW_ENABLE_THREADING=OFF")
+ endif()
diff --git a/recipes/arrow/all/test_package/CMakeLists.txt b/recipes/arrow/all/test_package/CMakeLists.txt
index bd890a4dd..62e6d3f92 100644
--- a/recipes/arrow/all/test_package/CMakeLists.txt
+++ b/recipes/arrow/all/test_package/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.8)
+cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES CXX)
find_package(Arrow REQUIRED CONFIG)
diff --git a/recipes/arrow/config.yml b/recipes/arrow/config.yml
index 243d0f929..6c7e62f82 100644
--- a/recipes/arrow/config.yml
+++ b/recipes/arrow/config.yml
@@ -1,4 +1,6 @@
versions:
+ "19.0.1":
+ folder: all
"18.1.0":
folder: all
"18.0.0":
cat all/test_package/CMakeLists.txt.rej @@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.8)
+cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES CXX)
find_package(Arrow REQUIRED CONFIG) cat all/conanfile.py.rej @@ -1,3 +1,5 @@
+import os
+
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration, ConanException
from conan.tools.build import check_min_cppstd, cross_building |
@github-actions crossbow submit -g conan |
Revision: ce4e7fb Submitted crossbow builds: ursacomputing/crossbow @ actions-fa68a234cc
|
ce4e7fb
to
e8680a0
Compare
@github-actions crossbow submit -g conan |
Revision: e8680a0 Submitted crossbow builds: ursacomputing/crossbow @ actions-d6d42a5019
|
Rationale for this change
Apache Arrow 19.0.1 available in the conan repository. Need synchronize upstream.
What changes are included in this PR?
ci/conan/merge_upstream.sh
ci/conan/all/test_package/CMakeLists.txt
ci/conan/all/conanfile.py
Are these changes tested?
Yes.
Are there any user-facing changes?
No.