3f7e96a01a
Some last-minute changes were made when applying commits7a68960b68
(boot/grub2/Config.in: add symbols to represent legacy and EFI boot) and4d5b209384
(package/mender-grubenv: fix grub module checks), and the renaming of the BR2_TARGET_GRUB_LEGACY was not fully propagated. This caused the path to the boot files to always be interpreted as being the EFI one, and never the legacy one. In practice, that was not causing any build failure, because the path was passed at build-time to mender-grubenv, that would use it as the location where to install its files, and finally as the location where our image-isntall commands would look for them. Still this is incorrect because it would not match where grub2 would eventually end up lookig for its files at runtime... To avoid further issue, drop the conditional block dedicated to setting the path to the boot files, drop the intermediate variable, and move setting the environment variable down into the existing conditional block. We do drop the intermediate variable, because there is no longer any genericity needed: the installation commands are already duplicated for the two cases anyway. Reported-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Adam Duskett <aduskett@gmail.com> Cc: Köry Maincent <kory.maincent@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
87 lines
2.8 KiB
Makefile
87 lines
2.8 KiB
Makefile
################################################################################
|
|
#
|
|
# mender-grubenv
|
|
#
|
|
################################################################################
|
|
|
|
MENDER_GRUBENV_VERSION = 1a7db967495bbe8be53b7a69dcb42822f39d9a74
|
|
MENDER_GRUBENV_SITE = $(call github,mendersoftware,grub-mender-grubenv,$(MENDER_GRUBENV_VERSION))
|
|
MENDER_GRUBENV_LICENSE = Apache-2.0
|
|
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) \
|
|
$(TARGET_MAKE_ENV)
|
|
|
|
MENDER_GRUBENV_DEFINES = \
|
|
$(or $(call qstrip,$(BR2_PACKAGE_MENDER_GRUBENV_DEFINES)),\
|
|
$(@D)/mender_grubenv_defines.example)
|
|
|
|
# These grub modules must be built in for the grub scripts to work properly.
|
|
# Without them, the system will not boot.
|
|
MENDER_GRUBENV_MANDATORY_MODULES = loadenv hashsum echo halt gcry_sha256 test regexp
|
|
|
|
ifeq ($(BR2_TARGET_GRUB2_HAS_LEGACY_BOOT),y)
|
|
MENDER_GRUBENV_MODULES_MISSING_PC = \
|
|
$(filter-out $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_PC)),\
|
|
$(MENDER_GRUBENV_MANDATORY_MODULES))
|
|
|
|
MENDER_GRUBENV_MAKE_ENV += ENV_DIR=/boot/grub
|
|
|
|
define MENDER_GRUBENV_INSTALL_I386_CFG
|
|
mkdir -p $(BINARIES_DIR)/boot-part/grub
|
|
cp -dpfr $(TARGET_DIR)/boot/grub/grub.cfg \
|
|
$(TARGET_DIR)/boot/grub/mender_grubenv* \
|
|
$(BINARIES_DIR)/boot-part/grub
|
|
endef
|
|
endif # BR2_TARGET_GRUB2_HAS_LEGACY_BOOT
|
|
|
|
ifeq ($(BR2_TARGET_GRUB2_HAS_EFI_BOOT),y)
|
|
MENDER_GRUBENV_MODULES_MISSING_EFI = \
|
|
$(filter-out $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI)),\
|
|
$(MENDER_GRUBENV_MANDATORY_MODULES))
|
|
|
|
MENDER_GRUBENV_MAKE_ENV += ENV_DIR=/boot/EFI/BOOT
|
|
|
|
define MENDER_GRUBENV_INSTALL_EFI_CFG
|
|
mkdir -p $(BINARIES_DIR)/efi-part/EFI/BOOT
|
|
cp -dpfr $(TARGET_DIR)/boot/EFI/BOOT/grub.cfg \
|
|
$(TARGET_DIR)/boot/EFI/BOOT/mender_grubenv* \
|
|
$(BINARIES_DIR)/efi-part/EFI/BOOT
|
|
endef
|
|
endif # BR2_TARGET_GRUB2_HAS_EFI_BOOT
|
|
|
|
ifeq ($(BR2_PACKAGE_MENDER_GRUBENV)$(BR_BUILDING),yy)
|
|
ifneq ($(MENDER_GRUBENV_MODULES_MISSING_EFI),)
|
|
$(error The following missing grub2 efi modules must be enabled for mender-grubenv \
|
|
to work: $(MENDER_GRUBENV_MODULES_MISSING_EFI))
|
|
endif
|
|
ifneq ($(MENDER_GRUBENV_MODULES_MISSING_PC),)
|
|
$(error The following missing grub2 pc modules must be enabled for mender-grubenv \
|
|
to work: $(MENDER_GRUBENV_MODULES_MISSING_PC))
|
|
endif
|
|
endif
|
|
|
|
define MENDER_GRUBENV_CONFIGURE_CMDS
|
|
$(INSTALL) -m 0644 $(MENDER_GRUBENV_DEFINES) $(@D)/mender_grubenv_defines
|
|
endef
|
|
|
|
define MENDER_GRUBENV_BUILD_CMDS
|
|
$(MENDER_GRUBENV_MAKE_ENV) $(MAKE) -C $(@D)
|
|
endef
|
|
|
|
define MENDER_GRUBENV_INSTALL_TARGET_CMDS
|
|
$(MENDER_GRUBENV_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install
|
|
endef
|
|
|
|
define MENDER_GRUBENV_INSTALL_IMAGES_CMDS
|
|
$(MENDER_GRUBENV_INSTALL_I386_CFG)
|
|
$(MENDER_GRUBENV_INSTALL_EFI_CFG)
|
|
endef
|
|
|
|
$(eval $(generic-package))
|