Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 1/5] multilib_global: Fix KERNEL_VERSION expansion problems
@ 2019-06-26 16:30 Richard Purdie
  2019-06-26 16:30 ` [PATCH 2/5] oeqa/runtime/syslog: Improve test debug messages Richard Purdie
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Richard Purdie @ 2019-06-26 16:30 UTC (permalink / raw)
  To: openembedded-core

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.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/classes/multilib_global.bbclass | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass
index 11ac5b04579..98f65c8aae2 100644
--- a/meta/classes/multilib_global.bbclass
+++ b/meta/classes/multilib_global.bbclass
@@ -172,21 +172,27 @@ python multilib_virtclass_handler_global () {
     if bb.data.inherits_class('kernel', e.data) or \
             bb.data.inherits_class('module-base', e.data) or \
             d.getVar('BPN') in non_ml_recipes:
+
+            # We need to avoid expanding KERNEL_VERSION which we can do by deleting it
+            # from a copy of the datastore
+            localdata = bb.data.createCopy(d)
+            localdata.delVar("KERNEL_VERSION")
+
             variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split()
 
             import oe.classextend
             clsextends = []
             for variant in variants:
-                clsextends.append(oe.classextend.ClassExtender(variant, e.data))
+                clsextends.append(oe.classextend.ClassExtender(variant, localdata))
 
             # Process PROVIDES
-            origprovs = provs = e.data.getVar("PROVIDES") or ""
+            origprovs = provs = localdata.getVar("PROVIDES") or ""
             for clsextend in clsextends:
                 provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False)
             e.data.setVar("PROVIDES", provs)
 
             # Process RPROVIDES
-            origrprovs = rprovs = e.data.getVar("RPROVIDES") or ""
+            origrprovs = rprovs = localdata.getVar("RPROVIDES") or ""
             for clsextend in clsextends:
                 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False)
             if rprovs.strip():
@@ -194,7 +200,7 @@ python multilib_virtclass_handler_global () {
 
             # Process RPROVIDES_${PN}...
             for pkg in (e.data.getVar("PACKAGES") or "").split():
-                origrprovs = rprovs = e.data.getVar("RPROVIDES_%s" % pkg) or ""
+                origrprovs = rprovs = localdata.getVar("RPROVIDES_%s" % pkg) or ""
                 for clsextend in clsextends:
                     rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES_%s" % pkg, setvar=False)
                     rprovs = rprovs + " " + clsextend.extname + "-" + pkg
-- 
2.20.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-06-26 17:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-26 16:30 [PATCH 1/5] multilib_global: Fix KERNEL_VERSION expansion problems Richard Purdie
2019-06-26 16:30 ` [PATCH 2/5] oeqa/runtime/syslog: Improve test debug messages Richard Purdie
2019-06-26 16:30 ` [PATCH 3/5] busybox: Improve syslog restart handling Richard Purdie
2019-06-26 16:30 ` [PATCH 4/5] oeqa/runtime/oesyslog: systemd syslog restart doesn't change pid Richard Purdie
2019-06-26 16:30 ` [PATCH 5/5] oeqa/runtime/syslog: Add delay to test to avoid failures Richard Purdie
2019-06-26 17:00 ` ✗ patchtest: failure for "multilib_global: Fix KERNEL_VE..." and 4 more Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox