lol

arrow-cpp: 0.10.0 -> 0.11.0 (#48066)

* arrow-cpp: 0.10.0 -> 0.11.0

* arrow-cpp: enable testing

authored by

Dmitry Kalinkin and committed by
Frederik Rietdijk
4ed99336 045a4a4b

+90 -62
+41 -8
pkgs/development/libraries/arrow-cpp/default.nix
··· 1 - { stdenv, symlinkJoin, fetchurl, boost, brotli, cmake, flatbuffers, gtest, gflags, lz4, python, rapidjson, snappy, zlib, zstd }: 1 + { stdenv, symlinkJoin, fetchurl, fetchFromGitHub, boost, brotli, cmake, double-conversion, flatbuffers, gflags, glog, gtest, lz4, perl, python, rapidjson, snappy, thrift, which, zlib, zstd }: 2 + 3 + let 4 + parquet-testing = fetchFromGitHub { 5 + owner = "apache"; 6 + repo = "parquet-testing"; 7 + rev = "46ae2605c2de306f5740587107dcf333a527f2d1"; 8 + sha256 = "07ps745gas2zcfmg56m3vwl63yyzmalnxwb5dc40vd004cx5hdik"; 9 + }; 10 + in 2 11 3 12 stdenv.mkDerivation rec { 4 13 name = "arrow-cpp-${version}"; 5 - version = "0.10.0"; 14 + version = "0.11.0"; 6 15 7 16 src = fetchurl { 8 17 url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz"; 9 - sha256 = "0bc4krapz1kzdm16npzmgdz7zvg9lip6rnqbwph8vfn7zji0fcll"; 18 + sha256 = "0pc5pqr0dbnx8s1ji102dhw9bbrsq3ml4ac3mmi2022yfyizlf0q"; 10 19 }; 11 20 12 21 sourceRoot = "apache-arrow-${version}/cpp"; 13 22 14 - # patch to fix python-test 15 - patches = [ ./darwin.patch ]; 23 + patches = [ 24 + # fix ARROW-3467 25 + ./double-conversion_cmake.patch 26 + 27 + # patch to fix python-test 28 + ./darwin.patch 29 + ]; 16 30 17 31 nativeBuildInputs = [ cmake ]; 18 - buildInputs = [ boost python.pkgs.python python.pkgs.numpy ]; 32 + buildInputs = [ boost double-conversion glog python.pkgs.python python.pkgs.numpy ]; 19 33 20 34 preConfigure = '' 35 + substituteInPlace cmake_modules/FindThrift.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY 21 36 substituteInPlace cmake_modules/FindBrotli.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY 37 + substituteInPlace cmake_modules/FindGLOG.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY 22 38 substituteInPlace cmake_modules/FindLz4.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY 23 39 substituteInPlace cmake_modules/FindSnappy.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY 40 + 41 + patchShebangs build-support/ 24 42 ''; 25 43 26 44 BROTLI_HOME = symlinkJoin { name="brotli-wrap"; paths = [ brotli.lib brotli.dev ]; }; 45 + DOUBLE_CONVERSION_HOME = double-conversion; 27 46 FLATBUFFERS_HOME = flatbuffers; 47 + GFLAGS_HOME = gflags; 48 + GLOG_HOME = glog; 28 49 GTEST_HOME = gtest; 29 - GFLAGS_HOME = gflags; 30 50 LZ4_HOME = symlinkJoin { name="lz4-wrap"; paths = [ lz4 lz4.dev ]; }; 31 51 RAPIDJSON_HOME = rapidjson; 32 52 SNAPPY_HOME = symlinkJoin { name="snappy-wrap"; paths = [ snappy snappy.dev ]; }; 33 - ZLIB_HOME = symlinkJoin { name="zlib-wrap"; paths = [ zlib.dev zlib.static ]; }; 53 + THRIFT_HOME = thrift; 54 + ZLIB_HOME = symlinkJoin { name="zlib-wrap"; paths = [ zlib zlib.dev ]; }; 34 55 ZSTD_HOME = zstd; 35 56 36 57 cmakeFlags = [ 37 58 "-DARROW_PYTHON=ON" 59 + "-DARROW_PARQUET=ON" 38 60 ]; 61 + 62 + doInstallCheck = true; 63 + PARQUET_TEST_DATA = if doInstallCheck then "${parquet-testing}/data" else null; 64 + installCheckInputs = [ perl which ]; 65 + installCheckPhase = (stdenv.lib.optionalString stdenv.isDarwin '' 66 + for f in release/*-test; do 67 + install_name_tool -add_rpath "$out"/lib "$f" 68 + done 69 + '') + '' 70 + ctest -L unittest -V 71 + ''; 39 72 40 73 meta = { 41 74 description = "A cross-language development platform for in-memory data";
+43
pkgs/development/libraries/arrow-cpp/double-conversion_cmake.patch
··· 1 + diff --git a/CMakeLists.txt b/cpp/CMakeLists.txt 2 + --- a/CMakeLists.txt 3 + +++ b/CMakeLists.txt 4 + @@ -615,7 +615,7 @@ endif(UNIX) 5 + set(ARROW_LINK_LIBS) 6 + 7 + # Libraries to link statically with libarrow.so 8 + -set(ARROW_STATIC_LINK_LIBS double-conversion) 9 + +set(ARROW_STATIC_LINK_LIBS ${DOUBLE_CONVERSION_TARGET}) 10 + 11 + if (ARROW_WITH_BROTLI) 12 + SET(ARROW_STATIC_LINK_LIBS 13 + @@ -694,7 +694,7 @@ else () 14 + set(ARROW_MIN_TEST_LIBS 15 + arrow_shared 16 + ${ARROW_LINK_LIBS} 17 + - double-conversion 18 + + ${DOUBLE_CONVERSION_TARGET} 19 + ${BOOST_SYSTEM_LIBRARY} 20 + ${BOOST_FILESYSTEM_LIBRARY} 21 + ${BOOST_REGEX_LIBRARY} 22 + diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake 23 + --- a/cmake_modules/ThirdpartyToolchain.cmake 24 + +++ b/cmake_modules/ThirdpartyToolchain.cmake 25 + @@ -469,14 +469,16 @@ if("${DOUBLE_CONVERSION_HOME}" STREQUAL "") 26 + set(DOUBLE_CONVERSION_VENDORED 1) 27 + else() 28 + find_package(double-conversion REQUIRED) 29 + + set(DOUBLE_CONVERSION_TARGET double-conversion::double-conversion) 30 + set(DOUBLE_CONVERSION_VENDORED 0) 31 + endif() 32 + 33 + include_directories(SYSTEM ${DOUBLE_CONVERSION_INCLUDE_DIR}) 34 + -ADD_THIRDPARTY_LIB(double-conversion 35 + - STATIC_LIB ${DOUBLE_CONVERSION_STATIC_LIB}) 36 + 37 + if (DOUBLE_CONVERSION_VENDORED) 38 + + ADD_THIRDPARTY_LIB(double-conversion 39 + + STATIC_LIB ${DOUBLE_CONVERSION_STATIC_LIB}) 40 + + set(DOUBLE_CONVERSION_TARGET double-conversion) 41 + add_dependencies(arrow_dependencies double-conversion_ep) 42 + endif() 43 +
-39
pkgs/development/libraries/parquet-cpp/default.nix
··· 1 - { stdenv, symlinkJoin, fetchurl, arrow-cpp, boost, cmake, gtest, snappy, thrift, zlib }: 2 - 3 - stdenv.mkDerivation rec { 4 - name = "parquet-cpp-${version}"; 5 - version = "1.5.0"; 6 - 7 - src = fetchurl { 8 - url = "https://github.com/apache/parquet-cpp/archive/apache-${name}.tar.gz"; 9 - sha256 = "19nwqahc0igr0jfprbf2m86rmzz6zicw4z7b8z832wbsyc904wli"; 10 - }; 11 - 12 - patches = [ ./api.patch ]; 13 - 14 - nativeBuildInputs = [ cmake ]; 15 - buildInputs = [ boost ]; 16 - 17 - preConfigure = '' 18 - substituteInPlace cmake_modules/FindThrift.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY 19 - substituteInPlace cmake_modules/FindSnappy.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY 20 - ''; 21 - 22 - ARROW_HOME = arrow-cpp; 23 - THRIFT_HOME = thrift; 24 - GTEST_HOME = gtest; 25 - SNAPPY_HOME = symlinkJoin { name="snappy-wrap"; paths = [ snappy snappy.dev ]; }; 26 - ZLIB_HOME = symlinkJoin { name="zlib-wrap"; paths = [ zlib.dev zlib.static ]; }; 27 - 28 - cmakeFlags = [ 29 - "-DPARQUET_BUILD_BENCHMARKS=OFF" 30 - ]; 31 - 32 - meta = { 33 - description = "A C++ library to read and write the Apache Parquet columnar data format"; 34 - homepage = http://parquet.apache.org; 35 - license = stdenv.lib.licenses.asl20; 36 - platforms = stdenv.lib.platforms.unix; 37 - maintainers = with stdenv.lib.maintainers; [ veprbl ]; 38 - }; 39 - }
+5 -13
pkgs/development/python-modules/pyarrow/default.nix
··· 1 - { lib, buildPythonPackage, python, isPy3k, fetchurl, arrow-cpp, cmake, cython, futures, JPype1, numpy, pandas, pytest, pytestrunner, parquet-cpp, pkgconfig, setuptools_scm, six }: 1 + { lib, buildPythonPackage, python, isPy3k, fetchurl, arrow-cpp, cmake, cython, futures, JPype1, numpy, pandas, pytest, pytestrunner, pkgconfig, setuptools_scm, six }: 2 2 3 3 let 4 - _arrow-cpp = arrow-cpp.override { inherit python;}; 5 - _parquet-cpp = parquet-cpp.override { arrow-cpp = _arrow-cpp; }; 4 + _arrow-cpp = arrow-cpp.override { inherit python; }; 6 5 in 7 6 8 7 buildPythonPackage rec { ··· 17 16 checkInputs = [ pandas pytest pytestrunner JPype1 ]; 18 17 19 18 PYARROW_BUILD_TYPE = "release"; 20 - PYARROW_CMAKE_OPTIONS = "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib;${PARQUET_HOME}/lib"; 21 - 22 - preBuild = '' 23 - substituteInPlace CMakeLists.txt --replace "\''${ARROW_ABI_VERSION}" '"0.0.0"' 24 - substituteInPlace CMakeLists.txt --replace "\''${ARROW_SO_VERSION}" '"0"' 25 - 26 - # fix the hardcoded value 27 - substituteInPlace cmake_modules/FindParquet.cmake --replace 'set(PARQUET_ABI_VERSION "1.0.0")' 'set(PARQUET_ABI_VERSION "${_parquet-cpp.version}")' 28 - ''; 19 + PYARROW_CMAKE_OPTIONS = "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"; 29 20 30 21 preCheck = '' 31 22 rm pyarrow/tests/test_hdfs.py 23 + rm pyarrow/tests/test_cuda.py 32 24 33 25 # fails: "ArrowNotImplementedError: Unsupported numpy type 22" 34 26 substituteInPlace pyarrow/tests/test_feather.py --replace "test_timedelta_with_nulls" "_disabled" ··· 47 39 ''; 48 40 49 41 ARROW_HOME = _arrow-cpp; 50 - PARQUET_HOME = _parquet-cpp; 42 + PARQUET_HOME = _arrow-cpp; 51 43 52 44 setupPyBuildFlags = ["--with-parquet" ]; 53 45
+1
pkgs/top-level/aliases.nix
··· 207 207 openssh_with_kerberos = openssh; # added 2018-01-28 208 208 owncloudclient = owncloud-client; # added 2016-08 209 209 p11_kit = p11-kit; # added 2018-02-25 210 + parquet-cpp = arrow-cpp; # added 2018-09-08 210 211 pass-otp = pass.withExtensions (ext: [ext.pass-otp]); # added 2018-05-04 211 212 pgp-tools = signing-party; # added 2017-03-26 212 213 pidgin-with-plugins = pidgin; # added 2016-06
-2
pkgs/top-level/all-packages.nix
··· 11600 11600 11601 11601 paperkey = callPackage ../tools/security/paperkey { }; 11602 11602 11603 - parquet-cpp = callPackage ../development/libraries/parquet-cpp {}; 11604 - 11605 11603 pangoxsl = callPackage ../development/libraries/pangoxsl { }; 11606 11604 11607 11605 pcaudiolib = callPackage ../development/libraries/pcaudiolib {