RPM dependency fuse2-libs is unavailable on Fedora 44 - #515
RPM dependency fuse2-libs is unavailable on Fedora 44 #515ARUNMANIKANDAN-C wants to merge 17 commits into
Conversation
This workflow tests the compatibility of the Tuttle RPM package across multiple Linux distributions, including Fedora, Rocky Linux, AlmaLinux, CentOS Stream, and Oracle Linux. It checks for dependencies, installs the package, and verifies successful installation.
Added smoke test for app under Xvfb with crash report checks.
Added verification steps for Tuttle RPM installation to the workflow.
Updated the workflow to improve clarity and consistency in RPM generation and testing steps, including enhanced logging and error handling.
Updated the RPM build workflow for better error handling and clarity. Enhanced comments and organized steps for improved readability.
Added additional dependencies for RPM packaging.
Refactor RPM compatibility workflow to improve diagnostics and dependency checks. Removed unnecessary checks and added specific dependency verifications for NSS and NSPR.
Removed AlmaLinux 9 and Oracle Linux 9 from the workflow.
clstaudt
left a comment
There was a problem hiding this comment.
Thanks for the contribution @ARUNMANIKANDAN-C, and for the thorough investigation in #512!
A few changes needed before this can be merged:
1. Use an RPM capability instead of a package name
The PR replaces fuse2-libs with fuse-libs, but that's still a Fedora-specific package name — other RPM distros may use a different name and hit the same problem. As you noted in the issue, Fedora's fuse-libs provides libfuse.so.2()(64bit). electron-builder supports capability strings in RPM depends, so please use that instead. This makes the dependency truly portable.
2. Justify or remove the additional RPM dependencies
The issue was about one dependency, but this PR adds 9 new ones (nspr, gtk3, libnotify, nss, libXScrnSaver, libXtst, xdg-utils, at-spi2-core, libuuid). These aren't discussed in the issue or PR description, and some are also distro-specific names that could cause the same problem elsewhere. Please explain which are actually needed, or remove them.
3. Split the workflow into a separate PR
The packaging fix and the 1000+ line CI workflow are independent concerns. The package.json fix can land quickly on its own; the workflow can be reviewed separately.
4. Workflow security concerns
When the workflow PR comes in, please address:
- Remove
--privilegedfrom Docker runs — not needed for an RPM build, grants unnecessary host capabilities - Pipe-to-shell installs (
curl | bash) are a supply-chain risk, especially combined with--privileged --allowerasingondnf installcan silently remove packages and mask real dependency conflicts
|
@clstaudt thanks for review I’ll work on the CI/CD pipeline separately. As part of the testing, I ran the RPM built by the workflow across three RPM-based distributions:
The workflow installs the generated RPM, verifies its dependencies and shared libraries, and launches the Tuttle application under Xvfb. The application completed the smoke test successfully on all three environments without Tuttle-specific crash dumps or abnormal exit codes. I’ll separate this CI/CD work from the packaging fix and address the security concerns you mentioned ( |
Summary
Fixes #512
This PR fixes the RPM dependency issue reported on Fedora 44, where the Tuttle RPM package could not be installed because it explicitly required the distribution-specific
fuse2-libspackage.Fedora 44 provides the required FUSE 2 ABI through the
fuse-libspackage, including:The previous RPM configuration declared:
This caused installation to fail on Fedora 44 with:
Changes
fuse2-libsRPM dependency.fuse2-libs.Verification
The original dependency was confirmed using:
rpm -qpR ./Tuttle-4.2.1-Linux-x86_64.rpm | grep -i fuseFedora 44's provided capabilities were verified with:
rpm -q --provides fuse-libs | grep -i fusewhich includes:
The modified RPM was then built and installed on Fedora 44 x86_64 to verify that the dependency is resolved correctly.
Result
Fedora 44 users can now install the Tuttle RPM without encountering the unavailable
fuse2-libsdependency.This also makes the RPM dependency more portable across RPM-based distributions where the FUSE 2 ABI may be provided by packages with different names.
Checklist
just dev).just test).just precommit).