[gnome-continuous-yocto/gnomeostree-3.28-rocko: 2283/8267] oe.path: fix copyhardlinktree()
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 2283/8267] oe.path: fix copyhardlinktree()
- Date: Sat, 16 Dec 2017 23:00:47 +0000 (UTC)
commit 822c708e8fd007cdefccbdbcbf7dcbe3256dcf5a
Author: Joshua Lock <joshuagloe gmail com>
Date: Mon Sep 5 14:35:09 2016 +0100
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.
(From OE-Core rev: 2b9fdd8448c2c29418d1c3fca9fe1789466f09b4)
Signed-off-by: Joshua Lock <joshua g lock intel com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
meta/lib/oe/path.py | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/meta/lib/oe/path.py b/meta/lib/oe/path.py
index 631c3b4..06a5af2 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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]