mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
The RPM recommended both gnome-keyring and kwallet unconditionally, and dnf installs weak dependencies by default, so a GNOME install on Fedora pulled in KWallet and KDE Frameworks with it. The recommendations are now rich dependencies: KWallet only with plasma-workspace, GNOME Keyring only without it, and the AppIndicator extension only with gnome-shell. RPM does not accept `unless` in a weak dependency, so the keyring uses the equivalent `(gnome-keyring or plasma-workspace)`. Reported on Reddit by a Fedora GNOME user.
110 lines
4.0 KiB
RPMSpec
110 lines
4.0 KiB
RPMSpec
# 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}
|
|
|
|
%{!?version: %global version 0.4.0}
|
|
|
|
Name: proton-drive-linux
|
|
Version: %{version}
|
|
Release: 1%{?dist}
|
|
Summary: Unofficial Proton Drive client for Linux (FUSE, CLI, GTK4 app + tray)
|
|
License: MIT
|
|
URL: https://proton-drive.narl.io
|
|
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
|
|
BuildRequires: webkitgtk6.0-devel
|
|
BuildRequires: gettext
|
|
|
|
Requires: fuse3
|
|
Requires: gtk4
|
|
Requires: libadwaita
|
|
Requires: libsecret
|
|
Requires: webkitgtk6.0
|
|
Requires: perl-Image-ExifTool
|
|
Requires: xdg-utils
|
|
|
|
# DE-specific; do not Require a single desktop environment. dnf installs weak
|
|
# dependencies by default, so each is conditional on its own desktop: a plain
|
|
# `Recommends: kwallet` pulled KDE Frameworks onto GNOME installs.
|
|
Recommends: (gnome-keyring or plasma-workspace)
|
|
Recommends: iso-codes
|
|
Recommends: (gnome-shell-extension-appindicator if gnome-shell)
|
|
Recommends: (kwallet if plasma-workspace)
|
|
|
|
# Only for `pdfs-prompt --fzf`; every other front end works without them.
|
|
Suggests: fzf
|
|
Suggests: foot
|
|
|
|
Provides: pdfs = %{version}-%{release}
|
|
|
|
%description
|
|
Files-on-demand Proton Drive for the Linux desktop: a FUSE virtual mount with
|
|
block-level caching, a scriptable CLI, and a GTK4/Libadwaita desktop app with
|
|
system tray and search launcher. Unofficial and not affiliated with Proton AG.
|
|
|
|
%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
|
|
# The release workflow has already built target/release and passes --define "prebuilt 1".
|
|
# rpmbuild exports its own compiler flags, which would make cargo rebuild everything.
|
|
%if 0%{?prebuilt}
|
|
test -x %{git_dir}/target/release/pdfs
|
|
%else
|
|
cd %{git_dir}
|
|
cargo build --release --locked \
|
|
--bin pdfs \
|
|
--bin pdfs-tray \
|
|
--bin pdfs-app \
|
|
--bin pdfs-prompt
|
|
%endif
|
|
|
|
%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
|
|
%{git_dir}/po/build.sh %{buildroot}%{_datadir}/locale
|
|
|
|
%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
|
|
%{_datadir}/locale/*/LC_MESSAGES/pdfs.mo
|
|
|
|
%changelog
|
|
* Sun Jul 19 2026 Local Packager - 0.4.0-1
|
|
- Initial Fedora local package (in-tree cargo build).
|