# Contributor: August Klein # Maintainer: Patrycja Rosa pkgname=libtorrent-rasterbar pkgver=2.0.9 pkgrel=2 pkgdesc="Feature complete C++ bittorrent implementation" url="https://www.rasterbar.com/products/libtorrent" arch="all" license="BSD-3-Clause" depends_dev="boost-dev openssl-dev>3" makedepends="$depends_dev cmake linux-headers python3-dev py3-setuptools samurai" subpackages="py3-$pkgname:_py3 $pkgname-dev" source="https://github.com/arvidn/libtorrent/releases/download/v$pkgver/libtorrent-rasterbar-$pkgver.tar.gz" case "$CARCH" in arm*|x86) # fail to build on 32-bit options="$options !check" ;; *) ;; esac build() { CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG -flto=auto" \ cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=None \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_INSTALL_PREFIX=/usr \ -Dbuild_tests="$(want_check && echo ON || echo OFF)" \ -Dpython-bindings=ON \ -Dpython-egg-info=ON cmake --build build } check() { # upnp: relies on upnp networking setup # flags: fails randomly, on 32-bit and aarch64 # remove_torrent: random failures when running multiple tests at once # privacy: flaky on port allocation local tests_to_skip="test_upnp|test_flags|test_remove_torrent|test_privacy" # broken tests_to_skip="$tests_to_skip|test_create_torrent" # fails on btrfs? tests_to_skip="$tests_to_skip|test_copy_file" # flaky tests_to_skip="$tests_to_skip|test_web_seed|test_url_seed|test_transfer|test_ssl" ctest -j4 --output-on-failure --test-dir build --exclude-regex "$tests_to_skip" } package() { DESTDIR=$pkgdir cmake --install build } dev() { default_dev amove usr/share/cmake } _py3() { pkgdesc="$pkgdesc (python bindings)" amove usr/lib/python3* } sha512sums=" c252dbe1e2a246769017b8a622bb3418527e2bc2615115ac2bff9662afb53759bc7b2cbf6657438c515ba6de0140fc1c388b340c48b3dd9f7e6202ec0df1aec7 libtorrent-rasterbar-2.0.9.tar.gz "