hiroyuki-sato commented on PR #46758:
URL: https://github.com/apache/arrow/pull/46758#issuecomment-2957468897

   ```
   ./merge_upstream.sh /tmp/conan-center-index/
   patching file 'all/conandata.yml'
   patching file 'all/conanfile.py'
   1 out of 10 hunks failed--saving rejects to 'all/conanfile.py.rej'
   patching file 'all/patches/19.0.1-0001-fix-cmake.patch'
   patching file 'all/patches/19.0.1-0002-fix-downloaded-mimalloc.patch'
   patching file 'all/test_package/CMakeLists.txt'
   1 out of 1 hunks failed--saving rejects to 
'all/test_package/CMakeLists.txt.rej'
   patching file config.yml
   ```
   
   
   `git diff  
a9b270f9d2052e193ce3c0a6c4e2fda0b0ac5ade..1729c3c2c3b0e9d058821fa00e8a54154415efc6
 recipes/arrow/`
   
   
   ```diff
   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
   
   ```diff
   @@ -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
   
   ```diff
   @@ -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
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to