0.4.6 brings two new major features and much more. Firstly, a series of patches revives the history undo command, so transactions can be reverted now. In essence undoing a transaction is performing its inverse transaction. There is a couple of things worth mentioning to this: if one package replaced another in the original transaction than to perform the undo the original package needs to be available in a repository somewhere and also if RPM fails to validate the inverse transaction (typically because of dependency errors), then that’s it, DNF will not force it. So keep your RPMDB consistent and healthy at all times and if a package is missing mail your favorite Fedora infra admin about the way we remove superseded packages from the update repos.
Secondy, DNF will now limit the number of installed kernels and installonly packages in general to the number specified by
installonly_limit in the config. People who got bitten by having 15 kernels installed and running out of space on
/boot shall suffer no more.
There are vast internal changes to
dnf.cli, the subpackge that provides CLI in DNF. In particular, it is now better separated from the core which in turns allows simplification of some unit tests and makes (the up and coming) API more reasonable. Oh and saves us a a lot of “WTF is that?” from new upstream contributors.
The hawkey library used against DNF from with this versions uses a recent RPMDB
loading optimization in libsolv that shortens DNF startup by seconds when the cached RPMDB is invalid. This generally applies in every DNF run after the RPMDB has changed (for instance the previous DNF run did an installation). Measured on a box with a mid-range SSD and all around average specs, the RPMDB load time itself drops from 1900 ms to about 150 ms. Not bad, but all the credit for this really goes to Michael Schroeder of the SUSE/libsolv fame.
We have also added further fixes to support Python 3 and enabled librepo’s
fastestmirror caching optimization so the slowdown some of us have observed after enabling fastestmirror few releases back should get reduced again.
Please also see the 0.4.6 release notes for a complete list of bugs fixed.