From 2e98d8553f0df65c7b6c2e4023d38c8e08db6a7c Mon Sep 17 00:00:00 2001 From: Luna Date: Wed, 27 May 2026 01:31:40 -0700 Subject: [PATCH] PKGBUILD: update deps, drop config.toml install, fix desktop file - Updated pkgdesc to match current multi-platform scope (YouTube, TikTok, Twitch, etc.) - Added runtime deps: ffmpeg, xdg-utils - Added optdepends: libnotify for desktop notifications - Added pkgver() function for VCS auto-versioning - Switched --locked to --frozen (stricter, requires Cargo.lock) - Dropped config.toml install (gitignored, app generates on first launch) - Removed conditional icon check (file always exists) - Added README.md install youtube-backup.desktop: fixed Exec/Icon names to match binary (yt-offline) - Added GenericName, Keywords, proper AudioVideo;Video;Network; categories Co-Authored-By: Claude Haiku 4.5 --- PKGBUILD | 34 +++++++++++++++++++++++++--------- youtube-backup.desktop | 12 +++++++----- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index adc0d2b..dd1d37d 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,19 +2,39 @@ pkgname=yt-offline pkgver=0.1.0 pkgrel=1 -pkgdesc="A desktop app for archiving YouTube channels with yt-dlp" +pkgdesc="Self-hosted archive for YouTube, TikTok, Twitch, Vimeo, Bandcamp, SoundCloud, Odysee and more. Desktop GUI + web UI." arch=('x86_64' 'aarch64') url="https://codeberg.org/anassaeneroi/yt-offline" license=('AGPL-3.0-only') -depends=('yt-dlp' 'mpv' 'sqlite' 'libxcb') +depends=( + 'yt-dlp' + 'ffmpeg' + 'mpv' + 'sqlite' + 'libxcb' + 'xdg-utils' +) +optdepends=( + 'libnotify: desktop notifications when downloads finish' +) makedepends=('rust' 'cargo') options=('!lto') # rusqlite bundled sqlite cannot be LTO-linked with rust-lld source=("git+https://codeberg.org/anassaeneroi/yt-offline.git") sha256sums=('SKIP') +pkgver() { + cd "$pkgname" + # 0.1.0.r12.gabcdef0 — last tag, commits since, short hash + git describe --long --tags --always 2>/dev/null \ + | sed 's/^v//; s/\([^-]*-g\)/r\1/; s/-/./g' \ + || printf "0.1.0.r%s.g%s" \ + "$(git rev-list --count HEAD)" \ + "$(git rev-parse --short HEAD)" +} + build() { cd "$pkgname" - cargo build --release --locked + cargo build --release --frozen } package() { @@ -22,11 +42,7 @@ package() { install -Dm755 target/release/yt-offline "$pkgdir/usr/bin/yt-offline" install -Dm644 youtube-backup.desktop "$pkgdir/usr/share/applications/yt-offline.desktop" - - if [ -f "icon.png" ]; then - install -Dm644 icon.png "$pkgdir/usr/share/pixmaps/yt-offline.png" - fi - + install -Dm644 icon.png "$pkgdir/usr/share/pixmaps/yt-offline.png" install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" - install -Dm644 config.toml "$pkgdir/etc/yt-offline/config.toml.example" + install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md" } diff --git a/youtube-backup.desktop b/youtube-backup.desktop index 767b72c..ad89c56 100644 --- a/youtube-backup.desktop +++ b/youtube-backup.desktop @@ -1,9 +1,11 @@ [Desktop Entry] Type=Application -Name=YouTube Offline -Comment=Download and manage YouTube channel backups -Exec=youtube-backup -Icon=youtube-backup -Categories=Utility;Video; +Name=YT Offline +GenericName=Video Archiver +Comment=Self-hosted archive for YouTube, TikTok, Twitch, and more +Exec=yt-offline +Icon=yt-offline +Categories=AudioVideo;Video;Network; +Keywords=youtube;yt-dlp;archive;backup;download; StartupNotify=true Terminal=false