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.
59 lines
1.4 KiB
TOML
59 lines
1.4 KiB
TOML
[package]
|
|
name = "scythe"
|
|
version = "0.2.20"
|
|
edition = "2024"
|
|
|
|
[[bin]]
|
|
name = "scythe"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
crossbeam-channel = "0.5.16"
|
|
ffmpeg-next = "9.0.0"
|
|
ffmpeg-sys-next = "9.0.0"
|
|
global-hotkey = "0.8.0"
|
|
libc = "0.2.189"
|
|
mp4 = "0.14.0"
|
|
ringbuf = "0.5.1"
|
|
serde = { version = "1.0.229", features = ["derive"] }
|
|
serde_json = "1.0.151"
|
|
tokio = { version = "1.53.1", features = ["rt", "macros", "rt-multi-thread", "signal", "time"] }
|
|
dirs = "6.0.0"
|
|
cpal = "0.18.2"
|
|
rubato = "5.0.0"
|
|
eframe = "0.31"
|
|
egui = "0.31"
|
|
image = { version = "0.25", default-features = false, features = ["png"] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
ashpd = { version = "0.13.13", features = ["screencast"] }
|
|
pipewire = "0.10.1"
|
|
xcb = { version = "1.7.1", features = ["shm", "xfixes"] }
|
|
memmap2 = "0.9.11"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "thin"
|
|
codegen-units = 4
|
|
panic = "abort"
|
|
strip = true
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
windows = { version = "0.58.0", features = [
|
|
"Win32_Foundation",
|
|
"Win32_Graphics_Direct3D",
|
|
"Win32_Graphics_Direct3D11",
|
|
"Win32_Graphics_Dxgi",
|
|
"Win32_Graphics_Dxgi_Common",
|
|
"Win32_Graphics_Dwm",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_Security",
|
|
"Win32_System_Com",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
"Win32_UI_Controls",
|
|
"Win32_System_Threading",
|
|
"Win32_System_LibraryLoader",
|
|
"Win32_System_Console",
|
|
"Win32_System_Power",
|
|
"Win32_UI_Shell",
|
|
] }
|