In Fedora 39 they plan to migrate to DNF5, leaving aside the Python components

Fedora 39 with the new DNF5 packaging tool

DNF5 should improve user experience and provide better performance

Ben Cotton, Fedora Program Manager at RedHat, ad recently on the mailing lists, your intention to migrate Fedora to package manager DNF5 by default.

It is mentioned that the planned change will be effective from the release of Fedora 39, The change plans to replace the dnf, libdnf and dnf-cutomatic packages with the DNF5 toolkit and the new libdnf5 library.

Regarding the change, it is worth mentioning that at the time DNF replaced Yum, which was written entirely in Python.

For those who are unaware of DNF, They should know that this is a software package manager which installs, updates and removes packages in Fedora and is the successor to YUM (Yellow-Dog Updater Modified). DNF facilitates package maintenance by automatically checking dependencies and determining the actions required to install packages. This method eliminates the need to manually install or update the package and its dependencies using the rpm command. DNF is now the default software package management tool in Fedora.

In DNF, performance-demanding low-level functions were rewritten and moved to separate C libraries hawkey, librepo, libsolv, and libcomps, but the framework and high-level components remained in Python.

DNF5 will provide a significant improvement in user experience and performance. The replacement is the second step in updating the Fedora software management stack. Without the change, there will be multiple software management tools (DNF5, old Microdnf, PackageKit, and DNF) based on different libraries (libdnf, libdnf5), providing different behavior and not sharing history. We can also expect DNF to only have limited upstream support.

The project DNF5 aims to unify existing low-level libraries, rewrite in C++ package management components remaining in Python and moving core functionality to a separate libdnf5 library by creating a link around this library to preserve the Python API.

DNF5 is still under development and some of the features or options are not yet available. We still have to finish the implementation of Modularity, the storage of internal data related to System History and State, and also the documentation and man pages. DNF5 can be tested from the repository with nightly upstream builds: d` was not supposed to be user writable and its format is not sufficient (information about installed packages with installed profiles is missing)

Using C++ instead of Python will remove many dependencies, reduce the size of the toolset and improve performance. Higher performance is achieved not only by using compilation to machine code, but also due to improved transaction table implementation, optimization of loading from repositories, and database restructuring (separate databases with system status and operation history).

DNF5 has decoupled from PackageKit in favor of a new background process DNF Daemon which replaces the functionality of PackageKit and provides an interface for managing packages and updates in graphical environments.

rework too It will allow to implement some improvements in the usability of the package manager. For example, the new DNF has a more visual indication of the progress of operations; added support for using local RPM packages for transactions; added the ability to display in reports on completed transactions information issued by packaged scriptlets (scriptlets); proposed a more advanced input completion system for bash.

It is worth mentioning that the proposal has not yet been reviewed by FESCo (Fedora Engineering Steering Committee), which is responsible for the technical part of the development of the Fedora distribution.

Finally If you are interested in knowing more about it, you can check the details in the following link

The content of the article adheres to our principles of editorial ethics. To report an error click here.

Be the first to comment

Leave a Comment

Your email address will not be published. Required fields are marked with *



  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.