diff options
author | Daniel Bershatsky | 2023-07-31 06:09:19 +0300 |
---|---|---|
committer | Daniel Bershatsky | 2023-07-31 06:09:19 +0300 |
commit | 8746e8f27a6a938859359d51fbaeaf4331759a9c (patch) | |
tree | 33f9ee3eca8ac384f0eda1d3956e72e7e0234737 /PKGBUILD | |
parent | 9ba86a1c3f175810ff4db0baab6b2dc6c7187bc4 (diff) | |
download | aur-ytsaurus.tar.gz |
Build python packages as well
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 136 |
1 files changed, 132 insertions, 4 deletions
@@ -1,9 +1,12 @@ # Maintainer: Daniel Bershatsky <bepshatsky@yandex.ru> # # NOTE Please make sure you have at least 80Gb of free space. -pkgname=ytsaurus +pkgbase=ytsaurus +pkgname=('ytsaurus' 'python-ytsaurus-client' 'python-ytsaurus-local' + 'python-ytsaurus-native-driver' 'python-ytsaurus-proto' + 'python-ytsaurus-rpc-driver' 'python-ytsaurus-yson') pkgver=0.0.0.r65813.5b46de9 -pkgrel=1 +pkgrel=2 pkgdesc='A scalable and fault-tolerant open-source big data platform.' arch=('x86_64') url='https://ytsaurus.tech/' @@ -19,9 +22,12 @@ makedepends=( 'llvm14' 'llvm14-libs' 'ninja' + 'protobuf' 'python' 'python-dacite' - 'python-pip' + 'python-installer' + 'python-setuptools' + 'python-wheel' ) _commit=5b46de977a4d9298ab38ff332ae2bbb90d4d615b source=("$pkgname-$pkgver.tar.gz::https://github.com/ytsaurus/ytsaurus/archive/$_commit.tar.gz" @@ -30,6 +36,7 @@ sha256sums=('ef57ecf3c5dfe55c60fe26de9bff6e8b536cb9c5287636773fab33372ee44dc7' 'SKIP') prepare() { + export YTSAURUS_COMMIT_HASH=$_commit patch -p 1 -d $srcdir/ytsaurus-$_commit -i ../clang.toolchain.diff } @@ -39,10 +46,48 @@ build() { -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$pkgdir/usr \ -DCMAKE_TOOLCHAIN_FILE=clang.toolchain + + # Build statically-linked YT server. cmake --build build/release -t ytserver-all + + # Build native python extensions. + cmake --build build/release/ -t yson_lib -t driver_lib -t driver_rpc_lib + + # Make python wheels.' + rm -rf build/release/ytsaurus-python + mkdir -p build/release/ytsaurus-python + PYTHONPATH=$PWD/yt/python/packages:$PWD \ + python3 -m yt_setup.generate_python_proto \ + --source-root . \ + --output build/release/ytsaurus-python + + PYTHONPATH=$PWD/yt/python/packages:$PWD \ + python3 -m yt_setup.prepare_python_modules \ + --source-root . \ + --build-root build/release \ + --output-path build/release/ytsaurus-python \ + --prepare-bindings-libraries + + cd build/release/ytsaurus-python + + for package in 'ytsaurus-native-driver' 'ytsaurus-yson'; do + cp "$srcdir/ytsaurus-$_commit/yt/python/packages/${package}/setup.py" . + PYTHONPATH=$srcdir/ytsaurus-$_commit/yt/python/packages:$PWD \ + python3 setup.py bdist_wheel \ + --dist-dir $srcdir/ytsaurus-$_commit/dist \ + --py-limited-api cp34 + done + + for package in 'ytsaurus-client' 'ytsaurus-local' 'ytsaurus-rpc-driver' 'ytsaurus-proto'; do + cp "$srcdir/ytsaurus-$_commit/yt/python/packages/${package}/setup.py" . + PYTHONPATH=$srcdir/ytsaurus-$_commit/yt/python/packages:$PWD \ + python3 setup.py bdist_wheel \ + --dist-dir $srcdir/ytsaurus-$_commit/dist \ + --universal + done } -package() { +package_ytsaurus() { install -Dm777 -t $pkgdir/usr/bin \ $srcdir/ytsaurus-$_commit/build/release/yt/yt/server/all/ytserver-all @@ -63,3 +108,86 @@ package() { ln -fs ytserver-all $pkgdir/usr/bin/ytserver-timestamp-provider ln -fs ytserver-all $pkgdir/usr/bin/ytserver-tools } + +package_python-ytsaurus-client() { + pkgdesc='Python client for YTsaurus system and miscellaneous libraries' + arch=('any') + groups=('yandex' 'ytsaurus') + depends=( + 'python-argcomplete' + 'python-charset-normalizer' + 'python-decorator' + 'python-simplejson' + 'python-six' + 'python-tqdm' + 'python-typing-extensions' + ) + + python -m installer \ + --compile-bytecode 1 \ + --destdir $pkgdir \ + $pkgbase-$_commit/dist/ytsaurus_client-*.whl +} + +package_python-ytsaurus-local() { + pkgdesc='Python libraries and CLI to manage local YTsaurus instances' + arch=('any') + groups=('yandex' 'ytsaurus') + depends=( + 'python-ytsaurus-client' + 'python-attrs' + ) + + python -m installer \ + --compile-bytecode 1 \ + --destdir $pkgdir \ + $pkgbase-$_commit/dist/ytsaurus_local-*.whl +} + +package_python-ytsaurus-native-driver() { + pkgdesc='Python bindings to YTsaurus driver' + arch=('x86_64') + groups=('yandex' 'ytsaurus') + depends=('python') + + python -m installer \ + --compile-bytecode 1 \ + --destdir $pkgdir \ + $pkgbase-$_commit/dist/ytsaurus_native_driver-*.whl +} + +package_python-ytsaurus-proto() { + pkgdesc='Python proto files for YT system' + arch=('any') + groups=('yandex' 'ytsaurus') + depends=('python-protobuf') + + python -m installer \ + --compile-bytecode 1 \ + --destdir $pkgdir \ + $pkgbase-$_commit/dist/yandex_yt_proto-*.whl +} + +package_python-ytsaurus-rpc-driver() { + pkgdesc='Python bindings to RPC driver for YT system' + arch=('any') + groups=('yandex' 'ytsaurus') + depends=('python') + + python -m installer \ + --compile-bytecode 1 \ + --destdir $pkgdir \ + $pkgbase-$_commit/dist/ytsaurus_rpc_driver-*.whl +} + +package_python-ytsaurus-yson() { + pkgdesc='Python bindings to YSON for YT system' + arch=('x86_64') + groups=('yandex' 'ytsaurus') + depends=('ytsaurus-client') + + python -m installer \ + --compile-bytecode 1 \ + --destdir $pkgdir \ + $pkgbase-$_commit/dist/ytsaurus_yson-*.whl +} |