]> code.ossystems Code Review - openembedded-core.git/commitdiff
grub: Remove native version of grub-efi
authorJacob Kroon <jacob.kroon@gmail.com>
Mon, 22 Jun 2020 11:43:43 +0000 (13:43 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 23 Jun 2020 09:57:20 +0000 (10:57 +0100)
The native version of grub-efi only installs the tools

  /usr/bin/grub-editenv
  /usr/bin/grub-mkimage

to sysroots-components/, but equivalent tools are already provided by
grub-native, the difference on x86_64 being 4 hardwired paths in grub-mkimage
(values taken from grub-native):

  LOCALEDIR       = $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/usr/share/locale
  GRUB_DATADIR    = $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/usr/share
  GRUB_LIBDIR     = $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/usr/lib
  GRUB_SYSCONFDIR = $TMPDIR/work/x86_64-linux/grub-native/2.04-r0/recipe-sysroot-native/etc

If grub-native and grub-efi-native are built with the following patch

--- grub-2.04.orig/configure.ac
+++ grub-2.04/configure.ac
@@ -1980,10 +1980,10 @@ grub_libdir="$(eval echo "$libdir")"
 grub_localedir="$(eval echo "$localedir")"
 grub_datadir="$(eval echo "$datadir")"
 grub_sysconfdir="$(eval echo "$sysconfdir")"
-AC_DEFINE_UNQUOTED(LOCALEDIR, "$grub_localedir", [Locale dir])
-AC_DEFINE_UNQUOTED(GRUB_LIBDIR, "$grub_libdir", [Library dir])
-AC_DEFINE_UNQUOTED(GRUB_DATADIR, "$grub_datadir", [Data dir])
-AC_DEFINE_UNQUOTED(GRUB_SYSCONFDIR, "$grub_sysconfdir", [Configuration dir])
+AC_DEFINE_UNQUOTED(LOCALEDIR, "/non-existent", [Locale dir])
+AC_DEFINE_UNQUOTED(GRUB_LIBDIR, "/non-existent", [Library dir])
+AC_DEFINE_UNQUOTED(GRUB_DATADIR, "/non-existent", [Data dir])
+AC_DEFINE_UNQUOTED(GRUB_SYSCONFDIR, "/non-existent", [Configuration dir])

the produced grub-editenv/grub-mkimage binaries become binary equivalent,
assuming reproducible builds is active. Since the unpatched values of
LOCALEDIR/GRUB_DATADIR/GRUB_LIBDIR/GRUB_SYSCONFDIR point to directories that
are not expected to exist at runtime, they can be ignored.

Therefore:
 * remove grub-efi-native and instead rely on the same tools from
   grub-native
 * replace references to grub-efi-native with grub-native
 * remove unused grub-efi-native security flags overrides

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/conf/distro/include/security_flags.inc
meta/recipes-bsp/grub/grub-efi_2.04.bb
meta/recipes-bsp/grub/grub2.inc
meta/recipes-bsp/grub/grub_2.04.bb
meta/recipes-core/meta/wic-tools.bb

index a9e5b311afa81ace54ee7d86cdac0e4c316e389d..4e64eb99f9544df4cef35bd5f0412c5e07ddbef6 100644 (file)
@@ -40,10 +40,6 @@ SECURITY_CFLAGS_pn-glibc-testsuite = ""
 SECURITY_CFLAGS_pn-gcc-runtime = ""
 SECURITY_CFLAGS_pn-grub = ""
 SECURITY_CFLAGS_pn-grub-efi = ""
-SECURITY_CFLAGS_pn-grub-efi-native = ""
-SECURITY_CFLAGS_pn-grub-efi-x86-native = ""
-SECURITY_CFLAGS_pn-grub-efi-i586-native = ""
-SECURITY_CFLAGS_pn-grub-efi-x86-64-native = ""
 SECURITY_CFLAGS_pn-mkelfimage_x86 = ""
 
 SECURITY_CFLAGS_pn-valgrind = "${SECURITY_NOPIE_CFLAGS}"
index b9d6225d2774729a17f819552a2536dd7aab0d72..30d95f95e01edcc638da2155ea632b51ab218bc3 100644 (file)
@@ -4,8 +4,8 @@ require conf/image-uefi.conf
 
 GRUBPLATFORM = "efi"
 
-DEPENDS_append_class-target = " grub-efi-native"
-RDEPENDS_${PN}_class-target = "grub-common virtual/grub-bootconf"
+DEPENDS_append = " grub-native"
+RDEPENDS_${PN} = "grub-common virtual/grub-bootconf"
 
 SRC_URI += " \
            file://cfg \
@@ -51,22 +51,7 @@ do_mkimage() {
 
 addtask mkimage before do_install after do_compile
 
-do_mkimage_class-native() {
-       :
-}
-
-do_install_append_class-target() {
-       install -d ${D}${EFI_FILES_PATH}
-       install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE}
-}
-
-do_install_class-native() {
-       install -d ${D}${bindir}
-       install -m 755 grub-mkimage ${D}${bindir}
-       install -m 755 grub-editenv ${D}${bindir}
-}
-
-do_install_class-target() {
+do_install() {
     oe_runmake 'DESTDIR=${D}' -C grub-core install
 
     # Remove build host references...
@@ -76,6 +61,9 @@ do_install_class-target() {
         -e 's|${DEBUG_PREFIX_MAP}||g' \
         -e 's:${RECIPE_SYSROOT_NATIVE}::g' \
         {} +
+
+    install -d ${D}${EFI_FILES_PATH}
+    install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE}
 }
 
 do_install_append_aarch64() {
@@ -89,10 +77,6 @@ do_deploy() {
        install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR}
 }
 
-do_deploy_class-native() {
-       :
-}
-
 addtask deploy after do_install before do_build
 
 FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \
index b3291cb4b804ce31ed8d6dc7cfa234dfa136da49..2024e137827e3f765034b474fc2673ca0ed694af 100644 (file)
@@ -64,7 +64,3 @@ do_configure_prepend() {
        FROM_BOOTSTRAP=1 ${S}/autogen.sh
        cd ${B}
 }
-
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native"
index 9232ea81202f3f42340ba46f4648f86b87293409..df607cae14f8f192ae735a34aaabb5320ee97a1f 100644 (file)
@@ -2,9 +2,12 @@ require grub2.inc
 
 RDEPENDS_${PN}-common += "${PN}-editenv"
 RDEPENDS_${PN} += "${PN}-common"
+RDEPENDS_${PN}_class-native = ""
 
 RPROVIDES_${PN}-editenv += "${PN}-efi-editenv"
 
+PROVIDES_append_class-native = " grub-efi-native"
+
 PACKAGES =+ "${PN}-editenv ${PN}-common"
 FILES_${PN}-editenv = "${bindir}/grub-editenv"
 FILES_${PN}-common = " \
@@ -31,3 +34,5 @@ do_install_append () {
 
 INSANE_SKIP_${PN} = "arch"
 INSANE_SKIP_${PN}-dbg = "arch"
+
+BBCLASSEXTEND = "native"
index 8aeb942ed275e49b2cefda6603ba258a9b384e0b..3e7d0ed48d779736ad5f738f05152f5d980eac71 100644 (file)
@@ -4,7 +4,7 @@ LICENSE = "MIT"
 
 DEPENDS = "\
            parted-native syslinux-native gptfdisk-native dosfstools-native \
-           mtools-native bmap-tools-native grub-efi-native cdrtools-native \
+           mtools-native bmap-tools-native grub-native cdrtools-native \
            btrfs-tools-native squashfs-tools-native pseudo-native \
            e2fsprogs-native util-linux-native tar-native\
            "