[OE-core] [PATCH] devtool: extract: remove patches when S=WORKDIR

Markus Lehtonen markus.lehtonen at linux.intel.com
Tue Apr 21 14:49:54 UTC 2015


All local files from the layer, including patches, are added to to
srctree repository when S==WORKDIR. The patch files are useless as they
are automatically applied on top of the srctree by devtool.

This change causes devtool extract to remove these unnecessary (and
possibly confusing) patch file(s). The patches will be removed in one
single commit.

[YOCTO #7602]

Signed-off-by: Markus Lehtonen <markus.lehtonen at linux.intel.com>
---
 scripts/lib/devtool/standard.py | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index a50a771..41bcf86 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -248,6 +248,26 @@ def _extract_source(srctree, keep_temp, devbranch, d):
             else:
                 os.rmdir(patchdir)
 
+        # Find local patches that were "unpacked" to srctree directory
+        patches = []
+        for uri in (crd.getVar('SRC_URI', True) or "").split():
+            if uri.startswith('file://'):
+                fname = os.path.basename(uri).split(';')[0]
+                # Take patch "basename" without the possible compression
+                # extension (.gz etc)
+                match = re.match(r'^(.+\.patch)(\..+)?$', fname)
+                if match:
+                    patches.append(match.group(1))
+        patches = [fname for fname in os.listdir(workdir) if fname in patches]
+
+        # Remove patches if S=WORKDIR so that the unneeded patch files are
+        # not committed into srctree (as they're applied later on)
+        if patches and srcsubdir == workdir:
+            logger.info('Removing patch files...')
+            for patch in patches:
+                os.unlink(os.path.join(workdir, patch))
+
+        # Set-up srctree repo
         if bb.data.inherits_class('kernel-yocto', d):
             (stdout, _) = bb.process.run('git --git-dir="%s" rev-parse HEAD' % crd.expand('${WORKDIR}/git'), cwd=srcsubdir)
             initial_rev = stdout.rstrip()
-- 
2.1.4




More information about the Openembedded-core mailing list