← Back to issue list

Support other distributions as sources (Fedora, Mageia, openSUSE, Debian) instead of Ubuntu

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1602258
Type
issue
State
open
Author
~ngompa13
Labels
centos debian fedora mageia opensuse rfe rpm
Created
Updated
Closed

Current evaluation

RFE to support RPM-based distros (Fedora, openSUSE, CentOS, Mageia) and Debian as snap bases instead of Ubuntu-only. No activity for ~7 years. RPM source support and repo refactor done, but RPM-based bases were never implemented.

Suggested action: close stale

Reason: The issue has 0 comments, last activity 2498 days ago, and its original technical premise (python-apt, apt 0.5 on RPM distros, pre-base snapcraft architecture) no longer applies to the current craft-parts-based codebase. Its own task list shows the actionable parts (RPM source via merged PR #870, repo refactor via merged PR #1192) are done, while the remaining RPM-based base request was never started and would need a fresh issue against the current architecture, which now has a 'base' concept (Ubuntu-only).

Impact: 30 Quick Win: 6.0 Staleness: 90 Complexity: 80 Confidence: 70 Support Request: 10

Issue body

The snapcraft tool (and the yaml format) currently mandate Ubuntu repositories as the primary binary input source (that is, the base of snaps created via snapcraft is always Ubuntu). However, if I want to create a snap using Fedora, CentOS, Mageia, openSUSE, or even Debian as the binary package base, I cannot currently. There are two particular problems with this: 1) The modern python3-apt API is unavailable for RPM based distributions because apt shipped in RPM based distros is so old that it doesn't work on it. While apt in RPM based distributions does support Debian packages/repositories, it also supports RPM ones. However, since the version of apt is very old (0.5), it doesn't work with the modern python-apt bindings package. This forces snapcraft to only run on Debian based systems. 2) Snapcraft on Debian based systems will always use Ubuntu as the base, which may be undesirable for people who'd like to use Debian software to build their snaps. My suggestion is to support RPM based distributions by using gir bindings for libdnf[1] or the Python 3 API for DNF[2]. The major RPM based Linux distributions (Fedora, Mageia, CentOS, openSUSE) are able to use libhif/DNF. Fedora uses it by default now, and Mageia will offer it as a secondary package manager with Mageia 6[3]. It's available as a COPR for CentOS[4], and it's not much trouble to make it available for openSUSE, too. Add a stanza where the user can set the distro base, and snapcraft will use the appropriate engine and repo configuration to construct the snap. Obviously, some place where the distro repo information can be stored as snapcraft config is important too. With the existing code, being able to swap Ubuntu and Debian distro base would be nice. [1]: https://github.com/rpm-software-management/libdnf [2]: http://dnf.readthedocs.io/en/latest/api.html [3]: https://wiki.mageia.org/en/Mageia_6_Release_Notes#Package_management [4]: https://copr.fedorainfracloud.org/coprs/g/rpm-software-management/dnf-stack-el7/ Tasks for completing this: 1. Add support for individual RPMs as source - LP: #1640296 - GH#snapcore/snapcraft#870 - DONE 2. Refactor build/stage packages to support multiple backends:    - LP: #1673448 GH#snapcore/snapcraft#1192 - DONE    - LP: #1673449 GH#snapcore/snapcraft#XXXX - IN PROGRESS 3. Add support for different distro base snaps and refactor core snap to depend on base snap - LP#??? - GH#snapcore/snapd#??? - NOT STARTED 4. Add support for declaring desired base in snapcraft - LP#??? - GH#snapcore/snapcraft#??? - NOT STARTED 5. Add RPM+DNF backend for supporting Fedora, CentOS, Mageia, and OpenSUSE bases - LP#1602258 - GH#snapcore/snapcraft#??? - NOT STARTED 6. Run integration tests in all the supported operating systems.

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 30
Quick Win: 6.0
Staleness: 90
Complexity: 80
Confidence: 70
Support Request: 10
close stale RFE to support RPM-based distros (Fedora, openSUSE, CentOS, Mageia) and Debian as snap bases instead of Ubuntu-only. No activity for ~7 years. RPM source support and repo refactor done, but RPM-based bases were never implemented.
qwen/qwen3.6-35b-a3b
Staleness: 98
Complexity: 85
Confidence: 90
Support Request: 10
close stale Feature request to allow snapcraft to use non-Ubuntu distributions as build bases. Open for over 10 years with no maintainer response, rendering it obsolete given current Ubuntu-centric base snap architecture.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 75
Confidence: 90
Support Request: 30
close stale Feature request to use Fedora, CentOS, Mageia, openSUSE, or Debian as build bases for snapcraft via RPM/DNF. Remains unaddressed and inactive for over six years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 75
Confidence: 90
Support Request: 15
close stale Feature request to allow snapcraft to use non-Ubuntu distros (Fedora, Debian, etc.) as build bases instead of mandating Ubuntu. Inactive for over 6 years; snapcraft now natively supports multiple bases via the base field.
qwen3.6-35b-a3b-mtp-q6
Staleness: 98
Complexity: 85
Confidence: 95
Support Request: 10
close stale Request to extend snapcraft beyond Ubuntu to support RPM distributions (Fedora, CentOS, openSUSE, Mageia) and Debian via DNF/libdnf. Backend refactoring and RPM sources are complete, but distro base switching and DNF backend remain unstarted. Inactive.

Update history

No update history recorded yet.

Related work

  • Related To: snapcraft#870 (confidence 90%)

    Explicitly cited in the issue as task 1 (RPM source support), marked DONE; PR 'sources: Add RPM source' is merged.

  • Related To: snapcraft#1192 (confidence 90%)

    Explicitly cited in the issue as task 2 (refactor build/stage packages for multiple backends), marked DONE; PR 'repo: refactor into a package' is merged.

Related issues

No related issues found above the similarity threshold.