Merge pull request #252624 from tobim/pkgs/arrow-cpp-13

arrow-cpp: 12.0.1 -> 13.0.0
This commit is contained in:
Dmitry Kalinkin
2023-09-08 12:03:15 -04:00
committed by GitHub
10 changed files with 138 additions and 23 deletions
@@ -1,18 +1,105 @@
diff --git a/cmake_modules/FindProtobufAlt.cmake b/cmake_modules/FindProtobufAlt.cmake
index d29f757ae..61c6e16e1 100644
diff --git a/cmake_modules/FindProtobufAlt.cmake b/cmake_modules/FindprotobufAlt.cmake
similarity index 60%
rename from cmake_modules/FindProtobufAlt.cmake
rename to cmake_modules/FindprotobufAlt.cmake
index 15fe1b4f2..19bdd6291 100644
--- a/cmake_modules/FindProtobufAlt.cmake
+++ b/cmake_modules/FindProtobufAlt.cmake
@@ -22,11 +22,8 @@ else()
+++ b/cmake_modules/FindprotobufAlt.cmake
@@ -16,24 +16,24 @@
# under the License.
if(ARROW_PROTOBUF_USE_SHARED)
- set(Protobuf_USE_STATIC_LIBS OFF)
+ set(protobuf_USE_STATIC_LIBS OFF)
else()
- set(Protobuf_USE_STATIC_LIBS ON)
+ set(protobuf_USE_STATIC_LIBS ON)
endif()
set(find_package_args)
-if(ProtobufAlt_FIND_VERSION)
- list(APPEND find_package_args ${ProtobufAlt_FIND_VERSION})
-endif()
if(ProtobufAlt_FIND_QUIETLY)
+if(protobufAlt_FIND_VERSION)
+ list(APPEND find_package_args ${protobufAlt_FIND_VERSION})
endif()
-if(ProtobufAlt_FIND_QUIETLY)
+if(protobufAlt_FIND_QUIETLY)
list(APPEND find_package_args QUIET)
endif()
-find_package(Protobuf ${find_package_args})
-set(ProtobufAlt_FOUND ${Protobuf_FOUND})
+find_package(protobuf ${find_package_args})
+set(ProtobufAlt_FOUND ${protobuf_FOUND})
-if(ProtobufAlt_FOUND)
- set(ProtobufAlt_VERSION ${Protobuf_VERSION})
- set(ProtobufAlt_VERSION_MAJOR ${Protobuf_VERSION_MAJOR})
- set(ProtobufAlt_VERSION_MINOR ${Protobuf_VERSION_MINOR})
- set(ProtobufAlt_VERSION_PATCH ${Protobuf_VERSION_PATCH})
- set(ProtobufAlt_VERSION_TWEEK ${Protobuf_VERSION_TWEEK})
+find_package(protobuf ${find_package_args} CONFIG)
+set(protobufAlt_FOUND ${protobuf_FOUND})
+if(protobufAlt_FOUND)
+ set(protobufAlt_VERSION ${protobuf_VERSION})
+ set(protobufAlt_VERSION_MAJOR ${protobuf_VERSION_MAJOR})
+ set(protobufAlt_VERSION_MINOR ${protobuf_VERSION_MINOR})
+ set(protobufAlt_VERSION_PATCH ${protobuf_VERSION_PATCH})
+ set(protobufAlt_VERSION_TWEEK ${protobuf_VERSION_TWEEK})
endif()
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
index 94f926039..8efc98323 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -63,7 +63,7 @@ set(ARROW_THIRDPARTY_DEPENDENCIES
opentelemetry-cpp
ORC
re2
- Protobuf
+ protobuf
RapidJSON
Snappy
Substrait
@@ -189,7 +189,7 @@ macro(build_dependency DEPENDENCY_NAME)
build_opentelemetry()
elseif("${DEPENDENCY_NAME}" STREQUAL "ORC")
build_orc()
- elseif("${DEPENDENCY_NAME}" STREQUAL "Protobuf")
+ elseif("${DEPENDENCY_NAME}" STREQUAL "protobuf")
build_protobuf()
elseif("${DEPENDENCY_NAME}" STREQUAL "RapidJSON")
build_rapidjson()
@@ -1722,7 +1722,7 @@ if(ARROW_WITH_PROTOBUF)
# "3" for 3.12.0 are different. So 23.4 is rejected with 3.12.0. If
# we use FORCE_ANY_NEWER_VERSION here, we can bypass the check and
# use 23.4.
- resolve_dependency(Protobuf
+ resolve_dependency(protobuf
FORCE_ANY_NEWER_VERSION
TRUE
HAVE_ALT
@@ -1732,7 +1732,7 @@ if(ARROW_WITH_PROTOBUF)
PC_PACKAGE_NAMES
protobuf)
- if(NOT Protobuf_USE_STATIC_LIBS AND MSVC_TOOLCHAIN)
+ if(NOT protobuf_USE_STATIC_LIBS AND MSVC_TOOLCHAIN)
add_definitions(-DPROTOBUF_USE_DLLS)
endif()
@@ -1768,8 +1768,8 @@ if(ARROW_WITH_PROTOBUF)
message(STATUS "Found protoc: ${PROTOBUF_PROTOC_EXECUTABLE}")
get_target_property(PROTOBUF_TYPE ${ARROW_PROTOBUF_LIBPROTOBUF} TYPE)
if(NOT STREQUAL "INTERFACE_LIBRARY")
- # Protobuf_PROTOC_LIBRARY is set by all versions of FindProtobuf.cmake
- message(STATUS "Found libprotoc: ${Protobuf_PROTOC_LIBRARY}")
+ # protobuf_PROTOC_LIBRARY is set by all versions of FindProtobuf.cmake
+ message(STATUS "Found libprotoc: ${protobuf_PROTOC_LIBRARY}")
get_target_property(PROTOBUF_LIBRARY ${ARROW_PROTOBUF_LIBPROTOBUF} IMPORTED_LOCATION)
message(STATUS "Found libprotobuf: ${PROTOBUF_LIBRARY}")
message(STATUS "Found protobuf headers: ${PROTOBUF_INCLUDE_DIR}")
@@ -3986,7 +3986,7 @@ endmacro()
if(ARROW_WITH_GRPC)
set(ARROW_GRPC_REQUIRED_VERSION "1.30.0")
- if(NOT Protobuf_SOURCE STREQUAL gRPC_SOURCE)
+ if(NOT protobuf_SOURCE STREQUAL gRPC_SOURCE)
# ARROW-15495: Protobuf/gRPC must come from the same source
message(STATUS "Forcing gRPC_SOURCE to Protobuf_SOURCE (${Protobuf_SOURCE})")
set(gRPC_SOURCE "${Protobuf_SOURCE}")
@@ -1,11 +0,0 @@
diff --git a/cmake_modules/FindPythonLibsNew.cmake b/cmake_modules/FindPythonLibsNew.cmake
--- a/cmake_modules/FindPythonLibsNew.cmake
+++ b/cmake_modules/FindPythonLibsNew.cmake
@@ -117,6 +117,7 @@ list(GET _PYTHON_VALUES 6 PYTHON_SIZEOF_VOID_P)
list(GET _PYTHON_VALUES 7 PYTHON_LIBRARY_SUFFIX)
list(GET _PYTHON_VALUES 8 PYTHON_LIBRARY_PATH)
list(GET _PYTHON_VALUES 9 PYTHON_OTHER_LIBS)
+string(REPLACE "-lncurses" "" PYTHON_OTHER_LIBS "${PYTHON_OTHER_LIBS}")
# Make sure the Python has the same pointer-size as the chosen compiler
# Skip the check on OS X, it doesn't consistently have CMAKE_SIZEOF_VOID_P defined
@@ -78,11 +78,11 @@ let
in
stdenv.mkDerivation rec {
pname = "arrow-cpp";
version = "12.0.1";
version = "13.0.0";
src = fetchurl {
url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
hash = "sha256-NIHEETk6oVx16I2Tz4MV+vf0PhgP4HkBKNOEDUF96Fg=";
hash = "sha256-Nd/aGRJip1a+k07viv7o0JdiytJQIdqmJuskniUayeY=";
};
sourceRoot = "apache-arrow-${version}/cpp";
@@ -120,8 +120,7 @@ stdenv.mkDerivation rec {
};
patches = [
# patch to fix python-test
./darwin.patch
# Protobuf switched to lower case project name.
./cmake-find-protobuf.patch
];
@@ -3,6 +3,7 @@
, buildPythonPackage
, dask
, fetchFromGitHub
, fetchpatch
, hatch-vcs
, hatchling
, pyarrow
@@ -25,6 +26,14 @@ buildPythonPackage rec {
hash = "sha256-sSsd35Psf3VEydkNxtd9mSBzV23S7fRM/jhbC9T62kY=";
};
patches = [
(fetchpatch {
name = "dask-awkward-pyarrow13-test-fixes.patch";
url = "https://github.com/dask-contrib/dask-awkward/commit/abe7f4504b4f926232e4d0dfa5c601d265773d85.patch";
hash = "sha256-IYlKTV6YasuKIJutB4cCmHeglGWUwBcvFgx1MZw4hjU=";
})
];
SETUPTOOLS_SCM_PRETEND_VERSION = version;
pythonRelaxDeps = [
@@ -134,6 +134,8 @@ buildPythonPackage rec {
# AttributeError: 'str' object has no attribute 'decode'
"test_read_dir_nometa"
] ++ [
# https://github.com/dask/dask/issues/10347#issuecomment-1589683941
"test_concat_categorical"
# AttributeError: 'ArrowStringArray' object has no attribute 'tobytes'. Did you mean: 'nbytes'?
"test_dot"
"test_dot_nan"
@@ -127,6 +127,8 @@ buildPythonPackage rec {
];
meta = with lib; {
# Not compatible with pyarrow13 yet.
broken = true;
description = "Google BigQuery API client library";
homepage = "https://github.com/googleapis/python-bigquery";
changelog = "https://github.com/googleapis/python-bigquery/blob/v${version}/CHANGELOG.md";
@@ -130,6 +130,19 @@ buildPythonPackage rec {
# tries to download duckdb extensions
"--deselect=ibis/backends/duckdb/tests/test_register.py::test_register_sqlite"
"--deselect=ibis/backends/duckdb/tests/test_register.py::test_read_sqlite"
# pyarrow13 is not supported yet.
"--deselect=ibis/backends/tests/test_temporal.py::test_date_truncate"
"--deselect=ibis/backends/tests/test_temporal.py::test_integer_to_interval_timestamp"
"--deselect=ibis/backends/tests/test_temporal.py::test_integer_to_interval_timestamp"
"--deselect=ibis/backends/tests/test_temporal.py::test_interval_add_cast_column"
"--deselect=ibis/backends/tests/test_temporal.py::test_integer_to_interval_timestamp"
"--deselect=ibis/backends/tests/test_temporal.py::test_integer_to_interval_timestamp"
"--deselect=ibis/backends/tests/test_temporal.py::test_integer_to_interval_timestamp"
"--deselect=ibis/backends/tests/test_temporal.py::test_integer_to_interval_timestamp"
"--deselect=ibis/backends/tests/test_timecontext.py::test_context_adjustment_filter_before_window"
"--deselect=ibis/backends/tests/test_timecontext.py::test_context_adjustment_window_udf"
"--deselect=ibis/backends/tests/test_timecontext.py::test_context_adjustment_window_udf"
"--deselect=ibis/backends/tests/test_aggregation.py::test_aggregate_grouped"
];
# patch out tests that check formatting with black
@@ -69,6 +69,9 @@ buildPythonPackage rec {
doCheck = false; # Upstream has no tests
meta = with lib; {
# Both protobuf3 and protobuf4 in the build closure.
# related: https://github.com/onnx/onnx/issues/5563
broken = true;
description = "State-of-the-art 2D and 3D Face Analysis Project";
homepage = "https://github.com/deepinsight/insightface";
license = licenses.mit;
@@ -107,6 +107,16 @@ buildPythonPackage rec {
"test_python"
# Timing-based, flaky on darwin and possibly others
"TestServerV1Source.test_idle_timer"
# arrow-cpp-13 related
"test_read"
"test_pickle"
"test_read_dask"
"test_read_list"
"test_read_list_with_glob"
"test_to_dask"
"test_columns"
"test_df_transform"
"test_pipeline_apply"
] ++ lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
# Flaky with older low-res mtime on darwin < 10.13 (#143987)
"test_second_load_timestamp"
@@ -68,6 +68,7 @@ buildPythonPackage rec {
];
meta = with lib; {
broken = true;
homepage = "https://github.com/mindwerks/worldengine";
description = "World generator using simulation of plates, rain shadow, erosion, etc";
license = licenses.mit;