diff options
Diffstat (limited to 'community/apache-arrow/APKBUILD')
-rw-r--r-- | community/apache-arrow/APKBUILD | 186 |
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 " |