mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-04 00:47:00 +01:00
The release job never hit a cache: its rust-cache key contained the job name, tags cannot restore caches of earlier tags, and rpmbuild rebuilt the whole workspace under its own compiler flags. CI on main now saves shared debug and release caches that the release workflow restores. Quality gates and the package build run in parallel, and the GitHub release is created once both pass. The RPM spec skips its cargo build when the caller passes --define "prebuilt 1".
108 lines
3.8 KiB
RPMSpec
108 lines
3.8 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://github.com/narrrl/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
|
|
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.
|
|
Recommends: gnome-keyring
|
|
Recommends: iso-codes
|
|
Recommends: gnome-shell-extension-appindicator
|
|
Recommends: kwallet
|
|
|
|
# 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).
|