From: Ed Bartosh Date: Fri, 18 Dec 2015 11:46:31 +0000 (+0200) Subject: devtool: use cp instead of shutil.copytree X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~27870 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5b841420b9fdd33829f7665a62cd06a3017f7e6;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git devtool: use cp instead of shutil.copytree Copied layers with 'cp -a' instead of calling shutil.copytree as copytree fails to copy broken symlinks. More pythonic fix would be to use copytree with 'ignore' parameter, but this could slow down copying complex directory structures. [YOCTO #8825] Signed-off-by: Ed Bartosh Signed-off-by: Ross Burton --- diff --git a/scripts/lib/devtool/sdk.py b/scripts/lib/devtool/sdk.py index f08f0eee7c5..47b9a7e1fcc 100644 --- a/scripts/lib/devtool/sdk.py +++ b/scripts/lib/devtool/sdk.py @@ -128,7 +128,10 @@ def sdk_update(args, config, basepath, workspace): new_layers_dir = os.path.join(args.updateserver, 'layers') old_layers_dir = os.path.join(basepath, 'layers') shutil.rmtree(old_layers_dir) - shutil.copytree(new_layers_dir, old_layers_dir) + ret = subprocess.call("cp -a %s %s" % (new_layers_dir, old_layers_dir), shell=True) + if ret != 0: + logger.error("Copying %s to %s failed" % (new_layers_dir, old_layers_dir)) + return ret else: # devtool sdk-update http://myhost/sdk tmpsdk_dir = '/tmp/sdk-ext'