From 0f528608eb48809955b2610ecc4bd689f1cf8899 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 15 Jun 2021 10:12:26 +0200 Subject: grub: upgrade 2.04+2.06~rc1 -> 2.06 Signed-off-by: Alexander Kanavin Signed-off-by: Richard Purdie --- meta/recipes-bsp/grub/grub-efi_2.06.bb | 91 ++++++++++++++++++++++++++++++++++ meta/recipes-bsp/grub/grub-efi_git.bb | 89 --------------------------------- meta/recipes-bsp/grub/grub2.inc | 19 +------ meta/recipes-bsp/grub/grub_2.06.bb | 41 +++++++++++++++ meta/recipes-bsp/grub/grub_git.bb | 41 --------------- 5 files changed, 134 insertions(+), 147 deletions(-) create mode 100644 meta/recipes-bsp/grub/grub-efi_2.06.bb delete mode 100644 meta/recipes-bsp/grub/grub-efi_git.bb create mode 100644 meta/recipes-bsp/grub/grub_2.06.bb delete mode 100644 meta/recipes-bsp/grub/grub_git.bb (limited to 'meta/recipes-bsp') diff --git a/meta/recipes-bsp/grub/grub-efi_2.06.bb b/meta/recipes-bsp/grub/grub-efi_2.06.bb new file mode 100644 index 0000000000..287845c507 --- /dev/null +++ b/meta/recipes-bsp/grub/grub-efi_2.06.bb @@ -0,0 +1,91 @@ +require grub2.inc + +require conf/image-uefi.conf + +GRUBPLATFORM = "efi" + +DEPENDS_append = " grub-native" +RDEPENDS_${PN} = "grub-common virtual/grub-bootconf" + +SRC_URI += " \ + file://cfg \ + " + +S = "${WORKDIR}/grub-${PV}" + +# Determine the target arch for the grub modules +python __anonymous () { + import re + target = d.getVar('TARGET_ARCH') + prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-" + if target == "x86_64": + grubtarget = 'x86_64' + elif re.match('i.86', target): + grubtarget = 'i386' + elif re.match('aarch64', target): + grubtarget = 'arm64' + elif re.match('arm', target): + grubtarget = 'arm' + elif re.match('riscv64', target): + grubtarget = 'riscv64' + elif re.match('riscv32', target): + grubtarget = 'riscv32' + else: + raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target) + grubimage = prefix + d.getVar("EFI_BOOT_IMAGE") + d.setVar("GRUB_TARGET", grubtarget) + d.setVar("GRUB_IMAGE", grubimage) + prefix = "grub-efi-" if prefix == "" else "" + d.setVar("GRUB_IMAGE_PREFIX", prefix) +} + +inherit deploy + +CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" +EXTRA_OECONF += "--enable-efiemu=no" + +do_mkimage() { + cd ${B} + # Search for the grub.cfg on the local boot media by using the + # built in cfg file provided via this recipe + grub-mkimage -c ../cfg -p ${EFIDIR} -d ./grub-core/ \ + -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \ + ${GRUB_BUILDIN} +} + +addtask mkimage before do_install after do_compile + +do_install() { + oe_runmake 'DESTDIR=${D}' -C grub-core install + + # Remove build host references... + find "${D}" -name modinfo.sh -type f -exec \ + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -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} +} + +GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \ + efi_gop iso9660 configfile search loadenv test" + +do_deploy() { + install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR} +} + +addtask deploy after do_install before do_build + +FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \ + ${datadir}/grub \ + ${EFI_FILES_PATH}/${GRUB_IMAGE} \ + " + +# 64-bit binaries are expected for the bootloader with an x32 userland +INSANE_SKIP_${PN}_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch" +INSANE_SKIP_${PN}_append_linux-muslx32 = " arch" +INSANE_SKIP_${PN}-dbg_append_linux-muslx32 = " arch" diff --git a/meta/recipes-bsp/grub/grub-efi_git.bb b/meta/recipes-bsp/grub/grub-efi_git.bb deleted file mode 100644 index 240fde7dbf..0000000000 --- a/meta/recipes-bsp/grub/grub-efi_git.bb +++ /dev/null @@ -1,89 +0,0 @@ -require grub2.inc - -require conf/image-uefi.conf - -GRUBPLATFORM = "efi" - -DEPENDS_append = " grub-native" -RDEPENDS_${PN} = "grub-common virtual/grub-bootconf" - -SRC_URI += " \ - file://cfg \ - " - -# Determine the target arch for the grub modules -python __anonymous () { - import re - target = d.getVar('TARGET_ARCH') - prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-" - if target == "x86_64": - grubtarget = 'x86_64' - elif re.match('i.86', target): - grubtarget = 'i386' - elif re.match('aarch64', target): - grubtarget = 'arm64' - elif re.match('arm', target): - grubtarget = 'arm' - elif re.match('riscv64', target): - grubtarget = 'riscv64' - elif re.match('riscv32', target): - grubtarget = 'riscv32' - else: - raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target) - grubimage = prefix + d.getVar("EFI_BOOT_IMAGE") - d.setVar("GRUB_TARGET", grubtarget) - d.setVar("GRUB_IMAGE", grubimage) - prefix = "grub-efi-" if prefix == "" else "" - d.setVar("GRUB_IMAGE_PREFIX", prefix) -} - -inherit deploy - -CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN=" -EXTRA_OECONF += "--enable-efiemu=no" - -do_mkimage() { - cd ${B} - # Search for the grub.cfg on the local boot media by using the - # built in cfg file provided via this recipe - grub-mkimage -c ../cfg -p ${EFIDIR} -d ./grub-core/ \ - -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \ - ${GRUB_BUILDIN} -} - -addtask mkimage before do_install after do_compile - -do_install() { - oe_runmake 'DESTDIR=${D}' -C grub-core install - - # Remove build host references... - find "${D}" -name modinfo.sh -type f -exec \ - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -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} -} - -GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \ - efi_gop iso9660 configfile search loadenv test" - -do_deploy() { - install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${DEPLOYDIR} -} - -addtask deploy after do_install before do_build - -FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \ - ${datadir}/grub \ - ${EFI_FILES_PATH}/${GRUB_IMAGE} \ - " - -# 64-bit binaries are expected for the bootloader with an x32 userland -INSANE_SKIP_${PN}_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch" -INSANE_SKIP_${PN}_append_linux-muslx32 = " arch" -INSANE_SKIP_${PN}-dbg_append_linux-muslx32 = " arch" diff --git a/meta/recipes-bsp/grub/grub2.inc b/meta/recipes-bsp/grub/grub2.inc index 3c6b434c2d..19294760c4 100644 --- a/meta/recipes-bsp/grub/grub2.inc +++ b/meta/recipes-bsp/grub/grub2.inc @@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" CVE_PRODUCT = "grub2" -SRC_URI = "https://alpha.gnu.org/gnu/grub/grub-${REALPV}.tar.xz \ +SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \ file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \ file://autogen.sh-exclude-pc.patch \ file://grub-module-explicitly-keeps-symbole-.module_license.patch \ @@ -22,26 +22,11 @@ SRC_URI = "https://alpha.gnu.org/gnu/grub/grub-${REALPV}.tar.xz \ file://0001-RISC-V-Restore-the-typcast-to-long.patch \ " -SRC_URI[sha256sum] = "2c87f1f21e2ab50043e6cd9163c08f1b6c3a6171556bf23ff9ed65b074145484" - -REALPV = "2.06~rc1" -PV = "2.04+${REALPV}" - -# Fixed in 2.06~rc1, can be removed for 2.06 final -CVE_CHECK_WHITELIST += "\ - CVE-2020-14308 CVE-2020-14309 CVE-2020-14310 CVE-2020-14311 CVE-2020-10713 \ - CVE-2020-14372 CVE-2020-15705 CVE-2020-15706 CVE-2020-15707 \ - CVE-2020-25632 CVE-2020-25647 CVE-2020-27749 CVE-2020-27779 \ - CVE-2021-3418 CVE-2021-20225 CVE-2021-20233" +SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f" # Applies only to RHEL CVE_CHECK_WHITELIST += "CVE-2019-14865" -S = "${WORKDIR}/grub-${REALPV}" - -UPSTREAM_CHECK_URI = "${GNU_MIRROR}/grub" -UPSTREAM_CHECK_REGEX = "grub-(?P\d+(\.\d+)+)\.tar\.(gz|xz)" - DEPENDS = "flex-native bison-native gettext-native" COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|riscv.*)-(linux.*|freebsd.*)' diff --git a/meta/recipes-bsp/grub/grub_2.06.bb b/meta/recipes-bsp/grub/grub_2.06.bb new file mode 100644 index 0000000000..d4e09faa40 --- /dev/null +++ b/meta/recipes-bsp/grub/grub_2.06.bb @@ -0,0 +1,41 @@ +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 = " \ + ${bindir} \ + ${sysconfdir} \ + ${sbindir} \ + ${datadir}/grub \ +" +ALLOW_EMPTY_${PN} = "1" + +do_install_append () { + # Avoid conflicts with the EFI package for systems such as arm64 where we + # need to build grub and grub-efi but only EFI is supported by removing EFI + # from this package. + rm -rf ${D}${libdir}/grub/*-efi/ + rmdir --ignore-fail-on-non-empty ${D}${libdir}/grub ${D}${libdir} + + install -d ${D}${sysconfdir}/grub.d + # Remove build host references... + find "${D}" -name modinfo.sh -type f -exec \ + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ + {} + +} + +INSANE_SKIP_${PN} = "arch" +INSANE_SKIP_${PN}-dbg = "arch" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-bsp/grub/grub_git.bb b/meta/recipes-bsp/grub/grub_git.bb deleted file mode 100644 index d4e09faa40..0000000000 --- a/meta/recipes-bsp/grub/grub_git.bb +++ /dev/null @@ -1,41 +0,0 @@ -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 = " \ - ${bindir} \ - ${sysconfdir} \ - ${sbindir} \ - ${datadir}/grub \ -" -ALLOW_EMPTY_${PN} = "1" - -do_install_append () { - # Avoid conflicts with the EFI package for systems such as arm64 where we - # need to build grub and grub-efi but only EFI is supported by removing EFI - # from this package. - rm -rf ${D}${libdir}/grub/*-efi/ - rmdir --ignore-fail-on-non-empty ${D}${libdir}/grub ${D}${libdir} - - install -d ${D}${sysconfdir}/grub.d - # Remove build host references... - find "${D}" -name modinfo.sh -type f -exec \ - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - -e 's:${RECIPE_SYSROOT_NATIVE}::g' \ - {} + -} - -INSANE_SKIP_${PN} = "arch" -INSANE_SKIP_${PN}-dbg = "arch" - -BBCLASSEXTEND = "native nativesdk" -- cgit 1.2.3-korg