pkg-infra: do the package install before installing init files
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 6 Jul 2014 13:45:47 +0000 (15:45 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 6 Jul 2014 20:25:24 +0000 (22:25 +0200)
The init hooks may reference files installed by the package. For
example, when a package installs systemd unit files, and wants them
enabled/disabled by default, the init hook may move/symlink/rename the
unit files.

Currently, the init hooks are called before the package is installed,
thus breaking the use-case above.

Just inverse the install order, so that a package is installed before
its init hooks are called.

Fixes: http://autobuild.buildroot.net/results/5b03174318d8a6dc3112053ff141b70a90869c20/
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/pkg-generic.mk

index b7f50a538be74c2232ea4ab655216b98715920d8..bc8a12e4d7562ab4e07abae8334171bac40bfbe5 100644 (file)
@@ -228,11 +228,11 @@ $(BUILD_DIR)/%/.stamp_target_installed:
        @$(call step_start,install-target)
        @$(call MESSAGE,"Installing to target")
        $(foreach hook,$($(PKG)_PRE_INSTALL_TARGET_HOOKS),$(call $(hook))$(sep))
+       +$($(PKG)_INSTALL_TARGET_CMDS)
        $(if $(BR2_INIT_SYSTEMD),\
                $($(PKG)_INSTALL_INIT_SYSTEMD))
        $(if $(BR2_INIT_SYSV)$(BR2_INIT_BUSYBOX),\
                $($(PKG)_INSTALL_INIT_SYSV))
-       +$($(PKG)_INSTALL_TARGET_CMDS)
        $(foreach hook,$($(PKG)_POST_INSTALL_TARGET_HOOKS),$(call $(hook))$(sep))
        $(Q)if test -n "$($(PKG)_CONFIG_SCRIPTS)" ; then \
                $(RM) -f $(addprefix $(TARGET_DIR)/usr/bin/,$($(PKG)_CONFIG_SCRIPTS)) ; \