scythe/packaging/rpm/scythe.spec
spearzificial 2bd1e7c598 fix(packaging): make the AppImage self-contained and restore the RPM libva requirement
Two defects found by inspecting the published v0.2.19 artifacts.

The AppImage contained the binary and the desktop file and nothing else.
The binary links FFmpeg, PipeWire, ALSA and XCB directly, so the image
only ran on a host that happened to carry the exact FFmpeg build the
binary was linked against, which is the opposite of what an AppImage is
for. The packaging step now bundles the shared library closure that ldd
resolves, points the binary at it with an RPATH of $ORIGIN/../lib, and
prepends it to LD_LIBRARY_PATH in AppRun. The C runtime is deliberately
left on the host, because bundling a different glibc than the rest of
the system expects produces failures that are very hard to trace. The
step fails if fewer than five libraries were collected or if the image
was not produced, so a silently empty image can never ship.

alien drops libva2 when it converts the Debian package to an RPM,
because it has no Debian to RPM name rule for it. libva is loaded at
runtime by the FFmpeg VAAPI device, so the requirement is now added back
explicitly with rpm --addrequires and the build fails if it is missing
from the finished package. Without it an RPM install would leave
hardware encoding unavailable until the user noticed and installed libva
by hand.

Version bumped to 0.2.20 across the manifest, lock file, RPM spec, AUR
PKGBUILD and the guide.
2026-10-21 17:02:00 +05:30

65 lines
2 KiB
RPMSpec

Name: scythe
Version: 0.2.20
Release: 1%{?dist}
Summary: High-performance GPU hardware screen recorder and instant replay overlay
License: MIT
URL: https://github.com/oiupoyt/scythe
Source0: %{name}-%{version}.tar.gz
BuildRequires: cargo
BuildRequires: rust
BuildRequires: ffmpeg-devel
BuildRequires: pipewire-devel
BuildRequires: libva-devel
BuildRequires: alsa-lib-devel
BuildRequires: libxcb-devel
BuildRequires: clang-devel
BuildRequires: pkgconf-pkg-config
Requires: ffmpeg-free
Requires: pipewire
Requires: libva
Requires: alsa-lib
Requires: libxcb
%description
High-performance GPU hardware screen recorder and instant replay overlay for Wayland and X11.
%prep
%autosetup
%build
cargo build --release
%install
rm -rf $RPM_BUILD_ROOT
install -D -m 0755 target/release/scythe %{buildroot}%{_bindir}/scythe
ln -sf %{_bindir}/scythe %{buildroot}%{_bindir}/scythe-daemon
ln -sf %{_bindir}/scythe %{buildroot}%{_bindir}/scythe-ui
ln -sf %{_bindir}/scythe %{buildroot}%{_bindir}/vrec-daemon
ln -sf %{_bindir}/scythe %{buildroot}%{_bindir}/vrec-ui
ln -sf %{_bindir}/scythe %{buildroot}%{_bindir}/vrec
install -D -m 0644 packaging/scythe.desktop %{buildroot}%{_datadir}/applications/scythe.desktop
ln -sf %{_datadir}/applications/scythe.desktop %{buildroot}%{_datadir}/applications/vrec.desktop
%files
%{_bindir}/scythe
%{_bindir}/scythe-daemon
%{_bindir}/scythe-ui
%{_bindir}/vrec-daemon
%{_bindir}/vrec-ui
%{_bindir}/vrec
%{_datadir}/applications/scythe.desktop
%{_datadir}/applications/vrec.desktop
%changelog
* Tue Oct 21 2026 oiupoyt - 0.2.20-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
- Corrected the runtime dependency list against the actual build output
- Version tracked against Cargo.toml
* Wed Sep 02 2026 oiupoyt - 0.1.0-1
- Initial release of scythe