mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
Add Fedora packaging and fix crates.io SDK build.
Remove the local proton-sdk path patch so the workspace builds from published crates, and document Fedora 44 build/runtime plus a local RPM spec. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
fb39594453
commit
b90b7e4b9c
4 files changed
+411
-241
No files matched your search
Generated
+292
-233
File diff suppressed because it is too large.
Load diff
+2
-8
@@ -10,8 +10,8 @@ authors = ["Nils Pukropp <contact@narl.io>"]
|
|||||||
rust-version = "1.96"
|
rust-version = "1.96"
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
proton-sdk = "0.1.6"
|
proton-sdk = "0.1.8"
|
||||||
proton-drive-rs = "0.1.6"
|
proton-drive-rs = "0.1.8"
|
||||||
|
|
||||||
# Internal crates.
|
# Internal crates.
|
||||||
pdfs-core = { path = "crates/pdfs-core" }
|
pdfs-core = { path = "crates/pdfs-core" }
|
||||||
@@ -37,9 +37,3 @@ clap = { version = "4", features = ["derive"] }
|
|||||||
rpassword = "7"
|
rpassword = "7"
|
||||||
fuser = "0.17"
|
fuser = "0.17"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
|
|
||||||
# Development override: build against the local SDK checkout until 0.1.6 is
|
|
||||||
# published to crates.io. Remove this block to consume the released crate.
|
|
||||||
[patch.crates-io]
|
|
||||||
proton-sdk = { path = "../proton-sdk-rs/crates/proton-sdk" }
|
|
||||||
proton-drive-rs = { path = "../proton-sdk-rs/crates/proton-drive-rs" }
|
|
||||||
@@ -63,6 +63,22 @@ sudo apt-get install -y \
|
|||||||
sudo pacman -S --needed pkgconf fuse3 gtk4 libadwaita libsecret dbus
|
sudo pacman -S --needed pkgconf fuse3 gtk4 libadwaita libsecret dbus
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Fedora (44+)
|
||||||
|
```bash
|
||||||
|
sudo dnf install -y \
|
||||||
|
pkgconf-pkg-config fuse3-devel gtk4-devel libadwaita-devel \
|
||||||
|
libsecret-devel dbus-devel glib2-devel cargo rust
|
||||||
|
```
|
||||||
|
|
||||||
|
Runtime extras (pick your desktop):
|
||||||
|
```bash
|
||||||
|
# GNOME — keyring + tray (AppIndicator)
|
||||||
|
sudo dnf install -y gnome-keyring gnome-shell-extension-appindicator xdg-utils
|
||||||
|
|
||||||
|
# KDE Plasma — KWallet (Secret Service); tray works via built-in SNI
|
||||||
|
sudo dnf install -y kwallet xdg-utils
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Building from Source
|
## Building from Source
|
||||||
@@ -101,6 +117,20 @@ A local `PKGBUILD` is available under the `packaging/` directory. You can build
|
|||||||
cd packaging && makepkg -fi
|
cd packaging && makepkg -fi
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 3. Fedora (local RPM)
|
||||||
|
A local `.spec` is available under `packaging/`. From the repository root:
|
||||||
|
```bash
|
||||||
|
sudo dnf install -y rpm-build
|
||||||
|
rpmbuild -bb packaging/proton-drive-linux.spec \
|
||||||
|
--define "git_dir $PWD" \
|
||||||
|
--define "_rpmdir $PWD/packaging/out" \
|
||||||
|
--define "_builddir $PWD/packaging/build" \
|
||||||
|
--define "_sourcedir $PWD" \
|
||||||
|
--define "_specdir $PWD/packaging" \
|
||||||
|
--define "_srcrpmdir $PWD/packaging/out"
|
||||||
|
sudo dnf install packaging/out/x86_64/proton-drive-linux-*.rpm
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Automated Releases (CI/CD)
|
## Automated Releases (CI/CD)
|
||||||
|
|||||||
@@ -0,0 +1,87 @@
|
|||||||
|
# Local in-tree RPM (mirrors packaging/PKGBUILD).
|
||||||
|
# From the repository root:
|
||||||
|
# rpmbuild -bb packaging/proton-drive-linux.spec --define "git_dir $PWD" ...
|
||||||
|
# %build needs network so cargo can fetch crates.io (same trade-off as the Arch PKGBUILD).
|
||||||
|
|
||||||
|
%global debug_package %{nil}
|
||||||
|
# Match Arch PKGBUILD `!lto` — LTO has broken some GTK/Rust links in practice.
|
||||||
|
%global _lto_cflags %{nil}
|
||||||
|
|
||||||
|
Name: proton-drive-linux
|
||||||
|
Version: 0.4.0
|
||||||
|
Release: 1%{?dist}
|
||||||
|
Summary: Proton Drive client for Linux (FUSE, CLI, GTK4 app + tray)
|
||||||
|
License: MIT
|
||||||
|
URL: https://github.com/narl/proton-drive-linux
|
||||||
|
ExclusiveArch: x86_64
|
||||||
|
|
||||||
|
BuildRequires: cargo
|
||||||
|
BuildRequires: rust
|
||||||
|
BuildRequires: pkgconf-pkg-config
|
||||||
|
BuildRequires: fuse3-devel
|
||||||
|
BuildRequires: gtk4-devel
|
||||||
|
BuildRequires: libadwaita-devel
|
||||||
|
BuildRequires: libsecret-devel
|
||||||
|
BuildRequires: dbus-devel
|
||||||
|
BuildRequires: glib2-devel
|
||||||
|
|
||||||
|
Requires: fuse3
|
||||||
|
Requires: gtk4
|
||||||
|
Requires: libadwaita
|
||||||
|
Requires: libsecret
|
||||||
|
Requires: xdg-utils
|
||||||
|
|
||||||
|
# DE-specific; do not Require a single desktop environment.
|
||||||
|
Recommends: gnome-keyring
|
||||||
|
Recommends: gnome-shell-extension-appindicator
|
||||||
|
Recommends: kwallet
|
||||||
|
|
||||||
|
Provides: pdfs = %{version}-%{release}
|
||||||
|
|
||||||
|
%description
|
||||||
|
Unofficial Proton Drive client featuring a FUSE files-on-demand mount,
|
||||||
|
CLI, GTK4/Libadwaita GUI, system tray, and search launcher.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
# In-tree build: no Source tarball. Pass --define "git_dir /path/to/checkout".
|
||||||
|
test -n "%{?git_dir}" || (echo 'Pass --define "git_dir $PWD" from the repo root' >&2; exit 1)
|
||||||
|
test -f %{git_dir}/Cargo.toml
|
||||||
|
cp -a %{git_dir}/LICENSE .
|
||||||
|
%build
|
||||||
|
cd %{git_dir}
|
||||||
|
cargo build --release --locked \
|
||||||
|
--bin pdfs \
|
||||||
|
--bin pdfs-tray \
|
||||||
|
--bin pdfs-app \
|
||||||
|
--bin pdfs-prompt
|
||||||
|
|
||||||
|
%install
|
||||||
|
rel=%{git_dir}/target/release
|
||||||
|
install -D -m0755 "$rel/pdfs" %{buildroot}%{_bindir}/pdfs
|
||||||
|
install -D -m0755 "$rel/pdfs-tray" %{buildroot}%{_bindir}/pdfs-tray
|
||||||
|
install -D -m0755 "$rel/pdfs-app" %{buildroot}%{_bindir}/pdfs-app
|
||||||
|
install -D -m0755 "$rel/pdfs-prompt" %{buildroot}%{_bindir}/pdfs-prompt
|
||||||
|
|
||||||
|
install -D -m0644 %{git_dir}/packaging/io.narl.proton-drive-linux.desktop \
|
||||||
|
%{buildroot}%{_datadir}/applications/io.narl.proton-drive-linux.desktop
|
||||||
|
install -D -m0644 %{git_dir}/packaging/io.narl.proton-drive-linux-tray.desktop \
|
||||||
|
%{buildroot}%{_sysconfdir}/xdg/autostart/io.narl.proton-drive-linux-tray.desktop
|
||||||
|
install -D -m0644 %{git_dir}/packaging/io.narl.proton-drive-linux.svg \
|
||||||
|
%{buildroot}%{_datadir}/icons/hicolor/scalable/apps/io.narl.proton-drive-linux.svg
|
||||||
|
install -D -m0644 %{git_dir}/packaging/proton-drive.service \
|
||||||
|
%{buildroot}/usr/lib/systemd/user/proton-drive.service
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%{_bindir}/pdfs
|
||||||
|
%{_bindir}/pdfs-tray
|
||||||
|
%{_bindir}/pdfs-app
|
||||||
|
%{_bindir}/pdfs-prompt
|
||||||
|
%{_datadir}/applications/io.narl.proton-drive-linux.desktop
|
||||||
|
%{_sysconfdir}/xdg/autostart/io.narl.proton-drive-linux-tray.desktop
|
||||||
|
%{_datadir}/icons/hicolor/scalable/apps/io.narl.proton-drive-linux.svg
|
||||||
|
/usr/lib/systemd/user/proton-drive.service
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Sun Jul 19 2026 Local Packager - 0.4.0-1
|
||||||
|
- Initial Fedora local package (in-tree cargo build).
|
||||||
Reference in new issue
Block a user