There’s a lot of good things coming to Mageia 6: KDE Plasma 5 desktop, updates to other desktop environments, many new games, and a fresh coat of paint with a new visual style. However, there’s quite a lot of under-the-hood improvements in Mageia, too!
Among the many less-than-visible improvements across the board is a brand new dependency resolver: DNF. DNF (Dandified Yum) is a next generation dependency resolver and high-level package management tool with an interesting history. DNF traces its ancestry to two projects: Fedora’s Yum (Yellowdog Updater, Modified) and openSUSE’s SAT Solver (libsolv). DNF was forked from Yum several years ago in order to rewrite it to use the SAT Solver library from openSUSE (which is used in their own tool, Zypper). Another goal of the fork was to massively restructure the codebase so that a sane API would be available for both extending DNF (via plugins and hooks) and building applications on top of it (such as graphical frontends and system lifecycle automation frameworks).
DNF will be available for those willing to use it, however, urpmi and the current familiar Mageia software management tools will remain as the default in Mageia for the foreseeable future.
In many respects, these goals were achieved. DNF ships with a well-structured command line interface, an easy-to-use and very complete API, a dozen core plugins, and a dozen contributed plugins.
As a consequence of the work required to adopt DNF, Mageia is now broadly compatible with a wider array of tools for managing RPM-based systems, due to the use of tooling that is common to other major RPM-based Linux distributions (such as Fedora and openSUSE). For example, tools like Spacewalk and Katello will (to some extent) be able to manage Mageia 6 systems for institutions like schools and businesses.
PackageKit has been also switched to a new backend that leverages the work done to enable DNF, allowing for us to properly enable app-centric software management tools like GNOME Software and KDE’s Plasma Discover to provide a high-quality desktop software management experience through the desktop environment’s native tools.
In addition, we’re working with the developers of Fedora COPR (A PPA-style system developed and provided by our friends at the Fedora Project) to get Mageia 6 and Cauldron added as supported Linux distributions. This will allow people interested in providing packages of free/open source software for Mageia to have a place where they can build them and have a hosted package repository. Once support for Mageia has been activated on Fedora COPR, adding repositories will be as easy as “dnf copr enable”.
One of the fruits borne from this effort is that support for building packages for Mageia 6 is now built right into Mock, the standard clean package build tool used by Red Hat, Fedora, and CentOS. As of Mock 1.2.18 and newer (available on supported RHEL/CentOS and Fedora releases, as well as in the upcoming Mageia 6), it is possible to build Mageia packages without having to switch distributions or manually construct chroots, containers, or virtual machines. Likewise, with Mageia 6, it is possible to build Fedora packages using the same tool. Of course, you can build Mageia packages from Mageia 6 with Mock as well. Mock is the core build engine for Fedora COPR, so it was critical to make this work, and so we did.
The work to offer DNF in Mageia 6 represents nearly a year of work, collaborating and cooperating with the upstream project and the Fedora Project to implement this in the best way possible. We hope that the introduction of DNF and the new PackageKit backend will offer a new, user-friendly way for people to interact with the software installed and available on Mageia!
If you want to learn more about DNF, check out our wiki page on how to use it.