[oe-commits] [openembedded-core] 03/08: devtool: remove duplicate overrides

git at git.openembedded.org git at git.openembedded.org
Mon Jan 21 23:48:00 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit 90f667db2219f04e6d61588cd61056d3d8da6d7d
Author: Dan Dedrick <dan.dedrick at gmail.com>
AuthorDate: Mon Jan 21 11:05:02 2019 -0500

    devtool: remove duplicate overrides
    
    DEVTOOL_EXTRA_OVERRIDES only needs one entry for each instance of
    overrides. Previous to these changes it would find every override to
    SRC_URI and add it to the list. This would duplicate instances where
    SRC_URI is modified multiple times with the same override like:
    SRC_URI_append_foo += "file://0001-foo.patch"
    SRC_URI_append_foo += "file://0002-bar.patch"
    
    A bbappend might also overwrite a SRC_URI override, which would also
    cause multiple instances to occur.
    
    When there are multiple instances of the same override in
    DEVTOOL_EXTRA_OVERRIDES it causes devtool modify to fail when creating
    override branches. The failure occurs when attempting to create the same
    override branch a second time and looks like this:
    
    The stack trace of python calls that resulted in this exception/failure was:
    File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
         0001:
     *** 0002:devtool_post_patch(d)
         0003:
    File: '/build/poky/meta/classes/devtool-source.bbclass', lineno: 202, function: devtool_post_patch
         0198:
         0199:        for override in extra_override_list:
         0200:            localdata = bb.data.createCopy(d)
         0201:            if override in default_overrides:
     *** 0202:                bb.process.run('git branch devtool-override-%s %s' % (override, devbranch), cwd=srcsubdir)
         0203:            else:
         0204:                # Reset back to the initial commit on a new branch
         0205:                bb.process.run('git checkout %s -b devtool-override-%s' % (initial_rev, override), cwd=srcsubdir)
         0206:                # Run do_patch function with the override applied
    File: '/build/poky/bitbake/lib/bb/process.py', lineno: 178, function: run
         0174:        if not stderr is None:
         0175:            stderr = stderr.decode("utf-8")
         0176:
         0177:    if pipe.returncode != 0:
     *** 0178:        raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
         0179:    return stdout, stderr
    Exception: bb.process.ExecutionError: Execution of 'git branch devtool-override-foo devtool' failed with exit code 128:
    fatal: A branch named 'devtool-override-foo' already exists.
    
    Signed-off-by: Dan Dedrick <ddedrick at lexmark.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 scripts/lib/devtool/standard.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index d14b7a6..a45ad36 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -509,6 +509,11 @@ def _extract_source(srctree, keep_temp, devbranch, sync, config, basepath, works
             if not 'flag' in event:
                 if event['op'].startswith(('_append[', '_prepend[')):
                     extra_overrides.append(event['op'].split('[')[1].split(']')[0])
+        # We want to remove duplicate overrides. If a recipe had multiple
+        # SRC_URI_override += values it would cause mulitple instances of
+        # overrides. This doesn't play nicely with things like creating a
+        # branch for every instance of DEVTOOL_EXTRA_OVERRIDES.
+        extra_overrides = list(set(extra_overrides))
         if extra_overrides:
             logger.info('SRC_URI contains some conditional appends/prepends - will create branches to represent these')
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list