Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] Fix COMPATIBLE_MACHINE for -native recipe variants.
@ 2018-01-12 17:45 Paulo Neves
  2018-01-12 18:04 ` ✗ patchtest: failure for " Patchwork
  2018-01-13 17:14 ` [PATCH] " Richard Purdie
  0 siblings, 2 replies; 4+ messages in thread
From: Paulo Neves @ 2018-01-12 17:45 UTC (permalink / raw)
  To: openembedded-core; +Cc: Paulo Neves

From: Paulo Neves <paulo.de_sousa_neves@nokia.com>

Hello I am having a problem where I want a recipe, along
with its -native version to only be available when allowed
by compatible machine.

In the non native case, COMPATIBLE_MACHINE is correctly
honored. But in the -native version the COMPATIBLE_MACHINE
is not honored because in the native.bbclass there is:

MACHINEOVERRIDES = ""

This change was introduced in
d09e6d883042e5d094cd08d829327c4bbbfae135.
While the explanation provided by the commit is accurate for
specific case mentioned it also breaks the
COMPATIBLE_MACHINE mechanism which relies on the
MACHINEOVERRIDES variable.

Further evidence that this was not intended is that the
exception text is false:

ERROR: Nothing PROVIDES 'x-filter-native'
x-filter-native was skipped: incompatible with machine m1
(not in COMPATIBLE_MACHINE)

And the x-filter-native'.bb recipe header contains:

COMPATIBLE_MACHINE = "^m1$"

So the exception uses ${MACHINE} to report that a
${MACHINEOVERRIDE} was not matched with the
COMPATIBLE_MACHINE, which is a false statement.

This fix attempts to correct the issue with minimal
changes.

Change-Id: If5085e4e92550b8154033dd56149eb4e358ef266
---
 meta/classes/base.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index d95afb7..d1c31c2 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -488,7 +488,7 @@ python () {
     need_machine = d.getVar('COMPATIBLE_MACHINE')
     if need_machine:
         import re
-        compat_machines = (d.getVar('MACHINEOVERRIDES') or "").split(":")
+        compat_machines = (d.getVar('MACHINEOVERRIDES') or d.getVar('MACHINE')).split(":")
         for m in compat_machines:
             if re.match(need_machine, m):
                 break
-- 
2.7.4



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

end of thread, other threads:[~2018-01-15 11:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-12 17:45 [PATCH] Fix COMPATIBLE_MACHINE for -native recipe variants Paulo Neves
2018-01-12 18:04 ` ✗ patchtest: failure for " Patchwork
2018-01-13 17:14 ` [PATCH] " Richard Purdie
     [not found]   ` <d7600f26-373a-7ca9-cbaa-97dfac3bd86d@nokia.com>
2018-01-15 11:05     ` Richard Purdie

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