mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
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:
1 parent
860d29cfe8
commit
9cd8a196aa
16 files changed
+505
-4
No files matched your search
@@ -32,8 +32,8 @@ sudo apt install ./proton-drive-linux_*.deb
|
|||||||
# Fedora
|
# Fedora
|
||||||
sudo dnf install ./proton-drive-linux-*.rpm
|
sudo dnf install ./proton-drive-linux-*.rpm
|
||||||
|
|
||||||
# Arch Linux
|
# Arch Linux (AUR)
|
||||||
cd packaging && makepkg -fi
|
paru -S proton-drive-for-linux # or -git / -bin
|
||||||
```
|
```
|
||||||
|
|
||||||
Packages for each release are attached to the [latest
|
Packages for each release are attached to the [latest
|
||||||
@@ -431,8 +431,24 @@ Install the debian package via `dpkg` or `apt`:
|
|||||||
sudo apt install ./proton-drive-linux_*.deb
|
sudo apt install ./proton-drive-linux_*.deb
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Arch Linux
|
### 2. Arch Linux (AUR)
|
||||||
A local `PKGBUILD` is available under the `packaging/` directory. You can build and install it using:
|
Three AUR packages cover the usual choices; they conflict with each other, so
|
||||||
|
install one:
|
||||||
|
|
||||||
|
| Package | Contents |
|
||||||
|
| --- | --- |
|
||||||
|
| [`proton-drive-for-linux`](https://aur.archlinux.org/packages/proton-drive-for-linux) | builds the latest tagged release from source |
|
||||||
|
| [`proton-drive-for-linux-git`](https://aur.archlinux.org/packages/proton-drive-for-linux-git) | builds `main` from git |
|
||||||
|
| [`proton-drive-for-linux-bin`](https://aur.archlinux.org/packages/proton-drive-for-linux-bin) | installs the release binaries, no compile |
|
||||||
|
|
||||||
|
```bash
|
||||||
|
paru -S proton-drive-for-linux # or any AUR helper
|
||||||
|
```
|
||||||
|
|
||||||
|
The package sources live in `packaging/aur/`; see
|
||||||
|
[`packaging/aur/README.md`](packaging/aur/README.md) for how they are updated and
|
||||||
|
published. A local `PKGBUILD` that compiles the working tree in place is still
|
||||||
|
available for development builds:
|
||||||
```bash
|
```bash
|
||||||
cd packaging && makepkg -fi
|
cd packaging && makepkg -fi
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# AUR packages
|
||||||
|
|
||||||
|
Source of truth for the three AUR packages of this project. Each subdirectory is
|
||||||
|
the full content of one AUR git repository (`pkgbase` = directory name):
|
||||||
|
|
||||||
|
| Directory | What it does | AUR repository |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `proton-drive-for-linux` | Builds the latest tagged release from source | `ssh://aur@aur.archlinux.org/proton-drive-for-linux.git` |
|
||||||
|
| `proton-drive-for-linux-git` | Builds `main` from git | `ssh://aur@aur.archlinux.org/proton-drive-for-linux-git.git` |
|
||||||
|
| `proton-drive-for-linux-bin` | Installs the binaries from the GitHub release | `ssh://aur@aur.archlinux.org/proton-drive-for-linux-bin.git` |
|
||||||
|
|
||||||
|
The three packages conflict with each other and with the in-tree
|
||||||
|
`packaging/PKGBUILD` package (`proton-drive-linux`), and every one of them
|
||||||
|
`provides` `proton-drive-for-linux`, `proton-drive-linux`, and `pdfs`.
|
||||||
|
|
||||||
|
Each directory tracks only `PKGBUILD`, `.SRCINFO`, `.gitignore`, and `LICENSE`
|
||||||
|
(the 0BSD license of the packaging sources, per
|
||||||
|
[RFC40](https://rfc.archlinux.page/0040-license-package-sources/)); the
|
||||||
|
`.gitignore` ignores everything else so downloaded sources, `src/`, `pkg/`, and
|
||||||
|
built packages never reach the AUR.
|
||||||
|
|
||||||
|
## Releasing a new version
|
||||||
|
|
||||||
|
1. Tag and publish the upstream release, so the source tarball and the
|
||||||
|
`proton-drive-linux-<version>-x86_64.tar.gz` release asset exist.
|
||||||
|
2. Run `./update.sh <version>` — it rewrites `pkgver`, resets `pkgrel=1`,
|
||||||
|
refreshes the checksums of the release-based packages, and regenerates every
|
||||||
|
`.SRCINFO`.
|
||||||
|
3. Build and inspect the packages in a clean chroot:
|
||||||
|
`cd proton-drive-for-linux && pkgctl build --clean` (needs `devtools`).
|
||||||
|
4. Commit here, then publish with `./push.sh` (or `./push.sh proton-drive-for-linux-bin`
|
||||||
|
for a single package).
|
||||||
|
|
||||||
|
`proton-drive-for-linux-git` carries a `pkgver()` function, so its `pkgver` is
|
||||||
|
computed at build time; do not push a commit that only bumps it.
|
||||||
|
|
||||||
|
## Requirements for pushing
|
||||||
|
|
||||||
|
An SSH key registered with the AUR account and an entry in `~/.ssh/config`:
|
||||||
|
|
||||||
|
```
|
||||||
|
Host aur.archlinux.org
|
||||||
|
IdentityFile ~/.ssh/aur
|
||||||
|
User aur
|
||||||
|
```
|
||||||
|
|
||||||
|
`push.sh` creates a scratch clone of the AUR repository, copies the tracked
|
||||||
|
files over it, commits, and pushes to `master`.
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
pkgbase = proton-drive-for-linux-bin
|
||||||
|
pkgdesc = Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)
|
||||||
|
pkgver = 1.11.1
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/narrrl/proton-drive-linux
|
||||||
|
arch = x86_64
|
||||||
|
license = MIT
|
||||||
|
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
|
||||||
|
provides = proton-drive-linux=1.11.1
|
||||||
|
provides = pdfs
|
||||||
|
conflicts = proton-drive-linux
|
||||||
|
conflicts = proton-drive-for-linux
|
||||||
|
conflicts = proton-drive-for-linux-git
|
||||||
|
options = !strip
|
||||||
|
options = !debug
|
||||||
|
source = proton-drive-linux-1.11.1-x86_64.tar.gz::https://github.com/narrrl/proton-drive-linux/releases/download/v1.11.1/proton-drive-linux-1.11.1-x86_64.tar.gz
|
||||||
|
source = io.narl.proton-drive-linux.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v1.11.1/packaging/io.narl.proton-drive-linux.desktop
|
||||||
|
source = io.narl.proton-drive-linux-tray.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v1.11.1/packaging/io.narl.proton-drive-linux-tray.desktop
|
||||||
|
source = io.narl.proton-drive-linux.svg::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v1.11.1/packaging/io.narl.proton-drive-linux.svg
|
||||||
|
source = proton-drive.service::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v1.11.1/packaging/proton-drive.service
|
||||||
|
source = LICENSE-1.11.1::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v1.11.1/LICENSE
|
||||||
|
sha256sums = 5fa20a17c0068ad1d74c51eb081b7e36c24b6bf18c4cb0e0b90d2e1c1d40c56f
|
||||||
|
sha256sums = 034083fd2f77b0b69ae638fdaba2bd772209ca325a78ca17d050f221cab9650b
|
||||||
|
sha256sums = 5c369d689926cbbd64803b55a9a6010ad59aded6c7bcfb3e8bd005c95ac10cc8
|
||||||
|
sha256sums = 2bfdef503b4ac02f047adb022e02e81099970589f9d776c821b7751f1be6c12a
|
||||||
|
sha256sums = 25fa3bd9ba52df534be9d8bc66f77d7502fe1423177237d0d14b673dedeb1b60
|
||||||
|
sha256sums = 02c419e7f9af08dda720e4f852f3e57cf5a69e192605440f750e9d244fa2817c
|
||||||
|
|
||||||
|
pkgname = proton-drive-for-linux-bin
|
||||||
@@ -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,57 @@
|
|||||||
|
# Maintainer: Nils Pukropp <contact@narl.io>
|
||||||
|
|
||||||
|
pkgname=proton-drive-for-linux-bin
|
||||||
|
pkgver=1.11.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)"
|
||||||
|
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')
|
||||||
|
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%-bin}=$pkgver" "proton-drive-linux=$pkgver" 'pdfs')
|
||||||
|
conflicts=('proton-drive-linux' 'proton-drive-for-linux' 'proton-drive-for-linux-git')
|
||||||
|
# Upstream ships the binaries already built on Ubuntu 24.04; do not rewrite them.
|
||||||
|
options=('!strip' '!debug')
|
||||||
|
_tag="v$pkgver"
|
||||||
|
_raw="https://raw.githubusercontent.com/narrrl/proton-drive-linux/$_tag"
|
||||||
|
# The release tarball holds the four binaries only, so the desktop integration
|
||||||
|
# files come straight from the tagged tree.
|
||||||
|
source=("proton-drive-linux-$pkgver-x86_64.tar.gz::$url/releases/download/$_tag/proton-drive-linux-$pkgver-x86_64.tar.gz"
|
||||||
|
"io.narl.proton-drive-linux.desktop::$_raw/packaging/io.narl.proton-drive-linux.desktop"
|
||||||
|
"io.narl.proton-drive-linux-tray.desktop::$_raw/packaging/io.narl.proton-drive-linux-tray.desktop"
|
||||||
|
"io.narl.proton-drive-linux.svg::$_raw/packaging/io.narl.proton-drive-linux.svg"
|
||||||
|
"proton-drive.service::$_raw/packaging/proton-drive.service"
|
||||||
|
"LICENSE-$pkgver::$_raw/LICENSE")
|
||||||
|
sha256sums=('5fa20a17c0068ad1d74c51eb081b7e36c24b6bf18c4cb0e0b90d2e1c1d40c56f'
|
||||||
|
'034083fd2f77b0b69ae638fdaba2bd772209ca325a78ca17d050f221cab9650b'
|
||||||
|
'5c369d689926cbbd64803b55a9a6010ad59aded6c7bcfb3e8bd005c95ac10cc8'
|
||||||
|
'2bfdef503b4ac02f047adb022e02e81099970589f9d776c821b7751f1be6c12a'
|
||||||
|
'25fa3bd9ba52df534be9d8bc66f77d7502fe1423177237d0d14b673dedeb1b60'
|
||||||
|
'02c419e7f9af08dda720e4f852f3e57cf5a69e192605440f750e9d244fa2817c')
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm755 "$srcdir/pdfs" "$pkgdir/usr/bin/pdfs"
|
||||||
|
install -Dm755 "$srcdir/pdfs-tray" "$pkgdir/usr/bin/pdfs-tray"
|
||||||
|
install -Dm755 "$srcdir/pdfs-app" "$pkgdir/usr/bin/pdfs-app"
|
||||||
|
install -Dm755 "$srcdir/pdfs-prompt" "$pkgdir/usr/bin/pdfs-prompt"
|
||||||
|
|
||||||
|
install -Dm644 "$srcdir/io.narl.proton-drive-linux.desktop" \
|
||||||
|
"$pkgdir/usr/share/applications/io.narl.proton-drive-linux.desktop"
|
||||||
|
install -Dm644 "$srcdir/io.narl.proton-drive-linux-tray.desktop" \
|
||||||
|
"$pkgdir/etc/xdg/autostart/io.narl.proton-drive-linux-tray.desktop"
|
||||||
|
install -Dm644 "$srcdir/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 "$srcdir/proton-drive.service" \
|
||||||
|
"$pkgdir/usr/lib/systemd/user/proton-drive.service"
|
||||||
|
|
||||||
|
install -Dm644 "$srcdir/LICENSE-$pkgver" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
pkgbase = proton-drive-for-linux
|
||||||
|
pkgdesc = Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray
|
||||||
|
pkgver = 1.11.1
|
||||||
|
pkgrel = 1
|
||||||
|
url = https://github.com/narrrl/proton-drive-linux
|
||||||
|
arch = x86_64
|
||||||
|
license = MIT
|
||||||
|
makedepends = cargo
|
||||||
|
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-linux=1.11.1
|
||||||
|
provides = pdfs
|
||||||
|
conflicts = proton-drive-linux
|
||||||
|
conflicts = proton-drive-for-linux-bin
|
||||||
|
conflicts = proton-drive-for-linux-git
|
||||||
|
options = !lto
|
||||||
|
source = proton-drive-for-linux-1.11.1.tar.gz::https://github.com/narrrl/proton-drive-linux/archive/refs/tags/v1.11.1.tar.gz
|
||||||
|
sha256sums = 1481379b2b70102ea6345a00b1092f73511f6ba99d6fba9a3f185ad6d28caaf2
|
||||||
|
|
||||||
|
pkgname = proton-drive-for-linux
|
||||||
@@ -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,73 @@
|
|||||||
|
# Maintainer: Nils Pukropp <contact@narl.io>
|
||||||
|
|
||||||
|
pkgname=proton-drive-for-linux
|
||||||
|
pkgver=1.11.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray"
|
||||||
|
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')
|
||||||
|
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=("proton-drive-linux=$pkgver" 'pdfs')
|
||||||
|
conflicts=('proton-drive-linux' 'proton-drive-for-linux-bin' 'proton-drive-for-linux-git')
|
||||||
|
# LTO has broken GTK/Rust links for this workspace; the release profile keeps it off.
|
||||||
|
options=('!lto')
|
||||||
|
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
|
||||||
|
sha256sums=('1481379b2b70102ea6345a00b1092f73511f6ba99d6fba9a3f185ad6d28caaf2')
|
||||||
|
|
||||||
|
_srcname="proton-drive-linux-$pkgver"
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "$_srcname"
|
||||||
|
export RUSTUP_TOOLCHAIN=stable
|
||||||
|
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd "$_srcname"
|
||||||
|
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 "$_srcname"
|
||||||
|
export RUSTUP_TOOLCHAIN=stable
|
||||||
|
export CARGO_TARGET_DIR=target
|
||||||
|
cargo test --frozen --workspace
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$_srcname"
|
||||||
|
|
||||||
|
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"
|
||||||
|
}
|
||||||
Executable
+36
@@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Publish the packages in this directory to their AUR repositories.
|
||||||
|
#
|
||||||
|
# Usage: ./push.sh [pkgbase ...] (default: all three)
|
||||||
|
# MESSAGE="..." ./push.sh (custom commit message)
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
cd "$(dirname "$(readlink -f "$0")")"
|
||||||
|
|
||||||
|
packages=("$@")
|
||||||
|
if [[ ${#packages[@]} -eq 0 ]]; then
|
||||||
|
packages=(proton-drive-for-linux proton-drive-for-linux-git proton-drive-for-linux-bin)
|
||||||
|
fi
|
||||||
|
|
||||||
|
workdir="$(mktemp -d)"
|
||||||
|
trap 'rm -rf "$workdir"' EXIT
|
||||||
|
|
||||||
|
for pkg in "${packages[@]}"; do
|
||||||
|
test -f "$pkg/PKGBUILD" || { echo "no such package: $pkg" >&2; exit 1; }
|
||||||
|
|
||||||
|
# A fresh clone every time: the AUR repository, not this checkout, is what the
|
||||||
|
# commit history has to build on.
|
||||||
|
git -c init.defaultBranch=master clone -q "ssh://aur@aur.archlinux.org/$pkg.git" "$workdir/$pkg"
|
||||||
|
install -m644 "$pkg/PKGBUILD" "$pkg/.SRCINFO" "$pkg/.gitignore" "$pkg/LICENSE" "$workdir/$pkg/"
|
||||||
|
|
||||||
|
git -C "$workdir/$pkg" add -f PKGBUILD .SRCINFO .gitignore LICENSE
|
||||||
|
if git -C "$workdir/$pkg" diff --cached --quiet; then
|
||||||
|
echo "$pkg: no changes"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
version="$(sed -n 's/^\tpkgver = //p' "$pkg/.SRCINFO" | head -n1)"
|
||||||
|
git -C "$workdir/$pkg" commit -q -m "${MESSAGE:-Update to $version}"
|
||||||
|
git -C "$workdir/$pkg" push -q origin HEAD:master
|
||||||
|
echo "$pkg: pushed ${MESSAGE:-$version}"
|
||||||
|
done
|
||||||
Executable
+27
@@ -0,0 +1,27 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Point the AUR packages at a new upstream release: rewrite pkgver, reset
|
||||||
|
# pkgrel, refresh the checksums that depend on the version, and regenerate
|
||||||
|
# every .SRCINFO.
|
||||||
|
#
|
||||||
|
# Usage: ./update.sh 1.12.0
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
version="${1:-}"
|
||||||
|
if [[ -z $version ]]; then
|
||||||
|
echo "usage: ${0##*/} <version>" >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$(dirname "$(readlink -f "$0")")"
|
||||||
|
|
||||||
|
# The -git package derives its pkgver from git describe, so only the two
|
||||||
|
# release-based packages are versioned here.
|
||||||
|
for pkg in proton-drive-for-linux proton-drive-for-linux-bin; do
|
||||||
|
sed -i -e "s/^pkgver=.*/pkgver=$version/" -e "s/^pkgrel=.*/pkgrel=1/" "$pkg/PKGBUILD"
|
||||||
|
(cd "$pkg" && updpkgsums)
|
||||||
|
done
|
||||||
|
|
||||||
|
for pkg in proton-drive-for-linux proton-drive-for-linux-git proton-drive-for-linux-bin; do
|
||||||
|
(cd "$pkg" && makepkg --printsrcinfo > .SRCINFO)
|
||||||
|
echo "updated $pkg"
|
||||||
|
done
|
||||||
Reference in new issue
Block a user