In the release of Fedora 41 proposed to translate the default distribution to packet DNF5 manager. Initially, the transition to DNF5 was planned to be made in the release of Fedora 39, but migration was postponed due to the unpreparedness of the tools. Despite the fact that the complete parity in functionality with the old tools still has not yet been achieved, the developers believe that the distribution is ready for migration, and the missing opportunities can be realized later. The proposal has not yet been considered by the FESCO committee (Fedora Engineering Steering Committee), which is responsible for the technical part of the development of the Fedora distribution. If the proposal is adopted, the DNF, LibDNF and DNF-Cutomatic package will be replaced by the DNF5 tools and the new Libdnf5 library, and the symbolic link/usr/bin/DNF will begin to indicate the executable file DNF5.
At one time, DNF came in a distribution to replace the Yum package manager, who was written entirely in Python. In DNF, the low-level functions demanding on performance were rewritten and put into separate Hawkey, Librepo, Libsolv and Libcomps, but the frame and high-level components remained in Python. The DNF5 project is aimed at unification of the available low-level libraries, rewriting C ++ in Python components of packet management components and the basic functionality of the basic functionality in a separate library Libdnf5 with the creation of a python API around this library around this library.
The use of C ++ instead of Python allowed to get rid of a large number of dependencies, reduce the size of the tools and increase performance. Higher performance is achieved not only due to the use of compilation into the machine code, but also due to the improved implementation of the transaction table, optimizing the loading from repositories and the restructuring of the database (the bases with the state of the system and the history of operations are divided). DNF5 tools are spared the binding to Packagekit, instead of which the new background process of DNF Daemon is involved, replacing Packagekit functionality and providing interface for controlling packages and updates in graphic environment.
Processing also made it possible to implement some improvements that increase the convenience of working with a package manager. For example, the new DNF implements a more visual indication of progress in performing operations; Added support for the use of local RPM packages for transactions; Added the possibility of showing in reports on the transactions of information issued by scripts built into packages (Scriplets); A more advanced input system for input for bash.