fix(packaging): correct runtime dependencies and drop the retired GTK deps

The Debian package declared libgtk-3-0 and libgtk-layer-shell0, which
belonged to the retired GTK backend, and omitted FFmpeg entirely. The
binary links libavcodec, libavformat, libavutil, libswresample and
libswscale directly, so a clean machine would have installed the package
and then failed to start it. The dependency list is now taken from the
dynamic section of the actual build output: libavcodec60,
libavformat60, libavutil58, libswresample4, libswscale7,
libpipewire-0.3-0, libxcb1, libasound2 and libva2.

XCB needs no extra package. The xcb crate marshals the SHM protocol in
Rust, so only libxcb.so.1 is linked and there is no libxcb-shm.so.0
load at runtime.

The RPM spec still said version 0.1.0 and required gtk3 and
gtk-layer-shell. It now tracks the Cargo.toml version, drops the GTK
packages, and adds the VAAPI, ALSA and XCB requirements it actually
needs.

The AUR PKGBUILD installed target/release/scythe-daemon and
target/release/scythe-ui, which no longer exist as build targets, so
any AUR build would have failed at the install step. It now installs the
single unified binary and points the compatibility names at it.

MSYS2 no longer installs gtk3 for the Windows build.
This commit is contained in:
spearzificial 2026-10-21 16:50:06 +05:30
parent 007e965d6a
commit 0a406ba154
3 changed files with 20 additions and 13 deletions

View file

@ -62,7 +62,7 @@ jobs:
Architecture: amd64
Maintainer: oiupoyt
Description: High-performance GPU hardware screen recorder and instant replay overlay
Depends: libgtk-3-0, libgtk-layer-shell0, libpipewire-0.3-0, libva2, libasound2
Depends: libavcodec60, libavformat60, libavutil58, libswresample4, libswscale7, libpipewire-0.3-0, libxcb1, libasound2, libva2
EOF
cp target/release/scythe "deb/scythe_${VERSION}/usr/bin/scythe"
ln -sf scythe "deb/scythe_${VERSION}/usr/bin/scythe-daemon"
@ -127,7 +127,6 @@ jobs:
install: >-
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-rust
mingw-w64-x86_64-gtk3
mingw-w64-x86_64-ffmpeg
mingw-w64-x86_64-pkg-config
mingw-w64-x86_64-clang

View file

@ -6,7 +6,7 @@ pkgdesc="High-performance GPU hardware screen recorder and instant replay overla
arch=('x86_64')
url="https://github.com/oiupoyt/scythe"
license=('MIT' 'Apache-2.0')
depends=('ffmpeg' 'pipewire' 'gtk3' 'gtk-layer-shell' 'libpulse' 'libva' 'libxcb')
depends=('ffmpeg' 'pipewire' 'alsa-lib' 'libpulse' 'libva' 'libxcb')
makedepends=('cargo' 'git' 'pkgconf' 'clang')
provides=('scythe' 'vrec' 'vrec-git')
conflicts=('scythe' 'vrec')
@ -15,7 +15,7 @@ sha256sums=('SKIP')
pkgver() {
cd "$srcdir/scythe"
git describe --long --tags 2>/dev/null | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' || echo "0.1.0"
git describe --long --tags 2>/dev/null | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' || echo "0.2.18"
}
build() {
@ -25,11 +25,11 @@ build() {
package() {
cd "$srcdir/scythe"
install -Dm755 target/release/scythe-daemon "$pkgdir/usr/bin/scythe-daemon"
install -Dm755 target/release/scythe-ui "$pkgdir/usr/bin/scythe-ui"
install -Dm755 target/release/scythe "$pkgdir/usr/bin/scythe"
ln -sf "/usr/bin/scythe-daemon" "$pkgdir/usr/bin/vrec-daemon"
ln -sf "/usr/bin/scythe-ui" "$pkgdir/usr/bin/vrec-ui"
ln -sf "/usr/bin/scythe" "$pkgdir/usr/bin/scythe-daemon"
ln -sf "/usr/bin/scythe" "$pkgdir/usr/bin/scythe-ui"
ln -sf "/usr/bin/scythe" "$pkgdir/usr/bin/vrec-daemon"
ln -sf "/usr/bin/scythe" "$pkgdir/usr/bin/vrec-ui"
ln -sf "/usr/bin/scythe" "$pkgdir/usr/bin/vrec"
install -Dm644 packaging/scythe.desktop "$pkgdir/usr/share/applications/scythe.desktop"
ln -sf "/usr/share/applications/scythe.desktop" "$pkgdir/usr/share/applications/vrec.desktop"

View file

@ -1,5 +1,5 @@
Name: scythe
Version: 0.1.0
Version: 0.2.18
Release: 1%{?dist}
Summary: High-performance GPU hardware screen recorder and instant replay overlay
@ -11,15 +11,17 @@ BuildRequires: cargo
BuildRequires: rust
BuildRequires: ffmpeg-devel
BuildRequires: pipewire-devel
BuildRequires: gtk3-devel
BuildRequires: gtk-layer-shell-devel
BuildRequires: libva-devel
BuildRequires: alsa-lib-devel
BuildRequires: libxcb-devel
BuildRequires: clang-devel
BuildRequires: pkgconf-pkg-config
Requires: ffmpeg-free
Requires: pipewire
Requires: gtk3
Requires: gtk-layer-shell
Requires: libva
Requires: alsa-lib
Requires: libxcb
%description
High-performance GPU hardware screen recorder and instant replay overlay for Wayland and X11.
@ -52,5 +54,11 @@ ln -sf %{_datadir}/applications/scythe.desktop %{buildroot}%{_datadir}/applicati
%{_datadir}/applications/vrec.desktop
%changelog
* Tue Oct 21 2026 oiupoyt - 0.2.18-1
- Unified multicall binary: install scythe with the scythe-daemon, scythe-ui
and vrec-* compatibility symlinks
- Dropped the GTK 3 and GTK layer shell requirements, the GTK backend was
retired
- Version tracked against Cargo.toml
* Wed Sep 02 2026 oiupoyt - 0.1.0-1
- Initial release of scythe