boot/gummiboot: remove package

The gummiboot package currently fails to build due to incompatibilies
with recent versions of the gnu-efi code.

It turns out that gummiboot has been marked deprecated/obsolete by its
maintainer since July 2015:

  https://cgit.freedesktop.org/gummiboot/commit/?id=55df1539c9d330732e88bd196afee386db6e4a1d&utm_source=anzwix

Indeed, gummiboot ended up being integrated as part of systemd as
systemd-boot. While it made sense for a while to keep it as a separate
standalone package, it is not possible to maintain it in Buildroot
without an active upstream, and there are other options for simple EFI
bootloaders these days.

Therefore, let's retire this package.

Fixes:

  http://autobuild.buildroot.net/results/5929104a868d2f69ec1b71e5e897b6d1ebf347cf/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Thomas Petazzoni 2022-09-20 08:44:20 +02:00 committed by Yann E. MORIN
parent 5aab8c59d5
commit 488a87514e
9 changed files with 8 additions and 159 deletions

View File

@ -146,6 +146,14 @@ endif
comment "Legacy options removed in 2023.02"
config BR2_TARGET_GUMMIBOOT
bool "gummiboot removed"
select BR2_LEGACY
help
gummiboot has been deprecated since 2015, with no further
updates. It became integrated into the systemd project as
systemd-boot.
config BR2_PACKAGE_IPUTILS_NINFOD
bool "iputils 20221126 removed ninfod"
select BR2_LEGACY

View File

@ -845,7 +845,6 @@ N: Ernesto L. Williams Jr <realcontrols@gmail.com>
F: package/szip/
N: Esben Haabendal <esben@haabendal.dk>
F: boot/gummiboot/
F: package/python-kiwisolver/
N: Etienne Carriere <etienne.carriere@linaro.org>
@ -2865,7 +2864,6 @@ F: boot/beaglev-ddrinit/
F: boot/beaglev-secondboot/
F: boot/boot-wrapper-aarch64/
F: boot/grub2/
F: boot/gummiboot/
F: configs/beaglev_defconfig
F: configs/stm32mp157c_dk2_defconfig
F: package/android-tools/

View File

@ -12,7 +12,6 @@ source "boot/binaries-marvell/Config.in"
source "boot/boot-wrapper-aarch64/Config.in"
source "boot/edk2/Config.in"
source "boot/grub2/Config.in"
source "boot/gummiboot/Config.in"
source "boot/lpc32xxcdl/Config.in"
source "boot/mv-ddr-marvell/Config.in"
source "boot/mxs-bootlets/Config.in"

View File

@ -1,31 +0,0 @@
From 40ab4167b5a45c772304a879c71b47d54de3b0e3 Mon Sep 17 00:00:00 2001
From: Esben Haabendal <esben@haabendal.dk>
Date: Wed, 20 Mar 2019 14:19:40 +0100
Subject: [PATCH] Allow building with newer glibc versions
Newer glibc versions does not include sys/sysmacros.h from sys/types.h
anymore. Including it unconditionally should be safe.
See https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html for why
this was done.
Signed-off-by: Esben Haabendal <esben@haabendal.dk>
---
src/setup/setup.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/setup/setup.c b/src/setup/setup.c
index 6a4275a2ae36..53429375a146 100644
--- a/src/setup/setup.c
+++ b/src/setup/setup.c
@@ -37,6 +37,7 @@
#include <ftw.h>
#include <stdbool.h>
#include <blkid.h>
+#include <sys/sysmacros.h>
#include "efivars.h"
--
2.21.0

View File

