fs: run filesystem hooks under fakeroot
authorYann E. MORIN <yann.morin.1998@free.fr>
Sat, 31 Mar 2018 09:05:47 +0000 (11:05 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 31 Mar 2018 18:47:25 +0000 (20:47 +0200)
Currently, the pre-gen hooks of the various filesystems are run before
we enter the fakeroot.

However, this precludes those hooks from doing actions that require
root, like creating a pseudo-device or the likes.

So, move those pre-gen hooks under fakeroot.

This has currently no side-effect, as they are still called before
everything else in the fakeroot script, even the system-wide chown call.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
fs/common.mk

index 6d579db810013a0a1d874587a15cda443ca00c48..274a3e9c7b15da1c266d354790fa3848e6a11014 100644 (file)
@@ -76,9 +76,10 @@ $$(BINARIES_DIR)/rootfs.$(1): target-finalize $$(ROOTFS_$(2)_DEPENDENCIES)
        @$$(call MESSAGE,"Generating root filesystem image rootfs.$(1)")
        rm -rf $(FS_DIR)
        mkdir -p $(FS_DIR)
-       $$(foreach hook,$$(ROOTFS_$(2)_PRE_GEN_HOOKS),$$(call $$(hook))$$(sep))
        echo '#!/bin/sh' > $$(FAKEROOT_SCRIPT)
        echo "set -e" >> $$(FAKEROOT_SCRIPT)
+       $$(foreach hook,$$(ROOTFS_$(2)_PRE_GEN_HOOKS),\
+               $$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT)$$(sep))
        echo "chown -h -R 0:0 $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
 ifneq ($$(ROOTFS_USERS_TABLES),)
        cat $$(ROOTFS_USERS_TABLES) >> $$(USERS_TABLE)