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 <noreply@anthropic.com>
This commit is contained in:
Luna 2026-05-27 01:31:40 -07:00
parent 980ffbc4e7
commit 2e98d8553f
2 changed files with 32 additions and 14 deletions

View file

@ -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"
}