The following package management changes took place:
Smart package manager is replaced by Dnf package manager. Smart has become unmaintained upstream, is not ported to Python 3.x. Consequently, Smart needed to be replaced. Dnf is the only feasible candidate.
The change in functionality is that the on-target runtime package management from remote package feeds is now done with a different tool that has a different set of command-line options. If you have scripts that call the tool directly, or use its API, they need to be fixed.
For more information, see the Dnf Documentation.
Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons:
Dnf is API-incompatible with Rpm 5.x and porting it and maintaining the port is non-trivial.
Rpm 5.x itself is more or less unmaintained both in the upstream and in Yocto Project. Community support does not exist around it and the Yocto Project is the sole remaining user.
Berkeley db 6.x is removed and Berkeley db 5.x becomes the default:
Version 6.x of Berkeley DB has been rejected by the open source community due to its hostile AGPLv3 license. Both Fedora and Debian are sticking with db 5.x. By extension,all the open source projects are still developed and tested with db 5.x
In OE-core, the only thing that was requiring db 6.x was Rpm 5.x. Thus, no reason exists to continue carrying db 6.x in OE-core.
createrepo
is replaced with
createrepo_c
.
createrepo_c
is the current
incarnation of the tool that generates remote repository
metadata.
It is written in C as compared to
createrepo
, which is written in
Python.
createrepo_c
is faster and is
maintained.
Architecture-independent RPM packages are "noarch" instead of "all".
This change was made because too many places in
dnf/rpm4 stack already make that assumption.
Only the filenames and the architecture tag has changed.
Nothing else has changed in OE-core system, particularly
in the
allarch.bbclass
class.
Signing of remote package feeds using
PACKAGE_FEED_SIGN
is not supported.