Merge branch 'master' into f17

Conflicts:
	grub-1.99-just-say-linux.patch
	grub2.spec
	sources
This commit is contained in:
Peter Jones 2012-05-25 15:08:10 -04:00
commit b9e754517d
10 changed files with 795 additions and 119 deletions

View File

@ -1,29 +0,0 @@
From b0f4ef523b69a497d69820c09bbb07484a6b09cc Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
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

View File

@ -17,10 +17,10 @@ index a09c3e6..0b0df78 100644
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux - OS=GNU/Linux
+ OS="$(sed 's, release .*$,,g' /etc/system-release) Linux" + OS="$(sed 's, release .*$,,g' /etc/system-release)"
else else
- OS="${GRUB_DISTRIBUTOR} GNU/Linux" - 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}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
fi fi
@ -33,10 +33,10 @@ index ee49cd9..10422b0 100644
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux - OS=GNU/Linux
+ OS="$(sed 's, release .*$,,g' /etc/system-release) Linux" + OS="$(sed 's, release .*$,,g' /etc/system-release)"
else else
- OS="${GRUB_DISTRIBUTOR} GNU/Linux" - 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}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1) ${CLASS}"
fi fi

View File

@ -0,0 +1,161 @@
From 7b886580f92bf6b766b042b6ef46cb77a5ba7451 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Fri, 25 May 2012 10:49:06 -0400
Subject: [PATCH] Add check_completed_boot command on EFI systems.
check_completed_boot <guid> [<timeout>]
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 <http://www.gnu.org/licenses/>.
+ */
+#include <grub/types.h>
+#include <grub/mm.h>
+#include <grub/misc.h>
+#include <grub/efi/api.h>
+#include <grub/efi/efi.h>
+#include <grub/command.h>
+
+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

218
grub-2.00-Add-fwsetup.patch Normal file
View File

@ -0,0 +1,218 @@
From 2c7cdc59a8d6cb7800c73b90aa75cc8b21807af6 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
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 <pjones@redhat.com>
+
+ * 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 <phcoder@gmail.com>
* 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 <http://www.gnu.org/licenses/>.
+ */
+#include <grub/types.h>
+#include <grub/mm.h>
+#include <grub/misc.h>
+#include <grub/efi/api.h>
+#include <grub/efi/efi.h>
+#include <grub/command.h>
+
+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

View File

@ -0,0 +1,43 @@
From 28d9f3965f095a765ec8aaa589b4e04608b69901 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
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

View File

@ -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 <pjones@redhat.com>; 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 <pjones@redhat.com>;
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 <pjones@mail.corp.redhat.com>; 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 <pjones@redhat.com>; 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 <pjones@redhat.com>; 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 <pjones@fedoraproject.org>; 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 <pjones@fedoraproject.org>; 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 <pjones@fedoraproject.org> from <benh@au1.ibm.com>;
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 <pjones@fedoraproject.org>; 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 <pjones@fedoraproject.org>; 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 <benh@au1.ibm.com>
To: Brent Baude <baude@us.ibm.com>, pjones@fedoraproject.org
Cc: hamzy@us.ibm.com, Josh Boyer <jwboyer@gmail.com>
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 <benh@kernel.crashing.org>
---
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,
};

View File

@ -0,0 +1,78 @@
From d829d54d0f461c7bc6a7d8bd549cfdacfac51082 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg@redhat.com>
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

View File

@ -0,0 +1,59 @@
From 03f6e77635f4f311a2c7bdd581f6202fa52feef7 Mon Sep 17 00:00:00 2001
From: Valdimir Serbinenko <phcoder@gmail.com>
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

View File

