diff --git a/grub-1.99-gcc-4.7.0.patch b/grub-1.99-gcc-4.7.0.patch deleted file mode 100644 index b8f6e51..0000000 --- a/grub-1.99-gcc-4.7.0.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b0f4ef523b69a497d69820c09bbb07484a6b09cc Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 7 Mar 2012 09:53:50 -0500 -Subject: [PATCH] Fix gcc error that kills build. - ---- - conf/Makefile.common | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/conf/Makefile.common b/conf/Makefile.common -index 2040a2e..b3ba765 100644 ---- a/conf/Makefile.common -+++ b/conf/Makefile.common -@@ -11,10 +11,10 @@ if COND_i386_pc - CFLAGS_PLATFORM += -mrtd -mregparm=3 - endif - if COND_i386_efi -- LDFLAGS_PLATFORM = -melf_i386 -+ LDFLAGS_PLATFORM = -m32 - endif - if COND_x86_64_efi -- LDFLAGS_PLATFORM = -melf_x86_64 -+ LDFLAGS_PLATFORM = -m64 - endif - if COND_i386_qemu - CFLAGS_PLATFORM += -mrtd -mregparm=3 --- -1.7.7.6 - diff --git a/grub-1.99-just-say-linux.patch b/grub-1.99-just-say-linux.patch index 98ab2b7..62a6b32 100644 --- a/grub-1.99-just-say-linux.patch +++ b/grub-1.99-just-say-linux.patch @@ -17,10 +17,10 @@ index a09c3e6..0b0df78 100644 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -+ OS="$(sed 's, release .*$,,g' /etc/system-release) Linux" ++ OS="$(sed 's, release .*$,,g' /etc/system-release)" else - OS="${GRUB_DISTRIBUTOR} GNU/Linux" -+ OS="${GRUB_DISTRIBUTOR} Linux" ++ OS="${GRUB_DISTRIBUTOR}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}" fi @@ -33,10 +33,10 @@ index ee49cd9..10422b0 100644 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -+ OS="$(sed 's, release .*$,,g' /etc/system-release) Linux" ++ OS="$(sed 's, release .*$,,g' /etc/system-release)" else - OS="${GRUB_DISTRIBUTOR} GNU/Linux" -+ OS="${GRUB_DISTRIBUTOR} Linux" ++ OS="${GRUB_DISTRIBUTOR}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}" fi diff --git a/grub-2.00-Add-check_completed_boot.patch b/grub-2.00-Add-check_completed_boot.patch new file mode 100644 index 0000000..f7f0f8f --- /dev/null +++ b/grub-2.00-Add-check_completed_boot.patch @@ -0,0 +1,161 @@ +From 7b886580f92bf6b766b042b6ef46cb77a5ba7451 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 25 May 2012 10:49:06 -0400 +Subject: [PATCH] Add check_completed_boot command on EFI systems. + +check_completed_boot [] + +checks for a 1-byte integer in an EFI variable guid:CompletedBoot and sets +a command-line specified timeout, with a default of 30s, if the variable is +not equal to 1. This can be used to enter the grub menus in the event that +your OS did not correctly boot on the previous boot. It also unconditionally +sets the value to 0. +--- + grub-core/Makefile.core.def | 6 ++ + grub-core/commands/efi/eficompleted.c | 117 +++++++++++++++++++++++++++++++++ + 2 files changed, 123 insertions(+) + create mode 100644 grub-core/commands/efi/eficompleted.c + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index d0c06d5..0a21838 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -582,6 +582,12 @@ module = { + }; + + module = { ++ name = eficompleted; ++ efi = commands/efi/eficompleted.c; ++ enable = efi; ++}; ++ ++module = { + name = blocklist; + common = commands/blocklist.c; + }; +diff --git a/grub-core/commands/efi/eficompleted.c b/grub-core/commands/efi/eficompleted.c +new file mode 100644 +index 0000000..77a856a +--- /dev/null ++++ b/grub-core/commands/efi/eficompleted.c +@@ -0,0 +1,117 @@ ++/* completed.c - Check if previous boot was successful. */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2012 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static grub_err_t ++grub_efi_parse_guid(char *arg, grub_efi_guid_t *outguid) ++{ ++ grub_err_t status = GRUB_ERR_NONE; ++ grub_efi_guid_t guid; ++ char *s = arg; ++ grub_uint64_t guidcomp; ++ int i; ++ ++ guid.data1 = grub_cpu_to_le32 (grub_strtoul(s, &s, 16)); ++ if (*s != '-') ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid guid `%s'", arg); ++ s++; ++ ++ guid.data2 = grub_cpu_to_le16 (grub_strtoul(s, &s, 16)); ++ if (*s != '-') ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid guid `%s'", arg); ++ s++; ++ ++ guid.data2 = grub_cpu_to_le16 (grub_strtoul(s, &s, 16)); ++ if (*s != '-') ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid guid `%s'", arg); ++ s++; ++ ++ guidcomp = grub_strtoull (s, 0, 16); ++ for (i = 0; i < 8; i++) ++ guid.data4[i] = (guidcomp >> (56 - 8 * i)) & 0xff; ++ ++ grub_memcpy(outguid, &guid, sizeof (*outguid)); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_cmd_completed (grub_command_t cmd __attribute__ ((unused)), ++ int argc __attribute__ ((unused)), ++ char **args __attribute__ ((unused))) ++{ ++ grub_efi_uint8_t *old_completed_boot; ++ grub_efi_uint8_t completed_boot = 0; ++ unsigned long timeout = 30; ++ grub_efi_guid_t guid; ++ grub_err_t status; ++ grub_size_t cb_size; ++ ++ if (argc < 2) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "too few arguments"); ++ ++ if (argc > 3) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "too many arguments"); ++ ++ status = grub_efi_parse_guid(args[1], &guid); ++ if (status != GRUB_ERR_NONE) ++ return status; ++ ++ if (argc > 2) ++ { ++ char *s = args[2]; ++ timeout = grub_strtoul(s, &s, 0); ++ if (grub_errno != GRUB_ERR_NONE) ++ return grub_errno; ++ } ++ ++ old_completed_boot = grub_efi_get_variable("CompletedBoot", &guid, &cb_size); ++ status = grub_efi_set_variable("CompletedBoot", &guid, &completed_boot, ++ sizeof (completed_boot)); ++ ++ if (old_completed_boot == NULL) ++ { ++ /* We assume this means it's our first boot after installation. */ ++ return GRUB_ERR_NONE; ++ } ++ ++ if (cb_size != sizeof(*old_completed_boot) || *old_completed_boot != 1) ++ grub_env_set("timeout", timeout); ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_command_t cmd = NULL; ++ ++GRUB_MOD_INIT(eficompleted) ++{ ++ cmd = grub_register_command("check_completed_boot", grub_cmd_completed, "", ++ "Check if the last boot completed successfully."); ++} ++ ++GRUB_MOD_FINI(eficompleted) ++{ ++ grub_unregister_command (cmd); ++} +-- +1.7.10.1 + diff --git a/grub-2.00-Add-fwsetup.patch b/grub-2.00-Add-fwsetup.patch new file mode 100644 index 0000000..b564b29 --- /dev/null +++ b/grub-2.00-Add-fwsetup.patch @@ -0,0 +1,218 @@ +From 2c7cdc59a8d6cb7800c73b90aa75cc8b21807af6 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 24 May 2012 08:37:21 -0400 +Subject: [PATCH] Add support for entering the firmware setup screen. + +This adds a command "fwsetup", with which you can enter your firmware +setup screen. The mechanism is to set a global UEFI variable with a +specific value and reboot. +--- + ChangeLog | 8 ++++ + grub-core/Makefile.core.def | 6 +++ + grub-core/commands/efi/efifwsetup.c | 88 +++++++++++++++++++++++++++++++++++ + grub-core/kern/efi/efi.c | 30 ++++++++++++ + include/grub/efi/api.h | 2 + + include/grub/efi/efi.h | 5 ++ + 6 files changed, 139 insertions(+) + create mode 100644 grub-core/commands/efi/efifwsetup.c + +diff --git a/ChangeLog b/ChangeLog +index ce52576..29ebcbd 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -1,3 +1,11 @@ ++2012-05-24 Peter Jones ++ ++ * grub-core/Makefile.core.def: add efifwsetup module ++ * grub-core/commands/efi/efifwsetup.c: add code for fwsetup command ++ * grub-core/kern/efi/efi.c (grub_efi_set_variable): New function ++ * include/grub/efi/api.h: add define for OsIndications variable ++ * include/grub/efi/efi.h: export grub_efi_set_variable ++ + 2012-04-18 Vladimir Serbinenko + + * configure.ac: Bump to beta5. +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 000cf0d..d0c06d5 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -576,6 +576,12 @@ module = { + }; + + module = { ++ name = efifwsetup; ++ efi = commands/efi/efifwsetup.c; ++ enable = efi; ++}; ++ ++module = { + name = blocklist; + common = commands/blocklist.c; + }; +diff --git a/grub-core/commands/efi/efifwsetup.c b/grub-core/commands/efi/efifwsetup.c +new file mode 100644 +index 0000000..756a14c +--- /dev/null ++++ b/grub-core/commands/efi/efifwsetup.c +@@ -0,0 +1,88 @@ ++/* fwsetup.c - Reboot into firmware setup menu. */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2012 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static grub_err_t ++grub_cmd_fwsetup (grub_command_t cmd __attribute__ ((unused)), ++ int argc __attribute__ ((unused)), ++ char **args __attribute__ ((unused))) ++{ ++ grub_efi_uint64_t *old_os_indications; ++ grub_efi_uint64_t os_indications = GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI; ++ grub_err_t status; ++ grub_size_t oi_size; ++ grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID; ++ ++ old_os_indications = grub_efi_get_variable("OsIndications", &global, ++ &oi_size); ++ ++ if (old_os_indications != NULL && oi_size == sizeof(*old_os_indications)) ++ os_indications |= *old_os_indications; ++ ++ status = grub_efi_set_variable("OsIndications", &global, &os_indications, ++ sizeof (os_indications)); ++ if (status != GRUB_ERR_NONE) ++ return status; ++ ++ grub_reboot(); ++ ++ return GRUB_ERR_BUG; ++} ++ ++static grub_command_t cmd = NULL; ++ ++static grub_efi_boolean_t ++efifwsetup_is_supported(void) ++{ ++ grub_efi_uint64_t *os_indications_supported = NULL; ++ grub_size_t oi_size = 0; ++ grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID; ++ ++ os_indications_supported = grub_efi_get_variable("OsIndicationsSupported", ++ &global, &oi_size); ++ ++ if (!os_indications_supported) ++ return 0; ++ ++ if (*os_indications_supported & GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI) ++ return 1; ++ ++ return 0; ++} ++ ++GRUB_MOD_INIT(efifwsetup) ++{ ++ if (efifwsetup_is_supported()) ++ cmd = grub_register_command("fwsetup", grub_cmd_fwsetup, "", ++ "Reboot into firmware setup menu."); ++ ++} ++ ++GRUB_MOD_FINI(efifwsetup) ++{ ++ if (cmd) ++ grub_unregister_command (cmd); ++} +diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c +index 6f12c76..7a418a6 100644 +--- a/grub-core/kern/efi/efi.c ++++ b/grub-core/kern/efi/efi.c +@@ -230,6 +230,36 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, + return NULL; + } + ++grub_err_t ++grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, ++ void *data, grub_size_t datasize) ++{ ++ grub_efi_status_t status; ++ grub_efi_runtime_services_t *r; ++ grub_efi_char16_t *var16; ++ grub_size_t len, len16; ++ ++ len = grub_strlen (var); ++ len16 = len * GRUB_MAX_UTF16_PER_UTF8; ++ var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); ++ if (!var16) ++ return grub_errno; ++ len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); ++ var16[len16] = 0; ++ ++ r = grub_efi_system_table->runtime_services; ++ ++ grub_efi_uint32_t attributes = GRUB_EFI_VARIABLE_NON_VOLATILE | ++ GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS | ++ GRUB_EFI_VARIABLE_RUNTIME_ACCESS; ++ ++ status = efi_call_5 (r->set_variable, var16, guid, attributes, datasize,data); ++ if (status == GRUB_EFI_SUCCESS) ++ return GRUB_ERR_NONE; ++ ++ return grub_error (GRUB_ERR_IO, "could not set EFI variable `%s'", var); ++} ++ + grub_uint64_t + grub_rtc_get_time_ms (void) + { +diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h +index 26127de..a47a4e3 100644 +--- a/include/grub/efi/api.h ++++ b/include/grub/efi/api.h +@@ -58,6 +58,8 @@ + #define GRUB_EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010 + #define GRUB_EFI_OPEN_PROTOCOL_BY_EXCLUSIVE 0x00000020 + ++#define GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001ULL ++ + #define GRUB_EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 + #define GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 + #define GRUB_EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 +diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h +index e67d92b..489cf9e 100644 +--- a/include/grub/efi/efi.h ++++ b/include/grub/efi/efi.h +@@ -64,6 +64,11 @@ grub_err_t EXPORT_FUNC (grub_efi_set_virtual_address_map) (grub_efi_uintn_t memo + void *EXPORT_FUNC (grub_efi_get_variable) (const char *variable, + const grub_efi_guid_t *guid, + grub_size_t *datasize_out); ++grub_err_t ++EXPORT_FUNC (grub_efi_set_variable) (const char *var, ++ const grub_efi_guid_t *guid, ++ void *data, ++ grub_size_t datasize); + int + EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, + const grub_efi_device_path_t *dp2); +-- +1.7.10.1 + diff --git a/grub-2.00-Dont-set-boot-on-ppc.patch b/grub-2.00-Dont-set-boot-on-ppc.patch new file mode 100644 index 0000000..11869af --- /dev/null +++ b/grub-2.00-Dont-set-boot-on-ppc.patch @@ -0,0 +1,43 @@ +From 28d9f3965f095a765ec8aaa589b4e04608b69901 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 25 May 2012 14:57:38 -0400 +Subject: [PATCH] Don't set boot device on ppc-ieee1275 + +This started with the problem that powerkvm doesn't have /dev/nvram and so +there is no way to set boot-device. +--- + util/grub-install.in | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/util/grub-install.in b/util/grub-install.in +index 293b756..2503aa0 100644 +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -818,14 +818,16 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ] + fi + fi + +- "$nvsetenv" boot-device "$boot_device" || { +- # TRANSLATORS: The %s will be replaced by an external program name. +- gettext_printf "\`%s' failed.\n" "$nvsetenv" 1>&2 +- gettext "You will have to set \`boot-device' variable manually. At the IEEE1275 prompt, type:" 1>&2 +- echo 1>&2 +- echo " setenv boot-device $boot_device" 1>&2 +- exit 1 +- } ++ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ]; then ++ "$nvsetenv" boot-device "$boot_device" || { ++ # TRANSLATORS: The %s will be replaced by an external program name. ++ gettext_printf "\`%s' failed.\n" "$nvsetenv" 1>&2 ++ gettext "You will have to set \`boot-device' variable manually. At the IEEE1275 prompt, type:" 1>&2 ++ echo 1>&2 ++ echo " setenv boot-device $boot_device" 1>&2 ++ exit 1 ++ } ++ fi + fi + elif [ x"${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = xmips-arc ]; then + dvhtool -d "${install_device}" --unix-to-vh "{grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" grub +-- +1.7.10.1 + diff --git a/grub-2.00-Fix-module-trampoline-for-ppc.patch b/grub-2.00-Fix-module-trampoline-for-ppc.patch new file mode 100644 index 0000000..60cde3a --- /dev/null +++ b/grub-2.00-Fix-module-trampoline-for-ppc.patch @@ -0,0 +1,120 @@ +Return-Path: benh@au1.ibm.com +Received: from zmta03.collab.prod.int.phx2.redhat.com (LHLO + zmta03.collab.prod.int.phx2.redhat.com) (10.5.5.33) by + zmail14.collab.prod.int.phx2.redhat.com with LMTP; Sun, 13 May 2012 + 23:43:23 -0400 (EDT) +Received: from localhost (localhost.localdomain [127.0.0.1]) + by zmta03.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id A92D5F0BC1 + for ; Sun, 13 May 2012 23:43:23 -0400 (EDT) +Received: from zmta03.collab.prod.int.phx2.redhat.com ([127.0.0.1]) + by localhost (zmta03.collab.prod.int.phx2.redhat.com [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id KDt5yD-zSoXe for ; + Sun, 13 May 2012 23:43:23 -0400 (EDT) +Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) + by zmta03.collab.prod.int.phx2.redhat.com (Postfix) with ESMTP id 951A2F0843 + for ; Sun, 13 May 2012 23:43:23 -0400 (EDT) +Received: from mx1.redhat.com (ext-mx12.extmail.prod.ext.phx2.redhat.com [10.5.110.17]) + by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id q4E3hNWo019302 + for ; Sun, 13 May 2012 23:43:23 -0400 +Received: from bastion.fedoraproject.org (bastion02.phx2.fedoraproject.org [10.5.126.11]) + by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q4E3hLtl006033 + for ; Sun, 13 May 2012 23:43:21 -0400 +Received: by bastion02.phx2.fedoraproject.org (Postfix) + id 1B8B34040D; Mon, 14 May 2012 03:43:21 +0000 (UTC) +Delivered-To: pjones@fedoraproject.org +Received: from mx2.redhat.com (ext-mx01.rdu.redhat.com [10.11.45.6]) + by bastion02.phx2.fedoraproject.org (Postfix) with ESMTP id AF73B402BC + for ; Mon, 14 May 2012 03:43:20 +0000 (UTC) +Received: from e23smtp06.au.ibm.com (e23smtp06.au.ibm.com [202.81.31.148]) + by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id q4E3h5JZ014320 + for ; Sun, 13 May 2012 23:43:11 -0400 +Received: from /spool/local + by e23smtp06.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted + for from ; + Mon, 14 May 2012 03:37:12 +1000 +Received: from d23relay03.au.ibm.com (202.81.31.245) + by e23smtp06.au.ibm.com (202.81.31.212) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; + Mon, 14 May 2012 03:37:09 +1000 +Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) + by d23relay03.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q4E3gcbg60358704 + for ; Mon, 14 May 2012 13:42:38 +1000 +Received: from d23av04.au.ibm.com (loopback [127.0.0.1]) + by d23av04.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q4E3gb1m003356 + for ; Mon, 14 May 2012 13:42:37 +1000 +Received: from ozlabs.au.ibm.com (ozlabs.au.ibm.com [9.190.163.12]) + by d23av04.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id q4E3gbsI003349; + Mon, 14 May 2012 13:42:37 +1000 +Received: from [10.61.2.137] (haven.au.ibm.com [9.190.164.82]) + (using SSLv3 with cipher AES256-SHA (256/256 bits)) + (Client did not present a certificate) + by ozlabs.au.ibm.com (Postfix) with ESMTPSA id B60A073A09; + Mon, 14 May 2012 13:42:37 +1000 (EST) +Message-ID: <1336966957.6727.15.camel@pasglop> +Subject: [PATCH] grub: Fix module trampoline for powerpc +From: Benjamin Herrenschmidt +To: Brent Baude , pjones@fedoraproject.org +Cc: hamzy@us.ibm.com, Josh Boyer +Date: Mon, 14 May 2012 13:42:37 +1000 +Organization: IBM Australia +Content-Type: text/plain; charset="UTF-8" +Content-Transfer-Encoding: 7bit +Mime-Version: 1.0 +x-cbid: 12051317-7014-0000-0000-0000011BC8AA +X-RedHat-Spam-Score: -5.01 (RCVD_IN_DNSWL_HI,T_RP_MATCHES_RCVD) +X-RedHat-Spam-Score: -5.011 (RCVD_IN_DNSWL_HI,SPF_PASS,T_RP_MATCHES_RCVD) +X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 +X-Scanned-By: MIMEDefang 2.68 on 10.5.110.17 +X-Scanned-By: MIMEDefang 2.67 on 10.11.45.6 + +[ --- snip --- ] + +Not sure who to send that to, I picked Peter as he's in +the rpm log as author of the of the powerpc patches, +feel free to do whatever with that one, it should ultimately +go to upstream grub I suppose ... + +Without this, grub doesn't work for me at all with fc17 beta + +[ --- snip --- ] + +The trampoline generated by grub powerpc's dl.c to call from +modules into the main grub code uses r0 as a scratch register. + +However, nowadays, gcc can (and will) generate function calls +to spill registers to the stack (well, it's even stupid enough +to do it when there's only one register to save ! go figure....) + +Those calls happen during the function prolog, before the +return address has been saved on the stack, typically it's held +in r0 at this stage. Since those calls will hit the trampoline +in grub, which clobbers r0, this will clobber the return address +and cause a crash. + +This patch changes the trampolines to use r12 instead which +is safe to use in our case. + +Note: It might be better to actually link those low level gcc +support functions statically into the modules but that's beyond +the level of grub hacking I'm prepared to do today. + +Signed-off-by: Benjamin Herrenschmidt +--- +diff --git a/grub-core/kern/powerpc/dl.c b/grub-core/kern/powerpc/dl.c +index b8a2b50..0a8ec85 100644 +--- a/grub-core/kern/powerpc/dl.c ++++ b/grub-core/kern/powerpc/dl.c +@@ -89,9 +89,9 @@ struct trampoline + + static const struct trampoline trampoline_template = + { +- 0x3c000000, +- 0x60000000, +- 0x7c0903a6, ++ 0x3d800000, ++ 0x618c0000, ++ 0x7d8903a6, + 0x4e800420, + }; + + + diff --git a/grub-2.00-add-fw_path-search.patch b/grub-2.00-add-fw_path-search.patch new file mode 100644 index 0000000..367415e --- /dev/null +++ b/grub-2.00-add-fw_path-search.patch @@ -0,0 +1,78 @@ +From d829d54d0f461c7bc6a7d8bd549cfdacfac51082 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Mon, 21 May 2012 14:36:39 -0400 +Subject: [PATCH] Add fw_path variable + +--- + grub-core/kern/main.c | 16 ++++++++++++++-- + grub-core/normal/main.c | 20 +++++++++++++++++++- + 2 files changed, 33 insertions(+), 3 deletions(-) + +diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c +index 185230c..26481c6 100644 +--- a/grub-core/kern/main.c ++++ b/grub-core/kern/main.c +@@ -114,6 +114,20 @@ grub_set_prefix_and_root (void) + + grub_register_variable_hook ("root", 0, grub_env_write_root); + ++ grub_machine_get_bootlocation (&fwdevice, &fwpath); ++ ++ if (fwdevice && fwpath) ++ { ++ char *fw_path; ++ ++ fw_path = grub_xasprintf ("(%s)/%s", fwdevice, fwpath); ++ if (fw_path) ++ { ++ grub_env_set ("fw_path", fw_path); ++ grub_free (fw_path); ++ } ++ } ++ + if (prefix) + { + char *pptr = NULL; +@@ -131,8 +145,6 @@ grub_set_prefix_and_root (void) + if (pptr[0]) + path = grub_strdup (pptr); + } +- if ((!device || device[0] == ',' || !device[0]) || !path) +- grub_machine_get_bootlocation (&fwdevice, &fwpath); + + if (!device && fwdevice) + device = fwdevice; +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 1963fe4..64c2a9f 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -309,7 +309,25 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), + /* Guess the config filename. It is necessary to make CONFIG static, + so that it won't get broken by longjmp. */ + char *config; +- const char *prefix; ++ const char *prefix, *fw_path; ++ ++ fw_path = grub_env_get ("fw_path"); ++ if (fw_path) ++ { ++ config = grub_xasprintf ("%s/grub.cfg", fw_path); ++ if (config) ++ { ++ grub_file_t file; ++ ++ file = grub_file_open (config); ++ if (file) ++ { ++ grub_file_close (file); ++ grub_enter_normal_mode (config); ++ } ++ grub_free (config); ++ } ++ } + + prefix = grub_env_get ("prefix"); + if (prefix) +-- +1.7.10.2 + diff --git a/grub-2.00-ppc-no-tree-scanning.patch b/grub-2.00-ppc-no-tree-scanning.patch new file mode 100644 index 0000000..f0558f7 --- /dev/null +++ b/grub-2.00-ppc-no-tree-scanning.patch @@ -0,0 +1,59 @@ +From 03f6e77635f4f311a2c7bdd581f6202fa52feef7 Mon Sep 17 00:00:00 2001 +From: Valdimir Serbinenko +Date: Sun, 13 May 2012 18:23:02 +0000 +Subject: [PATCH] Don't scan device tree if flag is set. + +Don't scan device tree if GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS is +set. + +=== modified file 'grub-core/disk/ieee1275/ofdisk.c' +--- + grub-core/disk/ieee1275/ofdisk.c | 3 ++- + grub-core/kern/ieee1275/cmain.c | 3 +++ + include/grub/ieee1275/ieee1275.h | 2 ++ + 3 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c +index 56fed0a..6b734f7 100644 +--- a/grub-core/disk/ieee1275/ofdisk.c ++++ b/grub-core/disk/ieee1275/ofdisk.c +@@ -159,7 +159,8 @@ scan (void) + } + + grub_devalias_iterate (dev_iterate_alias); +- grub_ieee1275_devices_iterate (dev_iterate); ++ if (!grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS)) ++ grub_ieee1275_devices_iterate (dev_iterate); + } + + static int +diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c +index 9e80757..e04ce5b 100644 +--- a/grub-core/kern/ieee1275/cmain.c ++++ b/grub-core/kern/ieee1275/cmain.c +@@ -88,6 +88,9 @@ grub_ieee1275_find_options (void) + if (rc >= 0 && !grub_strcmp (tmp, "Emulated PC")) + is_qemu = 1; + ++ if (rc >= 0 && grub_strncmp (tmp, "IBM", 3) == 0) ++ grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS); ++ + if (grub_strncmp (tmp, "PowerMac", sizeof ("PowerMac") - 1) == 0) + grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS); + +diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h +index fb85db9..99a4bc1 100644 +--- a/include/grub/ieee1275/ieee1275.h ++++ b/include/grub/ieee1275/ieee1275.h +@@ -116,6 +116,8 @@ enum grub_ieee1275_flag + 1 address cell is used on PowerMacs. + */ + GRUB_IEEE1275_FLAG_BROKEN_ADDRESS_CELLS, ++ ++ GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS + }; + + extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); +-- +1.7.10.1 + diff --git a/grub2.spec b/grub2.spec index 6a4643b..aae37af 100644 --- a/grub2.spec +++ b/grub2.spec @@ -12,17 +12,34 @@ %endif %if ! 0%{?efi} + %global efi %{ix86} x86_64 ia64 + +%ifarch %{ix86} +%global grubefiarch i386-efi +%global grubefiname grubia32.efi +%endif +%ifarch x86_64 +%global grubefiarch %{_arch}-efi +%global grubefiname grubx64.efi %endif +%if 0%{?rhel} +%global efidir redhat +%endif +%if 0%{?fedora} +%global efidir fedora +%endif -%global tarversion 2.00~beta4 +%endif + +%global tarversion 2.00~beta5 %undefine _missing_build_ids_terminate_build Name: grub2 Epoch: 1 Version: 2.0 -Release: 0.26.beta4%{?dist} +Release: 0.31.beta5%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base @@ -39,9 +56,13 @@ Patch2: grub-1.99-just-say-linux.patch Patch3: grub2-handle-initramfs-on-xen.patch Patch4: grub-1.99-Fix-tests-of-zeroed-partition.patch Patch5: grub-1.99-ppc-terminfo.patch -Patch6: grub-2.00-beta4-wronly.patch Patch7: grub-2.00~beta4-add-support-for-PowerMac-HFS-partitions.patch Patch8: grub2-2.0-no-png-in-texi.patch +Patch9: grub-2.00-Fix-module-trampoline-for-ppc.patch +Patch10: grub-2.00-add-fw_path-search.patch +Patch11: grub-2.00-Add-fwsetup.patch +Patch12: grub-2.00-ppc-no-tree-scanning.patch +Patch13: grub-2.00-Dont-set-boot-on-ppc.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -56,8 +77,10 @@ BuildRequires: /usr/lib/crt1.o glibc-static BuildRequires: autoconf automake autogen device-mapper-devel BuildRequires: freetype-devel gettext-devel git BuildRequires: texinfo +BuildRequires: dejavu-sans-fonts Requires: gettext os-prober which file system-logos +Requires: %{name}-tools = %{epoch}:%{version}-%{release} Requires(pre): dracut Requires(post): dracut @@ -67,12 +90,14 @@ ExcludeArch: s390 s390x %description The GRand Unified Bootloader (GRUB) is a highly configurable and customizable bootloader with modular architecture. It support rich varietyof kernel formats, -file systems, computer architectures and hardware devices. +file systems, computer architectures and hardware devices. This subpackage +provides support for PC BIOS systems. %ifarch %{efi} %package efi Summary: GRUB for EFI systems. Group: System Environment/Base +Requires: %{name}-tools = %{epoch}:%{version}-%{release} %description efi The GRand Unified Bootloader (GRUB) is a highly configurable and customizable @@ -81,12 +106,21 @@ file systems, computer architectures and hardware devices. This subpackage provides support for EFI systems. %endif +%package tools +Summary: Support tools for GRUB. +Group: System Environment/Base +Requires: gettext os-prober which file system-logos + +%description tools +The GRand Unified Bootloader (GRUB) is a highly configurable and customizable +bootloader with modular architecture. It support rich varietyof kernel formats, +file systems, computer architectures and hardware devices. This subpackage +provides tools for support of all platforms. + %prep %setup -T -c -n grub-%{tarversion} %ifarch %{efi} -echo foo %setup -D -q -T -a 0 -n grub-%{tarversion} -echo bar cd grub-%{tarversion} cp %{SOURCE3} . # place unifont in the '.' from which configure is run @@ -126,18 +160,14 @@ cd grub-efi-%{tarversion} -e 's/-fasynchronous-unwind-tables//g' )" \ TARGET_LDFLAGS=-static \ --with-platform=efi \ - --with-grubdir=grub2 \ - --program-transform-name=s,grub,%{name}-efi, \ + --with-grubdir=%{name} \ + --program-transform-name=s,grub,%{name}, \ --disable-werror make %{?_smp_mflags} -%ifarch %{ix86} -%define grubefiarch i386-efi -%else -%define grubefiarch %{_arch}-efi -%endif -./grub-mkimage -O %{grubefiarch} -p /EFI/redhat/%{name}-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 +./grub-mkimage -O %{grubefiarch} -o %{grubefiname} -d grub-core \ + part_gpt hfsplus fat ext2 btrfs normal chain boot configfile linux \ + minicmd reboot halt search font gfxterm echo video all_video \ + test gfxmenu png efifwsetup cd .. %endif @@ -161,7 +191,7 @@ cd grub-%{tarversion} -e 's/-fasynchronous-unwind-tables//g' )" \ TARGET_LDFLAGS=-static \ --with-platform=%{platform} \ - --with-grubdir=grub2 \ + --with-grubdir=%{name} \ --program-transform-name=s,grub,%{name}, \ --disable-werror @@ -188,13 +218,11 @@ rm -fr $RPM_BUILD_ROOT %ifarch %{efi} cd grub-efi-%{tarversion} make DESTDIR=$RPM_BUILD_ROOT install -mv $RPM_BUILD_ROOT/etc/bash_completion.d/grub $RPM_BUILD_ROOT/etc/bash_completion.d/grub-efi # Ghost config file -install -m 755 -d $RPM_BUILD_ROOT/boot/efi/EFI/redhat/ -install -d $RPM_BUILD_ROOT/boot/efi/EFI/redhat/%{name}-efi -touch $RPM_BUILD_ROOT/boot/efi/EFI/redhat/%{name}-efi/grub.cfg -ln -s ../boot/efi/EFI/redhat/%{name}-efi/grub.cfg $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-efi.cfg +install -m 755 -d $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/ +touch $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/grub.cfg +ln -s ../boot/efi/EFI/%{efidir}/grub.cfg $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-efi.cfg # Install ELF files modules and images were created from into # the shadow root, where debuginfo generator will grab them from @@ -209,7 +237,7 @@ do TGT=$(echo $MODULE |sed "s,$RPM_BUILD_ROOT,.debugroot,") # install -m 755 -D $BASE$EXT $TGT done -install -m 755 grub.efi $RPM_BUILD_ROOT/boot/efi/EFI/redhat/%{name}-efi/grub.efi +install -m 755 %{grubefiname} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{grubefiname} cd .. %endif @@ -235,11 +263,13 @@ do # install -m 755 -D $BASE$EXT $TGT done -mv $RPM_BUILD_ROOT%{_infodir}/grub.info $RPM_BUILD_ROOT%{_infodir}/grub2.info -mv $RPM_BUILD_ROOT%{_infodir}/grub-dev.info $RPM_BUILD_ROOT%{_infodir}/grub2-dev.info +mv $RPM_BUILD_ROOT%{_infodir}/grub.info $RPM_BUILD_ROOT%{_infodir}/%{name}.info +mv $RPM_BUILD_ROOT%{_infodir}/grub-dev.info $RPM_BUILD_ROOT%{_infodir}/%{name}-dev.info rm $RPM_BUILD_ROOT%{_infodir}/dir # Defaults +mkdir ${RPM_BUILD_ROOT}%{_sysconfdir}/default +touch ${RPM_BUILD_ROOT}%{_sysconfdir}/default/grub mkdir ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig ln -sf %{_sysconfdir}/default/grub \ ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/grub @@ -247,16 +277,20 @@ ln -sf %{_sysconfdir}/default/grub \ cd .. %find_lang grub +# Fedora theme in /boot/grub2/themes/system/ cd $RPM_BUILD_ROOT tar xjf %{SOURCE5} +$RPM_BUILD_ROOT%{_bindir}/%{name}-mkfont -o boot/grub2/themes/system/DejaVuSans-10.pf2 -s 10 /usr/share/fonts/dejavu/DejaVuSans.ttf # "DejaVu Sans Regular 10" +$RPM_BUILD_ROOT%{_bindir}/%{name}-mkfont -o boot/grub2/themes/system/DejaVuSans-12.pf2 -s 12 /usr/share/fonts/dejavu/DejaVuSans.ttf # "DejaVu Sans Regular 12" +$RPM_BUILD_ROOT%{_bindir}/%{name}-mkfont -o boot/grub2/themes/system/DejaVuSans-Bold-14.pf2 -s 14 /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf # "DejaVu Sans Bold 14" %clean rm -rf $RPM_BUILD_ROOT %post if [ "$1" = 1 ]; then - /sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub2.info.gz || : - /sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub2-dev.info.gz || : + /sbin/install-info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz || : + /sbin/install-info --info-dir=%{_infodir} %{_infodir}/%{name}-dev.info.gz || : fi %triggerun -- grub2 < 1:1.99-4 @@ -286,14 +320,30 @@ rm -r /boot/grub2.tmp/ || : %preun if [ "$1" = 0 ]; then - /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub2.info.gz || : - /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub2-dev.info.gz || : + /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz || : + /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/%{name}-dev.info.gz || : fi %files -f grub.lang %defattr(-,root,root,-) -/etc/bash_completion.d/grub %{_libdir}/grub/*-%{platform}/ +%config(noreplace) %{_sysconfdir}/%{name}.cfg +%ghost %config(noreplace) /boot/%{name}/grub.cfg +%doc grub-%{tarversion}/COPYING + +%ifarch %{efi} +%files efi +%defattr(-,root,root,-) +%{_libdir}/grub/%{grubefiarch} +%config(noreplace) %{_sysconfdir}/%{name}-efi.cfg +%attr(0755,root,root)/boot/efi/EFI/%{efidir} +%ghost %config(noreplace) /boot/efi/EFI/%{efidir}/grub.cfg +%doc grub-%{tarversion}/COPYING +%endif + +%files tools -f grub.lang +%defattr(-,root,root,-) +%dir %{_libdir}/grub/ %{_datarootdir}/grub/ %{_sbindir}/%{name}-mkconfig %{_sbindir}/%{name}-mknetdir @@ -318,85 +368,61 @@ fi %{_bindir}/%{name}-mkrescue %endif %{_bindir}/%{name}-script-check +%{_sysconfdir}/bash_completion.d/grub %attr(0700,root,root) %dir %{_sysconfdir}/grub.d %config %{_sysconfdir}/grub.d/??_* %{_sysconfdir}/grub.d/README -%config(noreplace) %{_sysconfdir}/%{name}.cfg %attr(0644,root,root) %ghost %config(noreplace) %{_sysconfdir}/default/grub %{_sysconfdir}/sysconfig/grub %dir /boot/%{name} -%ghost %config(noreplace) /boot/%{name}/grub.cfg +/boot/%{name}/themes/ +%{_infodir}/%{name}* +%exclude %{_mandir} %doc grub-%{tarversion}/COPYING grub-%{tarversion}/INSTALL %doc grub-%{tarversion}/NEWS grub-%{tarversion}/README %doc grub-%{tarversion}/THANKS grub-%{tarversion}/TODO %doc grub-%{tarversion}/ChangeLog grub-%{tarversion}/README.Fedora %doc grub-%{tarversion}/grub.html %doc grub-%{tarversion}/grub-dev.html grub-%{tarversion}/docs/font_char_metrics.png -%exclude %{_mandir} -%{_infodir}/grub2* -/boot/grub2/themes/system - -%ifarch %{efi} -%files efi -f grub.lang -%defattr(-,root,root,-) -%attr(0755,root,root)/boot/efi/EFI/redhat -/etc/bash_completion.d/grub-efi -%{_libdir}/grub/%{_arch}-efi -%{_datarootdir}/grub/ -%{_sbindir}/grub2-efi-mkconfig -%{_sbindir}/grub2-efi-mknetdir -%{_sbindir}/grub2-efi-install -%{_sbindir}/grub2-efi-probe -%{_sbindir}/grub2-efi-reboot -%{_sbindir}/grub2-efi-set-default -%{_sbindir}/grub2-efi-bios-setup -%{_sbindir}/grub2-efi-ofpathname -%{_sbindir}/grub2-efi-sparc64-setup -%{_bindir}/grub2-efi-mkstandalone -%{_bindir}/grub2-efi-editenv -%{_bindir}/grub2-efi-fstest -%{_bindir}/grub2-efi-kbdcomp -%{_bindir}/grub2-efi-menulst2cfg -%{_bindir}/grub2-efi-mkfont -%{_bindir}/grub2-efi-mklayout -%{_bindir}/grub2-efi-mkimage -%{_bindir}/grub2-efi-mkpasswd-pbkdf2 -%{_bindir}/grub2-efi-mkrelpath -%ifnarch %{sparc} ppc ppc64 -%{_bindir}/grub2-efi-mkrescue -%endif -%{_bindir}/grub2-efi-script-check -%attr(0700,root,root) %dir %{_sysconfdir}/grub.d -%config %{_sysconfdir}/grub.d/??_* -%{_sysconfdir}/grub.d/README -%config(noreplace) %{_sysconfdir}/grub2-efi.cfg -%attr(0644,root,root) %ghost %config(noreplace) %{_sysconfdir}/default/grub -%{_sysconfdir}/sysconfig/grub -%ghost %config(noreplace) /boot/efi/EFI/redhat/grub2-efi/grub.cfg -%doc grub-%{tarversion}/COPYING grub-%{tarversion}/INSTALL -%doc grub-%{tarversion}/NEWS grub-%{tarversion}/README -%doc grub-%{tarversion}/THANKS grub-%{tarversion}/TODO -%doc grub-%{tarversion}/ChangeLog grub-%{tarversion}/README.Fedora -%doc grub-%{tarversion}/grub.html -%doc grub-%{tarversion}/grub-dev.html grub-%{tarversion}/docs/font_char_metrics.png -%exclude %{_mandir} -%{_infodir}/grub2* -/boot/grub2/themes/system -%endif +%doc grub-%{tarversion}/themes/starfield/COPYING.CC-BY-SA-3.0 %changelog -* Thu May 10 2012 Peter Jones - 2.0-0.26.beta5 +* Fri May 25 2012 Peter Jones - 2.0-0.31.beta5 +- Add fwsetup command (pjones) +- More ppc fixes (IBM) + +* Tue May 22 2012 Peter Jones - 2.0-0.30.beta5 +- Fix the /other/ grub2-tools require to include epoch. + +* Mon May 21 2012 Peter Jones - 2.0-0.29.beta5 +- Get rid of efi_uga and efi_gop, favoring all_video instead. + +* Mon May 21 2012 Peter Jones - 2.0-0.28.beta5 +- Name grub.efi something that's arch-appropriate (kiilerix, pjones) +- use EFI/$SOMETHING_DISTRO_BASED/ not always EFI/redhat/grub2-efi/ . +- move common stuff to -tools (kiilerix) +- spec file cleanups (kiilerix) + +* Mon May 14 2012 Peter Jones - 2.0-0.27.beta5 +- Fix module trampolining on ppc (benh) + +* Thu May 10 2012 Peter Jones - 2.0-0.27.beta5 - Fix license of theme (mizmo) Resolves: rhbz#820713 - Fix some PPC bootloader detection IBM problem Resolves: rhbz#820722 +* Thu May 10 2012 Peter Jones - 2.0-0.26.beta5 +- Update to beta5. +- Update how efi building works (kiilerix) +- Fix theme support to bring in fonts correctly (kiilerix, pjones) + * Wed May 09 2012 Peter Jones - 2.0-0.25.beta4 - Include theme support (mizmo) - Include locale support (kiilerix) - Include html docs (kiilerix) -* Thu Apr 26 2012 Peter Jones - 2.0-0.24.beta4 +* Thu Apr 26 2012 Peter Jones - 2.0-0.24 - Various fixes from Mads Kiilerich * Thu Apr 19 2012 Peter Jones - 2.0-0.23 diff --git a/sources b/sources index 0744ca6..47cfe9f 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ 8c28087c5fcb3188f1244b390efffdbe unifont-5.1.20080820.pcf.gz -6902a2b408038b8d3263a86536ac4652 grub-2.00~beta4.tar.xz +be6c65c7d43991129b410942489c35ec grub-2.00~beta5.tar.xz 5e5c7bae1211f558e3c0a3011fef8609 theme.tar.bz2