From 0a406ba1542338574c1ba9951406599ddaa1cf8a Mon Sep 17 00:00:00 2001 From: spearzificial <342299391+spearzificial@users.noreply.github.com> Date: Wed, 21 Oct 2026 16:50:06 +0530 Subject: [PATCH] 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. --- .github/workflows/release.yml | 3 +-- packaging/aur/PKGBUILD | 12 ++++++------ packaging/rpm/scythe.spec | 18 +++++++++++++----- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2215f0f..a18df60 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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 diff --git a/packaging/aur/PKGBUILD b/packaging/aur/PKGBUILD index 9cd399d..6efb1fd 100644 --- a/packaging/aur/PKGBUILD +++ b/packaging/aur/PKGBUILD @@ -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" diff --git a/packaging/rpm/scythe.spec b/packaging/rpm/scythe.spec index cdf854d..f0fcc61 100644 --- a/packaging/rpm/scythe.spec +++ b/packaging/rpm/scythe.spec @@ -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