From Fedora Project Wiki

Revision as of 20:30, 11 December 2019 by Bcotton (talk | contribs) (→‎Current status)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Rebase apt package from apt-rpm to Debian's apt

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

Detailed Description

The apt package in Fedora does not ship the mainline apt software from Debian, but rather the apt-rpm fork 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.

The apt-rpm software is dead upstream and doesn't support rich dependencies or 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 (RH#1764813), 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. There will no longer be any references in the shipped apt package documentation of handling RPMs.

Release Notes

The apt package has been rebased from apt-rpm to Debian's apt. This means that apt no longer supports handling RPMs or managing RPM-based systems. Please use dnf for software management of RPM-based systems and containers.