We've managed to drop a lot of redundant code across the whole
DNF stack
in the past years, but we have reached a point when it's nearly
impossible to consolidate the code any further without breaking the
API/ABI. Especially with PackageKit being dead[1], we can't move with
the old "libhif" API in libdnf, because making any bigger changes to
PackageKit is clearly out of scope.
[1]
https://blogs.gnome.org/hughsie/2019/02/14/packagekit-is-dead-long-live-w...
*Ahem* See the comments on the above links an the github is still active
https://github.com/hughsie/PackageKit
The main issue related to PackageKit linked libdnf was the lack of synchronization of the
database. PackageKit was made to be cross-platform for distributions with minimum reliance
on specific distribution command, Losing PackageKit would lead to yet another step back
with multiple commands difficult to remember thus another fragmentation.