mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
multilib_global: handle REQUIRED_VERSION
Add logic to multilib_global.bbclass to handle new REQUIRED_VERSION variable. Fixes [YOCTO #10096] (From OE-Core rev: 05ba2df8e565589cf7b0b7cedcb96c7fdf97298b) Signed-off-by: Charlie Davies <charles.davies@whitetree.xyz> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
27a7f3a35c
commit
5ec16c88fc
|
@ -1,6 +1,7 @@
|
||||||
def preferred_ml_updates(d):
|
def preferred_ml_updates(d):
|
||||||
# If any PREFERRED_PROVIDER or PREFERRED_VERSION are set,
|
# If any of PREFERRED_PROVIDER, PREFERRED_RPROVIDER, REQUIRED_VERSION
|
||||||
# we need to mirror these variables in the multilib case;
|
# or PREFERRED_VERSION are set, we need to mirror these variables in
|
||||||
|
# the multilib case;
|
||||||
multilibs = d.getVar('MULTILIBS') or ""
|
multilibs = d.getVar('MULTILIBS') or ""
|
||||||
if not multilibs:
|
if not multilibs:
|
||||||
return
|
return
|
||||||
|
@ -11,20 +12,25 @@ def preferred_ml_updates(d):
|
||||||
if len(eext) > 1 and eext[0] == 'multilib':
|
if len(eext) > 1 and eext[0] == 'multilib':
|
||||||
prefixes.append(eext[1])
|
prefixes.append(eext[1])
|
||||||
|
|
||||||
versions = []
|
required_versions = []
|
||||||
|
preferred_versions = []
|
||||||
providers = []
|
providers = []
|
||||||
rproviders = []
|
rproviders = []
|
||||||
for v in d.keys():
|
for v in d.keys():
|
||||||
|
if v.startswith("REQUIRED_VERSION_"):
|
||||||
|
required_versions.append(v)
|
||||||
if v.startswith("PREFERRED_VERSION_"):
|
if v.startswith("PREFERRED_VERSION_"):
|
||||||
versions.append(v)
|
preferred_versions.append(v)
|
||||||
if v.startswith("PREFERRED_PROVIDER_"):
|
if v.startswith("PREFERRED_PROVIDER_"):
|
||||||
providers.append(v)
|
providers.append(v)
|
||||||
if v.startswith("PREFERRED_RPROVIDER_"):
|
if v.startswith("PREFERRED_RPROVIDER_"):
|
||||||
rproviders.append(v)
|
rproviders.append(v)
|
||||||
|
|
||||||
|
def sort_versions(versions, keyword):
|
||||||
|
version_str = "_".join([keyword, "VERSION", ""])
|
||||||
for v in versions:
|
for v in versions:
|
||||||
val = d.getVar(v, False)
|
val = d.getVar(v, False)
|
||||||
pkg = v.replace("PREFERRED_VERSION_", "")
|
pkg = v.replace(version_str, "")
|
||||||
if pkg.endswith("-native") or "-crosssdk-" in pkg or pkg.startswith(("nativesdk-", "virtual/nativesdk-")):
|
if pkg.endswith("-native") or "-crosssdk-" in pkg or pkg.startswith(("nativesdk-", "virtual/nativesdk-")):
|
||||||
continue
|
continue
|
||||||
if '-cross-' in pkg and '${' in pkg:
|
if '-cross-' in pkg and '${' in pkg:
|
||||||
|
@ -35,7 +41,7 @@ def preferred_ml_updates(d):
|
||||||
if "-canadian-" in pkg:
|
if "-canadian-" in pkg:
|
||||||
newname = localdata.expand(v)
|
newname = localdata.expand(v)
|
||||||
else:
|
else:
|
||||||
newname = localdata.expand(v).replace("PREFERRED_VERSION_", "PREFERRED_VERSION_" + p + '-')
|
newname = localdata.expand(v).replace(version_str, version_str + p + '-')
|
||||||
if newname != v:
|
if newname != v:
|
||||||
newval = localdata.expand(val)
|
newval = localdata.expand(val)
|
||||||
d.setVar(newname, newval)
|
d.setVar(newname, newval)
|
||||||
|
@ -45,10 +51,13 @@ def preferred_ml_updates(d):
|
||||||
d.renameVar(v, vexp)
|
d.renameVar(v, vexp)
|
||||||
continue
|
continue
|
||||||
for p in prefixes:
|
for p in prefixes:
|
||||||
newname = "PREFERRED_VERSION_" + p + "-" + pkg
|
newname = version_str + p + "-" + pkg
|
||||||
if not d.getVar(newname, False):
|
if not d.getVar(newname, False):
|
||||||
d.setVar(newname, val)
|
d.setVar(newname, val)
|
||||||
|
|
||||||
|
sort_versions(required_versions, "REQUIRED")
|
||||||
|
sort_versions(preferred_versions, "PREFERRED")
|
||||||
|
|
||||||
for prov in providers:
|
for prov in providers:
|
||||||
val = d.getVar(prov, False)
|
val = d.getVar(prov, False)
|
||||||
pkg = prov.replace("PREFERRED_PROVIDER_", "")
|
pkg = prov.replace("PREFERRED_PROVIDER_", "")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user