arrow-cpp: 0.15.1 -> 0.16.0
This switches to explicitly enabling dependency lookups for optional features (they were not picked up before). It also enables building of the Parquet command line tools.
This commit is contained in:
@@ -1,24 +1,24 @@
|
|||||||
{ stdenv, lib, fetchurl, fetchFromGitHub, fixDarwinDylibNames, autoconf, boost
|
{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames, autoconf, boost
|
||||||
, brotli, cmake, double-conversion, flatbuffers, gflags, glog, gtest, lz4, perl
|
, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4, perl
|
||||||
, python, rapidjson, snappy, thrift, uriparser, which, zlib, zstd
|
, python, rapidjson, snappy, thrift, which, zlib, zstd
|
||||||
, enableShared ? true }:
|
, enableShared ? true }:
|
||||||
|
|
||||||
let
|
let
|
||||||
parquet-testing = fetchFromGitHub {
|
parquet-testing = fetchFromGitHub {
|
||||||
owner = "apache";
|
owner = "apache";
|
||||||
repo = "parquet-testing";
|
repo = "parquet-testing";
|
||||||
rev = "a277dc4e55ded3e3ea27dab1e4faf98c112442df";
|
rev = "46c9e977f58f6c5ef1b81f782f3746b3656e5a8c";
|
||||||
sha256 = "1yh5a8l4ship36hwmgmp2kl72s5ac9r8ly1qcs650xv2g9q7yhnq";
|
sha256 = "1z2s6zh58nf484s0yraw7b1aqgx66dn2wzp1bzv9ndq03msklwly";
|
||||||
};
|
};
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "arrow-cpp";
|
pname = "arrow-cpp";
|
||||||
version = "0.15.1";
|
version = "0.16.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url =
|
url =
|
||||||
"mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
|
"mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
|
||||||
sha256 = "1jbghpppabsix2rkxbnh41inj9lcxfz4q94p96xzxshh4g3mhb4s";
|
sha256 = "1xdp1yni9i1cpml326s78qql1g832m800h7zjlqmk89983g94696";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = "apache-arrow-${version}/cpp";
|
sourceRoot = "apache-arrow-${version}/cpp";
|
||||||
@@ -35,6 +35,14 @@ in stdenv.mkDerivation rec {
|
|||||||
patches = [
|
patches = [
|
||||||
# patch to fix python-test
|
# patch to fix python-test
|
||||||
./darwin.patch
|
./darwin.patch
|
||||||
|
# Adjust CMake target names to make -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON work.
|
||||||
|
# Remove this when updating to the next version.
|
||||||
|
(fetchpatch {
|
||||||
|
name = "arrow-use-upstream-cmake-target-names.patch";
|
||||||
|
url = "https://github.com/apache/arrow/commit/396861b38d2f4e805db7c2ecd2c96fff0ca2678b.patch";
|
||||||
|
sha256 = "0ki7nx858374anvwyi4szz5hgnnzv4fghdd05c38bzry9rfljgb1";
|
||||||
|
stripLen = 1;
|
||||||
|
})
|
||||||
] ++ lib.optionals (!enableShared) [
|
] ++ lib.optionals (!enableShared) [
|
||||||
# The shared jemalloc lib is unused and breaks in static mode due to missing -fpic.
|
# The shared jemalloc lib is unused and breaks in static mode due to missing -fpic.
|
||||||
./jemalloc-disable-shared.patch
|
./jemalloc-disable-shared.patch
|
||||||
@@ -48,7 +56,6 @@ in stdenv.mkDerivation rec {
|
|||||||
buildInputs = [
|
buildInputs = [
|
||||||
boost
|
boost
|
||||||
brotli
|
brotli
|
||||||
double-conversion
|
|
||||||
flatbuffers
|
flatbuffers
|
||||||
gflags
|
gflags
|
||||||
glog
|
glog
|
||||||
@@ -57,7 +64,6 @@ in stdenv.mkDerivation rec {
|
|||||||
rapidjson
|
rapidjson
|
||||||
snappy
|
snappy
|
||||||
thrift
|
thrift
|
||||||
uriparser
|
|
||||||
zlib
|
zlib
|
||||||
zstd
|
zstd
|
||||||
python.pkgs.python
|
python.pkgs.python
|
||||||
@@ -71,15 +77,28 @@ in stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
|
"-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON"
|
||||||
"-DARROW_BUILD_TESTS=ON"
|
"-DARROW_BUILD_TESTS=ON"
|
||||||
"-DARROW_DEPENDENCY_SOURCE=SYSTEM"
|
"-DARROW_DEPENDENCY_SOURCE=SYSTEM"
|
||||||
"-DARROW_PARQUET=ON"
|
|
||||||
"-DARROW_PLASMA=ON"
|
"-DARROW_PLASMA=ON"
|
||||||
# Disable Python for static mode because openblas is currently broken there.
|
# Disable Python for static mode because openblas is currently broken there.
|
||||||
"-DARROW_PYTHON=${if enableShared then "ON" else "OFF"}"
|
"-DARROW_PYTHON=${if enableShared then "ON" else "OFF"}"
|
||||||
"-Duriparser_SOURCE=SYSTEM"
|
"-DARROW_USE_GLOG=ON"
|
||||||
|
"-DARROW_WITH_BROTLI=ON"
|
||||||
|
"-DARROW_WITH_LZ4=ON"
|
||||||
|
"-DARROW_WITH_SNAPPY=ON"
|
||||||
|
"-DARROW_WITH_ZLIB=ON"
|
||||||
|
"-DARROW_WITH_ZSTD=ON"
|
||||||
|
# Parquet options:
|
||||||
|
"-DARROW_PARQUET=ON"
|
||||||
|
"-DPARQUET_BUILD_EXECUTABLES=ON"
|
||||||
|
"-DTHRIFT_COMPILER=${thrift}/bin/thrift"
|
||||||
|
"-DTHRIFT_VERSION=${thrift.version}"
|
||||||
] ++ lib.optionals (!enableShared) [
|
] ++ lib.optionals (!enableShared) [
|
||||||
"-DARROW_BUILD_SHARED=OFF"
|
"-DARROW_BUILD_SHARED=OFF"
|
||||||
|
"-DARROW_BOOST_USE_SHARED=OFF"
|
||||||
|
"-DARROW_GFLAGS_USE_SHARED=OFF"
|
||||||
|
"-DARROW_PROTOBUF_USE_SHARED=OFF"
|
||||||
"-DARROW_TEST_LINKAGE=static"
|
"-DARROW_TEST_LINKAGE=static"
|
||||||
"-DOPENSSL_USE_STATIC_LIBS=ON"
|
"-DOPENSSL_USE_STATIC_LIBS=ON"
|
||||||
] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF";
|
] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF";
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
|
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
|
||||||
--- a/cmake_modules/ThirdpartyToolchain.cmake
|
--- a/cmake_modules/ThirdpartyToolchain.cmake
|
||||||
+++ b/cmake_modules/ThirdpartyToolchain.cmake
|
+++ b/cmake_modules/ThirdpartyToolchain.cmake
|
||||||
@@ -1428,6 +1428,7 @@ if(ARROW_JEMALLOC)
|
@@ -1317,6 +1317,7 @@ if(ARROW_JEMALLOC)
|
||||||
"--with-jemalloc-prefix=je_arrow_"
|
"--with-jemalloc-prefix=je_arrow_"
|
||||||
"--with-private-namespace=je_arrow_private_"
|
"--with-private-namespace=je_arrow_private_"
|
||||||
"--without-export"
|
"--without-export"
|
||||||
+ "--disable-shared"
|
+ "--disable-shared"
|
||||||
# Don't override operator new()
|
# Don't override operator new()
|
||||||
"--disable-cxx" "--disable-libdl"
|
"--disable-cxx" "--disable-libdl"
|
||||||
# See https://github.com/jemalloc/jemalloc/issues/1237
|
# See https://github.com/jemalloc/jemalloc/issues/1237
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, futures, hypothesis, numpy, pandas, pytest, pkgconfig, setuptools_scm, six }:
|
{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, futures, hypothesis, numpy, pandas, pytest, pytest-lazy-fixture, pkgconfig, setuptools_scm, six }:
|
||||||
|
|
||||||
let
|
let
|
||||||
_arrow-cpp = arrow-cpp.override { inherit python; };
|
_arrow-cpp = arrow-cpp.override { inherit python; };
|
||||||
@@ -13,7 +13,7 @@ buildPythonPackage rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ cmake cython pkgconfig setuptools_scm ];
|
nativeBuildInputs = [ cmake cython pkgconfig setuptools_scm ];
|
||||||
propagatedBuildInputs = [ numpy six ] ++ lib.optionals (!isPy3k) [ futures ];
|
propagatedBuildInputs = [ numpy six ] ++ lib.optionals (!isPy3k) [ futures ];
|
||||||
checkInputs = [ hypothesis pandas pytest ];
|
checkInputs = [ hypothesis pandas pytest pytest-lazy-fixture ];
|
||||||
|
|
||||||
PYARROW_BUILD_TYPE = "release";
|
PYARROW_BUILD_TYPE = "release";
|
||||||
PYARROW_WITH_PARQUET = true;
|
PYARROW_WITH_PARQUET = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user