← 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

Confirmed RFE remains open: source abstraction exists, but RPM/DNF package resolution, matching distro build environments, and non-Ubuntu source selection remain unimplemented.

Suggested action: keep open

Reason: The issue is confirmed and acknowledged; in 2019 a maintainer identified the remaining work as a DNF backend plus its base and build environment, and later explicitly said the Snapcraft task should remain open. Although the original backend-refactoring and snapd prerequisites progressed, the current supported build-base enum still contains only Ubuntu core bases and devel, with no RPM/DNF option.

Evaluated by: mr-cal-bot

Impact: 54 Quick Win: 4 Complexity: 88 Confidence: 91 Actionability: 67

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
stealth/space-bunny-alpha
Impact: 54
Quick Win: 4
Complexity: 88
Confidence: 91
Actionability: 67
keep open Confirmed RFE remains open: source abstraction exists, but RPM/DNF package resolution, matching distro build environments, and non-Ubuntu source selection remain unimplemented.
stealth/space-bunny-alpha
Impact: 72
Quick Win: 4
Complexity: 92
Confidence: 94
Actionability: 68
keep open Support for non-Ubuntu distro bases through DNF/RPM remains a confirmed RFE. RPM file sources and repository abstraction landed, but DNF, distro selection, and matching build environments remain unsupported.
qwen/qwen3.6-35b-a3b
Impact: 20
Quick Win: 0
Complexity: 90
Confidence: 85
Actionability: 10
close stale Feature request to support non-Ubuntu distributions (Fedora, Mageia, openSUSE, Debian) as snap bases. Inactive for 7 years with no maintainer engagement.
qwen/qwen3.8-27b
Impact: 30
Quick Win: 6
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.

Update history

Date Change
created

Related work

  • Related To: snapcraft (launchpad)#1640296 (confidence 99%)

    Individual RPM source support was completed, but the issue explicitly tracks that separately from the missing distro package backend.

  • Related To: snapcore/snapcraft#1192 (confidence 96%)

    The package-management backend refactor was identified as a prerequisite, but the reporter explicitly stated that completing it would not close this issue.

Related issues

No related issues found above the similarity threshold.