diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix index 806df81a708..5fb8746efae 100644 --- a/pkgs/development/libraries/arrow-cpp/default.nix +++ b/pkgs/development/libraries/arrow-cpp/default.nix @@ -19,6 +19,7 @@ , grpc , gtest , jemalloc +, libbacktrace , lz4 , minio , ninja @@ -69,21 +70,20 @@ let in stdenv.mkDerivation rec { pname = "arrow-cpp"; - version = "7.0.0"; + version = "8.0.0"; src = fetchurl { - url = - "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz"; - hash = "sha256-6PSbFJoV7O9OQPz6sbh8ETxrHuGGAFwWnlzfldMamd4="; + url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz"; + hash = "sha256-rZoFcFEXyYnBFrrprHBJL+AVBQ4bgPsOOP3ktdhjqqM="; }; sourceRoot = "apache-arrow-${version}/cpp"; ${if enableJemalloc then "ARROW_JEMALLOC_URL" else null} = jemalloc.src; + # versions are all taken from + # https://github.com/apache/arrow/blob/apache-arrow-8.0.0/cpp/thirdparty/versions.txt + ARROW_MIMALLOC_URL = fetchFromGitHub { - # From - # ./cpp/cmake_modules/ThirdpartyToolchain.cmake - # ./cpp/thirdparty/versions.txt owner = "microsoft"; repo = "mimalloc"; rev = "v1.7.3"; @@ -93,8 +93,15 @@ stdenv.mkDerivation rec { ARROW_XSIMD_URL = fetchFromGitHub { owner = "xtensor-stack"; repo = "xsimd"; - rev = "aeec9c872c8b475dedd7781336710f2dd2666cb2"; - hash = "sha256-vWKdJkieKhaxyAJhijXUmD7NmNvMWd79PskQojulA1w="; + rev = "7d1778c3b38d63db7cec7145d939f40bc5d859d1"; + hash = "sha256-89AysBUVnTdWyMPazeJegnQ6WEH90Ns7qQInZLMSXY4="; + }; + + ARROW_SUBSTRAIT_URL = fetchFromGitHub { + owner = "substrait-io"; + repo = "substrait"; + rev = "e1b4c04a1b518912f4c4065b16a1b2c0ac8e14cf"; + hash = "sha256-56FSjDngsROSHLjMv+OYAIYqphEu3GzgIMHbgh/ZQw0="; }; patches = [ @@ -115,7 +122,10 @@ stdenv.mkDerivation rec { gflags glog gtest + libbacktrace lz4 + nlohmann_json # alternative JSON parser to rapidjson + protobuf # substrait requires protobuf rapidjson re2 snappy @@ -150,6 +160,9 @@ stdenv.mkDerivation rec { "-DARROW_BUILD_SHARED=${if enableShared then "ON" else "OFF"}" "-DARROW_BUILD_STATIC=${if enableShared then "OFF" else "ON"}" "-DARROW_BUILD_TESTS=ON" + "-DARROW_BUILD_INTEGRATION=ON" + "-DARROW_BUILD_UTILITIES=ON" + "-DARROW_EXTRA_ERROR_CONTEXT=ON" "-DARROW_VERBOSE_THIRDPARTY_BUILD=ON" "-DARROW_DEPENDENCY_SOURCE=SYSTEM" "-DThrift_SOURCE=AUTO" # search for Thrift using pkg-config (ThriftConfig.cmake requires OpenSSL and libevent) @@ -168,8 +181,10 @@ stdenv.mkDerivation rec { # Disable Python for static mode because openblas is currently broken there. "-DARROW_PYTHON=${if enableShared then "ON" else "OFF"}" "-DARROW_USE_GLOG=ON" + "-DARROW_WITH_BACKTRACE=ON" "-DARROW_WITH_BROTLI=ON" "-DARROW_WITH_LZ4=ON" + "-DARROW_WITH_NLOHMANN_JSON=ON" "-DARROW_WITH_SNAPPY=ON" "-DARROW_WITH_UTF8PROC=ON" "-DARROW_WITH_ZLIB=ON" @@ -177,8 +192,10 @@ stdenv.mkDerivation rec { "-DARROW_MIMALLOC=ON" # Parquet options: "-DARROW_PARQUET=ON" + "-DARROW_SUBSTRAIT=ON" "-DPARQUET_BUILD_EXECUTABLES=ON" "-DARROW_FLIGHT=${if enableFlight then "ON" else "OFF"}" + "-DARROW_FLIGHT_TESTING=${if enableFlight then "ON" else "OFF"}" "-DARROW_S3=${if enableS3 then "ON" else "OFF"}" "-DARROW_GCS=${if enableGcs then "ON" else "OFF"}" ] ++ lib.optionals (!enableShared) [