- An undocumented API for YUM
- Fedora switch to Python 3 which YUM does not support
- A broken dependency solving algorithm
- Difficulty in building new features
- Inability to extend it other than with Python
Basically, all they are saying is yum was just too outdated for the demands of Fedora in these times.
- DNF looks for a middle ground between a sane API and some backward compatibility.
- DNF and Hawkey are first steps toward using the same resolver across the entire stack.
- Libsolv is a well tested and proven code base, currently the most sophisticated and optimized dependency solving implementation.
Hawkey – High-level API for the libsolv library. Hawkey, a library providing simplified C and Python API to libsolv.
Librepo – A library providing C and Python (libcURL like) API for downloading Linux repository metadata and packages
Libcomps – Libcomps is alternative for yum.comps library. It’s written in pure C as a library and there are bindings for python 2 and python 3.
- Support for multiple repositories
- Simple configuration
- Dependency calculation based on modern depsolving technology
- Faster and less memory-intensive operation
- RPM-consistent behavior
- Package group support, including multiple-repository groups
- Simple interface
- Documented, solid Python API
- DNF runs in both Python 2 and Python 3
- C bindings for lower level libraries:
- Hawkey for package querying and depsolving. PackageKit is already making use of Hawkey
- librepo for repo operations. PackageKit is already making use of librepo
- libcomps for comps operations