lib/oe/path: Fixup handling of .* files in top level paths for copyhardlinktree()
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 8 Nov 2013 22:13:38 +0000 (22:13 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 12 Nov 2013 10:34:09 +0000 (10:34 +0000)
Files named .* in the top level of directories handled by this function
were getting lost after the directory copying command was fixed. Rather
than complicate the function further, use cpio instead.

(From OE-Core rev: 59612905e9bb865762667aa7b3cb06e53c3a4071)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oe/path.py

index d0588ba..46783f8 100644 (file)
@@ -95,9 +95,7 @@ def copyhardlinktree(src, dst):
         # 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)
         check_output(cmd, shell=True, stderr=subprocess.STDOUT)
-        if os.path.isdir(src):
-            src = src + "/*"
-        cmd = 'cp -afl %s %s' % (src, dst)
+        cmd = 'cd %s; find . -print0 | cpio --null -pdlu %s' % (src, dst)
         check_output(cmd, shell=True, stderr=subprocess.STDOUT)
     else:
         copytree(src, dst)