summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-04-15 16:25:12 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-05-27 10:47:05 +0100
commitedbf8d3999126e3c271a47dada54d1724f59f573 (patch)
tree98f7ca63aba6fa135555406454a7d4fcb78f4159
parent706b623c12f4576805e999ece91acf89ea22e5ef (diff)
downloadpoky-edbf8d3999126e3c271a47dada54d1724f59f573.tar.gz
multilib/recipes: Use new RecipePostKeyExpansion event
There are issues with multilib due to the ordering of events where some functions see the remapped multilib dependencies and some do not. A significant problem is that the multilib class needs to make some changes before key expansion and some afterwards but by using existing event handlers, some code sees things in a partially translated state, leading to bugs. This patch changes things to use a new event handler from bitbake which makes the ordering of the changes explcit. The challenge in doing this is that it breaks some existing anonymous python and dyanmic assignments. In some cases these used to be translated and no longer are, meaning MLPREFIX has to be added. In some cases these are now translated and the MLPREFIX can be removed. This change does now make it very clear when MLPREFIX is required and when it is not, its just the migration path which is harder. The patch changes the small number of cases where fixes are needed. In particular, where a variable like RDEPENDS is conditionally extended (e.g. with an override), MLPREFIX is now required. This patch also reverts: base: Revert 'base.bbclass: considering multilib when setting LICENSE_EXCLUSION' This reverts 6597130256a1609c3e05ec5891aceaf549c37985 as the changes to multilib datastore handling mean its no longer necessary. (From OE-Core rev: b3fda056a674889cd9697e779de023d4f993d3ce) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/base.bbclass3
-rw-r--r--meta/classes/fontcache.bbclass2
-rw-r--r--meta/classes/multilib.bbclass28
-rw-r--r--meta/lib/oe/classextend.py35
-rw-r--r--meta/recipes-core/glibc/glibc-package.inc2
-rw-r--r--meta/recipes-core/packagegroups/packagegroup-base.bb8
-rw-r--r--meta/recipes-core/psplash/psplash_git.bb5
-rw-r--r--meta/recipes-devtools/perl/perl_5.30.2.bb2
-rw-r--r--meta/recipes-devtools/python/python3_3.8.2.bb14
-rw-r--r--meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb10
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc10
-rw-r--r--meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb6
-rw-r--r--meta/recipes-support/boost/boost.inc10
13 files changed, 95 insertions, 40 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 7aa2e144eb..4c681cc870 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -570,8 +570,7 @@ python () {
570 if unskipped_pkgs: 570 if unskipped_pkgs:
571 for pkg in skipped_pkgs: 571 for pkg in skipped_pkgs:
572 bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg]))) 572 bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg])))
573 mlprefix = d.getVar('MLPREFIX') 573 d.setVar('LICENSE_EXCLUSION-' + pkg, ' '.join(skipped_pkgs[pkg]))
574 d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, ' '.join(skipped_pkgs[pkg]))
575 for pkg in unskipped_pkgs: 574 for pkg in unskipped_pkgs:
576 bb.debug(1, "Including the package %s" % pkg) 575 bb.debug(1, "Including the package %s" % pkg)
577 else: 576 else:
diff --git a/meta/classes/fontcache.bbclass b/meta/classes/fontcache.bbclass
index 97e7f17f00..624a420a0d 100644
--- a/meta/classes/fontcache.bbclass
+++ b/meta/classes/fontcache.bbclass
@@ -7,7 +7,7 @@ PACKAGE_WRITE_DEPS += "qemu-native"
7inherit qemu 7inherit qemu
8 8
9FONT_PACKAGES ??= "${PN}" 9FONT_PACKAGES ??= "${PN}"
10FONT_EXTRA_RDEPENDS ?= "fontconfig-utils" 10FONT_EXTRA_RDEPENDS ?= "${MLPREFIX}fontconfig-utils"
11FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig" 11FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
12FONTCONFIG_CACHE_PARAMS ?= "-v" 12FONTCONFIG_CACHE_PARAMS ?= "-v"
13# You can change this to e.g. FC_DEBUG=16 to debug fc-cache issues, 13# You can change this to e.g. FC_DEBUG=16 to debug fc-cache issues,
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index ee677da1e2..9f726e4537 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -91,13 +91,12 @@ addhandler multilib_virtclass_handler
91multilib_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" 91multilib_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise"
92 92
93python __anonymous () { 93python __anonymous () {
94 variant = d.getVar("BBEXTENDVARIANT") 94 if bb.data.inherits_class('image', d):
95 95 variant = d.getVar("BBEXTENDVARIANT")
96 import oe.classextend 96 import oe.classextend
97 97
98 clsextend = oe.classextend.ClassExtender(variant, d) 98 clsextend = oe.classextend.ClassExtender(variant, d)
99 99
100 if bb.data.inherits_class('image', d):
101 clsextend.map_depends_variable("PACKAGE_INSTALL") 100 clsextend.map_depends_variable("PACKAGE_INSTALL")
102 clsextend.map_depends_variable("LINGUAS_INSTALL") 101 clsextend.map_depends_variable("LINGUAS_INSTALL")
103 clsextend.map_depends_variable("RDEPENDS") 102 clsextend.map_depends_variable("RDEPENDS")
@@ -109,6 +108,22 @@ python __anonymous () {
109 bb.build.deltask('do_populate_sdk', d) 108 bb.build.deltask('do_populate_sdk', d)
110 bb.build.deltask('do_populate_sdk_ext', d) 109 bb.build.deltask('do_populate_sdk_ext', d)
111 return 110 return
111}
112
113python multilib_virtclass_handler_postkeyexp () {
114 cls = d.getVar("BBEXTENDCURR")
115 variant = d.getVar("BBEXTENDVARIANT")
116 if cls != "multilib" or not variant:
117 return
118
119 variant = d.getVar("BBEXTENDVARIANT")
120
121 import oe.classextend
122
123 clsextend = oe.classextend.ClassExtender(variant, d)
124
125 if bb.data.inherits_class('image', d):
126 return
112 127
113 clsextend.map_depends_variable("DEPENDS") 128 clsextend.map_depends_variable("DEPENDS")
114 clsextend.map_variable("PROVIDES") 129 clsextend.map_variable("PROVIDES")
@@ -129,6 +144,9 @@ python __anonymous () {
129 reset_alternative_priority(d) 144 reset_alternative_priority(d)
130} 145}
131 146
147addhandler multilib_virtclass_handler_postkeyexp
148multilib_virtclass_handler_postkeyexp[eventmask] = "bb.event.RecipePostKeyExpansion"
149
132def reset_alternative_priority(d): 150def reset_alternative_priority(d):
133 if not bb.data.inherits_class('update-alternatives', d): 151 if not bb.data.inherits_class('update-alternatives', d):
134 return 152 return
diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py
index f02fbe9fba..e1049ce3e8 100644
--- a/meta/lib/oe/classextend.py
+++ b/meta/lib/oe/classextend.py
@@ -4,11 +4,21 @@
4 4
5import collections 5import collections
6 6
7def get_packages(d):
8 pkgs = d.getVar("PACKAGES_NONML")
9 extcls = d.getVar("EXTENDERCLASS")
10 return extcls.rename_packages_internal(pkgs)
11
12def get_depends(varprefix, d):
13 extcls = d.getVar("EXTENDERCLASS")
14 return extcls.map_depends_variable(varprefix + "_NONML")
15
7class ClassExtender(object): 16class ClassExtender(object):
8 def __init__(self, extname, d): 17 def __init__(self, extname, d):
9 self.extname = extname 18 self.extname = extname
10 self.d = d 19 self.d = d
11 self.pkgs_mapping = [] 20 self.pkgs_mapping = []
21 self.d.setVar("EXTENDERCLASS", self)
12 22
13 def extend_name(self, name): 23 def extend_name(self, name):
14 if name.startswith("kernel-") or name == "virtual/kernel": 24 if name.startswith("kernel-") or name == "virtual/kernel":
@@ -24,7 +34,7 @@ class ClassExtender(object):
24 if not subs.startswith(self.extname): 34 if not subs.startswith(self.extname):
25 return "virtual/" + self.extname + "-" + subs 35 return "virtual/" + self.extname + "-" + subs
26 return name 36 return name
27 if name.startswith("/"): 37 if name.startswith("/") or (name.startswith("${") and name.endswith("}")):
28 return name 38 return name
29 if not name.startswith(self.extname): 39 if not name.startswith(self.extname):
30 return self.extname + "-" + name 40 return self.extname + "-" + name
@@ -89,8 +99,14 @@ class ClassExtender(object):
89 for dep in deps: 99 for dep in deps:
90 newdeps[self.map_depends(dep)] = deps[dep] 100 newdeps[self.map_depends(dep)] = deps[dep]
91 101
92 self.d.setVar(varname, bb.utils.join_deps(newdeps, False).replace("EXTENDPKGV", "${EXTENDPKGV}")) 102 if not varname.endswith("_NONML"):
103 #if varname == "DEPENDS":
104 self.d.renameVar(varname, varname + "_NONML")
105 self.d.setVar(varname, "${@oe.classextend.get_depends('%s', d)}" % varname)
106 self.d.appendVarFlag(varname, "vardeps", " " + varname + "_NONML")
107 ret = bb.utils.join_deps(newdeps, False).replace("EXTENDPKGV", "${EXTENDPKGV}")
93 self.d.setVar("EXTENDPKGV", orig) 108 self.d.setVar("EXTENDPKGV", orig)
109 return ret
94 110
95 def map_packagevars(self): 111 def map_packagevars(self):
96 for pkg in (self.d.getVar("PACKAGES").split() + [""]): 112 for pkg in (self.d.getVar("PACKAGES").split() + [""]):
@@ -109,10 +125,23 @@ class ClassExtender(object):
109 continue 125 continue
110 self.pkgs_mapping.append([pkg, self.extend_name(pkg)]) 126 self.pkgs_mapping.append([pkg, self.extend_name(pkg)])
111 127
112 self.d.setVar("PACKAGES", " ".join([row[1] for row in self.pkgs_mapping])) 128 self.d.renameVar("PACKAGES", "PACKAGES_NONML")
129 self.d.setVar("PACKAGES", "${@oe.classextend.get_packages(d)}")
130
131 def rename_packages_internal(self, pkgs):
132 self.pkgs_mapping = []
133 for pkg in (self.d.expand(pkgs) or "").split():
134 if pkg.startswith(self.extname):
135 self.pkgs_mapping.append([pkg.split(self.extname + "-")[1], pkg])
136 continue
137 self.pkgs_mapping.append([pkg, self.extend_name(pkg)])
138
139 return " ".join([row[1] for row in self.pkgs_mapping])
113 140
114 def rename_package_variables(self, variables): 141 def rename_package_variables(self, variables):
115 for pkg_mapping in self.pkgs_mapping: 142 for pkg_mapping in self.pkgs_mapping:
143 if pkg_mapping[0].startswith("${") and pkg_mapping[0].endswith("}"):
144 continue
116 for subs in variables: 145 for subs in variables:
117 self.d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1])) 146 self.d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1]))
118 147
diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc
index aa8e059216..ff25fd4187 100644
--- a/meta/recipes-core/glibc/glibc-package.inc
+++ b/meta/recipes-core/glibc/glibc-package.inc
@@ -24,7 +24,7 @@ libc_baselibs_append = " ${@oe.utils.conditional('ARCH_DYNAMIC_LOADER', '', '',
24INSANE_SKIP_${PN}_append_aarch64 = " libdir" 24INSANE_SKIP_${PN}_append_aarch64 = " libdir"
25 25
26FILES_${PN} = "${libc_baselibs} ${libexecdir}/*" 26FILES_${PN} = "${libc_baselibs} ${libexecdir}/*"
27RRECOMMENDS_${PN} = "${@bb.utils.filter('DISTRO_FEATURES', 'ldconfig', d)}" 27RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}"
28FILES_ldconfig = "${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf" 28FILES_ldconfig = "${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf"
29FILES_ldd = "${bindir}/ldd" 29FILES_ldd = "${bindir}/ldd"
30FILES_libsegfault = "${base_libdir}/libSegFault*" 30FILES_libsegfault = "${base_libdir}/libSegFault*"
diff --git a/meta/recipes-core/packagegroups/packagegroup-base.bb b/meta/recipes-core/packagegroups/packagegroup-base.bb
index 1f802da09b..90b79adfdc 100644
--- a/meta/recipes-core/packagegroups/packagegroup-base.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -110,16 +110,16 @@ python __anonymous () {
110 machine_features= set(d.getVar("MACHINE_FEATURES").split()) 110 machine_features= set(d.getVar("MACHINE_FEATURES").split())
111 111
112 if "bluetooth" in distro_features and not "bluetooth" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features): 112 if "bluetooth" in distro_features and not "bluetooth" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
113 d.setVar("ADD_BT", "packagegroup-base-bluetooth") 113 d.setVar("ADD_BT", "${MLPREFIX}packagegroup-base-bluetooth")
114 114
115 if "wifi" in distro_features and not "wifi" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features): 115 if "wifi" in distro_features and not "wifi" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
116 d.setVar("ADD_WIFI", "packagegroup-base-wifi") 116 d.setVar("ADD_WIFI", "${MLPREFIX}packagegroup-base-wifi")
117 117
118 if "3g" in distro_features and not "3g" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features): 118 if "3g" in distro_features and not "3g" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
119 d.setVar("ADD_3G", "packagegroup-base-3g") 119 d.setVar("ADD_3G", "${MLPREFIX}packagegroup-base-3g")
120 120
121 if "nfc" in distro_features and not "nfc" in machine_features and ("usbhost" in machine_features): 121 if "nfc" in distro_features and not "nfc" in machine_features and ("usbhost" in machine_features):
122 d.setVar("ADD_NFC", "packagegroup-base-nfc") 122 d.setVar("ADD_NFC", "${MLPREFIX}packagegroup-base-nfc")
123} 123}
124 124
125# 125#
diff --git a/meta/recipes-core/psplash/psplash_git.bb b/meta/recipes-core/psplash/psplash_git.bb
index 22c71f099b..44f0007daf 100644
--- a/meta/recipes-core/psplash/psplash_git.bb
+++ b/meta/recipes-core/psplash/psplash_git.bb
@@ -22,6 +22,7 @@ SPLASH_IMAGES = "file://psplash-poky-img.h;outsuffix=default"
22python __anonymous() { 22python __anonymous() {
23 oldpkgs = d.getVar("PACKAGES").split() 23 oldpkgs = d.getVar("PACKAGES").split()
24 splashfiles = d.getVar('SPLASH_IMAGES').split() 24 splashfiles = d.getVar('SPLASH_IMAGES').split()
25 mlprefix = d.getVar('MLPREFIX') or ''
25 pkgs = [] 26 pkgs = []
26 localpaths = [] 27 localpaths = []
27 for uri in splashfiles: 28 for uri in splashfiles:
@@ -46,9 +47,9 @@ python __anonymous() {
46 # Set these so that we have less work to do in do_compile and do_install_append 47 # Set these so that we have less work to do in do_compile and do_install_append
47 d.setVar("SPLASH_INSTALL", " ".join(pkgs)) 48 d.setVar("SPLASH_INSTALL", " ".join(pkgs))
48 d.setVar("SPLASH_LOCALPATHS", " ".join(localpaths)) 49 d.setVar("SPLASH_LOCALPATHS", " ".join(localpaths))
50 for p in pkgs:
51 d.prependVar("PACKAGES", "%s%s " % (mlprefix, p))
49 52
50 d.prependVar("PACKAGES", "%s " % (" ".join(pkgs)))
51 mlprefix = d.getVar('MLPREFIX') or ''
52 pn = d.getVar('PN') or '' 53 pn = d.getVar('PN') or ''
53 for p in pkgs: 54 for p in pkgs:
54 ep = '%s%s' % (mlprefix, p) 55 ep = '%s%s' % (mlprefix, p)
diff --git a/meta/recipes-devtools/perl/perl_5.30.2.bb b/meta/recipes-devtools/perl/perl_5.30.2.bb
index 778c420b2e..26138ea9e5 100644
--- a/meta/recipes-devtools/perl/perl_5.30.2.bb
+++ b/meta/recipes-devtools/perl/perl_5.30.2.bb
@@ -328,7 +328,7 @@ python split_perl_packages () {
328 328
329python() { 329python() {
330 if d.getVar('CLASSOVERRIDE') == "class-target": 330 if d.getVar('CLASSOVERRIDE') == "class-target":
331 d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*(?<!native)$") 331 d.setVar("PACKAGES_DYNAMIC", "^${MLPREFIX}perl-module-.*(?<!native)$")
332 elif d.getVar('CLASSOVERRIDE') == "class-native": 332 elif d.getVar('CLASSOVERRIDE') == "class-native":
333 d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*-native$") 333 d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*-native$")
334 elif d.getVar('CLASSOVERRIDE') == "class-nativesdk": 334 elif d.getVar('CLASSOVERRIDE') == "class-nativesdk":
diff --git a/meta/recipes-devtools/python/python3_3.8.2.bb b/meta/recipes-devtools/python/python3_3.8.2.bb
index a4a16fd495..0474f07214 100644
--- a/meta/recipes-devtools/python/python3_3.8.2.bb
+++ b/meta/recipes-devtools/python/python3_3.8.2.bb
@@ -311,8 +311,8 @@ do_create_manifest[depends] += "${PN}:do_patch"
311 311
312# manual dependency additions 312# manual dependency additions
313RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python3-modules" 313RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python3-modules"
314RRECOMMENDS_${PN}-crypt_append_class-target = " openssl ca-certificates" 314RRECOMMENDS_${PN}-crypt_append_class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
315RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " openssl ca-certificates" 315RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
316 316
317# For historical reasons PN is empty and provided by python3-modules 317# For historical reasons PN is empty and provided by python3-modules
318FILES_${PN} = "" 318FILES_${PN} = ""
@@ -322,7 +322,7 @@ FILES_${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3"
322FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}" 322FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
323 323
324# provide python-pyvenv from python3-venv 324# provide python-pyvenv from python3-venv
325RPROVIDES_${PN}-venv += "python3-pyvenv" 325RPROVIDES_${PN}-venv += "${MLPREFIX}python3-pyvenv"
326 326
327# package libpython3 327# package libpython3
328PACKAGES =+ "libpython3 libpython3-staticdev" 328PACKAGES =+ "libpython3 libpython3-staticdev"
@@ -333,8 +333,8 @@ INSANE_SKIP_${PN}-dev += "dev-elf"
333# catch all the rest (unsorted) 333# catch all the rest (unsorted)
334PACKAGES += "${PN}-misc" 334PACKAGES += "${PN}-misc"
335RDEPENDS_${PN}-misc += "python3-core python3-email python3-codecs python3-pydoc python3-pickle python3-audio" 335RDEPENDS_${PN}-misc += "python3-core python3-email python3-codecs python3-pydoc python3-pickle python3-audio"
336RDEPENDS_${PN}-modules_append_class-target = " python3-misc" 336RDEPENDS_${PN}-modules_append_class-target = " ${MLPREFIX}python3-misc"
337RDEPENDS_${PN}-modules_append_class-nativesdk = " python3-misc" 337RDEPENDS_${PN}-modules_append_class-nativesdk = " ${MLPREFIX}python3-misc"
338FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload" 338FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload"
339 339
340# catch manpage 340# catch manpage
@@ -348,5 +348,5 @@ RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-tr-tr.iso-8859-9"
348RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}" 348RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}"
349RDEPENDS_${PN}-dev = "" 349RDEPENDS_${PN}-dev = ""
350 350
351RDEPENDS_${PN}-tests_append_class-target = " bash" 351RDEPENDS_${PN}-tests_append_class-target = " ${MLPREFIX}bash"
352RDEPENDS_${PN}-tests_append_class-nativesdk = " bash" 352RDEPENDS_${PN}-tests_append_class-nativesdk = " ${MLPREFIX}bash"
diff --git a/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index 15a8e6dedc..16c2f9f2aa 100644
--- a/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -32,21 +32,23 @@ python __anonymous () {
32 namemap["packagegroup-core-full-cmdline-sys-services"] = "packagegroup-core-sys-services" 32 namemap["packagegroup-core-full-cmdline-sys-services"] = "packagegroup-core-sys-services"
33 33
34 packages = d.getVar("PACKAGES").split() 34 packages = d.getVar("PACKAGES").split()
35 mlprefix = d.getVar("MLPREFIX")
35 for pkg in packages: 36 for pkg in packages:
37 pkg2 = pkg[len(mlprefix):]
36 if pkg.endswith('-dev'): 38 if pkg.endswith('-dev'):
37 mapped = namemap.get(pkg[:-4], None) 39 mapped = namemap.get(pkg2[:-4], None)
38 if mapped: 40 if mapped:
39 mapped += '-dev' 41 mapped += '-dev'
40 elif pkg.endswith('-dbg'): 42 elif pkg.endswith('-dbg'):
41 mapped = namemap.get(pkg[:-4], None) 43 mapped = namemap.get(pkg2[:-4], None)
42 if mapped: 44 if mapped:
43 mapped += '-dbg' 45 mapped += '-dbg'
44 else: 46 else:
45 mapped = namemap.get(pkg, None) 47 mapped = namemap.get(pkg2, None)
46 48
47 if mapped: 49 if mapped:
48 oldtaskname = mapped.replace("packagegroup-core", "task-core") 50 oldtaskname = mapped.replace("packagegroup-core", "task-core")
49 mapstr = " %s %s" % (mapped, oldtaskname) 51 mapstr = " %s%s %s%s" % (mlprefix, mapped, mlprefix, oldtaskname)
50 d.appendVar("RPROVIDES_%s" % pkg, mapstr) 52 d.appendVar("RPROVIDES_%s" % pkg, mapstr)
51 d.appendVar("RREPLACES_%s" % pkg, mapstr) 53 d.appendVar("RREPLACES_%s" % pkg, mapstr)
52 d.appendVar("RCONFLICTS_%s" % pkg, mapstr) 54 d.appendVar("RCONFLICTS_%s" % pkg, mapstr)
diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
index fede691d6f..bb43a9a8b6 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -212,18 +212,20 @@ python __anonymous() {
212 ("gles", "libgles3",)): 212 ("gles", "libgles3",)):
213 if not p[0] in pkgconfig: 213 if not p[0] in pkgconfig:
214 continue 214 continue
215 fullp = p[1] + "-mesa" 215 mlprefix = d.getVar("MLPREFIX")
216 pkgs = " ".join(p[1:]) 216 fullp = mlprefix + p[1] + "-mesa"
217 mlprefix = d.getVar("MLPREFIX")
218 pkgs = " ".join(mlprefix + x for x in p[1:])
217 d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") 219 d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
218 d.appendVar("RREPLACES_" + fullp, pkgs) 220 d.appendVar("RREPLACES_" + fullp, pkgs)
219 d.appendVar("RPROVIDES_" + fullp, pkgs) 221 d.appendVar("RPROVIDES_" + fullp, pkgs)
220 d.appendVar("RCONFLICTS_" + fullp, pkgs) 222 d.appendVar("RCONFLICTS_" + fullp, pkgs)
221 223
222 d.appendVar("RRECOMMENDS_" + fullp, " mesa-megadriver") 224 d.appendVar("RRECOMMENDS_" + fullp, " ${MLPREFIX}mesa-megadriver")
223 225
224 # For -dev, the first element is both the Debian and original name 226 # For -dev, the first element is both the Debian and original name
225 fullp += "-dev" 227 fullp += "-dev"
226 pkgs = p[1] + "-dev" 228 pkgs = mlprefix + p[1] + "-dev"
227 d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") 229 d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
228 d.appendVar("RREPLACES_" + fullp, pkgs) 230 d.appendVar("RREPLACES_" + fullp, pkgs)
229 d.appendVar("RPROVIDES_" + fullp, pkgs) 231 d.appendVar("RPROVIDES_" + fullp, pkgs)
diff --git a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb
index 9882e12763..d092b158f2 100644
--- a/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb
+++ b/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb
@@ -167,7 +167,7 @@ FILES_${PN}-pulseaudio-conf += "\
167" 167"
168 168
169RDEPENDS_${PN}-pulseaudio-conf += "\ 169RDEPENDS_${PN}-pulseaudio-conf += "\
170 libasound-module-conf-pulse \ 170 ${MLPREFIX}libasound-module-conf-pulse \
171 libasound-module-ctl-pulse \ 171 ${MLPREFIX}libasound-module-ctl-pulse \
172 libasound-module-pcm-pulse \ 172 ${MLPREFIX}libasound-module-pcm-pulse \
173" 173"
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index 8eb9494381..ca140d595f 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -62,12 +62,16 @@ PACKAGES = "${PN}-dbg ${BOOST_PACKAGES}"
62python __anonymous () { 62python __anonymous () {
63 packages = [] 63 packages = []
64 extras = [] 64 extras = []
65 mlprefix = d.getVar("MLPREFIX")
65 for lib in d.getVar('BOOST_LIBS').split(): 66 for lib in d.getVar('BOOST_LIBS').split():
66 extras.append("--with-%s" % lib) 67 extras.append("--with-%s" % lib)
67 pkg = "boost-%s" % lib.replace("_", "-") 68 pkg = "boost-%s" % (lib.replace("_", "-"))
68 packages.append(pkg) 69 packages.append(mlprefix + pkg)
69 if not d.getVar("FILES_%s" % pkg): 70 if not d.getVar("FILES_%s" % pkg):
70 d.setVar("FILES_%s" % pkg, "${libdir}/libboost_%s*.so.*" % lib) 71 d.setVar("FILES_%s%s" % (mlprefix, pkg), "${libdir}/libboost_%s*.so.*" % lib)
72 else:
73 d.setVar("FILES_%s%s" % (mlprefix, pkg), d.getVar("FILES_%s" % pkg))
74
71 d.setVar("BOOST_PACKAGES", " ".join(packages)) 75 d.setVar("BOOST_PACKAGES", " ".join(packages))
72 d.setVar("BJAM_EXTRA", " ".join(extras)) 76 d.setVar("BJAM_EXTRA", " ".join(extras))
73} 77}