From Fedora Project Wiki

Revision as of 21:31, 23 September 2019 by Dridi (talk | contribs) (First change draft)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Move apt package from RPM to DPKG backend

Summary

Currently the apt package in Fedora actually installs apt-rpm, starting with Fedora 32 it will provide the regular apt software backed by DPKG.

Owner

Current status

  • Targeted release: Fedora 32
  • Last updated: 2019-09-23
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

The apt package in Fedora does not ship the canonical apt software, but rather apt-rpm instead. This allows a user to copy and paste apt or apt-get commands often found in "Linux" tutorials. This will usually work, apt-rpm will resolve dependencies from the Yum/DNF repositories and since our package naming guidelines often lead to the same package names as apt-based distributions like Debian and Ubuntu. Ironically apt in Fedora is currently wrongly named according to the same guidelines.

The apt-rpm software is dead upstream, and it doesn't support DNF modules. It also has known vulnerabilities and according to its author other bugs that are never going to be fixed.

Benefit to Fedora

By switching the Fedora apt package from apt-rpm to regular apt we move from a dead to a living upstream. We also close security holes and introduce a critical dependency for more packages from the DPKG ecosystem. It is already possible to build Deb packages in Fedora, including with pbuilder, an equivalent for mock in the DPKG ecosystem, however pbuilder uses debootstrap to provision a build environment. While we may lose the ability to "apt-get install" Fedora packages from the command line, we also open the gate for sbuild, another mock equivalent to build Debs in a clean environment. This change offers more options to target Debian and derivative systems without leaving the Fedora comfort zone.

Scope

  • Proposal owners: re-review of the apt package with the proper upstream, and optionally more dependent packages.
  • Other developers: N/A (not a System Wide Change)
  • Release engineering: N/A (not needed for this Change)
  • Policies and guidelines: As apt would conflict with DNF for the host system, we may want to ship it without pre-configured repositories.
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

Any user actively relying on apt-rpm will lose functionality that cannot be replaced. Because apt-rpm's version is much lower than the current apt version, this change will follow the natural upgrade path.

How To Test

If sbuild is packaged in time for the beta, performing builds with sbuild should be enough to confirm that apt was able to provision a build root.

User Experience

Anyone used to paste apt-get commands in a terminal will no longer be able to install or remove Fedora packages this way.

On the other hand anyone needing regular apt tooling will be able to work with it directly from Fedora.

Dependencies

Apt shouldn't bring more dependencies, it will be the dependency for more packages from the DPKG ecosystem.

Contingency Plan

  • Contingency mechanism: Simply retire apt (apt-rpm)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change)
  • Blocks product? N/A

Documentation

Once installed, apt ships multiple manual pages available in several languages.

Release Notes