From dc22ea774c782d6e861f65d82a38e8f5f3146986 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 4 Mar 2012 20:24:45 +0100 Subject: [PATCH] grub: Enable support for x86_64. Also EFI. --- grub/grub.nm | 85 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 76 insertions(+), 9 deletions(-) diff --git a/grub/grub.nm b/grub/grub.nm index cea1a68bd..feb62bad7 100644 --- a/grub/grub.nm +++ b/grub/grub.nm @@ -5,8 +5,8 @@ name = grub version = 1.99 -release = 3 -sup_arches = i686 +release = 4 +sup_arches = x86_64 i686 groups = System/Boot url = http://www.gnu.org/software/grub/ @@ -14,9 +14,9 @@ license = GPLv2+ summary = Grand Unified Boot Loader. description - GRUB (Grand Unified Boot Loader) is an experimental boot loader \ - capable of booting into most free operating systems - Linux, FreeBSD, \ - NetBSD, GNU Mach, and others as well as most commercial operating \ + GRUB (Grand Unified Boot Loader) is an experimental boot loader + capable of booting into most free operating systems - Linux, FreeBSD, + NetBSD, GNU Mach, and others as well as most commercial operating systems. end @@ -25,27 +25,71 @@ source_dl = http://ftp.gnu.org/gnu/grub/ build requires autoconf + autogen automake bison flex freetype-devel gettext + libdevmapper-devel ncurses-devel zlib-devel end # Can only use very basic CFLAGS. - export CFLAGS = -O2 -pipe + export CFLAGS = -Os -pipe export CXXFLAGS = %{CFLAGS} + prepare_cmds + # Replace pkglib_DATA (automake 1.11.2 incompatibility) + sed -i -e "s/pkglib_DATA/pkgdata_DATA/g" \ + -e "s/pkglib_SCRIPTS/pkgdata_SCRIPTS/g" \ + Makefile.am conf/Makefile.common \ + gentpl.py util/grub-*.in + + ./autogen.sh + + # Create a copy of the source tree to build + # an EFI enabled version of grub. + cp -R . %{DIR_SRC}/%{thisapp}-efi + end + configure_options += \ - --sysconfdir=/etc \ --sbindir=/sbin \ --with-platform=pc - install + build_cmds + cd ../%{thisapp}-efi + #./autogen.sh + ./configure %{configure_options} \ + --with-platform=efi \ + --program-transform-name=s,grub,grub-efi, + make %{PARALLELISMFLAGS} + + ./grub-mkimage \ + -O i386-efi \ + -p /EFI/%{DISTRO_SNAME}/grub-efi \ + -o grub.efi \ + -d grub-core part_gpt hfsplus fat ext2 btrfs normal chain \ + boot configfile linux appleldr minicmd loadbios reboot halt \ + search font gfxterm echo video efi_gop efi_uga + end + + install_cmds + cd ../%{thisapp}-efi make install DESTDIR=%{BUILDROOT} + mv -v %{BUILDROOT}/etc/bash_completion.d/grub{,-efi} + mv -v %{BUILDROOT}/usr/lib/grub{,-efi} + sed -e "s,grub/grub-mkconfig_lib,grub-efi/grub-mkconfig_lib," \ + -i %{BUILDROOT}/sbin/grub-efi-mkconfig + + install -m 755 -d %{BUILDROOT}/boot/efi/EFI/%{DISTRO_SNAME}/ + install -d %{BUILDROOT}/boot/efi/EFI/%{DISTRO_SNAME}/grub-efi + touch %{BUILDROOT}/boot/efi/EFI/%{DISTRO_SNAME}/grub-efi/grub.cfg + ln -svf ../boot/efi/EFI/%{DISTRO_SNAME}/grub-efi/grub.cfg %{BUILDROOT}/etc/grub-efi.cfg + install -m 755 grub.efi %{BUILDROOT}/boot/efi/EFI/%{DISTRO_SNAME}/grub-efi/grub.efi + # Install theme file install -m 0744 %{DIR_SOURCE}/05_theme %{BUILDROOT}/etc/grub.d/ @@ -81,7 +125,30 @@ packages # This only converts Latin-1, Latin Extended A+B, Arrows, Box and Block characters script postin /usr/bin/grub-mkfont --output /boot/grub/unifont.pf2 \ - --range=0x0000-0x0241,0x2190-0x21FF,0x2500-0x259f /usr/share/X11/fonts/misc/unifont.pcf.gz + --range=0x0000-0x0241,0x2190-0x21FF,0x2500-0x259f \ + /usr/share/X11/fonts/misc/unifont.pcf.gz + end + end + + package %{name}-efi + description + EFI version of GRUB, the Grand Unified Boot Loader. + end + summary = %{description} + + requires += grub = %{thisver} + + configfiles + /boot/efi/EFI/%{DISTRO_SNAME}/grub-efi/grub.cfg + end + + files + /boot/efi + /etc/bash_completion.d/grub-efi + /etc/grub-efi.cfg + /sbin/grub-efi-* + /usr/bin/grub-efi-* + /usr/lib/grub-efi end end -- 2.39.5