similarity index 100%
rename from package/systemd/fakeroot_tmpfiles.sh
rename to package/skeleton-init-systemd/fakeroot_tmpfiles.sh
@@ -58,6 +58,12 @@ SKELETON_INIT_SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SKELETON_INIT_SYSTEMD_PRE_ROOTFS_V
endif
+define SKELETON_INIT_SYSTEMD_CREATE_TMPFILES_HOOK
+ HOST_SYSTEMD_TMPFILES=$(HOST_DIR)/bin/systemd-tmpfiles \
+ $(SKELETON_INIT_SYSTEMD_PKGDIR)/fakeroot_tmpfiles.sh $(TARGET_DIR)
+endef
+SKELETON_INIT_SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SKELETON_INIT_SYSTEMD_CREATE_TMPFILES_HOOK
+
define SKELETON_INIT_SYSTEMD_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/home
mkdir -p $(TARGET_DIR)/srv
@@ -739,12 +739,6 @@ define SYSTEMD_RM_CATALOG_UPDATE_SERVICE
endef
SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_RM_CATALOG_UPDATE_SERVICE
-define SYSTEMD_CREATE_TMPFILES_HOOK
- HOST_SYSTEMD_TMPFILES=$(HOST_DIR)/bin/systemd-tmpfiles \
- $(SYSTEMD_PKGDIR)/fakeroot_tmpfiles.sh $(TARGET_DIR)
-endef
-SYSTEMD_ROOTFS_PRE_CMD_HOOKS += SYSTEMD_CREATE_TMPFILES_HOOK
-
define SYSTEMD_PRESET_ALL
$(HOST_DIR)/bin/systemctl --root=$(TARGET_DIR) preset-all
endef
Commit 0d9b84b7a83f (package/systemd: invoke systemd-tmpfilesd on final image) forcefully introduced a call to systemd-tmpfiles as a per-rootfs hook, on the premise that would help with read-only rootfs. However, that did not account for the then-pre-existing handling of /var as a factory when the user opted not to remount / read-write (by not setting BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW). This means that, for users who want to use a factory for /var, the generated filesystem contains the factory files twice: once as stored in the factory, and once as populated by systemd-tmpefilesd. In the hope to reconcile the two solutions, we move the handling of calling systemd-tmpfilesd to the skeleton-init-systemd package, where we already handle the /var factory. Having the two in the same package will make it easier, in the future, to provide the user with a choice whether to use one of the other. Note that it is very important to keep the order of the hooks as they are. Indeed, skeleton-init-systemd sorts before systemd, so its hooks were registered before systemd's hooks; now that we move the CREATE_TMPFILES hook, we must ensure it is called after the PRE_ROOTFS_VAR one, so that the behaviour of acting on the var factory remains. As a final note: we chose the move this way, rather than move the var factory into the systemd package, because it is more related to the system integration on the Buildroot side, rather than the integration of the systemd package in Buildroot. Similarly, the other four rootfs hooks, SYSTEMD_LOCALE_PURGE_CATALOGS, SYSTEMD_UPDATE_CATALOGS, SYSTEMD_RM_CATALOG_UPDATE_SERVICE, and specially SYSTEMD_PRESET_ALL, should also be moved out of the systemd package, because they too are more related to the Buildroot system, rather than to the systemd package itself; but the frontier is very porous is either way, for such a package as special as systemd. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Norbert Lange <nolange79@gmail.com> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Romain Naour <romain.naour@smile.fr> Cc: Jérémy Rosen <jeremy.rosen@smile.fr> Cc: Yann E. MORIN <yann.morin@orange.com> --- .../{systemd => skeleton-init-systemd}/fakeroot_tmpfiles.sh | 0 package/skeleton-init-systemd/skeleton-init-systemd.mk | 6 ++++++ package/systemd/systemd.mk | 6 ------ 3 files changed, 6 insertions(+), 6 deletions(-) rename package/{systemd => skeleton-init-systemd}/fakeroot_tmpfiles.sh (100%)