All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/mender-grubenv: fix install for legacy BIOS or ARM U-Boot
@ 2021-12-04 23:13 Yann E. MORIN
  2021-12-05 11:27 ` Peter Korsgaard
  0 siblings, 1 reply; 2+ messages in thread
From: Yann E. MORIN @ 2021-12-04 23:13 UTC (permalink / raw)
  To: buildroot; +Cc: Köry Maincent, Yann E. MORIN, Adam Duskett

Some last-minute changes were made when applying commits 7a68960b682c0
(boot/grub2/Config.in: add symbols to represent legacy and EFI boot) and
4d5b209384e0 (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>
---
 package/mender-grubenv/mender-grubenv.mk | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/package/mender-grubenv/mender-grubenv.mk b/package/mender-grubenv/mender-grubenv.mk
index 6b8800e1de..9d5be8d8f4 100644
--- a/package/mender-grubenv/mender-grubenv.mk
+++ b/package/mender-grubenv/mender-grubenv.mk
@@ -13,16 +13,9 @@ MENDER_GRUBENV_LICENSE_FILES = LICENSE
 MENDER_GRUBENV_DEPENDENCIES = grub2
 MENDER_GRUBENV_INSTALL_IMAGES = YES
 
-ifeq ($(BR2_TARGET_GRUB_LEGACY),y)
-MENDER_GRUBENV_ENV_DIR = /boot/grub
-else
-MENDER_GRUBENV_ENV_DIR = /boot/EFI/BOOT
-endif
-
 MENDER_GRUBENV_MAKE_ENV = \
 	$(TARGET_CONFIGURE_OPTS) \
-	$(TARGET_MAKE_ENV) \
-	ENV_DIR=$(MENDER_GRUBENV_ENV_DIR)
+	$(TARGET_MAKE_ENV)
 
 MENDER_GRUBENV_DEFINES = \
 	$(or $(call qstrip,$(BR2_PACKAGE_MENDER_GRUBENV_DEFINES)),\
@@ -37,10 +30,12 @@ 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)$(MENDER_GRUBENV_ENV_DIR)/grub.cfg \
-		$(TARGET_DIR)$(MENDER_GRUBENV_ENV_DIR)/mender_grubenv* \
+	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
@@ -50,10 +45,12 @@ 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)$(MENDER_GRUBENV_ENV_DIR)/grub.cfg \
-		$(TARGET_DIR)$(MENDER_GRUBENV_ENV_DIR)/mender_grubenv* \
+	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
-- 
2.25.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH] package/mender-grubenv: fix install for legacy BIOS or ARM U-Boot
  2021-12-04 23:13 [Buildroot] [PATCH] package/mender-grubenv: fix install for legacy BIOS or ARM U-Boot Yann E. MORIN
@ 2021-12-05 11:27 ` Peter Korsgaard
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Korsgaard @ 2021-12-05 11:27 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: Köry Maincent, Adam Duskett, buildroot

>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > Some last-minute changes were made when applying commits 7a68960b682c0
 > (boot/grub2/Config.in: add symbols to represent legacy and EFI boot) and
 > 4d5b209384e0 (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>

Committed, thanks.

-- 
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-12-05 11:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-04 23:13 [Buildroot] [PATCH] package/mender-grubenv: fix install for legacy BIOS or ARM U-Boot Yann E. MORIN
2021-12-05 11:27 ` Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.