chore(packaging): add AUR package sources for source, git, and binary builds

packaging/aur/ now holds the full content of three AUR repositories:
proton-drive-for-linux builds the latest tag from source,
proton-drive-for-linux-git builds main, and proton-drive-for-linux-bin
installs the binaries attached to the GitHub release. Each carries a
PKGBUILD, a generated .SRCINFO, an ignore-everything .gitignore, and the
0BSD license the AUR expects for package sources.

update.sh bumps the release-based packages and regenerates the .SRCINFO
files; push.sh publishes each package to its AUR remote. The README now
points users at the AUR packages and keeps the in-tree PKGBUILD as the
development build.
This commit is contained in:
nvrl committed 2026-09-21 12:58:13 +02:00
1 parent 860d29cfe8
commit 9cd8a196aa
16 files changed
+505 -4

No files matched your search

@@ -0,0 +1,34 @@
pkgbase = proton-drive-for-linux-git
pkgdesc = Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (git)
pkgver = 1.11.1.r0.g860d29c
pkgrel = 1
url = https://github.com/narrrl/proton-drive-linux
arch = x86_64
license = MIT
makedepends = cargo
makedepends = git
depends = fuse3
depends = gtk4
depends = libadwaita
depends = webkitgtk-6.0
depends = dbus
depends = gcc-libs
depends = glibc
depends = hicolor-icon-theme
optdepends = perl-image-exiftool: thumbnails for camera RAW files
optdepends = gnome-keyring: credential storage over the Secret Service API
optdepends = kwallet: credential storage over the Secret Service API
optdepends = xdg-utils: "Open folder" action in the tray menu
optdepends = fzf: search-as-you-type launcher (pdfs-prompt --fzf)
optdepends = foot: terminal that hosts pdfs-prompt --fzf when started from a keybinding
provides = proton-drive-for-linux=1.11.1.r0.g860d29c
provides = proton-drive-linux=1.11.1.r0.g860d29c
provides = pdfs
conflicts = proton-drive-linux
conflicts = proton-drive-for-linux
conflicts = proton-drive-for-linux-bin
options = !lto
source = proton-drive-for-linux-git::git+https://github.com/narrrl/proton-drive-linux.git
sha256sums = SKIP
pkgname = proton-drive-for-linux-git
@@ -0,0 +1,7 @@
# Keep the AUR repository to the sources only: ignore everything, then
# force-add the tracked files with `git add -f`.
*
!.gitignore
!.SRCINFO
!LICENSE
!PKGBUILD
@@ -0,0 +1,12 @@
Copyright (C) 2026 Nils Pukropp <contact@narl.io>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,78 @@
# Maintainer: Nils Pukropp <contact@narl.io>
pkgname=proton-drive-for-linux-git
pkgver=1.11.1.r0.g860d29c
pkgrel=1
pkgdesc="Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (git)"
arch=('x86_64')
url="https://github.com/narrrl/proton-drive-linux"
license=('MIT')
depends=('fuse3' 'gtk4' 'libadwaita' 'webkitgtk-6.0' 'dbus' 'gcc-libs' 'glibc'
'hicolor-icon-theme')
makedepends=('cargo' 'git')
optdepends=('perl-image-exiftool: thumbnails for camera RAW files'
'gnome-keyring: credential storage over the Secret Service API'
'kwallet: credential storage over the Secret Service API'
'xdg-utils: "Open folder" action in the tray menu'
'fzf: search-as-you-type launcher (pdfs-prompt --fzf)'
'foot: terminal that hosts pdfs-prompt --fzf when started from a keybinding')
provides=("${pkgname%-git}=$pkgver" "proton-drive-linux=$pkgver" 'pdfs')
conflicts=('proton-drive-linux' 'proton-drive-for-linux' 'proton-drive-for-linux-bin')
# LTO has broken GTK/Rust links for this workspace; the release profile keeps it off.
options=('!lto')
source=("$pkgname::git+$url.git")
sha256sums=('SKIP')
pkgver() {
cd "$pkgname"
git describe --long --abbrev=7 --tags 2>/dev/null |
sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' ||
printf '0.0.0.r%s.g%s' "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
}
prepare() {
cd "$pkgname"
export RUSTUP_TOOLCHAIN=stable
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
build() {
cd "$pkgname"
export RUSTUP_TOOLCHAIN=stable
export CARGO_TARGET_DIR=target
cargo build --frozen --release \
--bin pdfs \
--bin pdfs-tray \
--bin pdfs-app \
--bin pdfs-prompt
}
check() {
cd "$pkgname"
export RUSTUP_TOOLCHAIN=stable
export CARGO_TARGET_DIR=target
cargo test --frozen --workspace
}
package() {
cd "$pkgname"
install -Dm755 target/release/pdfs "$pkgdir/usr/bin/pdfs"
install -Dm755 target/release/pdfs-tray "$pkgdir/usr/bin/pdfs-tray"
install -Dm755 target/release/pdfs-app "$pkgdir/usr/bin/pdfs-app"
install -Dm755 target/release/pdfs-prompt "$pkgdir/usr/bin/pdfs-prompt"
install -Dm644 packaging/io.narl.proton-drive-linux.desktop \
"$pkgdir/usr/share/applications/io.narl.proton-drive-linux.desktop"
install -Dm644 packaging/io.narl.proton-drive-linux-tray.desktop \
"$pkgdir/etc/xdg/autostart/io.narl.proton-drive-linux-tray.desktop"
install -Dm644 packaging/io.narl.proton-drive-linux.svg \
"$pkgdir/usr/share/icons/hicolor/scalable/apps/io.narl.proton-drive-linux.svg"
# systemd user unit for the auto-mount daemon; enabled per user, not by pacman.
install -Dm644 packaging/proton-drive.service \
"$pkgdir/usr/lib/systemd/user/proton-drive.service"
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
}