From: Yi Zhao Date: Fri, 11 Oct 2024 09:19:35 +0000 (+0800) Subject: wic/rootfs.py: allow --exclude-path option to exclude symlinks X-Git-Tag: yocto-5.2~1608 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=42e829ac1e9d74646b6dfb327b18b15f6b0df60b;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git wic/rootfs.py: allow --exclude-path option to exclude symlinks Currently, if we specify a symbolic link in --exclude-path option, we will get the following error in do_image_wic: ERROR: --exclude-path: Must point inside the rootfs: usr/bin/hello.link This is because it uses os.path.realpath to eliminate symbolic links. To exclude symbolic links, use os.path.abspath instead of os.path.realpath. Signed-off-by: Yi Zhao Signed-off-by: Richard Purdie --- diff --git a/scripts/lib/wic/plugins/source/rootfs.py b/scripts/lib/wic/plugins/source/rootfs.py index c990143c0da..06fce06bb15 100644 --- a/scripts/lib/wic/plugins/source/rootfs.py +++ b/scripts/lib/wic/plugins/source/rootfs.py @@ -41,7 +41,7 @@ class RootfsPlugin(SourcePlugin): # Disallow climbing outside of parent directory using '..', # because doing so could be quite disastrous (we will delete the # directory, or modify a directory outside OpenEmbedded). - full_path = os.path.realpath(os.path.join(rootfs_dir, path)) + full_path = os.path.abspath(os.path.join(rootfs_dir, path)) if not full_path.startswith(os.path.realpath(rootfs_dir)): logger.error("%s: Must point inside the rootfs: %s" % (cmd, path)) sys.exit(1)