From: Richard Purdie Date: Sun, 4 Oct 2020 22:42:22 +0000 (+0100) Subject: wic: Handle new PSEUDO_IGNORE_PATHS variable X-Git-Tag: 2020-04.6-dunfell~95 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=16fbe45f2e0e7621139ae26ace59889a91fceda2;p=openembedded-core.git wic: Handle new PSEUDO_IGNORE_PATHS variable Adjust wic to correctly handle the new PSEUDO_IGNORE_PATH variable and avoid inode corruption issues. Signed-off-by: Richard Purdie (cherry picked from commit 13500f5234361385c365c7c35e83f99435500481) Signed-off-by: Steve Sakoman --- diff --git a/meta/classes/image_types_wic.bbclass b/meta/classes/image_types_wic.bbclass index 82f0985eeb..f27f29c663 100644 --- a/meta/classes/image_types_wic.bbclass +++ b/meta/classes/image_types_wic.bbclass @@ -5,7 +5,7 @@ WICVARS ?= "\ IMAGE_LINK_NAME IMAGE_ROOTFS INITRAMFS_FSTYPES INITRD INITRD_LIVE ISODIR RECIPE_SYSROOT_NATIVE \ ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS \ KERNEL_IMAGETYPE MACHINE INITRAMFS_IMAGE INITRAMFS_IMAGE_BUNDLE INITRAMFS_LINK_NAME APPEND \ - ASSUME_PROVIDED" + ASSUME_PROVIDED PSEUDO_IGNORE_PATHS" inherit ${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', 'kernel-artifact-names', '', d)} diff --git a/scripts/lib/wic/partition.py b/scripts/lib/wic/partition.py index 1347571aa0..4ec0608fe4 100644 --- a/scripts/lib/wic/partition.py +++ b/scripts/lib/wic/partition.py @@ -198,21 +198,23 @@ class Partition(): Currently handles ext2/3/4, btrfs, vfat and squashfs. """ + + rootfs = "%s/rootfs_%s.%s.%s" % (cr_workdir, self.label, + self.lineno, self.fstype) + if os.path.isfile(rootfs): + os.remove(rootfs) + p_prefix = os.environ.get("PSEUDO_PREFIX", "%s/usr" % native_sysroot) if (pseudo_dir): pseudo = "export PSEUDO_PREFIX=%s;" % p_prefix pseudo += "export PSEUDO_LOCALSTATEDIR=%s;" % pseudo_dir pseudo += "export PSEUDO_PASSWD=%s;" % rootfs_dir pseudo += "export PSEUDO_NOSYMLINKEXP=1;" + pseudo += "export PSEUDO_IGNORE_PATHS=%s;" % (rootfs + "," + (get_bitbake_var("PSEUDO_IGNORE_PATHS") or "")) pseudo += "%s " % get_bitbake_var("FAKEROOTCMD") else: pseudo = None - rootfs = "%s/rootfs_%s.%s.%s" % (cr_workdir, self.label, - self.lineno, self.fstype) - if os.path.isfile(rootfs): - os.remove(rootfs) - if not self.size and real_rootfs: # The rootfs size is not set in .ks file so try to get it # from bitbake variable