This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 196cde38c1 GH-46757: [CI][Packaging][Conan] Synchronize upstream conan 
(#46758)
196cde38c1 is described below

commit 196cde38c112d32a944afe978b6da9c7ce935ef7
Author: Hiroyuki Sato <hiroys...@gmail.com>
AuthorDate: Mon Jun 16 06:14:44 2025 +0900

    GH-46757: [CI][Packaging][Conan] Synchronize upstream conan (#46758)
    
    ### Rationale for this change
    
    Apache Arrow 19.0.1 available in the conan repository. Need synchronize 
upstream.
    
    ### What changes are included in this PR?
    
    * execute `ci/conan/merge_upstream.sh`
    * Resolve merge failed files. (Both files contains license headers. So 
patch failed)
      * `ci/conan/all/test_package/CMakeLists.txt`
      * `ci/conan/all/conanfile.py`
    
    ### Are these changes tested?
    
    Yes.
    
    ### Are there any user-facing changes?
    
    No.
    * GitHub Issue: #46757
    
    Lead-authored-by: Hiroyuki Sato <hiroys...@gmail.com>
    Co-authored-by: Sutou Kouhei <k...@cozmixng.org>
    Signed-off-by: Sutou Kouhei <k...@clear-code.com>
---
 ci/conan/all/conandata.yml                         | 10 +++
 ci/conan/all/conanfile.py                          | 70 +++----------------
 ci/conan/all/patches/19.0.1-0001-fix-cmake.patch   | 79 ++++++++++++++++++++++
 .../19.0.1-0002-fix-downloaded-mimalloc.patch      | 37 ++++++++++
 ci/conan/all/test_package/CMakeLists.txt           |  2 +-
 ci/conan/config.yml                                |  2 +
 ci/conan/merge_status.sh                           |  2 +-
 7 files changed, 140 insertions(+), 62 deletions(-)

diff --git a/ci/conan/all/conandata.yml b/ci/conan/all/conandata.yml
index a13b31c2e8..4efaf70568 100644
--- a/ci/conan/all/conandata.yml
+++ b/ci/conan/all/conandata.yml
@@ -21,6 +21,9 @@
 # SOFTWARE.
 
 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"
@@ -40,6 +43,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/ci/conan/all/conanfile.py b/ci/conan/all/conanfile.py
index 5db9fe3567..6881ee6f32 100644
--- a/ci/conan/all/conanfile.py
+++ b/ci/conan/all/conanfile.py
@@ -20,6 +20,8 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 
+import os
+
 from conan import ConanFile
 from conan.errors import ConanInvalidConfiguration, ConanException
 from conan.tools.build import check_min_cppstd, cross_building
@@ -28,11 +30,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"
@@ -102,7 +102,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",
@@ -142,7 +142,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)
@@ -151,10 +151,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:
@@ -209,9 +209,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]")
@@ -253,15 +250,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:
@@ -425,28 +413,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()
@@ -464,29 +435,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
 
@@ -556,6 +504,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/ci/conan/all/patches/19.0.1-0001-fix-cmake.patch 
b/ci/conan/all/patches/19.0.1-0001-fix-cmake.patch
new file mode 100644
index 0000000000..0d37465a0e
--- /dev/null
+++ b/ci/conan/all/patches/19.0.1-0001-fix-cmake.patch
@@ -0,0 +1,79 @@
+MIT License
+
+Copyright (c) 2025 Conan.io
+
+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.
+
+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/ci/conan/all/patches/19.0.1-0002-fix-downloaded-mimalloc.patch 
b/ci/conan/all/patches/19.0.1-0002-fix-downloaded-mimalloc.patch
new file mode 100644
index 0000000000..d49f14dcc8
--- /dev/null
+++ b/ci/conan/all/patches/19.0.1-0002-fix-downloaded-mimalloc.patch
@@ -0,0 +1,37 @@
+MIT License
+
+Copyright (c) 2025 Conan.io
+
+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.
+
+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/ci/conan/all/test_package/CMakeLists.txt 
b/ci/conan/all/test_package/CMakeLists.txt
index b25c8e889c..d85120a662 100644
--- a/ci/conan/all/test_package/CMakeLists.txt
+++ b/ci/conan/all/test_package/CMakeLists.txt
@@ -20,7 +20,7 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 
-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/ci/conan/config.yml b/ci/conan/config.yml
index cbb2fce054..33c0261df7 100644
--- a/ci/conan/config.yml
+++ b/ci/conan/config.yml
@@ -21,6 +21,8 @@
 # SOFTWARE.
 
 versions:
+  "19.0.1":
+    folder: all
   "18.1.0":
     folder: all
   "18.0.0":
diff --git a/ci/conan/merge_status.sh b/ci/conan/merge_status.sh
index 600385c0e1..229c3a4394 100644
--- a/ci/conan/merge_status.sh
+++ b/ci/conan/merge_status.sh
@@ -15,4 +15,4 @@
 # specific language governing permissions and limitations
 # under the License.
 
-UPSTREAM_REVISION=a9b270f9d2052e193ce3c0a6c4e2fda0b0ac5ade
+UPSTREAM_REVISION=1729c3c2c3b0e9d058821fa00e8a54154415efc6

Reply via email to