141 lines
3.8 KiB
Bash
141 lines
3.8 KiB
Bash
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
|
|
# Maintainer: Bruno Pagani <archange@archlinux.org>
|
|
# Maintainer: Jakub Klinkovský <lahwaacz at archlinux dot org>
|
|
# Contributor: Guillaume Horel <guillaume.horel@gmail.com>
|
|
|
|
pkgname=arrow
|
|
pkgver=19.0.0
|
|
pkgrel=1
|
|
pkgdesc="Columnar in-memory analytics layer for big data."
|
|
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
|
|
url="https://arrow.apache.org"
|
|
license=(Apache-2.0)
|
|
depends=(
|
|
abseil-cpp
|
|
apache-orc
|
|
aws-crt-cpp
|
|
aws-sdk-cpp-core
|
|
aws-sdk-cpp-iam
|
|
aws-sdk-cpp-s3
|
|
brotli
|
|
bzip2
|
|
gcc-libs
|
|
glibc
|
|
google-glog
|
|
grpc
|
|
libutf8proc
|
|
lz4
|
|
openssl
|
|
protobuf
|
|
re2
|
|
snappy
|
|
thrift
|
|
zlib
|
|
zstd
|
|
)
|
|
makedepends=(
|
|
boost
|
|
cmake
|
|
flatbuffers
|
|
git
|
|
gmock
|
|
ninja
|
|
rapidjson
|
|
xsimd
|
|
)
|
|
checkdepends=(
|
|
minio
|
|
python
|
|
)
|
|
provides=(parquet-cpp)
|
|
conflicts=(parquet-cpp)
|
|
source=(
|
|
https://archive.apache.org/dist/$pkgname/$pkgname-$pkgver/apache-$pkgname-$pkgver.tar.gz{,.asc}
|
|
git+https://github.com/apache/parquet-testing.git
|
|
git+https://github.com/apache/arrow-testing.git
|
|
)
|
|
sha512sums=('6820de33a5d5b0922ea64dd8ff55d186ef02596ad0415578067aaf3e5cf7d3eead473bc3a5f92d6d3f19b97d153fe1c901359008d922d1ffb0fc2a65dc860c79'
|
|
'SKIP'
|
|
'SKIP'
|
|
'SKIP')
|
|
validpgpkeys=(265F80AB84FE03127E14F01125BCCA5220D84079 # Krisztian Szucs (apache) <szucs.krisztian@gmail.com>
|
|
08D3564B7C6A9CAFBFF6A66791D18FCF079F8007 # Kouhei Sutou <kou@cozmixng.org>
|
|
AF6AADA4C9835B75973FF5DA275C532289DD0F4A) # Raúl Cumplido Domínguez (CODE SIGNING KEY) <raulcd@apache.org>
|
|
|
|
prepare() {
|
|
cd apache-$pkgname-$pkgver
|
|
# Patch out unused AWS-SDK component https://github.com/apache/arrow/pull/45191
|
|
sed -i 's|COMPONENTS config|COMPONENTS|' cpp/cmake_modules/FindAWSSDKAlt.cmake
|
|
}
|
|
|
|
build() {
|
|
# Arrow options are defined in https://github.com/apache/arrow/blob/main/cpp/cmake_modules/DefineOptions.cmake
|
|
# Documentation for building from source: https://arrow.apache.org/docs/developers/cpp/building.html
|
|
local cmake_options=(
|
|
-B build
|
|
-S apache-$pkgname-$pkgver/cpp
|
|
-G Ninja
|
|
-W no-dev
|
|
# one pyarrow test fails when the build type is none of 'debug', 'release', 'minsizerel', 'relwithdebinfo'
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo
|
|
-DCMAKE_INSTALL_PREFIX="/usr"
|
|
-DCMAKE_INSTALL_LIBDIR="lib"
|
|
-DARROW_SIMD_LEVEL=NONE
|
|
-DARROW_RUNTIME_SIMD_LEVEL=MAX
|
|
-DARROW_DEPENDENCY_SOURCE=SYSTEM
|
|
-DARROW_BUILD_STATIC=OFF
|
|
-DARROW_BUILD_UTILITIES=ON
|
|
-DARROW_COMPUTE=ON
|
|
-DARROW_CSV=ON
|
|
-DARROW_FILESYSTEM=ON
|
|
-DARROW_FLIGHT=ON
|
|
-DARROW_FLIGHT_SQL=ON
|
|
-DARROW_GANDIVA=OFF # depends on LLVMAlt
|
|
-DARROW_HDFS=ON
|
|
-DARROW_IPC=ON
|
|
-DARROW_JEMALLOC=ON
|
|
-DARROW_JSON=ON
|
|
-DARROW_ORC=ON
|
|
-DARROW_PARQUET=ON
|
|
-DARROW_S3=ON
|
|
-DARROW_SUBSTRAIT=ON
|
|
-DARROW_TENSORFLOW=ON
|
|
-DARROW_USE_GLOG=ON
|
|
-DARROW_WITH_BROTLI=ON
|
|
-DARROW_WITH_BZ2=ON
|
|
-DARROW_WITH_LZ4=ON
|
|
-DARROW_WITH_SNAPPY=ON
|
|
-DARROW_WITH_ZLIB=ON
|
|
-DARROW_WITH_ZSTD=ON
|
|
-DPARQUET_REQUIRE_ENCRYPTION=ON
|
|
)
|
|
|
|
case "${CARCH}" in
|
|
powerpc64le) cmake_options+=(-DARROW_BUILD_TESTS=ON) ;;
|
|
powerpc64)
|
|
cmake_options+=(-DARROW_SIMD_LEVEL=NONE -DARROW_BUILD_TESTS=OFF);
|
|
;;
|
|
powerpc|riscv64) cmake_options+=(-DCMAKE_CXX_FLAGS="-latomic" -DARROW_SIMD_LEVEL=NONE -DARROW_BUILD_TESTS=ON) ;;
|
|
x86_64)
|
|
_cmake_options+=(-DARROW_SIMD_LEVEL=AVX2 -DARROW_BUILD_TESTS=ON)
|
|
export CC=clang
|
|
export CXX=clang++
|
|
;;
|
|
esac
|
|
|
|
cmake "${cmake_options[@]}"
|
|
cmake --build build
|
|
}
|
|
|
|
check() {
|
|
PARQUET_TEST_DATA="$srcdir"/parquet-testing/data \
|
|
ARROW_TEST_DATA="$srcdir"/arrow-testing/data \
|
|
ctest --test-dir build --output-on-failure
|
|
}
|
|
|
|
package() {
|
|
DESTDIR="$pkgdir" cmake --install build
|
|
# remove testing libraries
|
|
find "$pkgdir"/usr/lib/ -name '*testing*' -delete
|
|
}
|