mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-07 17:12:10 +01:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b696adefc2 | ||
|
|
519ec1af07 | ||
|
|
4820ea1236 | ||
|
|
a9d6e0280d |
No files matched your search
@@ -0,0 +1,101 @@
|
|||||||
|
name: AUR
|
||||||
|
|
||||||
|
on:
|
||||||
|
# The -git package computes its pkgver from git at build time, so a new commit
|
||||||
|
# upstream needs no AUR push. Only a changed -git recipe is published.
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
paths:
|
||||||
|
- 'packaging/aur/proton-drive-for-linux-git/**'
|
||||||
|
# Called by release.yml once the GitHub release and its assets exist.
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
secrets:
|
||||||
|
AUR_SSH_PRIVATE_KEY:
|
||||||
|
required: true
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: 'Release to publish, such as 2.1.0. Leave empty to publish only the -git package.'
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: aur
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish:
|
||||||
|
name: Publish AUR packages
|
||||||
|
runs-on: ubuntu-24.04
|
||||||
|
container: archlinux:base-devel
|
||||||
|
env:
|
||||||
|
# makepkg refuses to run as root, so the packaging steps run as `builder`.
|
||||||
|
HOME: /home/builder
|
||||||
|
VERSION: ${{ inputs.version }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install packaging tools
|
||||||
|
run: pacman -Syu --noconfirm --needed git openssh pacman-contrib
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
# The updated recipes are committed back to main, not to the tag.
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
- name: Create build user
|
||||||
|
run: |
|
||||||
|
useradd --create-home builder
|
||||||
|
chown -R builder: "$GITHUB_WORKSPACE"
|
||||||
|
|
||||||
|
- name: Configure AUR access
|
||||||
|
env:
|
||||||
|
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
||||||
|
run: |
|
||||||
|
install -d -m700 -o builder -g builder "$HOME/.ssh"
|
||||||
|
printf '%s\n' "$AUR_SSH_PRIVATE_KEY" > "$HOME/.ssh/aur"
|
||||||
|
cat > "$HOME/.ssh/config" <<'EOF'
|
||||||
|
Host aur.archlinux.org
|
||||||
|
IdentityFile ~/.ssh/aur
|
||||||
|
User aur
|
||||||
|
EOF
|
||||||
|
# Pin the host key to the fingerprint published on aur.archlinux.org.
|
||||||
|
ssh-keyscan -t ed25519 aur.archlinux.org > "$HOME/.ssh/known_hosts"
|
||||||
|
ssh-keygen -lf "$HOME/.ssh/known_hosts" | grep -q 'SHA256:RFzBCUItH9LZS0cKB5UE6ceAYhBD5C8GeOBip8Z11+4'
|
||||||
|
chown -R builder: "$HOME/.ssh"
|
||||||
|
chmod 600 "$HOME/.ssh/aur"
|
||||||
|
runuser -u builder -- git config --global user.name 'Nils Pukropp'
|
||||||
|
runuser -u builder -- git config --global user.email 'contact@narl.io'
|
||||||
|
|
||||||
|
- name: Update release packages
|
||||||
|
if: env.VERSION != ''
|
||||||
|
run: runuser -u builder -- packaging/aur/update.sh "${VERSION#v}"
|
||||||
|
|
||||||
|
- name: Refresh the -git metadata
|
||||||
|
if: env.VERSION == ''
|
||||||
|
working-directory: packaging/aur/proton-drive-for-linux-git
|
||||||
|
run: runuser -u builder -- sh -c 'makepkg --printsrcinfo > .SRCINFO'
|
||||||
|
|
||||||
|
- name: Publish to the AUR
|
||||||
|
run: |
|
||||||
|
if [ -n "$VERSION" ]; then
|
||||||
|
runuser -u builder -- packaging/aur/push.sh
|
||||||
|
else
|
||||||
|
runuser -u builder -- packaging/aur/push.sh proton-drive-for-linux-git
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Commit the updated recipes to main
|
||||||
|
if: env.VERSION != ''
|
||||||
|
run: |
|
||||||
|
runuser -u builder -- git add packaging/aur
|
||||||
|
if ! runuser -u builder -- git diff --cached --quiet; then
|
||||||
|
runuser -u builder -- git commit -m "chore(aur): update packages to ${VERSION#v}"
|
||||||
|
runuser -u builder -- git push origin HEAD:main
|
||||||
|
fi
|
||||||
@@ -202,3 +202,13 @@ jobs:
|
|||||||
prerelease: false
|
prerelease: false
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
aur:
|
||||||
|
name: Publish AUR packages
|
||||||
|
needs: build-release
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
uses: ./.github/workflows/aur.yml
|
||||||
|
with:
|
||||||
|
version: ${{ github.ref_name }}
|
||||||
|
secrets:
|
||||||
|
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
||||||
Generated
+4
-4
@@ -3449,7 +3449,7 @@ checksum = "2ee67f1008b1ba2321834326597b8e186293b049a023cdef258527550b9935b4"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pdfs-cli"
|
name = "pdfs-cli"
|
||||||
version = "2.1.0"
|
version = "2.1.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"clap",
|
"clap",
|
||||||
@@ -3464,7 +3464,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pdfs-core"
|
name = "pdfs-core"
|
||||||
version = "2.1.0"
|
version = "2.1.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"dbus-secret-service-keyring-store",
|
"dbus-secret-service-keyring-store",
|
||||||
@@ -3488,7 +3488,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pdfs-fuse"
|
name = "pdfs-fuse"
|
||||||
version = "2.1.0"
|
version = "2.1.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.23.1",
|
"base64 0.23.1",
|
||||||
"fuser",
|
"fuser",
|
||||||
@@ -3508,7 +3508,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pdfs-gui"
|
name = "pdfs-gui"
|
||||||
version = "2.1.0"
|
version = "2.1.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-channel",
|
"async-channel",
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ resolver = "2"
|
|||||||
members = ["crates/pdfs-core", "crates/pdfs-fuse", "crates/pdfs-cli", "crates/pdfs-gui"]
|
members = ["crates/pdfs-core", "crates/pdfs-fuse", "crates/pdfs-cli", "crates/pdfs-gui"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "2.1.0"
|
version = "2.1.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
authors = ["Nils Pukropp <contact@narl.io>"]
|
authors = ["Nils Pukropp <contact@narl.io>"]
|
||||||
|
|||||||
@@ -389,11 +389,11 @@ impl<R: Read> Read for CountingReader<'_, R> {
|
|||||||
&& cancel.load(Ordering::Relaxed)
|
&& cancel.load(Ordering::Relaxed)
|
||||||
{
|
{
|
||||||
// Not `Ok(0)`: a short read is how this reader says "end of file",
|
// Not `Ok(0)`: a short read is how this reader says "end of file",
|
||||||
// and the SDK would seal a truncated revision from it.
|
// and the SDK would seal a truncated revision from it. Not
|
||||||
return Err(std::io::Error::new(
|
// `Interrupted` either: every reader loop, the SDK's included,
|
||||||
std::io::ErrorKind::Interrupted,
|
// retries that kind, and this flag never clears, so the drain
|
||||||
"upload superseded by a newer write",
|
// thread spun forever with the transfer stuck at 0 bytes (B98).
|
||||||
));
|
return Err(std::io::Error::other("upload superseded by a newer write"));
|
||||||
}
|
}
|
||||||
let n = self.inner.read(buf)?;
|
let n = self.inner.read(buf)?;
|
||||||
self.guard.add(n as u64);
|
self.guard.add(n as u64);
|
||||||
@@ -433,4 +433,17 @@ mod tests {
|
|||||||
assert_eq!(limit.charge(1500, now), Duration::from_millis(500));
|
assert_eq!(limit.charge(1500, now), Duration::from_millis(500));
|
||||||
assert_eq!(limit.charge(1500, now), Duration::from_secs(2));
|
assert_eq!(limit.charge(1500, now), Duration::from_secs(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn a_cancelled_upload_fails_its_read_instead_of_asking_for_a_retry() {
|
||||||
|
let reg = TransferRegistry::new();
|
||||||
|
let guard = reg.begin("f", "", TransferDirection::Upload, 4);
|
||||||
|
let cancel = Arc::new(AtomicBool::new(true));
|
||||||
|
let mut reader = CountingReader::new(&b"data"[..], &guard).with_cancel(cancel);
|
||||||
|
// `read_exact` retries `Interrupted` the way the SDK's block loop does,
|
||||||
|
// so this hangs rather than fails if the cancel asks for a retry.
|
||||||
|
let err = reader.read_exact(&mut [0; 4]).unwrap_err();
|
||||||
|
assert_ne!(err.kind(), std::io::ErrorKind::Interrupted);
|
||||||
|
assert_eq!(guard.entry.done.load(Ordering::Relaxed), 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -12,6 +12,31 @@ Conventions:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## B98 — A superseded upload spins its drain thread forever and shows as "Uploading" at 0 bytes
|
||||||
|
|
||||||
|
**Status:** Fixed (unverified) — the daemon carrying the change has not been driven against a
|
||||||
|
superseded upload yet.
|
||||||
|
**Found:** 2026-09-23. The Sync page showed `Unconfirmed 654050.crdownload — 0 bytes of 23.8 MiB`
|
||||||
|
for hours after Brave had finished and renamed the download. `pdfs transfers` listed the same
|
||||||
|
entry, `pdfs diagnostics` showed every worker idle, and `/proc/<pid>/task` showed `pdfs-drain-1`
|
||||||
|
in state `R` at 100% CPU, holding a deleted staging blob open.
|
||||||
|
|
||||||
|
**Where:** `crates/pdfs-fuse/src/transfers.rs` (`CountingReader::read`).
|
||||||
|
|
||||||
|
**Cause.** A write that lands while a revision is on the wire cancels that upload through the
|
||||||
|
flag `CountingReader` checks before every read. The reader reported the cancel as
|
||||||
|
`ErrorKind::Interrupted`. Every read loop treats that kind as "try again", including the SDK's
|
||||||
|
`read_full_block`, and the flag never clears, so the loop never ended. The `TransferGuard` was
|
||||||
|
never dropped, so the transfer stayed in the registry, and the drain thread was lost until the
|
||||||
|
daemon restarted. A browser download is the natural trigger: the `.crdownload` file keeps growing,
|
||||||
|
so each new write supersedes the upload of the previous one.
|
||||||
|
|
||||||
|
**Fix.** The cancel is reported as `ErrorKind::Other`, which the SDK turns into an error.
|
||||||
|
`drain_revision` already recognises a cancelled upload and returns without counting a failure.
|
||||||
|
Regression test: `a_cancelled_upload_fails_its_read_instead_of_asking_for_a_retry`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## B97 — Photo refreshes stack up on the control socket, and shutdown turns the resolve pass into a burst of "undecryptable photo" warnings
|
## B97 — Photo refreshes stack up on the control socket, and shutdown turns the resolve pass into a burst of "undecryptable photo" warnings
|
||||||
|
|
||||||
**Status:** Fixed (unverified) — the daemon carrying the change has not been driven against a real
|
**Status:** Fixed (unverified) — the daemon carrying the change has not been driven against a real
|
||||||
|
|||||||
@@ -11,6 +11,16 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [2.1.1] — 2026-09-23
|
||||||
|
|
||||||
|
Schema: **31** (unchanged).
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Uploads no longer get stuck at 0 bytes.** When a file changed again while its previous
|
||||||
|
version was uploading, such as a browser download that is still growing, the old upload could
|
||||||
|
hang forever. It kept one background thread busy at full CPU and showed as "Uploading" in the
|
||||||
|
Transfers list until the daemon restarted.
|
||||||
|
|
||||||
## [2.1.0] — 2026-09-23
|
## [2.1.0] — 2026-09-23
|
||||||
|
|
||||||
The desktop app, the tray and the search prompt speak German, British English, Spanish, French,
|
The desktop app, the tray and the search prompt speak German, British English, Spanish, French,
|
||||||
|
|||||||
+1
-1
@@ -9,7 +9,7 @@
|
|||||||
# Build + install: cd packaging && makepkg -fi
|
# Build + install: cd packaging && makepkg -fi
|
||||||
|
|
||||||
pkgname=proton-drive-linux
|
pkgname=proton-drive-linux
|
||||||
pkgver=2.1.0
|
pkgver=2.1.1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Unofficial Proton Drive client for Linux: files-on-demand FUSE mount, CLI, GTK4 app + tray"
|
pkgdesc="Unofficial Proton Drive client for Linux: files-on-demand FUSE mount, CLI, GTK4 app + tray"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
|
|||||||
+18
-1
@@ -21,6 +21,22 @@ built packages never reach the AUR.
|
|||||||
|
|
||||||
## Releasing a new version
|
## Releasing a new version
|
||||||
|
|
||||||
|
`.github/workflows/aur.yml` does this automatically:
|
||||||
|
|
||||||
|
- **On a release tag**, `release.yml` calls it after the GitHub release is
|
||||||
|
published. It runs `./update.sh <version>`, pushes all three packages with
|
||||||
|
`./push.sh`, and commits the updated recipes back to `main` as
|
||||||
|
`chore(aur): update packages to <version>`.
|
||||||
|
- **On a push to `main` that changes `proton-drive-for-linux-git/`**, it
|
||||||
|
regenerates that package's `.SRCINFO` and pushes only the -git package.
|
||||||
|
- **By hand**, run the workflow from the Actions tab. Give a version to publish
|
||||||
|
a release, or leave it empty to publish only the -git package.
|
||||||
|
|
||||||
|
It needs the `AUR_SSH_PRIVATE_KEY` repository secret: a private key whose public
|
||||||
|
half is registered with the AUR account.
|
||||||
|
|
||||||
|
To do the same by hand:
|
||||||
|
|
||||||
1. Tag and publish the upstream release, so the source tarball and the
|
1. Tag and publish the upstream release, so the source tarball and the
|
||||||
`proton-drive-linux-<version>-x86_64.tar.gz` release asset exist.
|
`proton-drive-linux-<version>-x86_64.tar.gz` release asset exist.
|
||||||
2. Run `./update.sh <version>` — it rewrites `pkgver`, resets `pkgrel=1`,
|
2. Run `./update.sh <version>` — it rewrites `pkgver`, resets `pkgrel=1`,
|
||||||
@@ -32,7 +48,8 @@ built packages never reach the AUR.
|
|||||||
for a single package).
|
for a single package).
|
||||||
|
|
||||||
`proton-drive-for-linux-git` carries a `pkgver()` function, so its `pkgver` is
|
`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.
|
computed at build time; do not push a commit that only bumps it. This is why new
|
||||||
|
commits on `main` do not trigger an AUR push.
|
||||||
|
|
||||||
## Requirements for pushing
|
## Requirements for pushing
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
pkgbase = proton-drive-for-linux-bin
|
pkgbase = proton-drive-for-linux-bin
|
||||||
pkgdesc = Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)
|
pkgdesc = Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)
|
||||||
pkgver = 2.0.0
|
pkgver = 2.1.0
|
||||||
pkgrel = 1
|
pkgrel = 1
|
||||||
url = https://github.com/narrrl/proton-drive-linux
|
url = https://github.com/narrrl/proton-drive-linux
|
||||||
arch = x86_64
|
arch = x86_64
|
||||||
@@ -19,23 +19,23 @@ pkgbase = proton-drive-for-linux-bin
|
|||||||
optdepends = xdg-utils: "Open folder" action in the tray menu
|
optdepends = xdg-utils: "Open folder" action in the tray menu
|
||||||
optdepends = fzf: search-as-you-type launcher (pdfs-prompt --fzf)
|
optdepends = fzf: search-as-you-type launcher (pdfs-prompt --fzf)
|
||||||
optdepends = foot: terminal that hosts pdfs-prompt --fzf when started from a keybinding
|
optdepends = foot: terminal that hosts pdfs-prompt --fzf when started from a keybinding
|
||||||
provides = proton-drive-for-linux=2.0.0
|
provides = proton-drive-for-linux=2.1.0
|
||||||
provides = proton-drive-linux=2.0.0
|
provides = proton-drive-linux=2.1.0
|
||||||
provides = pdfs
|
provides = pdfs
|
||||||
conflicts = proton-drive-linux
|
conflicts = proton-drive-linux
|
||||||
conflicts = proton-drive-for-linux
|
conflicts = proton-drive-for-linux
|
||||||
conflicts = proton-drive-for-linux-git
|
conflicts = proton-drive-for-linux-git
|
||||||
options = !strip
|
options = !strip
|
||||||
options = !debug
|
options = !debug
|
||||||
source = proton-drive-linux-2.0.0-x86_64.tar.gz::https://github.com/narrrl/proton-drive-linux/releases/download/v2.0.0/proton-drive-linux-2.0.0-x86_64.tar.gz
|
source = proton-drive-linux-2.1.0-x86_64.tar.gz::https://github.com/narrrl/proton-drive-linux/releases/download/v2.1.0/proton-drive-linux-2.1.0-x86_64.tar.gz
|
||||||
source = io.narl.proton-drive-linux.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/packaging/io.narl.proton-drive-linux.desktop
|
source = io.narl.proton-drive-linux.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.0/packaging/io.narl.proton-drive-linux.desktop
|
||||||
source = io.narl.proton-drive-linux-tray.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/packaging/io.narl.proton-drive-linux-tray.desktop
|
source = io.narl.proton-drive-linux-tray.desktop::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.0/packaging/io.narl.proton-drive-linux-tray.desktop
|
||||||
source = io.narl.proton-drive-linux.svg::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/packaging/io.narl.proton-drive-linux.svg
|
source = io.narl.proton-drive-linux.svg::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.0/packaging/io.narl.proton-drive-linux.svg
|
||||||
source = proton-drive.service::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/packaging/proton-drive.service
|
source = proton-drive.service::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.0/packaging/proton-drive.service
|
||||||
source = LICENSE-2.0.0::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.0.0/LICENSE
|
source = LICENSE-2.1.0::https://raw.githubusercontent.com/narrrl/proton-drive-linux/v2.1.0/LICENSE
|
||||||
sha256sums = 78d3bda3810964383cc0917cf8af276f1dc3776dcd4fe725754f5dafb371dfe6
|
sha256sums = dd8aba8e38f42386e44994476e9a949516580bd077be1d274c396eef411664ac
|
||||||
sha256sums = 034083fd2f77b0b69ae638fdaba2bd772209ca325a78ca17d050f221cab9650b
|
sha256sums = d190d6771fff0b975271fb62fd3fb0fa8bbf17d7278c10853c18557855b0c123
|
||||||
sha256sums = 5c369d689926cbbd64803b55a9a6010ad59aded6c7bcfb3e8bd005c95ac10cc8
|
sha256sums = 1d95e250370220e3bb6aead6ce34d1d6cc759f42c4803b75f1667e78ff47c6c0
|
||||||
sha256sums = e598a93c2715c3a9fdc7fb937902083d4a1135e8fbdfe6fe7e37f0383ebbd828
|
sha256sums = e598a93c2715c3a9fdc7fb937902083d4a1135e8fbdfe6fe7e37f0383ebbd828
|
||||||
sha256sums = 25fa3bd9ba52df534be9d8bc66f77d7502fe1423177237d0d14b673dedeb1b60
|
sha256sums = 25fa3bd9ba52df534be9d8bc66f77d7502fe1423177237d0d14b673dedeb1b60
|
||||||
sha256sums = 02c419e7f9af08dda720e4f852f3e57cf5a69e192605440f750e9d244fa2817c
|
sha256sums = 02c419e7f9af08dda720e4f852f3e57cf5a69e192605440f750e9d244fa2817c
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Maintainer: Nils Pukropp <contact@narl.io>
|
# Maintainer: Nils Pukropp <contact@narl.io>
|
||||||
|
|
||||||
pkgname=proton-drive-for-linux-bin
|
pkgname=proton-drive-for-linux-bin
|
||||||
pkgver=2.0.0
|
pkgver=2.1.0
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)"
|
pkgdesc="Unofficial Proton Drive client: FUSE files-on-demand mount, CLI, GTK4 app, tray (binaries)"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
@@ -29,9 +29,9 @@ source=("proton-drive-linux-$pkgver-x86_64.tar.gz::$url/releases/download/$_tag/
|
|||||||
"io.narl.proton-drive-linux.svg::$_raw/packaging/io.narl.proton-drive-linux.svg"
|
"io.narl.proton-drive-linux.svg::$_raw/packaging/io.narl.proton-drive-linux.svg"
|
||||||
"proton-drive.service::$_raw/packaging/proton-drive.service"
|
"proton-drive.service::$_raw/packaging/proton-drive.service"
|
||||||
"LICENSE-$pkgver::$_raw/LICENSE")
|
"LICENSE-$pkgver::$_raw/LICENSE")
|
||||||
sha256sums=('78d3bda3810964383cc0917cf8af276f1dc3776dcd4fe725754f5dafb371dfe6'
|
sha256sums=('dd8aba8e38f42386e44994476e9a949516580bd077be1d274c396eef411664ac'
|
||||||
'034083fd2f77b0b69ae638fdaba2bd772209ca325a78ca17d050f221cab9650b'
|
'd190d6771fff0b975271fb62fd3fb0fa8bbf17d7278c10853c18557855b0c123'
|
||||||
'5c369d689926cbbd64803b55a9a6010ad59aded6c7bcfb3e8bd005c95ac10cc8'
|
'1d95e250370220e3bb6aead6ce34d1d6cc759f42c4803b75f1667e78ff47c6c0'
|
||||||
'e598a93c2715c3a9fdc7fb937902083d4a1135e8fbdfe6fe7e37f0383ebbd828'
|
'e598a93c2715c3a9fdc7fb937902083d4a1135e8fbdfe6fe7e37f0383ebbd828'
|
||||||
'25fa3bd9ba52df534be9d8bc66f77d7502fe1423177237d0d14b673dedeb1b60'
|
'25fa3bd9ba52df534be9d8bc66f77d7502fe1423177237d0d14b673dedeb1b60'
|
||||||
'02c419e7f9af08dda720e4f852f3e57cf5a69e192605440f750e9d244fa2817c')
|
'02c419e7f9af08dda720e4f852f3e57cf5a69e192605440f750e9d244fa2817c')
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ pkgbase = proton-drive-for-linux-git
|
|||||||
license = MIT
|
license = MIT
|
||||||
makedepends = cargo
|
makedepends = cargo
|
||||||
makedepends = git
|
makedepends = git
|
||||||
|
makedepends = gettext
|
||||||
depends = fuse3
|
depends = fuse3
|
||||||
depends = gtk4
|
depends = gtk4
|
||||||
depends = libadwaita
|
depends = libadwaita
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
pkgbase = proton-drive-for-linux
|
pkgbase = proton-drive-for-linux
|
||||||
pkgdesc = Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray
|
pkgdesc = Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray
|
||||||
pkgver = 2.0.0
|
pkgver = 2.1.0
|
||||||
pkgrel = 1
|
pkgrel = 1
|
||||||
url = https://github.com/narrrl/proton-drive-linux
|
url = https://github.com/narrrl/proton-drive-linux
|
||||||
arch = x86_64
|
arch = x86_64
|
||||||
license = MIT
|
license = MIT
|
||||||
makedepends = cargo
|
makedepends = cargo
|
||||||
|
makedepends = gettext
|
||||||
depends = fuse3
|
depends = fuse3
|
||||||
depends = gtk4
|
depends = gtk4
|
||||||
depends = libadwaita
|
depends = libadwaita
|
||||||
@@ -20,13 +21,13 @@ pkgbase = proton-drive-for-linux
|
|||||||
optdepends = xdg-utils: "Open folder" action in the tray menu
|
optdepends = xdg-utils: "Open folder" action in the tray menu
|
||||||
optdepends = fzf: search-as-you-type launcher (pdfs-prompt --fzf)
|
optdepends = fzf: search-as-you-type launcher (pdfs-prompt --fzf)
|
||||||
optdepends = foot: terminal that hosts pdfs-prompt --fzf when started from a keybinding
|
optdepends = foot: terminal that hosts pdfs-prompt --fzf when started from a keybinding
|
||||||
provides = proton-drive-linux=2.0.0
|
provides = proton-drive-linux=2.1.0
|
||||||
provides = pdfs
|
provides = pdfs
|
||||||
conflicts = proton-drive-linux
|
conflicts = proton-drive-linux
|
||||||
conflicts = proton-drive-for-linux-bin
|
conflicts = proton-drive-for-linux-bin
|
||||||
conflicts = proton-drive-for-linux-git
|
conflicts = proton-drive-for-linux-git
|
||||||
options = !lto
|
options = !lto
|
||||||
source = proton-drive-for-linux-2.0.0.tar.gz::https://github.com/narrrl/proton-drive-linux/archive/refs/tags/v2.0.0.tar.gz
|
source = proton-drive-for-linux-2.1.0.tar.gz::https://github.com/narrrl/proton-drive-linux/archive/refs/tags/v2.1.0.tar.gz
|
||||||
sha256sums = 4476aafe405cb91d81cec8cffcef345696f3169ac3fbde0121233913c8777eea
|
sha256sums = 9ca0409636552dc6d158595396402fd0fe6d77fab2ac5f5239fc51d702b791cb
|
||||||
|
|
||||||
pkgname = proton-drive-for-linux
|
pkgname = proton-drive-for-linux
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# Maintainer: Nils Pukropp <contact@narl.io>
|
# Maintainer: Nils Pukropp <contact@narl.io>
|
||||||
|
|
||||||
pkgname=proton-drive-for-linux
|
pkgname=proton-drive-for-linux
|
||||||
pkgver=2.0.0
|
pkgver=2.1.0
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray"
|
pkgdesc="Unofficial Proton Drive client: files-on-demand FUSE mount, CLI, GTK4 app and tray"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
@@ -21,7 +21,7 @@ conflicts=('proton-drive-linux' 'proton-drive-for-linux-bin' 'proton-drive-for-l
|
|||||||
# LTO has broken GTK/Rust links for this workspace; the release profile keeps it off.
|
# LTO has broken GTK/Rust links for this workspace; the release profile keeps it off.
|
||||||
options=('!lto')
|
options=('!lto')
|
||||||
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
|
source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
|
||||||
sha256sums=('4476aafe405cb91d81cec8cffcef345696f3169ac3fbde0121233913c8777eea')
|
sha256sums=('9ca0409636552dc6d158595396402fd0fe6d77fab2ac5f5239fc51d702b791cb')
|
||||||
|
|
||||||
_srcname="proton-drive-linux-$pkgver"
|
_srcname="proton-drive-linux-$pkgver"
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user