packages/arrow/PKGBUILD
2025-02-09 09:48:03 +01:00

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
}