A serious bug causing tracebacks during package downloads has made it into 0.4.4 and this new release contains a fix for that.
Also, a basic proxy support has been readded to DNF now.
A link to the official release notes.
The Anaconda to be shipped with Fedora 20 includes experimental DNF Payload to install packages for your system via DNF instead of Yum. This is an important proof of concept for DNF and a validation of our approach. If you'd like to try the payload out with Fedora 20 Beta, just add the "dnf" parameter to the kernel boot line when booting the installation media. Any bugs found, report them to the Red Hat bugzilla against Anaconda. They will not be able to block the F20 release, but, if valid, will be dealt with eventually. The payload downloads all packages in parallel. It is thus going to be faster for network installations and the quick measurements I did yesterday on a KVM machine (hosted on a regular i7 laptop with SSD) yielded some encouraging results. Automatic kickstart installation, only the @Core group included, time taken from the boot of the installation image to the moment when Anaconda screen that says 'Complete' appears):
Jan Šilhan finished and got merged his initial patch to support Python 3 in DNF last week so we released a new version yesterday. The 0.4.4 also includes a couple of tweaks to the slowly emerging API and a fix to the bug where DNF ignores the file conflicts and naturally finishes the transaction set.
About Python 3: do not expect dnf install package
and similar to run from CLI just yet, we are still waiting for F20 GA for all the components involved to be available for Py3. Many thanks to Tim Lauridsen for quickly porting python-iniparse. The plan now is to give Py3 and DNF heavy testing during the Fedora 21 development cycle and eventually switch to it as the default. Then drop Python 2 support as soon as Anaconda is running in Python 3.
Read the full release notes to dnf-0.4.4.
Because the Too many open files bug came back and up until now DNF had to be released in lockstep with librepo, the new build is coming out earlier than expected.
0.4.3 also brings back support for group info
and group remove
commands. The official release notes have been published.
Let's say a few words about using a precise version Requires:
in an RPM spec, in Fedora. DNF currently uses few libraries that are new, that are developing violently and that unfortunately change their API now and then. I maintain one of them (hawkey) and know what it is like a for a new lib to commit to a certain API from the start and so didn't require that from libcomps nor librepo. To have some control however over what version DNF is using, because after all if the API changes and new library is released into Fedora repositories, the users will experience and report the strangest bugs, the spec contained lines like:
Requires: python-librepo = 0.1.2
The deal was that the librepo maintainer (and others) would let me know when he's about to do a new Fedora build, we'd update DNF to use the API at the desired librepo version and do a build in a lock-step with librepo.
There are several drawbacks to this which together render the whole approach unworkable. Most of them have to do with buildroots in a branched Fedora, where only packages tagged stable or put into a "buildroot override" can be built against. This slows down the builds as e.g. putting a new librepo into the buildroot override does not happen instantly.
Even worse can be the situation in the rawhide Fedora. If a packager of a required library suddenly decides to make a new build without cooperating with the DNF team, the koji builder won't stop him. It just considers the last built version the current and starts sending emails around that DNF has broken dependencies as it depends on a version that is no longer current. And we receive bugs.
The new arrangement is the same as for most packages: have some minimal dependency version and require a version greater or equal that. While it is promising to make our life easier, it will occasionally break things for the user. In part, this exposes how imperfect the current Fedora build and update policies are, and in part it supports two concepts that we so often fight against in packaging: support for multiple parallel versions in a distribution and app bundling.
dnf-0.4.2 was released in Fedora 20 and Fedora Rawhide today.
The highlights of the release are parallel downloads, detecting the fastest mirrors for downloads, support for repo.cost
config option (which has been in Yum for a long time and we are adding it to DNF again now) and losing the urlgrabber dependency. See the full release notes on the documentation page.