aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Lock <joshuagloe@gmail.com>2016-09-05 14:35:09 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-05 17:45:02 +0100
commit9cd83b689b5c7fcdbead9ac0c46c24fbe884c57a (patch)
tree2760c3f98925cddba09ad9ec0b88e3b75634e5a9
parent50d6834e97a0d303af76b0bec5b2e86e987c0c7b (diff)
downloadopenembedded-core-contrib-9cd83b689b5c7fcdbead9ac0c46c24fbe884c57a.tar.gz
oe.path: fix copyhardlinktree()
The change to preserve extended attributes in copytree() and copyhardlinktree() (e591d69103a40ec4f76d1132a6039d9cb1555103) resulted in an incorrect cp invocation in copyhardlinktree() when the source directory contained hidden files. This was because the passed src was modified in place but some code paths expected it to remain unmodified from the passed value. Resolve the issue by constructing a new source string, rather than modifying the passed in string. Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oe/path.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/meta/lib/oe/path.py b/meta/lib/oe/path.py
index 631c3b430c..06a5af2659 100644
--- a/meta/lib/oe/path.py
+++ b/meta/lib/oe/path.py
@@ -79,12 +79,15 @@ def copyhardlinktree(src, dst):
# writers try and create a directory at the same time
cmd = "cd %s; find . -type d -print | tar --xattrs --xattrs-include='*' -cf - -C %s -p --no-recursion --files-from - | tar --xattrs --xattrs-include='*' -xf - -C %s" % (src, src, dst)
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
+ source = ''
if os.path.isdir(src):
import glob
if len(glob.glob('%s/.??*' % src)) > 0:
- src = src + '/.??* '
- src = src + '/*'
- cmd = 'cp -afl --preserve=xattr %s %s' % (src, dst)
+ source = '%s/.??* ' % src
+ source = source + '%s/*' % src
+ else:
+ source = src
+ cmd = 'cp -afl --preserve=xattr %s %s' % (source, dst)
subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
else:
copytree(src, dst)