mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-08 00:20:38 -09:00
package/mender-grubenv: Fix per-package building
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> Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
This commit is contained in:
committed by
Arnout Vandecappelle
parent
699b3c38fd
commit
aa3ba97554
@@ -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 util-linux
|
||||
MENDER_GRUBENV_INSTALL_IMAGES = YES
|
||||
|
||||
MENDER_GRUBENV_MAKE_ENV = \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
@@ -34,12 +33,13 @@ MENDER_GRUBENV_MAKE_ENV += BOOT_DIR=/boot
|
||||
|
||||
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-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))
|
||||
|
||||
Reference in New Issue
Block a user