@ -12,17 +12,34 @@
%endif %endif
%if ! 0%{?efi} %if ! 0%{?efi}
%global efi %{ix86} x86_64 ia64 %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 %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 %undefine _missing_build_ids_terminate_build
Name: grub2 Name: grub2
Epoch: 1 Epoch: 1
Version: 2.0 Version: 2.0
Release: 0.26.beta4%{?dist} Release: 0.31.beta5%{?dist}
Summary: Bootloader with support for Linux, Multiboot and more Summary: Bootloader with support for Linux, Multiboot and more
Group: System Environment/Base Group: System Environment/Base
@ -39,9 +56,13 @@ Patch2: grub-1.99-just-say-linux.patch
Patch3: grub2-handle-initramfs-on-xen.patch Patch3: grub2-handle-initramfs-on-xen.patch
Patch4: grub-1.99-Fix-tests-of-zeroed-partition.patch Patch4: grub-1.99-Fix-tests-of-zeroed-partition.patch
Patch5: grub-1.99-ppc-terminfo.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 Patch7: grub-2.00~beta4-add-support-for-PowerMac-HFS-partitions.patch
Patch8: grub2-2.0-no-png-in-texi.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) 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: autoconf automake autogen device-mapper-devel
BuildRequires: freetype-devel gettext-devel git BuildRequires: freetype-devel gettext-devel git
BuildRequires: texinfo BuildRequires: texinfo
BuildRequires: dejavu-sans-fonts
Requires: gettext os-prober which file system-logos Requires: gettext os-prober which file system-logos
Requires: %{name}-tools = %{epoch}:%{version}-%{release}
Requires(pre): dracut Requires(pre): dracut
Requires(post): dracut Requires(post): dracut
@ -67,12 +90,14 @@ ExcludeArch: s390 s390x
%description %description
The GRand Unified Bootloader (GRUB) is a highly configurable and customizable The GRand Unified Bootloader (GRUB) is a highly configurable and customizable
bootloader with modular architecture. It support rich varietyof kernel formats, 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} %ifarch %{efi}
%package efi %package efi
Summary: GRUB for EFI systems. Summary: GRUB for EFI systems.
Group: System Environment/Base Group: System Environment/Base
Requires: %{name}-tools = %{epoch}:%{version}-%{release}
%description efi %description efi
The GRand Unified Bootloader (GRUB) is a highly configurable and customizable 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. provides support for EFI systems.
%endif %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 %prep
%setup -T -c -n grub-%{tarversion} %setup -T -c -n grub-%{tarversion}
%ifarch %{efi} %ifarch %{efi}
echo foo
%setup -D -q -T -a 0 -n grub-%{tarversion} %setup -D -q -T -a 0 -n grub-%{tarversion}
echo bar
cd grub-%{tarversion} cd grub-%{tarversion}
cp %{SOURCE3} . cp %{SOURCE3} .
# place unifont in the '.' from which configure is run # place unifont in the '.' from which configure is run
@ -126,18 +160,14 @@ cd grub-efi-%{tarversion}
-e 's/-fasynchronous-unwind-tables//g' )" \ -e 's/-fasynchronous-unwind-tables//g' )" \
TARGET_LDFLAGS=-static \ TARGET_LDFLAGS=-static \
--with-platform=efi \ --with-platform=efi \
--with-grubdir=grub2 \ --with-grubdir=%{name} \
--program-transform-name=s,grub,%{name}-efi, \ --program-transform-name=s,grub,%{name}, \
--disable-werror --disable-werror
make %{?_smp_mflags} make %{?_smp_mflags}
%ifarch %{ix86} ./grub-mkimage -O %{grubefiarch} -o %{grubefiname} -d grub-core \
%define grubefiarch i386-efi part_gpt hfsplus fat ext2 btrfs normal chain boot configfile linux \
%else minicmd reboot halt search font gfxterm echo video all_video \
%define grubefiarch %{_arch}-efi test gfxmenu png efifwsetup
%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
cd .. cd ..
%endif %endif
@ -161,7 +191,7 @@ cd grub-%{tarversion}
-e 's/-fasynchronous-unwind-tables//g' )" \ -e 's/-fasynchronous-unwind-tables//g' )" \
TARGET_LDFLAGS=-static \ TARGET_LDFLAGS=-static \
--with-platform=%{platform} \ --with-platform=%{platform} \
--with-grubdir=grub2 \ --with-grubdir=%{name} \
--program-transform-name=s,grub,%{name}, \ --program-transform-name=s,grub,%{name}, \
--disable-werror --disable-werror
@ -188,13 +218,11 @@ rm -fr $RPM_BUILD_ROOT
%ifarch %{efi} %ifarch %{efi}
cd grub-efi-%{tarversion} cd grub-efi-%{tarversion}
make DESTDIR=$RPM_BUILD_ROOT install 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 # Ghost config file
install -m 755 -d $RPM_BUILD_ROOT/boot/efi/EFI/redhat/ install -m 755 -d $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/
install -d $RPM_BUILD_ROOT/boot/efi/EFI/redhat/%{name}-efi touch $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/grub.cfg
touch $RPM_BUILD_ROOT/boot/efi/EFI/redhat/%{name}-efi/grub.cfg ln -s ../boot/efi/EFI/%{efidir}/grub.cfg $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-efi.cfg
ln -s ../boot/efi/EFI/redhat/%{name}-efi/grub.cfg $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-efi.cfg
# Install ELF files modules and images were created from into # Install ELF files modules and images were created from into
# the shadow root, where debuginfo generator will grab them from # the shadow root, where debuginfo generator will grab them from
@ -209,7 +237,7 @@ do
TGT=$(echo $MODULE |sed "s,$RPM_BUILD_ROOT,.debugroot,") TGT=$(echo $MODULE |sed "s,$RPM_BUILD_ROOT,.debugroot,")
# install -m 755 -D $BASE$EXT $TGT # install -m 755 -D $BASE$EXT $TGT
done 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 .. cd ..
%endif %endif
@ -235,11 +263,13 @@ do
# install -m 755 -D $BASE$EXT $TGT # install -m 755 -D $BASE$EXT $TGT
done done
mv $RPM_BUILD_ROOT%{_infodir}/grub.info $RPM_BUILD_ROOT%{_infodir}/grub2.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}/grub2-dev.info mv $RPM_BUILD_ROOT%{_infodir}/grub-dev.info $RPM_BUILD_ROOT%{_infodir}/%{name}-dev.info
rm $RPM_BUILD_ROOT%{_infodir}/dir rm $RPM_BUILD_ROOT%{_infodir}/dir
# Defaults # Defaults
mkdir ${RPM_BUILD_ROOT}%{_sysconfdir}/default
touch ${RPM_BUILD_ROOT}%{_sysconfdir}/default/grub
mkdir ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig mkdir ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
ln -sf %{_sysconfdir}/default/grub \ ln -sf %{_sysconfdir}/default/grub \
${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/grub ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/grub
@ -247,16 +277,20 @@ ln -sf %{_sysconfdir}/default/grub \
cd .. cd ..
%find_lang grub %find_lang grub
# Fedora theme in /boot/grub2/themes/system/
cd $RPM_BUILD_ROOT cd $RPM_BUILD_ROOT
tar xjf %{SOURCE5} 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 %clean
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%post %post
if [ "$1" = 1 ]; then if [ "$1" = 1 ]; then
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub2.info.gz || : /sbin/install-info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub2-dev.info.gz || : /sbin/install-info --info-dir=%{_infodir} %{_infodir}/%{name}-dev.info.gz || :
fi fi
%triggerun -- grub2 < 1:1.99-4 %triggerun -- grub2 < 1:1.99-4
@ -286,14 +320,30 @@ rm -r /boot/grub2.tmp/ || :
%preun %preun
if [ "$1" = 0 ]; then if [ "$1" = 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub2.info.gz || : /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub2-dev.info.gz || : /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/%{name}-dev.info.gz || :
fi fi
%files -f grub.lang %files -f grub.lang
%defattr(-,root,root,-) %defattr(-,root,root,-)
/etc/bash_completion.d/grub
%{_libdir}/grub/*-%{platform}/ %{_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/ %{_datarootdir}/grub/
%{_sbindir}/%{name}-mkconfig %{_sbindir}/%{name}-mkconfig
%{_sbindir}/%{name}-mknetdir %{_sbindir}/%{name}-mknetdir
@ -318,85 +368,61 @@ fi
%{_bindir}/%{name}-mkrescue %{_bindir}/%{name}-mkrescue
%endif %endif
%{_bindir}/%{name}-script-check %{_bindir}/%{name}-script-check
%{_sysconfdir}/bash_completion.d/grub
%attr(0700,root,root) %dir %{_sysconfdir}/grub.d %attr(0700,root,root) %dir %{_sysconfdir}/grub.d
%config %{_sysconfdir}/grub.d/??_* %config %{_sysconfdir}/grub.d/??_*
%{_sysconfdir}/grub.d/README %{_sysconfdir}/grub.d/README
%config(noreplace) %{_sysconfdir}/%{name}.cfg
%attr(0644,root,root) %ghost %config(noreplace) %{_sysconfdir}/default/grub %attr(0644,root,root) %ghost %config(noreplace) %{_sysconfdir}/default/grub
%{_sysconfdir}/sysconfig/grub %{_sysconfdir}/sysconfig/grub
%dir /boot/%{name} %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}/COPYING grub-%{tarversion}/INSTALL
%doc grub-%{tarversion}/NEWS grub-%{tarversion}/README %doc grub-%{tarversion}/NEWS grub-%{tarversion}/README
%doc grub-%{tarversion}/THANKS grub-%{tarversion}/TODO %doc grub-%{tarversion}/THANKS grub-%{tarversion}/TODO
%doc grub-%{tarversion}/ChangeLog grub-%{tarversion}/README.Fedora %doc grub-%{tarversion}/ChangeLog grub-%{tarversion}/README.Fedora
%doc grub-%{tarversion}/grub.html %doc grub-%{tarversion}/grub.html
%doc grub-%{tarversion}/grub-dev.html grub-%{tarversion}/docs/font_char_metrics.png %doc grub-%{tarversion}/grub-dev.html grub-%{tarversion}/docs/font_char_metrics.png
%exclude %{_mandir} %doc grub-%{tarversion}/themes/starfield/COPYING.CC-BY-SA-3.0
%{_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
%changelog %changelog
* Thu May 10 2012 Peter Jones <pjones@redhat.com> - 2.0-0.26.beta5 * Fri May 25 2012 Peter Jones <pjones@redhat.com> - 2.0-0.31.beta5
- Add fwsetup command (pjones)
- More ppc fixes (IBM)
* Tue May 22 2012 Peter Jones <pjones@redhat.com> - 2.0-0.30.beta5
- Fix the /other/ grub2-tools require to include epoch.
* Mon May 21 2012 Peter Jones <pjones@redhat.com> - 2.0-0.29.beta5
- Get rid of efi_uga and efi_gop, favoring all_video instead.
* Mon May 21 2012 Peter Jones <pjones@redhat.com> - 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 <pjones@redhat.com> - 2.0-0.27.beta5
- Fix module trampolining on ppc (benh)
* Thu May 10 2012 Peter Jones <pjones@redhat.com> - 2.0-0.27.beta5
- Fix license of theme (mizmo) - Fix license of theme (mizmo)
Resolves: rhbz#820713 Resolves: rhbz#820713
- Fix some PPC bootloader detection IBM problem - Fix some PPC bootloader detection IBM problem
Resolves: rhbz#820722 Resolves: rhbz#820722
* Thu May 10 2012 Peter Jones <pjones@redhat.com> - 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 <pjones@redhat.com> - 2.0-0.25.beta4 * Wed May 09 2012 Peter Jones <pjones@redhat.com> - 2.0-0.25.beta4
- Include theme support (mizmo) - Include theme support (mizmo)
- Include locale support (kiilerix) - Include locale support (kiilerix)
- Include html docs (kiilerix) - Include html docs (kiilerix)
* Thu Apr 26 2012 Peter Jones <pjones@redhat.com> - 2.0-0.24.beta4 * Thu Apr 26 2012 Peter Jones <pjones@redhat.com> - 2.0-0.24
- Various fixes from Mads Kiilerich - Various fixes from Mads Kiilerich
* Thu Apr 19 2012 Peter Jones <pjones@redhat.com> - 2.0-0.23 * Thu Apr 19 2012 Peter Jones <pjones@redhat.com> - 2.0-0.23

View File

@ -1,3 +1,3 @@
8c28087c5fcb3188f1244b390efffdbe unifont-5.1.20080820.pcf.gz 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 5e5c7bae1211f558e3c0a3011fef8609 theme.tar.bz2