2025-03-03 15:57:09 +00:00

98 lines
2.5 KiB
Plaintext

# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
pkgname=seastar
pkgver=22.11.0_git20250303
pkgrel=0
_commit="3ee9204cb792885c4a0bdb19a61619572d88c963"
_ver="${_commit:=$pkgver}"
pkgdesc="High performance server-side application framework"
url="https://seastar.io"
# riscv64, loongarch64: valgrind
# armhf armv7 x86 32bit not supported
arch="all !x86 !armhf !armv7 !riscv64 !loongarch64"
license="Apache-2.0"
depends_dev="
$pkgname=$pkgver-r$pkgrel
$pkgname-testing=$pkgver-r$pkgrel
"
makedepends="
boost-dev
bsd-compat-headers
c-ares-dev
cmake
crypto++-dev
fmt-dev
gnutls-dev
hwloc-dev
libpciaccess-dev
libucontext-dev
libunwind-dev
liburing-dev
lksctp-tools-dev
lz4-dev
numactl-dev
protobuf-dev
ragel
samurai
util-linux-dev
valgrind-dev
xfsprogs-dev
yaml-cpp-dev
"
case "$CARCH" in
aarch64|x86_64) makedepends="$makedepends dpdk-dev" ;;
esac
checkdepends="py3-yaml"
subpackages="$pkgname-dev $pkgname-testing"
source="$pkgname-$_ver.tar.gz::https://github.com/scylladb/seastar/archive/$_ver.tar.gz"
builddir="$srcdir/$pkgname-$_ver"
build() {
case "$CARCH" in
aarch64|x86_64) local _dpdk=ON ;;
*) local _dpdk=OFF ;;
esac
if [ "$CBUILD" != "$CHOST" ]; then
local _crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
export CXXFLAGS="$CXXFLAGS -DSEASTAR_DEFAULT_ALLOCATOR -Wno-cpp"
cmake -B build -G Ninja \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DSeastar_APPS=OFF \
-DSeastar_DEMOS=OFF \
-DSeastar_DOCS=OFF \
-DSeastar_DPDK="$_dpdk" \
$_crossopts
cmake --build build
}
check() {
# rest: needs root (doesn't work in container) for hardware access
# see also: https://github.com/scylladb/seastar/issues/1826
local _tests="chunk_parsers|dns|httpd|request_parser|semaphore|stall_detector|tls|app-template"
# -j2: "Could not initialize seastar: std::runtime_error (Could not setup Async I/O:
# "Not enough request capacity in /proc/sys/fs/aio-max-nr. Try increasing that number
# "or reducing the amount of logical CPUs available for your application)"
ctest --test-dir build --output-on-failure \
-E "($_tests)" -j2
}
package() {
DESTDIR="$pkgdir" cmake --install build
}
dev() {
default_dev
amove usr/bin
}
testing() {
amove usr/lib/libseastar_*testing.so
}
sha512sums="
0049256e47f243c87426ccb3b988224be1e8452b22c4f4dc9b75d205e438e2e5b89c03438d3e327836800abef451589a874b15ca3947c8832ab6677f5812fe9f seastar-3ee9204cb792885c4a0bdb19a61619572d88c963.tar.gz
"