summaryrefslogtreecommitdiffstats
path: root/meta/recipes-bsp/grub/grub_2.04.bb
Commit message (Collapse)AuthorAgeFilesLines
* grub: shuffle packaging for aarch64 buildsRoss Burton2021-02-231-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even in grub-efi platforms we need to build grub for the the common tools. On x86 this isn't a problem because grub builds legacy boot and grub-efi builds EFI, but on aarch64 there is no legacy boot supported by grub. To ensure that the common tools are built the grub recipe also builds EFI binaries, but this now means that grub and grub-efi ship the same binaries. oe-core 933286 fixed this conflict by deleting the binaries from grub-efi and putting the aarch64 modules into grub-common (relying on dependencies to pull grub-common in). This seems backwards: grub-efi no longer contains the binaries and they're in different packages on arm or x86. Also, SDK generation is broken as the grub package itself is now empty as the binaries are in grub-common. Resolve all of these issues by reversing the logic: grub-efi is the package which holds the EFI binaries on all platforms. grub only builds for EFI on aarch64 as a way to build the common binaries, so delete them in that recipe to avoid conflicts. And finally as the grub recipe is empty on aarch64 but needed by dependencies, set ALLOW_EMPTY. (From OE-Core rev: 801c10b33eb2074677d46b361e46f47b693b573a) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* grub: add grub-nativesdkKhasim Mohammed2020-10-301-1/+1
| | | | | | | | | | | | | Add nativesdk support to make grub-mkimage tool part of Host tools in the generated SDK. The conf file should have "TOOLCHAIN_HOST_TASK_append = " nativesdk-grub" for the grub-mkimage to show up. (From OE-Core rev: cc88a1b04c062373e0db15f7f7e6a26013c050fb) Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* grub: Remove native version of grub-efiJacob Kroon2020-06-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 (From OE-Core rev: 7044181df7487f047d175242f7ebbc3c35bf5402) Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* grub: remove diffutils and freetype runtime dependenciesYi Zhao2019-09-161-1/+1
| | | | | | | | | | | | | | | The diffutils runtime dependency was introduced from legacy grub since the script grub-install invokes cmp command which is from diffutils package. But in Grub2 the grub-install has been rewritten with C language. So this package isn't needed anymore. The freetype runtime dependency is for grub-mkfont but we have explicitly disabled grub-mkfont build. It is safe to remove it. (From OE-Core rev: 56e4e05417f8ddba60a8b76fa4c8834aa8ea4692) Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* grub/grub-efi: fix conflict for aach64Changqing Li2019-08-121-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MACHINE = qemuarm64 IMAGE_INSTALL_append = ' grub grub-efi' do_rootfs failed with error: file /usr/lib64/grub/arm64-efi/acpi.module conflicts between attempted installs of grub-2.02-r0.aarch64 and grub-efi-2.02-r0.aarch64 file /usr/lib64/grub/arm64-efi/adler32.module conflicts between attempted installs of grub-2.02-r0.aarch64 and grub-efi-2.02-r0.aarch64 ... file /usr/lib64/grub/arm64-efi/zfsinfo.module conflicts between attempted installs of grub-2.02-r0.aarch64 and grub-efi-2.02-r0.aarch64 For arm64, grub and grub-efi both compiled GRUBD2 with platform arm64-efi, arm64 only support platform efi. So both packages have almost same folder and content /usr/lib64/grub/arm64-efi/* if Machine set to qemux86_64, do_rootfs will not have this problem, since for grub, it compiled with platform i386-pc, for grub-efi, compiled with platform x86-64-efi. >From commit: commit 4e9bb03238af48c70075037a77094a8c1bddf284 Author: Hongxu Jia <hongxu.jia@windriver.com> Date: Wed Jan 17 03:25:58 2018 -0500 grub/grub-efi: fix conflict While installing grub and grub-efi, there are conflict files in ${sysconfdir} ${datadir} ${bindir} ${sbindir}. - Since all of the conflicted files are tools which is common for grub and grub-efi, we split them (except grub-editenv) to grub-common in grub. common tools for grub and grub-efi are installed into grub-common, for aarch64, also shipped libdir into this common packages. in this way, for qemuarm64, package grub is empty, and package grub-efi use lib in package grub-common (From OE-Core rev: 933286bdcb9008b75007abedf30cc1b4b6e2f0d0) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* grub: upgrade 2.02 -> 2.04Anuj Mittal2019-07-311-0/+29
* For changes in this version, see: http://git.savannah.gnu.org/cgit/grub.git/tree/NEWS?h=grub-2.04 * Remove backported patches and refresh others. * Remove the musl patch as it's no longer needed. * Use configure option --disable-werror instead of passing through CFLAGS. (From OE-Core rev: 07222d213d1da0ccade1c61ed19a7ecdc4966edd) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>