[gnome-continuous-yocto/gnomeostree-3.28-rocko: 2365/8267] runqemu: fix run from testimage with non-standard DEPLOY_DIR_IMAGE



commit d1303c220e9a64bbfc7b225cf7354b5f7784856d
Author: Joshua Lock <joshua g lock intel com>
Date:   Thu Sep 8 21:49:13 2016 +0100

    runqemu: fix run from testimage with non-standard DEPLOY_DIR_IMAGE
    
    testimage.bbclass uses runqemu to execute runtime tests on a qemu
    target, this means that bitbake is already running and `bitbake -e`
    can't be called to obtain bitbake variables.
    
    runqemu tries to work around being unable to read values for
    bitbake variables by inferring the MACHINE from the
    DEPLOY_DIR_IMAGE setting, however if a user sets that variable in
    a manner which doesn't follow the systems expectations (i.e. if
    running `bitbake -c testimage` against a directory of pre-generated
    images in a user-specified path) the inferring of the MACHINE name
    from the DEPLOY_DIR_IMAGE location will fail.
    
    It's possible that check_arg_machine() shouldn't cause runqemu to
    fail and that runqemu should proceed with the user-supplied value
    even if it can't be verified. This patch simply ensures that a
    workflow where the user sets DEPLOY_DIR_IMAGE continues to work
    without changing too much of the runqemu code.
    
    [YOCTO #10238]
    
    (From OE-Core rev: f94ac02f459e2ea0fc471463966997814a67e0ca)
    
    Signed-off-by: Joshua Lock <joshua g lock intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 scripts/runqemu |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/scripts/runqemu b/scripts/runqemu
index e8d14f5..91e72cb 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -277,6 +277,19 @@ class BaseConfig(object):
         elif self.get('MACHINE') == arg:
             return
         logger.info('Assuming MACHINE = %s' % arg)
+
+        # if we're running under testimage, or similarly as a child
+        # of an existing bitbake invocation, we can't invoke bitbake
+        # to validate the MACHINE setting and must assume it's correct...
+        # FIXME: testimage.bbclass exports these two variables into env,
+        # are there other scenarios in which we need to support being
+        # invoked by bitbake?
+        deploy = os.environ.get('DEPLOY_DIR_IMAGE', None)
+        bbchild = deploy and os.environ.get('OE_TMPDIR', None)
+        if bbchild:
+            self.set_machine_deploy_dir(arg, deploy)
+            return
+
         cmd = 'MACHINE=%s bitbake -e' % arg
         logger.info('Running %s...' % cmd)
         self.bitbake_e = subprocess.Popen(cmd, shell=True, 
stdout=subprocess.PIPE).stdout.read().decode('utf-8')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]