@ -1,54 +0,0 @@
From fc05ced797b87286b8ec7303fe32bf200a072972 Mon Sep 17 00:00:00 2001
From: Esben Haabendal <esben@haabendal.dk>
Date: Mon, 18 Mar 2019 11:14:31 +0100
Subject: [PATCH] Fix linking for non-host compatible targets
Without this, gummiboot build system will use host 'ld' when linking
target binary, which is obviously not a good idea.
Signed-off-by: Esben Haabendal <esben@haabendal.dk>
---
Makefile.am | 4 ++--
configure.ac | 4 ++++
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 6568a355ed74..9051dd44edd9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -142,7 +142,7 @@ $(top_builddir)/src/efi/%.o: $(top_srcdir)/src/efi/%.c $(addprefix $(top_srcdir)
$(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@
$(gummiboot_solib): $(gummiboot_objects)
- $(AM_V_CCLD)$(LD) $(efi_ldflags) $(gummiboot_objects) \
+ $(AM_V_CCLD)$(EFI_LD) $(efi_ldflags) $(gummiboot_objects) \
-o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \
nm -D -u $@ | grep ' U ' && exit 1 || :
.DELETE_ON_ERROR: $(gummboot_solib)
@@ -177,7 +177,7 @@ $(top_builddir)/src/efi/%.o: $(top_srcdir)/src/efi/%.c $(addprefix $(top_srcdir)
$(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@
$(stub_solib): $(stub_objects)
- $(AM_V_CCLD)$(LD) $(efi_ldflags) $(stub_objects) \
+ $(AM_V_CCLD)$(EFI_LD) $(efi_ldflags) $(stub_objects) \
-o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \
nm -D -u $@ | grep ' U ' && exit 1 || :
.DELETE_ON_ERROR: $(gummboot_solib)
diff --git a/configure.ac b/configure.ac
index 27bbe1d73396..b948696c220b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,6 +40,10 @@ dnl Don't try to use things like -std=c99 for efi compilation
EFI_CC=$CC
AC_SUBST([EFI_CC])
+dnl Allow specifying linker compatible with the compiler
+EFI_LD=$LD
+AC_SUBST([EFI_LD])
+
AC_PROG_CC_C99
AM_PROG_CC_C_O
AC_PROG_GCC_TRADITIONAL
--
2.21.0

View File

@ -1,24 +0,0 @@
config BR2_TARGET_GUMMIBOOT
bool "gummiboot"
depends on BR2_i386 || BR2_x86_64
depends on BR2_PACKAGE_GNU_EFI_ARCH_SUPPORTS
select BR2_PACKAGE_GNU_EFI
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
help
gummiboot is a simple UEFI boot manager which executes
configured EFI images. The default entry is selected by a
configured pattern (glob) or an on-screen menu.
gummiboot operates on the EFI System Partition (ESP)
only. Configuration file fragments, kernels, initrds, other
EFI images need to reside on the ESP. Linux kernels need to
be built with CONFIG_EFI_STUB to be able to be directly
executed as an EFI image.
See the Grub2 help text for details on preparing an EFI
capable disk image using Gummiboot: the instructions are
exactly the same, except that the Gummiboot configuration
files will be located in /loader/ inside the EFI partition.
http://freedesktop.org/wiki/Software/gummiboot/

View File

@ -1,4 +0,0 @@
title Buildroot
version 1
linux /bzImage
options console=ttyS0 root=/dev/sda2

View File

@ -1,41 +0,0 @@
################################################################################
#
# gummiboot
#
################################################################################
GUMMIBOOT_SITE = https://gitlab.freedesktop.org/archived-projects/gummiboot.git
GUMMIBOOT_SITE_METHOD = git
GUMMIBOOT_VERSION = 2bcd919c681c952eb867ef1bdb458f1bc49c2d55
GUMMIBOOT_LICENSE = LGPL-2.1+
GUMMIBOOT_LICENSE_FILES = LICENSE
# The git archive does not have the autoconf/automake stuff generated.
GUMMIBOOT_AUTORECONF = YES
GUMMIBOOT_DEPENDENCIES = gnu-efi host-pkgconf util-linux
GUMMIBOOT_INSTALL_TARGET = NO
GUMMIBOOT_INSTALL_IMAGES = YES
ifeq ($(BR2_i386),y)
GUMMIBOOT_IMGARCH = ia32
else ifeq ($(BR2_x86_64),y)
GUMMIBOOT_IMGARCH = x64
endif
GUMMIBOOT_CONF_OPTS = \
--host=$(BR2_ARCH) \
--with-efi-libdir=$(STAGING_DIR)/usr/lib \
--with-efi-ldsdir=$(STAGING_DIR)/usr/lib \
--with-efi-includedir=$(STAGING_DIR)/usr/include \
--disable-manpages
define GUMMIBOOT_INSTALL_IMAGES_CMDS
$(INSTALL) -D -m 0644 $(@D)/gummiboot$(GUMMIBOOT_IMGARCH).efi \
$(BINARIES_DIR)/efi-part/EFI/BOOT/boot$(GUMMIBOOT_IMGARCH).efi
$(INSTALL) -D -m 0644 boot/gummiboot/loader.conf \
$(BINARIES_DIR)/efi-part/loader/loader.conf
$(INSTALL) -D -m 0644 boot/gummiboot/buildroot.conf \
$(BINARIES_DIR)/efi-part/loader/entries/buildroot.conf
endef
$(eval $(autotools-package))

View File

@ -1,2 +0,0 @@
timeout 3
default buildroot