> -----Original Message-----
> From: [email protected] <openembedded-
> [email protected]> On Behalf Of Ming Liu
> Sent: den 12 mars 2022 12:53
> To: [email protected]
> Cc: Ming Liu <[email protected]>
> Subject: [OE-core] [PATCH] image.bbclass: make sure do_rootfs run from a
> clean workspace
>
> From: Ming Liu <[email protected]>
>
> Add ${IMAGE_ROOTFS} and ${IMGDEPLOYDIR} to do_rootfs[dirs] and
> do_rootfs[cleandirs], this ensures do_rootfs run from a clean
> workspace, with this change, we can now remove two bb.utils.mkdirhier
> lines from meta/lib/oe/rootfs.py.
>
> Also drop ${S} from do_rootfs[cleandirs], nothing being installed into
> that directory.
>
> Signed-off-by: Ming Liu <[email protected]>
> ---
> meta/classes/image.bbclass | 4 ++--
> meta/lib/oe/rootfs.py | 4 ----
> 2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index 2b0ce4a988..98a0555040 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -252,8 +252,8 @@ fakeroot python do_rootfs () {
>
> progress_reporter.finish()
> }
> -do_rootfs[dirs] = "${TOPDIR}"
> -do_rootfs[cleandirs] += "${S} ${IMGDEPLOYDIR}"
> +do_rootfs[dirs] = "${IMAGE_ROOTFS} ${IMGDEPLOYDIR} ${TOPDIR}"
> +do_rootfs[cleandirs] += "${IMAGE_ROOTFS} ${IMGDEPLOYDIR}"
There is no reason to include paths in do_rootfs[dirs] if they are
also in do_rootfs[cleandirs] (except for the last path in
do_rootfs[dirs]). It only leads to bb.utils.mkdirhier() being
called for the same directory multiple times.
I have sent a patch series to correct this here and for all other
cases I could find. For anyone interested, I used the following
incantation to find the culprits:
grep -r 'cleandirs.*".*"' meta | grep -v '${@' | \
perl -ne 'if (/^(.*):(.*)\[.*\].*"(.*)"/) { @vars = split(" ", $3); for $var
(@vars) { print("=" x 75, "\n$1 - $2 - $var\n"); system("grep",
"--color=always", "$2\\[dirs\\].*\\$var ", $1); } }'
> do_rootfs[file-checksums] += "${POSTINST_INTERCEPT_CHECKSUMS}"
> addtask rootfs after do_prepare_recipe_sysroot
>
> diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
> index b0dd625539..98cf3f244d 100644
> --- a/meta/lib/oe/rootfs.py
> +++ b/meta/lib/oe/rootfs.py
> @@ -190,10 +190,6 @@ class Rootfs(object, metaclass=ABCMeta):
> post_process_cmds = self.d.getVar("ROOTFS_POSTPROCESS_COMMAND")
> rootfs_post_install_cmds =
> self.d.getVar('ROOTFS_POSTINSTALL_COMMAND')
>
> - bb.utils.mkdirhier(self.image_rootfs)
> -
> - bb.utils.mkdirhier(self.deploydir)
> -
> execute_pre_post_process(self.d, pre_process_cmds)
>
> if self.progress_reporter:
> --
> 2.25.1
//Peter
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#163148):
https://lists.openembedded.org/g/openembedded-core/message/163148
Mute This Topic: https://lists.openembedded.org/mt/89730153/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-