]> code.ossystems Code Review - openembedded-core.git/commit
package: get_package_mapping: avoid dependency mapping if renamed package provides...
authorYann Dirson <yann@blade-group.com>
Tue, 7 Apr 2020 20:02:35 +0000 (22:02 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 26 Apr 2020 12:58:45 +0000 (13:58 +0100)
commit920beaaeef62b558e046f32c8ef0332250969ef1
treec371a8298497c3a22e2e6c73ded850db027b3233
parent14db3e42faf28b8157a04435ea74e86b5e7d440a
package: get_package_mapping: avoid dependency mapping if renamed package provides original name

Packages with a runtime dependency on a target package whose name is
changed by the PKG_* mechanism must rebuild when that mapping changes,
but we have no way of tracking this today, so
eg. packagegroup-machine-base ends up with a relationship on a
versioned kernel-image, and does not get rebuilt when that version
changes, leading to unsatisfiable dependency and reproducibility
issue.

OTOH there is no reason for the dependency to get rewritten if the
renamed package already has a RPROVIDES on the non-rewritten package
name, and if the dependency relationship is an unversionned one.  This
is what this patch prevents.

Note that this may not cover all cases of rewritten package names.

Notably I had to let the rewrite be done in the case of versionned
dependencies, as package managers usually can follow "Provides" in
such case; this includes many dependencies against shared-lib packages
renamed to their soname, and those at least are OK, since the
dependent recipe should explicitly depend on the target recipe.

Signed-off-by: Yann Dirson <yann@blade-group.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package.bbclass