mirror of
https://src.fedoraproject.org/rpms/grub2.git
synced 2024-12-01 00:48:18 +00:00
Merge remote-tracking branch 'kiilerix/f17'
Conflicts: grub2.spec
This commit is contained in:
commit
f6b642dfbe
17 changed files with 230 additions and 638 deletions
|
@ -38,9 +38,14 @@ GRUB 2 in Fedora
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
The Fedora installer (anaconda) will make sure grub2 is installed for new and
|
The Fedora installer (anaconda) will make sure grub2 is installed for new and
|
||||||
updated systems. It will write /etc/default/grub and run grub2-mkconfig to
|
updated systems. It will run grub2-install to install the boot loader in the
|
||||||
create /boot/grub2/grub.cfg, and it will run grub2-install to install the boot
|
MBR and in /boot/grub2/, and it will write /etc/default/grub and run
|
||||||
loader in the MBR and in /boot/grub2/ .
|
grub2-mkconfig to create /boot/grub2/grub.cfg.
|
||||||
|
|
||||||
|
The active boot loader will not be changed when the GRUB 2 package is updated.
|
||||||
|
A new boot loader can be installed with something like:
|
||||||
|
|
||||||
|
grub2-install /dev/sda
|
||||||
|
|
||||||
grubby will patch grub.cfg (through /etc/grub2.cfg) when new kernels are
|
grubby will patch grub.cfg (through /etc/grub2.cfg) when new kernels are
|
||||||
installed. The GRUB 2 configuration system in /etc/default/grub and /etc/grub.d/
|
installed. The GRUB 2 configuration system in /etc/default/grub and /etc/grub.d/
|
||||||
|
@ -49,26 +54,17 @@ grub.cfg with:
|
||||||
|
|
||||||
grub2-mkconfig -o /boot/grub2/grub.cfg
|
grub2-mkconfig -o /boot/grub2/grub.cfg
|
||||||
|
|
||||||
The active boot loader will not be changed when the GRUB 2 package is updated.
|
|
||||||
A new boot loader can be installed with something like:
|
|
||||||
|
|
||||||
grub2-install /dev/sda
|
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The GRUB 2 manual can be found on http://www.gnu.org/software/grub/manual/ .
|
The GRUB 2 manual can be found in grub.html or on
|
||||||
|
http://www.gnu.org/software/grub/manual/ .
|
||||||
|
|
||||||
Support channels
|
Support channels
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
If you find a bug in this package, report them to the Red Hat Bugzilla [2].
|
If you find a bug in this package, report them to the Red Hat Bugzilla [2].
|
||||||
For talk about using grub2, use IRC channel #grub on freenode Network [3].
|
For talk about using grub2, use IRC channel #grub on freenode Network [3].
|
||||||
You can meet this package maintainer there (nick lkundrak).
|
|
||||||
|
|
||||||
[2] http://bugzilla.redhat.com/
|
[2] http://bugzilla.redhat.com/
|
||||||
[3] http://freenode.net/
|
[3] http://freenode.net/
|
||||||
|
|
||||||
--
|
|
||||||
Lubomir Rintel <lkundrak@v3.sk>
|
|
||||||
Fedora Project
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
From c8f67c2ee40815c075f1d6e5b3d6b504fbe204f5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mark Hamzy <hamzy@us.ibm.com>
|
|
||||||
Date: Sun, 25 Mar 2012 09:22:34 -0500
|
|
||||||
Subject: [PATCH] Fix tests of zeroed partition
|
|
||||||
|
|
||||||
---
|
|
||||||
util/grub-install.in | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/util/grub-install.in b/util/grub-install.in
|
|
||||||
index 9c1d133..e8638af 100644
|
|
||||||
--- a/util/grub-install.in
|
|
||||||
+++ b/util/grub-install.in
|
|
||||||
@@ -750,7 +750,7 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ]
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
- if [ "$(file -s "${install_device}" -b | awk '{ print $1 }')" = ELF ] || [ $(cmp /dev/zero "${install_device}" &>/dev/null) ]; then
|
|
||||||
+ if [ "$(file -s "${install_device}" -b | awk '{ print $1 }')" = ELF ] || (cmp -s -n $(blockdev --getsize64 ${install_device}) /dev/zero "${install_device}"); then
|
|
||||||
# Change boot device to the harddisk root
|
|
||||||
boot_device="$ofpath"
|
|
||||||
dd if="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" of="${install_device}" status=noxfer || {
|
|
||||||
--
|
|
||||||
1.7.7.2
|
|
||||||
|
|
|
@ -1,167 +0,0 @@
|
||||||
From e51968bcd089db5efd5e33043e6e23592f696371 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Wed, 2 Mar 2011 13:13:44 -0500
|
|
||||||
Subject: [PATCH] Make get_test_assert() correctly format its output.
|
|
||||||
|
|
||||||
The old code gives arguments to a printf function which can't work
|
|
||||||
correctly, and the compiler complains.
|
|
||||||
---
|
|
||||||
grub-core/tests/example_functional_test.c | 2 +-
|
|
||||||
grub-core/tests/lib/test.c | 88 +++++++++++++++++++++++++++--
|
|
||||||
include/grub/test.h | 10 ++-
|
|
||||||
3 files changed, 90 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/tests/example_functional_test.c b/grub-core/tests/example_functional_test.c
|
|
||||||
index 5259881..0c69749 100644
|
|
||||||
--- a/grub-core/tests/example_functional_test.c
|
|
||||||
+++ b/grub-core/tests/example_functional_test.c
|
|
||||||
@@ -24,7 +24,7 @@ static void
|
|
||||||
example_test (void)
|
|
||||||
{
|
|
||||||
/* Check if 1st argument is true and report with default error message. */
|
|
||||||
- grub_test_assert (1 == 1);
|
|
||||||
+ grub_test_assert (1 == 1, "1 equal 1 expected");
|
|
||||||
|
|
||||||
/* Check if 1st argument is true and report with custom error message. */
|
|
||||||
grub_test_assert (2 == 2, "2 equal 2 expected");
|
|
||||||
diff --git a/grub-core/tests/lib/test.c b/grub-core/tests/lib/test.c
|
|
||||||
index 06d78b7..8453d5b 100644
|
|
||||||
--- a/grub-core/tests/lib/test.c
|
|
||||||
+++ b/grub-core/tests/lib/test.c
|
|
||||||
@@ -42,22 +42,75 @@ typedef struct grub_test_failure *grub_test_failure_t;
|
|
||||||
grub_test_t grub_test_list;
|
|
||||||
static grub_test_failure_t failure_list;
|
|
||||||
|
|
||||||
-static void
|
|
||||||
-add_failure (const char *file,
|
|
||||||
- const char *funp,
|
|
||||||
- grub_uint32_t line, const char *fmt, va_list args)
|
|
||||||
+static grub_test_failure_t
|
|
||||||
+failure_start(const char *file, const char *funp, grub_uint32_t line);
|
|
||||||
+static grub_test_failure_t
|
|
||||||
+failure_start(const char *file, const char *funp, grub_uint32_t line)
|
|
||||||
{
|
|
||||||
grub_test_failure_t failure;
|
|
||||||
|
|
||||||
failure = (grub_test_failure_t) grub_malloc (sizeof (*failure));
|
|
||||||
if (!failure)
|
|
||||||
- return;
|
|
||||||
+ return NULL;
|
|
||||||
|
|
||||||
failure->file = grub_strdup (file ? : "<unknown_file>");
|
|
||||||
+ if (!failure->file)
|
|
||||||
+ {
|
|
||||||
+ grub_free(failure);
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
failure->funp = grub_strdup (funp ? : "<unknown_function>");
|
|
||||||
+ if (!failure->funp)
|
|
||||||
+ {
|
|
||||||
+ grub_free(failure->file);
|
|
||||||
+ grub_free(failure);
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
failure->line = line;
|
|
||||||
- failure->message = grub_xvasprintf (fmt, args);
|
|
||||||
|
|
||||||
+ failure->message = NULL;
|
|
||||||
+
|
|
||||||
+ return failure;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+failure_append_vtext(grub_test_failure_t failure, const char *fmt, va_list args);
|
|
||||||
+static void
|
|
||||||
+failure_append_vtext(grub_test_failure_t failure, const char *fmt, va_list args)
|
|
||||||
+{
|
|
||||||
+ char *msg = grub_xvasprintf(fmt, args);
|
|
||||||
+ if (failure->message)
|
|
||||||
+ {
|
|
||||||
+ char *oldmsg = failure->message;
|
|
||||||
+
|
|
||||||
+ failure->message = grub_xasprintf("%s%s", oldmsg, msg);
|
|
||||||
+ grub_free(oldmsg);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ failure->message = msg;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+failure_append_text(grub_test_failure_t failure, const char *fmt, ...)
|
|
||||||
+{
|
|
||||||
+ va_list args;
|
|
||||||
+
|
|
||||||
+ va_start(args, fmt);
|
|
||||||
+ failure_append_vtext(failure, fmt, args);
|
|
||||||
+ va_end(args);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
|
||||||
+add_failure (const char *file,
|
|
||||||
+ const char *funp,
|
|
||||||
+ grub_uint32_t line, const char *fmt, va_list args)
|
|
||||||
+{
|
|
||||||
+ grub_test_failure_t failure = failure_start(file, funp, line);
|
|
||||||
+ failure_append_text(failure, fmt, args);
|
|
||||||
grub_list_push (GRUB_AS_LIST_P (&failure_list), GRUB_AS_LIST (failure));
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -100,6 +153,29 @@ grub_test_nonzero (int cond,
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
+grub_test_assert_helper (int cond, const char *file, const char *funp,
|
|
||||||
+ grub_uint32_t line, const char *condstr,
|
|
||||||
+ const char *fmt, ...)
|
|
||||||
+{
|
|
||||||
+ va_list ap;
|
|
||||||
+ grub_test_failure_t failure;
|
|
||||||
+
|
|
||||||
+ if (cond)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ failure = failure_start(file, funp, line);
|
|
||||||
+ failure_append_text(failure, "assert failed: %s ", condstr);
|
|
||||||
+
|
|
||||||
+ va_start(ap, fmt);
|
|
||||||
+
|
|
||||||
+ failure_append_vtext(failure, fmt, ap);
|
|
||||||
+
|
|
||||||
+ va_end(ap);
|
|
||||||
+
|
|
||||||
+ grub_list_push (GRUB_AS_LIST_P (&failure_list), GRUB_AS_LIST (failure));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
grub_test_register (const char *name, void (*test_main) (void))
|
|
||||||
{
|
|
||||||
grub_test_t test;
|
|
||||||
diff --git a/include/grub/test.h b/include/grub/test.h
|
|
||||||
index 5d1ba75..d876f57 100644
|
|
||||||
--- a/include/grub/test.h
|
|
||||||
+++ b/include/grub/test.h
|
|
||||||
@@ -54,10 +54,14 @@ void grub_test_nonzero (int cond, const char *file,
|
|
||||||
__attribute__ ((format (printf, 5, 6)));
|
|
||||||
|
|
||||||
/* Macro to fill in location details and an optional error message. */
|
|
||||||
+void grub_test_assert_helper (int cond, const char *file,
|
|
||||||
+ const char *func, grub_uint32_t line,
|
|
||||||
+ const char *condstr, const char *fmt, ...)
|
|
||||||
+ __attribute__ ((format (printf, 6, 7)));
|
|
||||||
+
|
|
||||||
#define grub_test_assert(cond, ...) \
|
|
||||||
- grub_test_nonzero(cond, GRUB_FILE, __FUNCTION__, __LINE__, \
|
|
||||||
- ## __VA_ARGS__, \
|
|
||||||
- "assert failed: %s", #cond)
|
|
||||||
+ grub_test_assert_helper(cond, GRUB_FILE, __FUNCTION__, __LINE__, \
|
|
||||||
+ #cond, ## __VA_ARGS__);
|
|
||||||
|
|
||||||
void grub_unit_test_init (void);
|
|
||||||
void grub_unit_test_fini (void);
|
|
||||||
--
|
|
||||||
1.7.3.1
|
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
From de1c35857ee803653d3ffd94eb5d3f3b45ab000e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Wed, 2 Mar 2011 11:29:28 -0500
|
|
||||||
Subject: [PATCH] Don't ignore fwrite's return since we build with -Wno-unused.
|
|
||||||
|
|
||||||
---
|
|
||||||
util/grub-mklayout.c | 7 ++++---
|
|
||||||
1 files changed, 4 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/util/grub-mklayout.c b/util/grub-mklayout.c
|
|
||||||
index 04501cb..beea3eb 100644
|
|
||||||
--- a/util/grub-mklayout.c
|
|
||||||
+++ b/util/grub-mklayout.c
|
|
||||||
@@ -324,6 +324,7 @@ write_file (FILE *out, struct grub_keyboard_layout *layout)
|
|
||||||
{
|
|
||||||
grub_uint32_t version;
|
|
||||||
unsigned i;
|
|
||||||
+ int rc;
|
|
||||||
|
|
||||||
version = grub_cpu_to_le32 (GRUB_KEYBOARD_LAYOUTS_VERSION);
|
|
||||||
|
|
||||||
@@ -342,10 +343,10 @@ write_file (FILE *out, struct grub_keyboard_layout *layout)
|
|
||||||
layout->keyboard_map_shift_l3[i]
|
|
||||||
= grub_cpu_to_le32(layout->keyboard_map_shift_l3[i]);
|
|
||||||
|
|
||||||
- fwrite (GRUB_KEYBOARD_LAYOUTS_FILEMAGIC, 1,
|
|
||||||
+ rc = fwrite (GRUB_KEYBOARD_LAYOUTS_FILEMAGIC, 1,
|
|
||||||
GRUB_KEYBOARD_LAYOUTS_FILEMAGIC_SIZE, out);
|
|
||||||
- fwrite (&version, sizeof (version), 1, out);
|
|
||||||
- fwrite (layout, 1, sizeof (*layout), out);
|
|
||||||
+ rc = fwrite (&version, sizeof (version), 1, out);
|
|
||||||
+ rc = fwrite (layout, 1, sizeof (*layout), out);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
--
|
|
||||||
1.7.3.1
|
|
||||||
|
|
||||||
diff --git a/util/grub-menulst2cfg.c b/util/grub-menulst2cfg.c
|
|
||||||
index 513af47..308f8e9 100644
|
|
||||||
--- a/util/grub-menulst2cfg.c
|
|
||||||
+++ b/util/grub-menulst2cfg.c
|
|
||||||
@@ -34,6 +34,7 @@ main (int argc, char **argv)
|
|
||||||
size_t bufsize = 0;
|
|
||||||
char *suffix = xstrdup ("");
|
|
||||||
int suffixlen = 0;
|
|
||||||
+ int rc;
|
|
||||||
|
|
||||||
if (argc >= 2 && argv[1][0] == '-')
|
|
||||||
{
|
|
||||||
@@ -111,7 +112,7 @@ main (int argc, char **argv)
|
|
||||||
if (entryname)
|
|
||||||
fprintf (out, "}\n\n");
|
|
||||||
|
|
||||||
- fwrite (suffix, 1, suffixlen, out);
|
|
||||||
+ rc = fwrite (suffix, 1, suffixlen, out);
|
|
||||||
|
|
||||||
free (buf);
|
|
||||||
free (suffix);
|
|
|
@ -29,9 +29,9 @@ index ce52576..29ebcbd 100644
|
||||||
+ * include/grub/efi/api.h: add define for OsIndications variable
|
+ * include/grub/efi/api.h: add define for OsIndications variable
|
||||||
+ * include/grub/efi/efi.h: export grub_efi_set_variable
|
+ * include/grub/efi/efi.h: export grub_efi_set_variable
|
||||||
+
|
+
|
||||||
2012-04-18 Vladimir Serbinenko <phcoder@gmail.com>
|
2012-05-31 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* configure.ac: Bump to beta5.
|
* configure.ac: Bump to beta6.
|
||||||
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
|
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
|
||||||
index 000cf0d..d0c06d5 100644
|
index 000cf0d..d0c06d5 100644
|
||||||
--- a/grub-core/Makefile.core.def
|
--- a/grub-core/Makefile.core.def
|
||||||
|
|
|
@ -14,7 +14,7 @@ index 293b756..2503aa0 100644
|
||||||
--- a/util/grub-install.in
|
--- a/util/grub-install.in
|
||||||
+++ b/util/grub-install.in
|
+++ b/util/grub-install.in
|
||||||
@@ -818,14 +818,16 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ]
|
@@ -818,14 +818,16 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ]
|
||||||
fi
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- "$nvsetenv" boot-device "$boot_device" || {
|
- "$nvsetenv" boot-device "$boot_device" || {
|
||||||
|
@ -25,16 +25,16 @@ index 293b756..2503aa0 100644
|
||||||
- echo " setenv boot-device $boot_device" 1>&2
|
- echo " setenv boot-device $boot_device" 1>&2
|
||||||
- exit 1
|
- exit 1
|
||||||
- }
|
- }
|
||||||
+ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ]; then
|
+ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ]; then
|
||||||
+ "$nvsetenv" boot-device "$boot_device" || {
|
+ "$nvsetenv" boot-device "$boot_device" || {
|
||||||
+ # TRANSLATORS: The %s will be replaced by an external program name.
|
+ # TRANSLATORS: The %s will be replaced by an external program name.
|
||||||
+ gettext_printf "\`%s' failed.\n" "$nvsetenv" 1>&2
|
+ 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
|
+ gettext "You will have to set \`boot-device' variable manually. At the IEEE1275 prompt, type:" 1>&2
|
||||||
+ echo 1>&2
|
+ echo 1>&2
|
||||||
+ echo " setenv boot-device $boot_device" 1>&2
|
+ echo " setenv boot-device $boot_device" 1>&2
|
||||||
+ exit 1
|
+ exit 1
|
||||||
+ }
|
+ }
|
||||||
+ fi
|
+ fi
|
||||||
fi
|
fi
|
||||||
elif [ x"${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = xmips-arc ]; then
|
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
|
dvhtool -d "${install_device}" --unix-to-vh "{grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" grub
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
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,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
From 8e4aea82c6aba6b8b5ca68d74abafa3fe9486c36 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Thu, 19 Apr 2012 14:17:38 -0400
|
|
||||||
Subject: [PATCH] Open device O_WRONLY in grub_util_biosdisk_write.
|
|
||||||
|
|
||||||
revision 4225 introduced an error wherein the device we intend
|
|
||||||
to write to from e.g. grub2-bios-setup is opened read-only. The
|
|
||||||
immediate following write(2) call then fails with -EBADF.
|
|
||||||
|
|
||||||
---
|
|
||||||
grub-core/kern/emu/hostdisk.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c
|
|
||||||
index ea7eb3d..19748df 100644
|
|
||||||
--- a/grub-core/kern/emu/hostdisk.c
|
|
||||||
+++ b/grub-core/kern/emu/hostdisk.c
|
|
||||||
@@ -1081,7 +1081,7 @@ grub_util_biosdisk_write (grub_disk_t disk, grub_disk_addr_t sector,
|
|
||||||
{
|
|
||||||
int fd;
|
|
||||||
grub_disk_addr_t max = ~0ULL;
|
|
||||||
- fd = open_device (disk, sector, O_RDONLY, &max);
|
|
||||||
+ fd = open_device (disk, sector, O_WRONLY, &max);
|
|
||||||
if (fd < 0)
|
|
||||||
return grub_errno;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.10
|
|
||||||
|
|
16
grub-2.00-ieee1276.patch
Normal file
16
grub-2.00-ieee1276.patch
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
From: Valdimir Serbinenko <phcoder@gmail.com>
|
||||||
|
Subject: Check for ieee1275 and not ieee1276.
|
||||||
|
|
||||||
|
upstream rev 4404
|
||||||
|
|
||||||
|
--- a/util/grub-install.in 2012-05-31 11:38:21 +0000
|
||||||
|
+++ b/util/grub-install.in 2012-06-01 20:43:10 +0000
|
||||||
|
@@ -738,7 +738,7 @@
|
||||||
|
elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ] || [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "powerpc-ieee1275" ]; then
|
||||||
|
|
||||||
|
# If a install device is defined, copy the core.elf to PReP partition.
|
||||||
|
- if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "powerpc-ieee1276" ] && [ -n "${install_device}" ]; then
|
||||||
|
+ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "powerpc-ieee1275" ] && [ -n "${install_device}" ]; then
|
||||||
|
if [ "$("${grub_probe}" -m "${device_map}" -d "${install_device}" -t msdos_parttype)" != "41" ]; then
|
||||||
|
gettext "The chosen partition is not a PReP partition." 1>&2
|
||||||
|
echo 1>&2
|
82
grub-2.00-linux-mbr.patch
Normal file
82
grub-2.00-linux-mbr.patch
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
From: Valdimir Serbinenko <phcoder@gmail.com>
|
||||||
|
Subject: Fix MBR remapping workaround.
|
||||||
|
|
||||||
|
upstream rev 4405
|
||||||
|
|
||||||
|
--- a/grub-core/kern/emu/hostdisk.c 2012-05-27 11:19:09 +0000
|
||||||
|
+++ b/grub-core/kern/emu/hostdisk.c 2012-06-02 11:48:44 +0000
|
||||||
|
@@ -1067,27 +1067,18 @@
|
||||||
|
if (fd < 0)
|
||||||
|
return grub_errno;
|
||||||
|
|
||||||
|
+#ifdef __linux__
|
||||||
|
+ if (sector == 0)
|
||||||
|
+ /* Work around a bug in Linux ez remapping. Linux remaps all
|
||||||
|
+ sectors that are read together with the MBR in one read. It
|
||||||
|
+ should only remap the MBR, so we split the read in two
|
||||||
|
+ parts. -jochen */
|
||||||
|
+ max = 1;
|
||||||
|
+#endif /* __linux__ */
|
||||||
|
+
|
||||||
|
if (max > size)
|
||||||
|
max = size;
|
||||||
|
|
||||||
|
-#ifdef __linux__
|
||||||
|
- if (sector == 0 && max > 1)
|
||||||
|
- {
|
||||||
|
- /* Work around a bug in Linux ez remapping. Linux remaps all
|
||||||
|
- sectors that are read together with the MBR in one read. It
|
||||||
|
- should only remap the MBR, so we split the read in two
|
||||||
|
- parts. -jochen */
|
||||||
|
- if (grub_util_fd_read (fd, buf, (1 << disk->log_sector_size))
|
||||||
|
- != (1 << disk->log_sector_size))
|
||||||
|
- return grub_error (GRUB_ERR_READ_ERROR, N_("cannot read `%s': %s"),
|
||||||
|
- map[disk->id].device, strerror (errno));
|
||||||
|
-
|
||||||
|
- buf += (1 << disk->log_sector_size);
|
||||||
|
- size--;
|
||||||
|
- max--;
|
||||||
|
- }
|
||||||
|
-#endif /* __linux__ */
|
||||||
|
-
|
||||||
|
if (grub_util_fd_read (fd, buf, max << disk->log_sector_size)
|
||||||
|
!= (ssize_t) (max << disk->log_sector_size))
|
||||||
|
return grub_error (GRUB_ERR_READ_ERROR, N_("cannot read `%s': %s"),
|
||||||
|
@@ -1111,28 +1102,18 @@
|
||||||
|
if (fd < 0)
|
||||||
|
return grub_errno;
|
||||||
|
|
||||||
|
+#ifdef __linux__
|
||||||
|
+ if (sector == 0)
|
||||||
|
+ /* Work around a bug in Linux ez remapping. Linux remaps all
|
||||||
|
+ sectors that are write together with the MBR in one write. It
|
||||||
|
+ should only remap the MBR, so we split the write in two
|
||||||
|
+ parts. -jochen */
|
||||||
|
+ max = 1;
|
||||||
|
+#endif /* __linux__ */
|
||||||
|
+
|
||||||
|
if (max > size)
|
||||||
|
max = size;
|
||||||
|
|
||||||
|
-#ifdef __linux__
|
||||||
|
- if (sector == 0 && max > 1)
|
||||||
|
- {
|
||||||
|
- /* Work around a bug in Linux ez remapping. Linux remaps all
|
||||||
|
- sectors that are write together with the MBR in one write. It
|
||||||
|
- should only remap the MBR, so we split the write in two
|
||||||
|
- parts. -jochen */
|
||||||
|
- if (grub_util_fd_write (fd, buf, (1 << disk->log_sector_size))
|
||||||
|
- != (1 << disk->log_sector_size))
|
||||||
|
- return grub_error (GRUB_ERR_WRITE_ERROR,
|
||||||
|
- N_("cannot write to `%s': %s"),
|
||||||
|
- map[disk->id].device, strerror (errno));
|
||||||
|
-
|
||||||
|
- buf += (1 << disk->log_sector_size);
|
||||||
|
- size--;
|
||||||
|
- max--;
|
||||||
|
- }
|
||||||
|
-#endif /* __linux__ */
|
||||||
|
-
|
||||||
|
if (grub_util_fd_write (fd, buf, max << disk->log_sector_size)
|
||||||
|
!= (ssize_t) (max << disk->log_sector_size))
|
||||||
|
return grub_error (GRUB_ERR_WRITE_ERROR, N_("cannot write to `%s': %s"),
|
29
grub-2.00-no-canon.patch
Normal file
29
grub-2.00-no-canon.patch
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
From: Valdimir Serbinenko <phcoder@gmail.com>
|
||||||
|
Subject: Don't canonicalise /dev/root and /dev/dm-*.
|
||||||
|
|
||||||
|
upstream rev 4408
|
||||||
|
|
||||||
|
--- a/util/getroot.c 2012-05-28 15:43:12 +0000
|
||||||
|
+++ b/util/getroot.c 2012-06-02 12:36:27 +0000
|
||||||
|
@@ -1036,10 +1036,16 @@
|
||||||
|
{
|
||||||
|
char *tmp = *cur;
|
||||||
|
int root, dm;
|
||||||
|
- *cur = canonicalize_file_name (tmp);
|
||||||
|
- if (*cur == NULL)
|
||||||
|
- grub_util_error (_("failed to get canonical path of %s"), tmp);
|
||||||
|
- free (tmp);
|
||||||
|
+ if (strcmp (*cur, "/dev/root") == 0
|
||||||
|
+ || strncmp (*cur, "/dev/dm-", sizeof ("/dev/dm-") - 1) == 0)
|
||||||
|
+ *cur = tmp;
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ *cur = canonicalize_file_name (tmp);
|
||||||
|
+ if (*cur == NULL)
|
||||||
|
+ grub_util_error (_("failed to get canonical path of %s"), tmp);
|
||||||
|
+ free (tmp);
|
||||||
|
+ }
|
||||||
|
root = (strcmp (*cur, "/dev/root") == 0);
|
||||||
|
dm = (strncmp (*cur, "/dev/dm-", sizeof ("/dev/dm-") - 1) == 0);
|
||||||
|
if (!dm && !root)
|
||||||
|
|
67
grub-2.00-no-huge-video.patch
Normal file
67
grub-2.00-no-huge-video.patch
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
From: Valdimir Serbinenko <phcoder@gmail.com>
|
||||||
|
Subject: Reject huge flat panels and monitors over 4096x4096
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=827003
|
||||||
|
|
||||||
|
Backport upstream rev 4412
|
||||||
|
|
||||||
|
diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c
|
||||||
|
index 3e1cc23..4628dd0 100644
|
||||||
|
--- a/grub-core/video/efi_gop.c
|
||||||
|
+++ b/grub-core/video/efi_gop.c
|
||||||
|
@@ -368,7 +368,7 @@ grub_video_gop_setup (unsigned int width, unsigned int height,
|
||||||
|
{
|
||||||
|
err = 1;
|
||||||
|
grub_gop_get_preferred_mode (&preferred_width, &preferred_height);
|
||||||
|
- if (err)
|
||||||
|
+ if (err || width >= 4096 || height >= 4096)
|
||||||
|
{
|
||||||
|
preferred_width = 800;
|
||||||
|
preferred_height = 600;
|
||||||
|
diff --git a/grub-core/video/i386/pc/vbe.c b/grub-core/video/i386/pc/vbe.c
|
||||||
|
index 5656388..62e530a 100644
|
||||||
|
--- a/grub-core/video/i386/pc/vbe.c
|
||||||
|
+++ b/grub-core/video/i386/pc/vbe.c
|
||||||
|
@@ -581,7 +581,6 @@ grub_vbe_get_preferred_mode (unsigned int *width, unsigned int *height)
|
||||||
|
/* Use low memory scratch area as temporary storage for VESA BIOS calls. */
|
||||||
|
flat_panel_info = (struct grub_vbe_flat_panel_info *)
|
||||||
|
(GRUB_MEMORY_MACHINE_SCRATCH_ADDR + sizeof (struct grub_video_edid_info));
|
||||||
|
- grub_memset (flat_panel_info, 0, sizeof (*flat_panel_info));
|
||||||
|
|
||||||
|
if (controller_info.version >= 0x200
|
||||||
|
&& (grub_vbe_bios_get_ddc_capabilities (&ddc_level) & 0xff)
|
||||||
|
@@ -590,14 +589,18 @@ grub_vbe_get_preferred_mode (unsigned int *width, unsigned int *height)
|
||||||
|
if (grub_video_vbe_get_edid (&edid_info) == GRUB_ERR_NONE
|
||||||
|
&& grub_video_edid_checksum (&edid_info) == GRUB_ERR_NONE
|
||||||
|
&& grub_video_edid_preferred_mode (&edid_info, width, height)
|
||||||
|
- == GRUB_ERR_NONE)
|
||||||
|
+ == GRUB_ERR_NONE && *width < 4096 && *height < 4096)
|
||||||
|
return GRUB_ERR_NONE;
|
||||||
|
|
||||||
|
grub_errno = GRUB_ERR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ grub_memset (flat_panel_info, 0, sizeof (*flat_panel_info));
|
||||||
|
status = grub_vbe_bios_get_flat_panel_info (flat_panel_info);
|
||||||
|
- if (status == GRUB_VBE_STATUS_OK)
|
||||||
|
+ if (status == GRUB_VBE_STATUS_OK
|
||||||
|
+ && flat_panel_info->horizontal_size && flat_panel_info->vertical_size
|
||||||
|
+ && flat_panel_info->horizontal_size < 4096
|
||||||
|
+ && flat_panel_info->vertical_size < 4096)
|
||||||
|
{
|
||||||
|
*width = flat_panel_info->horizontal_size;
|
||||||
|
*height = flat_panel_info->vertical_size;
|
||||||
|
diff --git a/grub-core/video/video.c b/grub-core/video/video.c
|
||||||
|
index 67de85a..c36994f 100644
|
||||||
|
--- a/grub-core/video/video.c
|
||||||
|
+++ b/grub-core/video/video.c
|
||||||
|
@@ -415,7 +415,8 @@ grub_video_edid_preferred_mode (struct grub_video_edid_info *edid_info,
|
||||||
|
| (((unsigned int)
|
||||||
|
(edid_info->detailed_timings[0].vertical_hi & 0xf0))
|
||||||
|
<< 4);
|
||||||
|
- return GRUB_ERR_NONE;
|
||||||
|
+ if (*width && *height)
|
||||||
|
+ return GRUB_ERR_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return grub_error (GRUB_ERR_BAD_DEVICE, "no preferred mode available");
|
|
@ -1,59 +0,0 @@
|
||||||
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
|
|
||||||
|
|
|
@ -1,94 +0,0 @@
|
||||||
From f2dc76d4d82ac9bbe5ccb4e8ccc49c14e8574c20 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fedora Ninjas <pjones@fedoraproject.org>
|
|
||||||
Date: Wed, 25 Apr 2012 13:09:15 +0200
|
|
||||||
Subject: [PATCH 2/2] add support for PowerMac HFS partitions
|
|
||||||
|
|
||||||
Signed-off-by: Fedora PPC secondary arch maintainer <karsten@fedoraproject.org>
|
|
||||||
---
|
|
||||||
util/grub-install.in | 67 ++++++++++++++++++++++++++++++++------------------
|
|
||||||
1 files changed, 43 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/util/grub-install.in b/util/grub-install.in
|
|
||||||
index 26be9d9..f1f9bae 100644
|
|
||||||
--- a/util/grub-install.in
|
|
||||||
+++ b/util/grub-install.in
|
|
||||||
@@ -757,33 +757,52 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ]
|
|
||||||
|
|
||||||
# If a install device is defined, copy the core.elf to PReP partition.
|
|
||||||
else
|
|
||||||
- if [ "$("${grub_probe}" -m "${device_map}" -d "${install_device}" -t msdos_parttype)" != "41" ]; then
|
|
||||||
- gettext "The chosen partition is not a PReP partition." 1>&2
|
|
||||||
- echo 1>&2
|
|
||||||
- exit 1
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
+ if [ "$("${grub_probe}" -m "${device_map}" -d "${install_device}" -t msdos_parttype)" = "41" ]; then
|
|
||||||
if [ "$(file -s "${install_device}" -b | awk '{ print $1 }')" = ELF ] || (cmp -s -n $(blockdev --getsize64 ${install_device}) /dev/zero "${install_device}"); then
|
|
||||||
- # Change boot device to the harddisk root
|
|
||||||
- boot_device="$ofpath"
|
|
||||||
- dd if="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" of="${install_device}" status=noxfer || {
|
|
||||||
- gettext "Failed to copy Grub to the PReP partition." 1>&2
|
|
||||||
- echo 1>&2
|
|
||||||
- exit 1
|
|
||||||
- }
|
|
||||||
+ # Change boot device to the harddisk root
|
|
||||||
+ boot_device="$ofpath"
|
|
||||||
+ dd if="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" of="${install_device}" status=noxfer || {
|
|
||||||
+ gettext "Failed to copy Grub to the PReP partition." 1>&2
|
|
||||||
+ echo 1>&2
|
|
||||||
+ exit 1
|
|
||||||
+ }
|
|
||||||
else
|
|
||||||
- gettext "The PReP partition is not empty. If you are sure you want to use it, run dd to clear it:" 1>&2
|
|
||||||
- echo 1>&2
|
|
||||||
- echo " dd if=/dev/zero of=${install_device}"
|
|
||||||
- exit 1
|
|
||||||
+ gettext "The PReP partition is not empty. If you are sure you want to use it, run dd to clear it:" 1>&2
|
|
||||||
+ echo 1>&2
|
|
||||||
+ echo " dd if=/dev/zero of=${install_device}"
|
|
||||||
+ exit 1
|
|
||||||
fi
|
|
||||||
- dev="`echo "${install_device}" | sed -e 's/\/dev\///' -e 's/[0-9]\+//'`"
|
|
||||||
- boot_device="`$ofpathname "$dev"`" || {
|
|
||||||
- # TRANSLATORS: "device tree path" is the name of the device
|
|
||||||
- # for IEEE1275
|
|
||||||
- gettext_printf "Couldn't find IEEE1275 device tree path for %s.\nYou will have to set \`boot-device' variable manually.\n" "$dev" 1>&2
|
|
||||||
- exit 1
|
|
||||||
- }
|
|
||||||
+ dev="`echo "${install_device}" | sed -e 's/\/dev\///' -e 's/[0-9]\+//'`"
|
|
||||||
+ boot_device="`$ofpathname "$dev"`" || {
|
|
||||||
+ # TRANSLATORS: "device tree path" is the name of the device
|
|
||||||
+ # for IEEE1275
|
|
||||||
+ gettext_printf "Couldn't find IEEE1275 device tree path for %s.\nYou will have to set \`boot-device' variable manually.\n" "$dev" 1>&2
|
|
||||||
+ exit 1
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ hmount ${install_device} >/dev/null 2>&1
|
|
||||||
+ if [ $? -eq 0 ]; then
|
|
||||||
+ humount "${install_device}"
|
|
||||||
+ # Change boot device to the harddisk root
|
|
||||||
+ boot_device="$ofpath"
|
|
||||||
+ hmount "${install_device}"
|
|
||||||
+ hcopy "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" ":" || {
|
|
||||||
+ gettext "Failed to copy Grub to the HFS partition." 1>&2
|
|
||||||
+ gettext "Maybe the HFS partition is not empty. If you are sure you want to use it, run hformat to clear it:" 1>&2
|
|
||||||
+ echo 1>&2
|
|
||||||
+ echo " hformat ${install_device}"
|
|
||||||
+ exit 1
|
|
||||||
+ }
|
|
||||||
+ humount "${install_device}"
|
|
||||||
+ # We're on PowerMac, it's either /dev/sdaX or /dev/hdaX:
|
|
||||||
+ dev="`echo "${install_device}" | sed -e 's/\/dev\/.da//'`"
|
|
||||||
+ boot_device="hd:${dev},core.${imgext}"
|
|
||||||
+ else
|
|
||||||
+ gettext "The chosen partition is neither a PReP nor a HFS partition." 1>&2
|
|
||||||
+ echo 1>&2
|
|
||||||
+ exit 1
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
"$nvsetenv" boot-device "$boot_device" || {
|
|
||||||
--
|
|
||||||
1.7.6.5
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
From e3c5e7e3accaced35b3e3ee367068d14bbce91bf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Jones <pjones@redhat.com>
|
|
||||||
Date: Thu, 10 May 2012 16:31:29 -0400
|
|
||||||
Subject: [PATCH] Specifying .png in @image doesn't work - leaving it out
|
|
||||||
|
|
||||||
---
|
|
||||||
docs/grub-dev.texi | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
|
|
||||||
index 51b4787..ddde5e9 100644
|
|
||||||
--- a/docs/grub-dev.texi
|
|
||||||
+++ b/docs/grub-dev.texi
|
|
||||||
@@ -1689,7 +1689,7 @@ right edges of two adjacent glyphs. The @strong{device width} field determines
|
|
||||||
the effective leading value that is used to render the font.
|
|
||||||
|
|
||||||
@end itemize
|
|
||||||
-@image{font_char_metrics,,,,.png}
|
|
||||||
+@image{font_char_metrics,,,,}
|
|
||||||
|
|
||||||
An illustration of how the various font metrics apply to characters.
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.10.1
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
From: Marko Ristola <marko.ristola@kolumbus.fi>
|
|
||||||
Date: 2011-08-07 07:43:01 EDT
|
|
||||||
Subject: [PATCH] Xen also uses initramfs not initrd filename
|
|
||||||
|
|
||||||
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
|
|
||||||
--- a/util/grub.d/20_linux_xen.in 2011-05-17 17:10:29 +0000
|
|
||||||
+++ b/util/grub.d/20_linux_xen.in 2011-09-14 19:02:23 +0000
|
|
||||||
@@ -154,6 +154,7 @@
|
|
||||||
for i in "initrd.img-${version}" "initrd-${version}.img" \
|
|
||||||
"initrd-${version}" "initrd.img-${alt_version}" \
|
|
||||||
"initrd-${alt_version}.img" "initrd-${alt_version}" \
|
|
||||||
+ "initramfs-${version}.img" "initramfs-${alt_version}" \
|
|
||||||
"initramfs-genkernel-${version}" \
|
|
||||||
"initramfs-genkernel-${alt_version}" ; do
|
|
||||||
if test -e "${dirname}/${i}" ; then
|
|
||||||
|
|
32
grub2.spec
32
grub2.spec
|
@ -6,14 +6,14 @@
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
%define _target_platform i386-%{_vendor}-%{_target_os}%{?_gnu}
|
%define _target_platform i386-%{_vendor}-%{_target_os}%{?_gnu}
|
||||||
%endif
|
%endif
|
||||||
#sparc is always compile 64 bit
|
# sparc is always compiled 64 bit
|
||||||
%ifarch %{sparc}
|
%ifarch %{sparc}
|
||||||
%define _target_platform sparc64-%{_vendor}-%{_target_os}%{?_gnu}
|
%define _target_platform sparc64-%{_vendor}-%{_target_os}%{?_gnu}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if ! 0%{?efi}
|
%if ! 0%{?efi}
|
||||||
|
|
||||||
%global efi %{ix86} x86_64 ia64
|
%global efiarchs %{ix86} x86_64 ia64
|
||||||
|
|
||||||
%ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
%global grubefiarch i386-efi
|
%global grubefiarch i386-efi
|
||||||
|
@ -51,21 +51,16 @@ Source0: ftp://alpha.gnu.org/gnu/grub/grub-%{tarversion}.tar.xz
|
||||||
Source3: README.Fedora
|
Source3: README.Fedora
|
||||||
Source4: http://unifoundry.com/unifont-5.1.20080820.pcf.gz
|
Source4: http://unifoundry.com/unifont-5.1.20080820.pcf.gz
|
||||||
Source5: theme.tar.bz2
|
Source5: theme.tar.bz2
|
||||||
Patch0: grub-1.99-handle-fwrite-return.patch
|
Patch0: grub-2.00-ieee1276.patch
|
||||||
Patch1: grub-1.99-grub_test_assert_printf.patch
|
Patch1: grub-2.00-no-canon.patch
|
||||||
Patch2: grub-1.99-just-say-linux.patch
|
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
|
Patch5: grub-1.99-ppc-terminfo.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
|
Patch10: grub-2.00-add-fw_path-search.patch
|
||||||
Patch11: grub-2.00-Add-fwsetup.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
|
Patch13: grub-2.00-Dont-set-boot-on-ppc.patch
|
||||||
Patch14: grub-2.00-ignore-gnulib-gets-stupidity.patch
|
Patch14: grub-2.00-ignore-gnulib-gets-stupidity.patch
|
||||||
|
Patch15: grub-2.00-linux-mbr.patch
|
||||||
|
Patch16: grub-2.00-no-huge-video.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
|
@ -73,8 +68,10 @@ BuildRequires: flex bison binutils python
|
||||||
BuildRequires: ncurses-devel xz-devel
|
BuildRequires: ncurses-devel xz-devel
|
||||||
BuildRequires: freetype-devel libusb-devel
|
BuildRequires: freetype-devel libusb-devel
|
||||||
%ifarch %{sparc} x86_64
|
%ifarch %{sparc} x86_64
|
||||||
|
# sparc builds need 64 bit glibc-devel - also for 32 bit userland
|
||||||
BuildRequires: /usr/lib64/crt1.o glibc-static
|
BuildRequires: /usr/lib64/crt1.o glibc-static
|
||||||
%else
|
%else
|
||||||
|
# ppc64 builds need the ppc crt1.o
|
||||||
BuildRequires: /usr/lib/crt1.o glibc-static
|
BuildRequires: /usr/lib/crt1.o glibc-static
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: autoconf automake autogen device-mapper-devel
|
BuildRequires: autoconf automake autogen device-mapper-devel
|
||||||
|
@ -87,8 +84,7 @@ Requires: %{name}-tools = %{epoch}:%{version}-%{release}
|
||||||
Requires(pre): dracut
|
Requires(pre): dracut
|
||||||
Requires(post): dracut
|
Requires(post): dracut
|
||||||
|
|
||||||
# ExclusiveArch: %{ix86} x86_64 %{sparc}
|
ExcludeArch: s390 s390x %{arm}
|
||||||
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
|
||||||
|
@ -96,7 +92,7 @@ bootloader with modular architecture. It support rich varietyof kernel formats,
|
||||||
file systems, computer architectures and hardware devices. This subpackage
|
file systems, computer architectures and hardware devices. This subpackage
|
||||||
provides support for PC BIOS systems.
|
provides support for PC BIOS systems.
|
||||||
|
|
||||||
%ifarch %{efi}
|
%ifarch %{efiarchs}
|
||||||
%package efi
|
%package efi
|
||||||
Summary: GRUB for EFI systems.
|
Summary: GRUB for EFI systems.
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
|
@ -122,7 +118,7 @@ provides tools for support of all platforms.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -T -c -n grub-%{tarversion}
|
%setup -T -c -n grub-%{tarversion}
|
||||||
%ifarch %{efi}
|
%ifarch %{efiarchs}
|
||||||
%setup -D -q -T -a 0 -n grub-%{tarversion}
|
%setup -D -q -T -a 0 -n grub-%{tarversion}
|
||||||
cd grub-%{tarversion}
|
cd grub-%{tarversion}
|
||||||
cp %{SOURCE3} .
|
cp %{SOURCE3} .
|
||||||
|
@ -150,7 +146,7 @@ git commit -a -q -m "%{tarversion} baseline."
|
||||||
git am %{patches}
|
git am %{patches}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%ifarch %{efi}
|
%ifarch %{efiarchs}
|
||||||
cd grub-efi-%{tarversion}
|
cd grub-efi-%{tarversion}
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
%configure \
|
%configure \
|
||||||
|
@ -218,7 +214,7 @@ sed -i -e 's,/boot/grub/,/boot/%{name}/,g' \
|
||||||
set -e
|
set -e
|
||||||
rm -fr $RPM_BUILD_ROOT
|
rm -fr $RPM_BUILD_ROOT
|
||||||
|
|
||||||
%ifarch %{efi}
|
%ifarch %{efiarchs}
|
||||||
cd grub-efi-%{tarversion}
|
cd grub-efi-%{tarversion}
|
||||||
make DESTDIR=$RPM_BUILD_ROOT install
|
make DESTDIR=$RPM_BUILD_ROOT install
|
||||||
|
|
||||||
|
@ -334,7 +330,7 @@ fi
|
||||||
%ghost %config(noreplace) /boot/%{name}/grub.cfg
|
%ghost %config(noreplace) /boot/%{name}/grub.cfg
|
||||||
%doc grub-%{tarversion}/COPYING
|
%doc grub-%{tarversion}/COPYING
|
||||||
|
|
||||||
%ifarch %{efi}
|
%ifarch %{efiarchs}
|
||||||
%files efi
|
%files efi
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{_libdir}/grub/%{grubefiarch}
|
%{_libdir}/grub/%{grubefiarch}
|
||||||
|
|
Loading…
Reference in a new issue