@@ -11,7 +11,6 @@ MENDER_GRUBENV_LICENSE_FILES = LICENSE
# Grub2 must be built first so this package can overwrite the config files
# provided by grub.
MENDER_GRUBENV_DEPENDENCIES = grub2
-MENDER_GRUBENV_INSTALL_IMAGES = YES
MENDER_GRUBENV_MAKE_ENV = \
$(TARGET_CONFIGURE_OPTS) \
@@ -34,12 +33,13 @@ MENDER_GRUBENV_MAKE_ENV += BOOT_DIR=/boot/grub
define MENDER_GRUBENV_INSTALL_I386_CFG
mkdir -p $(BINARIES_DIR)/boot-part/grub
- cp -dpfr $(@D)/mender_grub.cfg \
+ cp -dpfr $(MENDER_GRUBENV_BUILDDIR)/mender_grub.cfg \
$(TARGET_DIR)/boot/grub/grub.cfg
cp -dpfr $(TARGET_DIR)/boot/grub/grub.cfg \
$(TARGET_DIR)/boot/grub/grub-mender-grubenv \
$(BINARIES_DIR)/boot-part/
endef
+MENDER_GRUBENV_TARGET_FINALIZE_HOOKS += MENDER_GRUBENV_INSTALL_I386_CFG
endif # BR2_TARGET_GRUB2_HAS_LEGACY_BOOT
ifeq ($(BR2_TARGET_GRUB2_HAS_EFI_BOOT),y)
@@ -51,13 +51,14 @@ MENDER_GRUBENV_MAKE_ENV += BOOT_DIR=/boot/EFI/BOOT
define MENDER_GRUBENV_INSTALL_EFI_CFG
mkdir -p $(BINARIES_DIR)/efi-part/EFI/BOOT
- cp -dpfr $(@D)/mender_grub.cfg \
+ cp -dpfr $(MENDER_GRUBENV_BUILDDIR)/mender_grub.cfg \
$(TARGET_DIR)/boot/EFI/BOOT/grub.cfg
cp -dpfr $(TARGET_DIR)/boot/EFI/BOOT/grub.cfg \
$(BINARIES_DIR)/efi-part/EFI/BOOT
cp -dpfr $(TARGET_DIR)/boot/EFI/BOOT/grub-mender-grubenv \
$(BINARIES_DIR)/efi-part/
endef
+MENDER_GRUBENV_TARGET_FINALIZE_HOOKS += MENDER_GRUBENV_INSTALL_EFI_CFG
endif # BR2_TARGET_GRUB2_HAS_EFI_BOOT
ifeq ($(BR2_PACKAGE_MENDER_GRUBENV)$(BR_BUILDING),yy)
@@ -86,9 +87,4 @@ define MENDER_GRUBENV_INSTALL_TARGET_CMDS
echo 'ENV_DIR=/boot/grub-mender-grubenv' > $(TARGET_DIR)/etc/mender_grubenv.config
endef
-define MENDER_GRUBENV_INSTALL_IMAGES_CMDS
- $(MENDER_GRUBENV_INSTALL_I386_CFG)
- $(MENDER_GRUBENV_INSTALL_EFI_CFG)
-endef
-
$(eval $(generic-package))
Normally, two packages should never touch the same file. However, the mender-grubenv package is a special case, as its sole purpose is to overwrite the grub.cfg file. As per-package directory building has no guarantee that the grub package is rsynced to the target directory before the mender-grubenv package, this leads to the possiblity that mender-grubenvs grub.conf file is overwritten with the stock grub2 packages grub.conf file. Instead of a MENDER_GRUBENV_INSTALL_I386_CFG and MENDER_GRUBENV_INSTALL_EFI_CFG being part if MENDER_GRUBENV_INSTALL_IMAGES_CMDS, move them to TARGET_FINALIZE_HOOKS. This guarantees that the grub.cfg provided by the mender-grubenv package is installed after grub.conf provided by the grub2 package. Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> --- package/mender-grubenv/mender-grubenv.mk | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)