From 151d5df4878bc2a59a716c41a50e6866345c9c3b Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 22 Oct 2012 12:20:04 +0000 Subject: [PATCH] multilib/clsextend: Improve handling of regexps in PACKAGES_DYNAMIC Now that PACKAGES_DYNAMIC is more standardised, starting with ^ anchors, the variable manipulations performed by clsextend for multilib don't work. This patch at least improves it to hack around the problem and enable mulitlib builds to work again. If this code doesn't do the right thing, the recipe is free to override the variable with the correct multilib case. (From OE-Core rev: 593faec6e0155bdd7a43ee84c24de8ee20287681) Signed-off-by: Richard Purdie --- meta/classes/multilib.bbclass | 2 +- meta/lib/oe/classextend.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass index eaaad5f..3824f3b 100644 --- a/meta/classes/multilib.bbclass +++ b/meta/classes/multilib.bbclass @@ -75,7 +75,7 @@ python __anonymous () { clsextend.map_depends_variable("DEPENDS") clsextend.map_packagevars() clsextend.map_variable("PROVIDES") - clsextend.map_variable("PACKAGES_DYNAMIC") + clsextend.map_regexp_variable("PACKAGES_DYNAMIC") clsextend.map_variable("PACKAGE_INSTALL") clsextend.map_variable("INITSCRIPT_PACKAGES") } diff --git a/meta/lib/oe/classextend.py b/meta/lib/oe/classextend.py index 86b1e8a..857a6c9 100644 --- a/meta/lib/oe/classextend.py +++ b/meta/lib/oe/classextend.py @@ -33,6 +33,22 @@ class ClassExtender(object): self.d.setVar(varname, newdata) return newdata + def map_regexp_variable(self, varname, setvar = True): + var = self.d.getVar(varname, True) + if not var: + return "" + var = var.split() + newvar = [] + for v in var: + if v.startswith("^"): + newvar.append("^" + self.extname + "-" + v[1:]) + else: + newvar.append(self.extend_name(v)) + newdata = " ".join(newvar) + if setvar: + self.d.setVar(varname, newdata) + return newdata + def map_depends(self, dep): if dep.endswith(("-native", "-native-runtime")): return dep -- 2.7.4