native.bbclass: avoid unintended substring replacement when setting PROVIDES
The way native_virtclass_handler was implemented leaded to unintended substring replacements when setting PROVIDES for native providers, in case the original PROVIDES value contains providees with common substrings. Here's a practical case where the old behavior was problematic: the oracle-jse-jdk-x86-64 recipe provides both virtual/java and virtual/javac: Before: $ bitbake -e oracle-jse-jdk-x86-64-native | grep ^PROVIDES= PROVIDES="oracle-jse-jdk-x86-64-native virtual/java-native virtual/java-nativec" After: $ bitbake -e oracle-jse-jdk-x86-64-native | grep ^PROVIDES= PROVIDES="oracle-jse-jdk-x86-64-native virtual/java-native virtual/javac-native" Change-Id: I8186992dae58e37c2a2364586360ff9b7da9198f (From OE-Core rev: c28291f1fb07fbc80275d9bceefed642c963e204) Signed-off-by: Mario Domenech Goulart <mario@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
cdf81801ba
commit
24b8347724
|
@ -151,12 +151,13 @@ python native_virtclass_handler () {
|
|||
map_dependencies("RREPLACES", e.data, pkg)
|
||||
|
||||
provides = e.data.getVar("PROVIDES", True)
|
||||
nprovides = []
|
||||
for prov in provides.split():
|
||||
if prov.find(pn) != -1:
|
||||
continue
|
||||
if not prov.endswith("-native"):
|
||||
provides = provides.replace(prov, prov + "-native")
|
||||
e.data.setVar("PROVIDES", provides)
|
||||
nprovides.append(prov.replace(prov, prov + "-native"))
|
||||
e.data.setVar("PROVIDES", ' '.join(nprovides))
|
||||
|
||||
e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-native")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue