summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClemens Lang <clemens.lang@bmw-carit.de>2016-07-15 18:26:26 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-25 23:47:00 +0100
commitd45f5e71fef5ffbd4408f69c5c179dc71a3eb452 (patch)
treeee9cb47b33a7c20d4dac8e08996df91b5ecd39ae
parentf96da00e78999899ea7037ebc9547a87023e309a (diff)
downloadopenembedded-core-contrib-d45f5e71fef5ffbd4408f69c5c179dc71a3eb452.tar.gz
openembedded-core-contrib-d45f5e71fef5ffbd4408f69c5c179dc71a3eb452.tar.bz2
openembedded-core-contrib-d45f5e71fef5ffbd4408f69c5c179dc71a3eb452.zip
lib/oe/path: Fix tar invocation with --no-recursion
tar's --no-recursion flag only applies to files mentioned after the flag, which made it a no-op in this invocation of tar, because it was at the end of the command line. This is simple to verify with GNU tar 1.29: | $ mkdir foo | $ mkdir foo/dir | $ touch foo/dir/file | $ tar -cf - foo --no-recursion | tar t | foo/ | foo/dir/ | foo/dir/file | $ tar -cf - --no-recursion foo | tar t | foo/ Modify the code so that it actually does what the comment says by moving the flag in front of the --files-from argument. Signed-off-by: Clemens Lang <clemens.lang@bmw-carit.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/lib/oe/path.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/meta/lib/oe/path.py b/meta/lib/oe/path.py
index dbba60a304..3c07df33d4 100644
--- a/meta/lib/oe/path.py
+++ b/meta/lib/oe/path.py
@@ -77,7 +77,7 @@ def copyhardlinktree(src, dst):
if (os.stat(src).st_dev == os.stat(dst).st_dev):
# Need to copy directories only with tar first since cp will error if two
# writers try and create a directory at the same time
- cmd = 'cd %s; find . -type d -print | tar -cf - -C %s -p --files-from - --no-recursion | tar -xf - -C %s' % (src, src, dst)
+ cmd = 'cd %s; find . -type d -print | tar -cf - -C %s -p --no-recursion --files-from - | tar -xf - -C %s' % (src, src, dst)
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
cmd = 'cd %s; find . -print0 | cpio --null -pdlu %s' % (src, dst)
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)