aboutsummaryrefslogtreecommitdiffstats
path: root/community/apache-arrow/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/apache-arrow/APKBUILD')
-rw-r--r--community/apache-arrow/APKBUILD186
1 files changed, 149 insertions, 37 deletions
diff --git a/community/apache-arrow/APKBUILD b/community/apache-arrow/APKBUILD
index abb06caff0c..71eda59d00c 100644
--- a/community/apache-arrow/APKBUILD
+++ b/community/apache-arrow/APKBUILD
@@ -2,13 +2,25 @@
# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
# based on arch linux PKGBUILD
pkgname=apache-arrow
-pkgver=8.0.0
-pkgrel=0
+pkgver=15.0.2
+pkgrel=3
pkgdesc="multi-language toolbox for accelerated data interchange and in-memory processing"
url="https://arrow.apache.org/"
-arch="all !s390x !riscv64" # missing glog-dev, thrift
+arch="all"
license="Apache-2.0"
+_py3depends="
+ cython
+ py3-gpep517
+ py3-numpy-dev
+ py3-setuptools
+ py3-setuptools_scm
+ py3-typing-extensions
+ py3-wheel
+ python3-dev
+ "
makedepends="
+ abseil-cpp-dev
+ apache-orc-dev
boost-dev
brotli-dev
bzip2-dev
@@ -18,10 +30,8 @@ makedepends="
grpc-dev
gtest-dev
lz4-dev
- openssl-dev
+ openssl-dev>3
protobuf-dev
- py3-numpy-dev
- python3-dev
rapidjson-dev
re2-dev
samurai
@@ -30,79 +40,181 @@ makedepends="
utf8proc-dev
zlib-dev
zstd-dev
+ $_py3depends
+ "
+_py3checkdepends="
+ py3-cffi
+ py3-hypothesis
+ py3-pandas
+ py3-pytest
+ py3-pytest-xdist
"
-checkdepends="bash grep gzip perl python3 tzdata"
-subpackages="$pkgname-static $pkgname-dev $pkgname-tools $pkgname-doc"
-_arrowsha="83ada4ec0f2cfe36f4168628d7f470e6199e663a"
-_parquetsha="acd375eb86a81cd856476fca0f52ba6036a067ff"
-source="https://downloads.apache.org/arrow/arrow-$pkgver/apache-arrow-$pkgver.tar.gz
- https://github.com/apache/arrow-testing/archive/$_arrowsha.zip
- https://github.com/apache/parquet-testing/archive/$_parquetsha.zip
+checkdepends="bash grep gzip perl python3 tzdata $_py3checkdepends"
+somask="libarrow_python.so"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-gdb
+ py3-pyarrow-pyc
+ py3-pyarrow:python_arrow
+ libarrow:lib
+ libarrow_acero:lib
+ libarrow_dataset:lib
+ libarrow_flight:lib
+ libparquet:lib
"
+_arrowsha="e81d0c6de35948b3be7984af8e00413b314cde6e"
+_parquetsha="d79a0101d90dfa3bbb10337626f57a3e8c4b5363"
+source="https://archive.apache.org/dist/arrow/arrow-$pkgver/apache-arrow-$pkgver.tar.gz
+ $pkgname-arrow-testing-$_arrowsha.tar.gz::https://github.com/apache/arrow-testing/archive/$_arrowsha.tar.gz
+ $pkgname-parquet-testing-$_parquetsha.tar.gz::https://github.com/apache/parquet-testing/archive/$_parquetsha.tar.gz
+ python-options.patch
+ "
+options="!check" # fail with py3.11
+
+case "$CARCH" in
+aarch64|x86|x86_64)
+ _SIMD="MAX"
+ makedepends="$makedepends xsimd-dev"
+ ;;
+*)
+ _SIMD="NONE"
+ ;;
+esac
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
+
case "$CARCH" in
- armhf|armv7) _SIMD="NONE" ;;
- *) _SIMD="DEFAULT" ;;
+ arm*)
+ local arrowcpu="armv7"
+ ;;
esac
- cmake -B build \
- -G Ninja \
+
+ export CFLAGS="$CFLAGS -O2 -flto=auto -DNDEBUG"
+ export CXXFLAGS="$CXXFLAGS -O2 -flto=auto -DNDEBUG"
+ cmake -B build-cpp -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DARROW_BUILD_STATIC=OFF \
-DARROW_DEPENDENCY_SOURCE=SYSTEM \
- -DARROW_SIMD_LEVEL="$_SIMD" \
- -DARROW_BUILD_TESTS=ON \
+ -DARROW_RUNTIME_SIMD_LEVEL="$_SIMD" \
+ -DARROW_BUILD_EXAMPLES=OFF \
+ -DARROW_BUILD_TESTS="$(want_check && echo ON || echo OFF)" \
-DARROW_COMPUTE=ON \
+ -DARROW_CSV=ON \
+ -DARROW_DATASET=ON \
+ -DARROW_FILESYSTEM=ON \
-DARROW_FLIGHT=ON \
- -DARROW_GANDIVA=OFF \
-DARROW_HDFS=ON \
- -DARROW_IPC=ON \
-DARROW_JEMALLOC=OFF \
- -DARROW_ORC=OFF \
+ -DARROW_JSON=ON \
-DARROW_PARQUET=ON \
- -DARROW_PLASMA=ON \
- -DARROW_PYTHON=ON \
+ -DARROW_SIMD_LEVEL="NONE" \
-DARROW_TENSORFLOW=ON \
-DARROW_USE_GLOG=ON \
+ -DARROW_ORC=ON \
-DARROW_WITH_BROTLI=ON \
-DARROW_WITH_BZ2=ON \
-DARROW_WITH_LZ4=ON \
+ -DARROW_WITH_MUSL=ON \
-DARROW_WITH_SNAPPY=ON \
-DARROW_WITH_ZLIB=ON \
-DARROW_WITH_ZSTD=ON \
+ -DARROW_CPU_FLAG=$arrowcpu \
-DPARQUET_REQUIRE_ENCRYPTION=ON \
-S cpp \
- $CMAKE_CROSSOPTS .
- cmake --build build
+ $CMAKE_CROSSOPTS
+ cmake --build build-cpp
+
+ # install in Arrow_DIR for python build to find
+ DESTDIR="$builddir/dist-cpp" cmake --install build-cpp
+
+ cd python
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ export Arrow_DIR="$builddir/dist-cpp/usr"
+ export ArrowAcero_DIR="$Arrow_DIR"
+ export ArrowDataset_DIR="$Arrow_DIR"
+ export ArrowFlight_DIR="$Arrow_DIR"
+ export Parquet_DIR="$Arrow_DIR"
+ export PYARROW_CMAKE_OPTIONS="-DARROW_RUNTIME_SIMD_LEVEL=$_SIMD -DARROW_CPU_FLAG=$arrowcpu"
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- cd build
+ cd build-cpp
export PARQUET_TEST_DATA="$srcdir/parquet-testing-$_parquetsha/data"
export ARROW_TEST_DATA="$srcdir/arrow-testing-$_arrowsha/data"
# exclude broken tests
- PYTHON=python3 ctest --output-on-failure -E "arrow-buffer-test|arrow-misc-test|\
+ ctest -j4 --output-on-failure -E "arrow-buffer-test|arrow-misc-test|\
arrow-utility-test|arrow-csv-test|arrow-compute-aggregate-test|arrow-flight-test|arrow-compute-scalar-test|\
arrow-dataset-file-ipc-test|arrow-dataset-scanner-test"
+
+ cd ../python
+ ARROW_HOME="$builddir/dist-cpp/usr" \
+ python3 setup.py install --root="$PWD/dist-python"
+ PYTHONPATH="$(echo $PWD/dist-python/usr/lib/python3*/site-packages)" \
+ LIBRARY_PATH="$builddir/dist-cpp/usr/lib:$LIBRARY_PATH" \
+ LD_LIBRARY_PATH="$builddir/dist-cpp/usr/lib:$LD_LIBRARY_PATH" \
+ pytest -n 4 pyarrow --deselect=pyarrow/tests/test_memory.py \
+ --deselect=pyarrow/tests/test_csv.py \
+ --deselect=pyarrow/tests/parquet/test_data_types.py \
+ --deselect=pyarrow/tests/test_array.py::test_dictionary_to_numpy \
+ --deselect=pyarrow/tests/test_io.py::test_python_file_large_seeks \
+ --deselect=pyarrow/tests/test_io.py::test_foreign_buffer \
+ --deselect=pyarrow/tests/test_io.py::test_memory_map_large_seeks \
+ --deselect=pyarrow/tests/test_pandas.py::TestConvertStructTypes::test_from_numpy_nested \
+ --deselect=pyarrow/tests/test_schema.py::test_schema_sizeof \
+ --deselect=pyarrow/tests/test_serialization.py::test_primitive_serialization \
+ --deselect=pyarrow/tests/test_serialization.py::test_integer_limits \
+ --deselect=pyarrow/tests/parquet/test_dataset.py::test_partitioned_dataset
}
package() {
- DESTDIR="$pkgdir" cmake --install build
- find "$pkgdir"/usr/lib/ -name '*testing*' -delete
+ DESTDIR="$pkgdir" cmake --install build-cpp
+
+ cd python
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/pyarrow/tests
}
-tools() {
- pkgdesc="$pkgdesc (extra tools)"
- amove usr/bin/plasma-store-server
+python_arrow() {
+ pkgdesc="$pkgdesc (python module)"
+ depends="python3 py3-cffi py3-numpy"
+
+ # renamed from this to avoid confusion as in python this is "pyarrow"
+ provides="py3-apache-arrow=$pkgver-r$pkgrel"
+ replaces="py3-apache-arrow"
+
+ amove usr/lib/python3*
+}
+
+gdb() {
+ pkgdesc="$pkgdesc (gdb integration)"
+ install_if="$pkgname=$pkgver-r$pkgrel gdb"
+
+ amove \
+ usr/share/arrow/gdb/ \
+ usr/share/gdb/
+}
+
+lib() {
+ pkgdesc="$pkgdesc ($subpkgname library)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/$subpkgname.so.*
}
sha512sums="
-8280ce775c05296e33a292241c976caee2bddda7da396ef3c5da700347cb616a932475140139a5e96027781e71f66466e27fcf6423440bf720fbc83faabf0f3d apache-arrow-8.0.0.tar.gz
-7d3c3678f69e4a244a1f8fdc4e509e29f3c21f8a8e38e9c9e3188dad0297a964201157853abd57bad75df698ab9b005ad0fca12c2965bbc4a25ccb5fd19311bb 83ada4ec0f2cfe36f4168628d7f470e6199e663a.zip
-b3af78d5045ee3a224cafcd6246acf5b347187972b8ab50d55e6bbf4120ca06a55a8f73bec0901ed279c0c2059e3b1e3b12bba68a8c4f3bb5a7f13d1766e4f13 acd375eb86a81cd856476fca0f52ba6036a067ff.zip
+6c83e3be1e5840c30387f088315b74aca8e7c2d060793af70a156effb496a71e3e6af0693188c0f46f8a4a061a263a47095912ef04a5dc8141abd59075b14c78 apache-arrow-15.0.2.tar.gz
+2c31dd48fc070c3b1b25cdd1d58615accf73e3ee864d58b9a92a92c71a531174abeae42c2d0e6a70bcce47fe01c6cf43b1c17fab0636fb51524db8d035efce20 apache-arrow-arrow-testing-e81d0c6de35948b3be7984af8e00413b314cde6e.tar.gz
+5bf4f1341dfab0f71d61d00ef89e2f6a49831af3e5ade1209b9f35abf61d5edcbe311bebb2bb5d8611486e16fe97bfa8c85974dc2ea11325b58fb74c1cc09e3a apache-arrow-parquet-testing-d79a0101d90dfa3bbb10337626f57a3e8c4b5363.tar.gz
+4cbb62bc7f4e18bd2ccb03a3bff66615825df2533c80e93c19ea3132816ccef0d5c00b765aa950154f0752b9c88a838bbcecd02f971d430a9c1dbec84f313b91 python-options.patch
"