Move apt package from RPM to DPKG backend
Currently the apt package in Fedora actually installs apt-rpm, starting with Fedora 32 it will provide the regular apt software backed by DPKG.
- 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>
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.
- 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)
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.
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.
Apt shouldn't bring more dependencies, it will be the dependency for more packages from the DPKG ecosystem.
- 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
Once installed, apt ships multiple manual pages available in several languages.