# Arch Linux package built from this source tree (the directory above this PKGBUILD). # # cd contrib && makepkg -si pkgname=gamescope-hyperhdr pkgver=0.1.0 pkgrel=1 pkgdesc="Feeds gamescope's PipeWire picture, downscaled by gamescope, to HyperHDR's flatbuffers server" arch=('x86_64' 'aarch64') license=('MIT') depends=('libpipewire' 'libgcc' 'glibc') makedepends=('cargo' 'clang' 'pkgconf') optdepends=('wireplumber: links the capture stream to the gamescope node') # makepkg's -flto turns libspa-sys' C shim into LTO bytecode that the Rust link step cannot # resolve (undefined spa_*_libspa_rs symbols). options=('!lto') _tree() { realpath "$startdir/.." } pkgver() { sed -n 's/^version = "\(.*\)"$/\1/p' "$(_tree)/Cargo.toml" | head -n1 } prepare() { rm -rf "$srcdir/$pkgname" mkdir -p "$srcdir/$pkgname" cp -a "$(_tree)"/{Cargo.toml,Cargo.lock,src,tests,examples,schema} "$srcdir/$pkgname/" cd "$srcdir/$pkgname" export RUSTUP_TOOLCHAIN=stable cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" } build() { cd "$srcdir/$pkgname" export RUSTUP_TOOLCHAIN=stable # Outside the copied tree, so rebuilds stay incremental. export CARGO_TARGET_DIR="$srcdir/target" cargo build --frozen --release --bin gamescope-hyperhdr } check() { cd "$srcdir/$pkgname" export RUSTUP_TOOLCHAIN=stable export CARGO_TARGET_DIR="$srcdir/target" cargo test --frozen --release } package() { local tree tree="$(_tree)" install -Dm755 "$srcdir/target/release/gamescope-hyperhdr" "$pkgdir/usr/bin/gamescope-hyperhdr" install -Dm644 "$tree/contrib/systemd/gamescope-hyperhdr.service" \ "$pkgdir/usr/lib/systemd/user/gamescope-hyperhdr.service" install -Dm644 "$tree/contrib/gamescope-hyperhdr.env.example" \ "$pkgdir/usr/share/doc/$pkgname/gamescope-hyperhdr.env.example" install -Dm644 "$tree/contrib/systemd/gamescope-tv.conf" \ "$pkgdir/usr/share/doc/$pkgname/gamescope-tv.conf" install -Dm644 "$tree/README.md" "$pkgdir/usr/share/doc/$pkgname/README.md" install -Dm644 "$tree/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" install -Dm644 "$tree/schema/NOTICE" "$pkgdir/usr/share/licenses/$pkgname/NOTICE.HyperHDR" }