Commit graph

6 commits

Author SHA1 Message Date
spearzificial
3e5de43890 chore(release): v0.2.21
Supersedes the v0.2.20 publish, which failed at the RPM step and was
released with the Windows assets only.
2026-10-21 17:18:11 +05:30
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
spearzificial
f7f778916f chore(release): v0.2.19
v0.2.18 was already published to Forgejo on 2026-10-11, carrying the
pre-fix binary, so this cycle cuts a new version rather than moving the
published tag.

The version is bumped in Cargo.toml, Cargo.lock, the RPM spec, the AUR
PKGBUILD and the project guide so they stay in step. Cargo.lock matters
on its own: the CI workflow builds with --locked, which fails outright
when the manifest and the lock file disagree on the package version.
2026-10-21 16:51:48 +05:30
spearzificial
0a406ba154 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.
2026-10-21 16:50:06 +05:30
8ed53faefd rebrand: rename project and components to scythe 2026-09-05 15:21:30 +05:30
0d73a17815 feat(windows): Implement Windows DXGI Desktop Duplication capture and packaging definitions (AUR, RPM, Flatpak, GitHub Actions) 2026-09-03 07:45:45 +05:30