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:
Tobias Mayer 2020-02-11 11:57:42 +01:00
parent 4594022ec3
commit 5ddadce27b
No known key found for this signature in database
GPG key ID: F8657E90819A1298
3 changed files with 40 additions and 21 deletions

View file

@ -1,24 +1,24 @@
{ stdenv, lib, fetchurl, fetchFromGitHub, fixDarwinDylibNames, autoconf, boost
, brotli, cmake, double-conversion, flatbuffers, gflags, glog, gtest, lz4, perl
, python, rapidjson, snappy, thrift, uriparser, which, zlib, zstd
{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames, autoconf, boost
, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4, perl
, python, rapidjson, snappy, thrift, which, zlib, zstd
, enableShared ? true }:
let
parquet-testing = fetchFromGitHub {
owner = "apache";
repo = "parquet-testing";
rev = "a277dc4e55ded3e3ea27dab1e4faf98c112442df";
sha256 = "1yh5a8l4ship36hwmgmp2kl72s5ac9r8ly1qcs650xv2g9q7yhnq";
rev = "46c9e977f58f6c5ef1b81f782f3746b3656e5a8c";
sha256 = "1z2s6zh58nf484s0yraw7b1aqgx66dn2wzp1bzv9ndq03msklwly";
};
in stdenv.mkDerivation rec {
pname = "arrow-cpp";
version = "0.15.1";
version = "0.16.0";
src = fetchurl {
url =
"mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
sha256 = "1jbghpppabsix2rkxbnh41inj9lcxfz4q94p96xzxshh4g3mhb4s";
sha256 = "1xdp1yni9i1cpml326s78qql1g832m800h7zjlqmk89983g94696";
};
sourceRoot = "apache-arrow-${version}/cpp";
@ -35,6 +35,14 @@ in stdenv.mkDerivation rec {
patches = [
# patch to fix python-test
./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) [
# The shared jemalloc lib is unused and breaks in static mode due to missing -fpic.
./jemalloc-disable-shared.patch
@ -48,7 +56,6 @@ in stdenv.mkDerivation rec {
buildInputs = [
boost
brotli
double-conversion
flatbuffers
gflags
glog
@ -57,7 +64,6 @@ in stdenv.mkDerivation rec {
rapidjson
snappy
thrift
uriparser
zlib
zstd
python.pkgs.python
@ -71,15 +77,28 @@ in stdenv.mkDerivation rec {
'';
cmakeFlags = [
"-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON"
"-DARROW_BUILD_TESTS=ON"
"-DARROW_DEPENDENCY_SOURCE=SYSTEM"
"-DARROW_PARQUET=ON"
"-DARROW_PLASMA=ON"
# Disable Python for static mode because openblas is currently broken there.
"-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) [
"-DARROW_BUILD_SHARED=OFF"
"-DARROW_BOOST_USE_SHARED=OFF"
"-DARROW_GFLAGS_USE_SHARED=OFF"
"-DARROW_PROTOBUF_USE_SHARED=OFF"
"-DARROW_TEST_LINKAGE=static"
"-DOPENSSL_USE_STATIC_LIBS=ON"
] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF";

View file

@ -1,11 +1,11 @@
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -1428,6 +1428,7 @@ if(ARROW_JEMALLOC)
"--with-jemalloc-prefix=je_arrow_"
"--with-private-namespace=je_arrow_private_"
"--without-export"
+ "--disable-shared"
# Don't override operator new()
"--disable-cxx" "--disable-libdl"
# See https://github.com/jemalloc/jemalloc/issues/1237
@@ -1317,6 +1317,7 @@ if(ARROW_JEMALLOC)
"--with-jemalloc-prefix=je_arrow_"
"--with-private-namespace=je_arrow_private_"
"--without-export"
+ "--disable-shared"
# Don't override operator new()
"--disable-cxx" "--disable-libdl"
# See https://github.com/jemalloc/jemalloc/issues/1237

View file

@ -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
_arrow-cpp = arrow-cpp.override { inherit python; };
@ -13,7 +13,7 @@ buildPythonPackage rec {
nativeBuildInputs = [ cmake cython pkgconfig setuptools_scm ];
propagatedBuildInputs = [ numpy six ] ++ lib.optionals (!isPy3k) [ futures ];
checkInputs = [ hypothesis pandas pytest ];
checkInputs = [ hypothesis pandas pytest pytest-lazy-fixture ];
PYARROW_BUILD_TYPE = "release";
PYARROW_WITH_PARQUET = true;