From c8f57ed5c97c65fff6d51eee7e8cc7d28706f11b Mon Sep 17 00:00:00 2001 From: Nils Pukropp Date: Sun, 19 Jul 2026 20:49:02 +0200 Subject: [PATCH] added fedora packeging --- .github/workflows/release.yml | 25 ++++++++++++++- .gitignore | 1 + packaging/proton-drive-linux.spec | 51 +++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 packaging/proton-drive-linux.spec diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b90af0e..4cdf6d9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,7 +28,8 @@ jobs: libadwaita-1-dev \ libsecret-1-dev \ libdbus-1-dev \ - desktop-file-utils + desktop-file-utils \ + rpm - name: Set up Rust uses: actions-rust-lang/setup-rust-toolchain@v1 @@ -109,6 +110,26 @@ jobs: # Build Debian package dpkg-deb --build deb proton-drive-linux_${{ env.VERSION }}_amd64.deb + - name: Package Fedora package (.rpm) + run: | + # Sanitize version (replace hyphens with dots for RPM compatibility) + RPM_VERSION=$(echo "${{ env.VERSION }}" | tr '-' '.') + + # Create RPM build directories + mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT,db} + + # Build RPM package + rpmbuild -bb \ + --define "_topdir $PWD/rpmbuild" \ + --define "_sourcedir $PWD" \ + --define "version ${RPM_VERSION}" \ + --define "_dbpath $PWD/rpmbuild/db" \ + packaging/proton-drive-linux.spec + + # Copy built RPM to root directory + cp rpmbuild/RPMS/x86_64/*.rpm . + + - name: Upload Workflow Artifacts uses: actions/upload-artifact@v4 with: @@ -116,6 +137,7 @@ jobs: path: | *.deb *.tar.gz + *.rpm if-no-files-found: error - name: Create GitHub Release @@ -125,6 +147,7 @@ jobs: files: | *.deb *.tar.gz + *.rpm draft: false prerelease: false env: diff --git a/.gitignore b/.gitignore index 9323bb6..600dec9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ **/*.rs.bk *.pdb .env +/rpmbuild diff --git a/packaging/proton-drive-linux.spec b/packaging/proton-drive-linux.spec new file mode 100644 index 0000000..871b7fb --- /dev/null +++ b/packaging/proton-drive-linux.spec @@ -0,0 +1,51 @@ +Name: proton-drive-linux +Version: %{version} +Release: 1%{?dist} +Summary: Proton Drive client for Linux (unofficial) + +License: MIT +URL: https://github.com/narl/proton-drive-linux + +# Disable debuginfo package generation since we package pre-built release binaries +%global debug_package %{nil} +# Disable binary strip/post-processing checks to avoid issues with pre-compiled binaries +%global __os_install_post %{nil} + +Requires: fuse3 +Requires: gtk4 >= 4.12.0 +Requires: libadwaita >= 1.5.0 +Requires: libsecret +Requires: dbus + +%description +A fast, unofficial Proton Drive client for Linux. This client features an advanced files-on-demand FUSE virtual mount with block-level caching, a command-line interface (CLI), and a fully non-blocking GTK4 desktop application with system tray integration. + +%install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_datadir}/applications +mkdir -p %{buildroot}%{_sysconfdir}/xdg/autostart +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps +mkdir -p %{buildroot}%{_usr}/lib/systemd/user +mkdir -p %{buildroot}%{_datadir}/licenses/proton-drive-linux + +cp %{_sourcedir}/target/release/pdfs %{buildroot}%{_bindir}/ +cp %{_sourcedir}/target/release/pdfs-tray %{buildroot}%{_bindir}/ +cp %{_sourcedir}/target/release/pdfs-app %{buildroot}%{_bindir}/ +cp %{_sourcedir}/target/release/pdfs-prompt %{buildroot}%{_bindir}/ + +cp %{_sourcedir}/packaging/io.narl.proton-drive-linux.desktop %{buildroot}%{_datadir}/applications/ +cp %{_sourcedir}/packaging/io.narl.proton-drive-linux-tray.desktop %{buildroot}%{_sysconfdir}/xdg/autostart/ +cp %{_sourcedir}/packaging/io.narl.proton-drive-linux.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/ +cp %{_sourcedir}/packaging/proton-drive.service %{buildroot}%{_usr}/lib/systemd/user/ +cp %{_sourcedir}/LICENSE %{buildroot}%{_datadir}/licenses/proton-drive-linux/ + +%files +%{_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}/licenses/proton-drive-linux/LICENSE