summaryrefslogtreecommitdiffstats
path: root/meta/classes/multilib_global.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-06-26 10:29:10 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-06-27 12:20:36 +0100
commit403c9341d1295215ef2c3b10d8db7bf0a72e0c50 (patch)
tree845678f5173a98edfccdac2b2624dd2976a9eedd /meta/classes/multilib_global.bbclass
parent16cd4ae3d57b44a4ac1e3a8ff989d1d00df819da (diff)
downloadpoky-403c9341d1295215ef2c3b10d8db7bf0a72e0c50.tar.gz
multilib_global: Fix KERNEL_VERSION expansion problems
KERNEL_VERSION gets expanded at runtime to contain the real kernel version. There is code to ensure the signatures are determinisic but the multilib expansion code breaks this. Exclude the variable from the datastore used for expansion to avoid this. (From OE-Core rev: c068f907fee16477f59b6e5b168208aa4f677544) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/multilib_global.bbclass')
-rw-r--r--meta/classes/multilib_global.bbclass14
1 files changed, 10 insertions, 4 deletions
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass
index 11ac5b0457..98f65c8aae 100644
--- a/meta/classes/multilib_global.bbclass
+++ b/meta/classes/multilib_global.bbclass
@@ -172,21 +172,27 @@ python multilib_virtclass_handler_global () {
172 if bb.data.inherits_class('kernel', e.data) or \ 172 if bb.data.inherits_class('kernel', e.data) or \
173 bb.data.inherits_class('module-base', e.data) or \ 173 bb.data.inherits_class('module-base', e.data) or \
174 d.getVar('BPN') in non_ml_recipes: 174 d.getVar('BPN') in non_ml_recipes:
175
176 # We need to avoid expanding KERNEL_VERSION which we can do by deleting it
177 # from a copy of the datastore
178 localdata = bb.data.createCopy(d)
179 localdata.delVar("KERNEL_VERSION")
180
175 variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split() 181 variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split()
176 182
177 import oe.classextend 183 import oe.classextend
178 clsextends = [] 184 clsextends = []
179 for variant in variants: 185 for variant in variants:
180 clsextends.append(oe.classextend.ClassExtender(variant, e.data)) 186 clsextends.append(oe.classextend.ClassExtender(variant, localdata))
181 187
182 # Process PROVIDES 188 # Process PROVIDES
183 origprovs = provs = e.data.getVar("PROVIDES") or "" 189 origprovs = provs = localdata.getVar("PROVIDES") or ""
184 for clsextend in clsextends: 190 for clsextend in clsextends:
185 provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False) 191 provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False)
186 e.data.setVar("PROVIDES", provs) 192 e.data.setVar("PROVIDES", provs)
187 193
188 # Process RPROVIDES 194 # Process RPROVIDES
189 origrprovs = rprovs = e.data.getVar("RPROVIDES") or "" 195 origrprovs = rprovs = localdata.getVar("RPROVIDES") or ""
190 for clsextend in clsextends: 196 for clsextend in clsextends:
191 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False) 197 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False)
192 if rprovs.strip(): 198 if rprovs.strip():
@@ -194,7 +200,7 @@ python multilib_virtclass_handler_global () {
194 200
195 # Process RPROVIDES_${PN}... 201 # Process RPROVIDES_${PN}...
196 for pkg in (e.data.getVar("PACKAGES") or "").split(): 202 for pkg in (e.data.getVar("PACKAGES") or "").split():
197 origrprovs = rprovs = e.data.getVar("RPROVIDES_%s" % pkg) or "" 203 origrprovs = rprovs = localdata.getVar("RPROVIDES_%s" % pkg) or ""
198 for clsextend in clsextends: 204 for clsextend in clsextends:
199 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES_%s" % pkg, setvar=False) 205 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES_%s" % pkg, setvar=False)
200 rprovs = rprovs + " " + clsextend.extname + "-" + pkg 206 rprovs = rprovs + " " + clsextend.extname + "-" + pkg