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/APKBUILD220
1 files changed, 220 insertions, 0 deletions
diff --git a/community/apache-arrow/APKBUILD b/community/apache-arrow/APKBUILD
new file mode 100644
index 00000000000..71eda59d00c
--- /dev/null
+++ b/community/apache-arrow/APKBUILD
@@ -0,0 +1,220 @@
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+# based on arch linux PKGBUILD
+pkgname=apache-arrow
+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"
+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
+ c-ares-dev
+ cmake
+ glog-dev
+ grpc-dev
+ gtest-dev
+ lz4-dev
+ openssl-dev>3
+ protobuf-dev
+ rapidjson-dev
+ re2-dev
+ samurai
+ snappy-dev
+ thrift-dev
+ 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 $_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
+ arm*)
+ local arrowcpu="armv7"
+ ;;
+ esac
+
+ 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=MinSizeRel \
+ -DARROW_BUILD_STATIC=OFF \
+ -DARROW_DEPENDENCY_SOURCE=SYSTEM \
+ -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_HDFS=ON \
+ -DARROW_JEMALLOC=OFF \
+ -DARROW_JSON=ON \
+ -DARROW_PARQUET=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-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-cpp
+ export PARQUET_TEST_DATA="$srcdir/parquet-testing-$_parquetsha/data"
+ export ARROW_TEST_DATA="$srcdir/arrow-testing-$_arrowsha/data"
+ # exclude broken tests
+ 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-cpp
+
+ cd python
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/pyarrow/tests
+}
+
+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="
+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
+"