TL;DR
Hawkey project [1] is being obsoleted, use libhif [2] instead. For hawkey Python API
consumers,
the transition should be painless.
Why we have done that?
Nowadays there are three major consumers of hawkey - DNF, PackageKit and rpm-ostree. The
hawkey
API was not in final form yet and was changed constantly based on demands from these
package
managers. We have merged hawkey project inside libhif and hidden some of not yet stable
API.
Merging hawkey into libhif was another step to move more code base of DNF into C. DNF will
reuse
some of the existing code of libhif. Having this shared library can eliminate
inconsistencies
about installed packages when DNF and PackageKit is used alternately. Moreover we would
like to
reuse the same metadata for all package managers to save your bandwidth.
Libhif should contain the common functionality for all package managers. So far libhif is
providing high level API by taking care of fetching metadata from mirrors, doing
dependency
solving and executing RPM transaction. In the future it will support repository
configuration
parsing, GPG checking and so on. At this time, this is handled by all package managers
separately.
Facts for Hawkey consumers:
* libhif-0.7.0 will obsolete hawkey package
* some of the C hawkey API from libhif will not be exposed anymore, please use libhif
functions
instead
* python bindings will not change and the libhif package will still provide
`python2-hawkey` and
`python3-hawkey`
* API in libhif is still not considered as fully stable yet
* first release of libhif with hawkey inside is targeted for Fedora 25
Please watch libhif project on github [2] and participate in PR discussions so you can
influence
the development. Do not hesitate to respond with your concerns / opinions.
Honza
[0]
https://dnf.baseurl.org/2016/02/24/dnf-into-c-initiative-started/
[1]
https://github.com/rpm-software-management/hawkey
[2]
https://github.com/rpm-software-management/libhif