@ -1,24 +1,24 @@
{ stdenv , lib , fetchurl , fetchFromGitHub , fixDarwinDylibNames , autoconf , boost
{ stdenv , lib , fetchurl , fetchFromGitHub , fetchpatch , f ixDarwinDylibNames , 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 = " a p a c h e " ;
owner = " a p a c h e " ;
repo = " p a r q u e t - t e s t i n g " ;
repo = " p a r q u e t - t e s t i n g " ;
rev = " a 2 7 7 d c 4 e 5 5 d e d 3 e 3 e a 2 7 d a b 1 e 4 f a f 9 8 c 1 1 2 4 4 2 d f " ;
rev = " 4 6 c 9 e 9 7 7 f 5 8 f 6 c 5 e f 1 b 8 1 f 7 8 2 f 3 7 4 6 b 3 6 5 6 e 5 a 8 c " ;
sha256 = " 1 y h 5 a 8 l 4 s h i p 3 6 h w m g m p 2 k l 7 2 s 5 a c 9 r 8 l y 1 q c s 6 5 0 x v 2 g 9 q 7 y h n q " ;
sha256 = " 1 z 2 s 6 z h 5 8 n f 4 8 4 s 0 y r a w 7 b 1 a q g x 6 6 d n 2 w z p 1 b z v 9 n d q 0 3 m s k l w l y " ;
} ;
} ;
in stdenv . mkDerivation rec {
in stdenv . mkDerivation rec {
pname = " a r r o w - c p p " ;
pname = " a r r o w - c p p " ;
version = " 0 . 1 5 . 1 " ;
version = " 0 . 1 6 . 0 " ;
src = fetchurl {
src = fetchurl {
url =
url =
" m i r r o r : / / a p a c h e / a r r o w / a r r o w - ${ version } / a p a c h e - a r r o w - ${ version } . t a r . g z " ;
" m i r r o r : / / a p a c h e / a r r o w / a r r o w - ${ version } / a p a c h e - a r r o w - ${ version } . t a r . g z " ;
sha256 = " 1 j b g h p p p a b s i x 2 r k x b n h 4 1 i n j 9 l c x f z 4 q 9 4 p 9 6 x z x s h h 4 g 3 m h b 4 s " ;
sha256 = " 1 x d p 1 y n i 9 i 1 c p m l 3 2 6 s 7 8 q q l 1 g 8 3 2 m 8 0 0 h 7 z j l q m k 8 9 9 8 3 g 9 4 6 9 6 " ;
} ;
} ;
sourceRoot = " a p a c h e - a r r o w - ${ version } / c p p " ;
sourceRoot = " a p a c h e - a r r o w - ${ version } / c p p " ;
@ -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 = " a r r o w - u s e - u p s t r e a m - c m a k e - t a r g e t - n a m e s . p a t c h " ;
url = " h t t p s : / / g i t h u b . c o m / a p a c h e / a r r o w / c o m m i t / 3 9 6 8 6 1 b 3 8 d 2 f 4 e 8 0 5 d b 7 c 2 e c d 2 c 9 6 f f f 0 c a 2 6 7 8 b . p a t c h " ;
sha256 = " 0 k i 7 n x 8 5 8 3 7 4 a n v w y i 4 s z z 5 h g n n z v 4 f g h d d 0 5 c 3 8 b z r y 9 r f l j g b 1 " ;
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 = [
" - D C M A K E _ F I N D _ P A C K A G E _ P R E F E R _ C O N F I G = O N "
" - D A R R O W _ B U I L D _ T E S T S = O N "
" - D A R R O W _ B U I L D _ T E S T S = O N "
" - D A R R O W _ D E P E N D E N C Y _ S O U R C E = S Y S T E M "
" - D A R R O W _ D E P E N D E N C Y _ S O U R C E = S Y S T E M "
" - D A R R O W _ P A R Q U E T = O N "
" - D A R R O W _ P L A S M A = O N "
" - D A R R O W _ P L A S M A = O N "
# Disable Python for static mode because openblas is currently broken there.
# Disable Python for static mode because openblas is currently broken there.
" - D A R R O W _ P Y T H O N = ${ if enableShared then " O N " else " O F F " } "
" - D A R R O W _ P Y T H O N = ${ if enableShared then " O N " else " O F F " } "
" - D u r i p a r s e r _ S O U R C E = S Y S T E M "
" - D A R R O W _ U S E _ G L O G = O N "
" - D A R R O W _ W I T H _ B R O T L I = O N "
" - D A R R O W _ W I T H _ L Z 4 = O N "
" - D A R R O W _ W I T H _ S N A P P Y = O N "
" - D A R R O W _ W I T H _ Z L I B = O N "
" - D A R R O W _ W I T H _ Z S T D = O N "
# Parquet options:
" - D A R R O W _ P A R Q U E T = O N "
" - D P A R Q U E T _ B U I L D _ E X E C U T A B L E S = O N "
" - D T H R I F T _ C O M P I L E R = ${ thrift } / b i n / t h r i f t "
" - D T H R I F T _ V E R S I O N = ${ thrift . version } "
] ++ lib . optionals ( ! enableShared ) [
] ++ lib . optionals ( ! enableShared ) [
" - D A R R O W _ B U I L D _ S H A R E D = O F F "
" - D A R R O W _ B U I L D _ S H A R E D = O F F "
" - D A R R O W _ B O O S T _ U S E _ S H A R E D = O F F "
" - D A R R O W _ G F L A G S _ U S E _ S H A R E D = O F F "
" - D A R R O W _ P R O T O B U F _ U S E _ S H A R E D = O F F "
" - D A R R O W _ T E S T _ L I N K A G E = s t a t i c "
" - D A R R O W _ T E S T _ L I N K A G E = s t a t i c "
" - D O P E N S S L _ U S E _ S T A T I C _ L I B S = O N "
" - D O P E N S S L _ U S E _ S T A T I C _ L I B S = O N "
] ++ lib . optional ( ! stdenv . isx86_64 ) " - D A R R O W _ U S E _ S I M D = O F F " ;
] ++ lib . optional ( ! stdenv . isx86_64 ) " - D A R R O W _ U S E _ S I M D = O F F " ;