Compare commits

...

7 Commits
master ... el6

Author SHA1 Message Date
Fedora Release Engineering
dbef682b65 dist-git conversion 2010-07-28 17:08:47 +00:00
Dennis Gilmore
0423d66014 readd accidently deleted patch 2010-07-24 15:33:19 +00:00
Dennis Gilmore
5583312834 clean up patches update to match rawhide 2010-07-24 15:32:41 +00:00
Dennis Gilmore
e146898f65 Initialize branch EL-6 for grub2 2010-05-08 01:52:51 +00:00
Bill Nottingham
0f402aeddb Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 02:03:30 +00:00
Dennis Gilmore
e12365f488 include some sparc fixes and make sure dracut is available 2009-11-10 22:52:35 +00:00
Dennis Gilmore
1051f8ba40 sync 1.97.1 from devel. 2009-11-10 21:00:35 +00:00
17 changed files with 141 additions and 547 deletions

View File

@ -1 +0,0 @@
grub2.tar.gz

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
grub-1.98.tar.gz

View File

@ -1,21 +0,0 @@
# Makefile for source rpm: grub2
# $Id$
NAME := grub2
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

View File

@ -1,52 +0,0 @@
http://lists.gnu.org/archive/html/grub-devel/2008-04/msg00079.html
Self-explainable. Make update-grub ignore rpm leftover files and VIM
swap files.
2008-04-15 Lubomir Kundrak <lkundrak@redhat.com>
* util/update-grub.in: replace the junk file switch with
unconditional call to grub_file_is_not_garbage
* util/update-grub_lib.in (grub_file_is_not_garbage): ignore
also rpm leftover files and editor backup files
diff -urp grub-1.96.orig/util/update-grub.in grub-1.96/util/update-grub.in
--- grub-1.96.orig/util/update-grub.in 2008-04-15 00:16:12.000000000 +0200
+++ grub-1.96/util/update-grub.in 2008-04-15 00:17:06.000000000 +0200
@@ -145,18 +145,12 @@ cat << EOF
EOF
for i in ${update_grub_dir}/* ; do
- case "$i" in
- # emacsen backup files. FIXME: support other editors
- *~) ;;
- *)
- if grub_file_is_not_garbage "$i" && test -x "$i" ; then
- echo
- echo "### BEGIN $i ###"
- "$i"
- echo "### END $i ###"
- fi
- ;;
- esac
+ if grub_file_is_not_garbage "$i" && test -x "$i" ; then
+ echo
+ echo "### BEGIN $i ###"
+ "$i"
+ echo "### END $i ###"
+ fi
done
# none of the children aborted with error, install the new grub.cfg
diff -urp grub-1.96.orig/util/update-grub_lib.in grub-1.96/util/update-grub_lib.in
--- grub-1.96.orig/util/update-grub_lib.in 2008-04-15 00:16:12.000000000 +0200
+++ grub-1.96/util/update-grub_lib.in 2008-04-15 00:15:04.000000000 +0200
@@ -115,6 +115,8 @@ grub_file_is_not_garbage ()
if test -f "$1" ; then
case "$1" in
*.dpkg-dist|*.dpkg-old|*.dpkg-tmp) return 1 ;; # debian dpkg
+ *.rpmnew|*.rpmsave) return 1 ;; # Fedora rpm
+ *.bak|*~|.*.swp) return 1 ;; # backup and swap files from editors
esac
else
return 1

View File

@ -1,17 +0,0 @@
The configuration file can potentially contain sensitive data, ...
well, passwords are not yet implemented.
Lubomir Rintel <lkundrak@v3.sk>
diff -urp grub2.orig/util/update-grub.in grub2/util/update-grub.in
--- grub2.orig/util/update-grub.in 2008-08-07 21:58:17.000000000 +0200
+++ grub2/util/update-grub.in 2008-08-07 22:01:44.000000000 +0200
@@ -170,7 +170,7 @@ exec > ${grub_cfg}.new
# Allow this to fail, since /boot/grub/ might need to be fatfs to support some
# firmware implementations (e.g. OFW or EFI).
-chmod 444 ${grub_cfg}.new || true
+chmod 600 ${grub_cfg}.new || true
echo "Updating ${grub_cfg} ..." >&2

View File

@ -0,0 +1,13 @@
diff -uNr grub-1.97.1-orig/util/grub.d/10_linux.in grub-1.97.1/util/grub.d/10_linux.in
--- grub-1.97.1-orig/util/grub.d/10_linux.in 2009-11-09 09:48:16.000000000 -0600
+++ grub-1.97.1/util/grub.d/10_linux.in 2009-12-01 15:28:16.000000000 -0600
@@ -78,7 +78,8 @@
initrd=
for i in "initrd.img-${version}" "initrd-${version}.img" \
"initrd-${version}" "initrd.img-${alt_version}" \
- "initrd-${alt_version}.img" "initrd-${alt_version}"; do
+ "initrd-${alt_version}.img" "initrd-${alt_version}" \
+ "initramfs-${version}.img" ; do
if test -e "${dirname}/${i}" ; then
initrd="$i"
break

View File

@ -0,0 +1,60 @@
--- a/util/getroot.c 2010-03-06 20:51:37.000000000 +0000
+++ b/util/getroot.c 2010-05-28 18:23:19.892788564 +0100
@@ -180,7 +180,8 @@ grub_get_prefix (const char *dir)
static char *
find_root_device (const char *dir __attribute__ ((unused)),
- dev_t dev __attribute__ ((unused)))
+ dev_t dev __attribute__ ((unused))
+ int depth __attribute__ ((unused)))
{
return 0;
}
@@ -188,7 +189,7 @@ find_root_device (const char *dir __attr
#elif ! defined(__CYGWIN__)
static char *
-find_root_device (const char *dir, dev_t dev)
+find_root_device (const char *dir, dev_t dev, int depth)
{
DIR *dp;
char *saved_cwd;
@@ -222,16 +223,27 @@ find_root_device (const char *dir, dev_t
/* Ignore any error. */
continue;
- if (S_ISLNK (st.st_mode))
+ if (S_ISLNK (st.st_mode)) {
+#ifdef __linux__
+ /* If we're in /dev/mapper, follow symbolic links. */
+ if (depth == 1 && strcmp(dir, "mapper") == 0) {
+ if (stat(ent->d_name, &st) == -1)
+ continue;
+ if (S_ISDIR (st.st_mode))
+ continue;
+ }
+#else
/* Don't follow symbolic links. */
continue;
+#endif
+ }
if (S_ISDIR (st.st_mode))
{
/* Find it recursively. */
char *res;
- res = find_root_device (ent->d_name, dev);
+ res = find_root_device (ent->d_name, dev, depth + 1);
if (res)
{
@@ -454,7 +466,7 @@ grub_guess_root_device (const char *dir)
#else
/* This might be truly slow, but is there any better way? */
- os_dev = find_root_device ("/dev", st.st_dev);
+ os_dev = find_root_device ("/dev", st.st_dev, 0);
#endif
#endif /* !__GNU__ */

View File

@ -1,36 +0,0 @@
Until we're able to decide which kernel to make default (e.g with grubby),
pick the most recent one.
Lubomir Rintel <lkundrak@v3.sk>
Index: util/grub.d/10_linux.in
===================================================================
--- util/grub.d/10_linux.in (revision 1797)
+++ util/grub.d/10_linux.in (working copy)
@@ -82,23 +82,9 @@
return $?
}
-find_latest ()
-{
- local a=""
- for i in $@ ; do
- if test_gt "$i" "$a" ; then
- a="$i"
- fi
- done
- echo "$a"
-}
-
-list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* ; do
- if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
- done`
-
-while [ "x$list" != "x" ] ; do
- linux=`find_latest $list`
+ls -c /boot/vmlinu[xz]-* /vmlinu[xz]-* 2>/dev/null |while read linux
+do
+ grub_file_is_not_garbage "$linux" || continue
echo "Found linux image: $linux" >&2
basename=`basename $linux`
dirname=`dirname $linux`

View File

@ -1,22 +0,0 @@
We're not GNU/Linux. Tell them.
Lubomir Rintel <lkundrak@v3.sk>
diff -urp grub2.orig/util/grub.d/10_linux.in grub2/util/grub.d/10_linux.in
--- grub2.orig/util/grub.d/10_linux.in 2008-08-08 07:12:30.000000000 +0200
+++ grub2/util/grub.d/10_linux.in 2008-08-08 07:12:53.000000000 +0200
@@ -23,11 +23,9 @@ exec_prefix=@exec_prefix@
libdir=@libdir@
. ${libdir}/`echo grub | sed ${transform}`/update-grub_lib
-if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
- OS=GNU/Linux
-else
- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
-fi
+OS=$(sed 's/ release.*//' /etc/redhat-release)
+[ -z "$OS" ] && OS=$(uname -o)
+[ -z "$OS" ] && OS=Linux
# loop-AES arranges things so that /dev/loop/X can be our root device, but
# the initrds that Linux uses don't like that.

View File

@ -1,82 +0,0 @@
This adds a section to the configuration file that persists the updates,
so that it's not only grub2-update itself that decides what's in the
configuration.
Lubomir Rintel <lkundrak@v3.sk>
diff -up grub2/conf/common.rmk.persistent grub2/conf/common.rmk
--- grub2/conf/common.rmk.persistent 2008-08-27 10:49:16.000000000 +0200
+++ grub2/conf/common.rmk 2008-08-27 13:51:33.000000000 +0200
@@ -138,6 +138,12 @@ endif
CLEANFILES += $(update-grub_SCRIPTS)
+90_persistent: util/grub.d/90_persistent.in config.status
+ ./config.status --file=$@:$<
+ chmod +x $@
+update-grub_SCRIPTS += 90_persistent
+CLEANFILES += 90_persistent
+
update-grub_DATA += util/grub.d/README
diff -up /dev/null grub2/util/grub.d/90_persistent.in
--- /dev/null 2008-08-24 16:09:23.777049452 +0200
+++ grub2/util/grub.d/90_persistent.in 2008-08-27 13:51:33.000000000 +0200
@@ -0,0 +1,37 @@
+#! /bin/sh -e
+
+# update-grub helper script.
+# Copyright (C) 2008 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/>.
+
+# The output of this script is copied from part of grub.cfg
+# that correspond to itself. The achievement is that user can
+# modify that part of grub.cfg directly, and it will be persistent
+# across update-grub runs.
+
+transform="@program_transform_name@"
+
+ME=$(echo $0 |sed 's,/,\\/,g')
+GRUBCFG=/boot/`echo grub | sed ${transform}`/grub.cfg
+
+# Exit gracefully if there's no configuration file yet
+[ -f ${GRUBCFG} ] || exit 0
+
+awk "
+ BEGIN {echo = 0}
+ /### BEGIN $ME ###/ {echo = 1; next}
+ /### END $ME ###/ {echo = 0; next}
+ {if (echo) print}
+" ${GRUBCFG}
diff -up grub2/util/update-grub.in.persistent grub2/util/update-grub.in
--- grub2/util/update-grub.in.persistent 2008-08-27 13:51:33.000000000 +0200
+++ grub2/util/update-grub.in 2008-08-27 13:51:33.000000000 +0200
@@ -176,11 +176,12 @@ echo "Updating ${grub_cfg} ..." >&2
cat << EOF
#
-# DO NOT EDIT THIS FILE
-#
-# It is automatically generated by $0 using templates
+# This is automatically generated by $0 using templates
# from ${update_grub_dir} and settings from ${sysconfdir}/default/grub
#
+# If you want your changes to persist across updates, add them
+# to 90_persistent section
+#
EOF
for i in ${update_grub_dir}/* ; do

View File

@ -1,59 +0,0 @@
According to POSIX memmove and memcpy can actually be macros or whatever
(IIRC). We'd better not play with those in code that uses libc's headers
and is to be linked with libc.
2008-08-08 Lubomir Rintel <lkundrak@fedoraproject.org>
* include/grub/misc.h: Surround memmove and memcpy prototypes with
#ifndef GRUB_UTIL
* kern/misc.c: Surround memmove, memcpy and memset prototypes with
#ifndef GRUB_UTIL
Index: kern/misc.c
===================================================================
--- kern/misc.c (revision 1797)
+++ kern/misc.c (working copy)
@@ -44,11 +44,15 @@
return dest;
}
+#ifdef GRUB_UTIL
+#include <string.h>
+#else
void *memmove (void *dest, const void *src, grub_size_t n)
__attribute__ ((alias ("grub_memmove")));
/* GCC emits references to memcpy() for struct copies etc. */
void *memcpy (void *dest, const void *src, grub_size_t n)
__attribute__ ((alias ("grub_memmove")));
+#endif
char *
grub_strcpy (char *dest, const char *src)
@@ -514,8 +518,10 @@
return s;
}
+#ifndef GRUB_UTIL
void *memset (void *s, int c, grub_size_t n)
__attribute__ ((alias ("grub_memset")));
+#endif
grub_size_t
grub_strlen (const char *s)
Index: include/grub/misc.h
===================================================================
--- include/grub/misc.h (revision 1797)
+++ include/grub/misc.h (working copy)
@@ -39,8 +39,12 @@
char *EXPORT_FUNC(grub_strncat) (char *dest, const char *src, int c);
/* Prototypes for aliases. */
+#ifdef GRUB_UTIL
+#include <string.h>
+#else
void *EXPORT_FUNC(memmove) (void *dest, const void *src, grub_size_t n);
void *EXPORT_FUNC(memcpy) (void *dest, const void *src, grub_size_t n);
+#endif
int EXPORT_FUNC(grub_memcmp) (const void *s1, const void *s2, grub_size_t n);
int EXPORT_FUNC(grub_strcmp) (const char *s1, const char *s2);

View File

@ -1,162 +0,0 @@
Transformations. Anyone, please tell upstream it's useful not to have
them half-baked. This is so that we do not conflict with grub.
Lubomir Rintel <lkundrak@v3.sk>
diff -urp grub2.orig/Makefile.in grub2/Makefile.in
--- grub2.orig/Makefile.in 2008-08-07 21:37:29.000000000 +0200
+++ grub2/Makefile.in 2008-08-08 07:43:10.000000000 +0200
@@ -215,12 +215,12 @@ install-local: all
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
$(INSTALL_DATA) $$dir$$file $(DESTDIR)$(sysconfdir)/grub.d/$$dest; \
done
- $(mkinstalldirs) $(DESTDIR)$(libdir)/grub
+ $(mkinstalldirs) $(DESTDIR)$(libdir)/`echo grub | sed '$(transform)'`
@list='$(lib_DATA)'; \
for file in $$list; do \
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
dest="`echo $$file | sed 's,.*/,,'`"; \
- $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(libdir)/grub/$$dest; \
+ $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(libdir)/`echo grub | sed '$(transform)'`/$$dest; \
done
install-strip:
diff -urp grub2.orig/util/grub.d/00_header.in grub2/util/grub.d/00_header.in
--- grub2.orig/util/grub.d/00_header.in 2008-08-07 21:37:28.000000000 +0200
+++ grub2/util/grub.d/00_header.in 2008-08-08 07:43:10.000000000 +0200
@@ -23,7 +23,7 @@ exec_prefix=@exec_prefix@
libdir=@libdir@
grub_prefix=`echo /boot/grub | sed ${transform}`
-. ${libdir}/grub/update-grub_lib
+. ${libdir}/`echo grub | sed ${transform}`/update-grub_lib
# Do this as early as possible, since other commands might depend on it.
# (e.g. the `font' command might need lvm or raid modules)
diff -urp grub2.orig/util/grub.d/10_hurd.in grub2/util/grub.d/10_hurd.in
--- grub2.orig/util/grub.d/10_hurd.in 2008-08-07 21:37:28.000000000 +0200
+++ grub2/util/grub.d/10_hurd.in 2008-08-08 07:44:29.000000000 +0200
@@ -16,10 +16,12 @@
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+transform="@program_transform_name@"
+
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
-. ${libdir}/grub/update-grub_lib
+. ${libdir}/`echo grub |sed ${transform}`/update-grub_lib
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
OS=GNU
diff -urp grub2.orig/util/grub.d/10_linux.in grub2/util/grub.d/10_linux.in
--- grub2.orig/util/grub.d/10_linux.in 2008-08-07 21:37:28.000000000 +0200
+++ grub2/util/grub.d/10_linux.in 2008-08-08 07:43:10.000000000 +0200
@@ -16,10 +16,12 @@
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+transform="@program_transform_name@"
+
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
-. ${libdir}/grub/update-grub_lib
+. ${libdir}/`echo grub | sed ${transform}`/update-grub_lib
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
OS=GNU/Linux
diff -urp grub2.orig/util/grub.d/10_windows.in grub2/util/grub.d/10_windows.in
--- grub2.orig/util/grub.d/10_windows.in 2008-08-07 21:37:27.000000000 +0200
+++ grub2/util/grub.d/10_windows.in 2008-08-08 07:44:13.000000000 +0200
@@ -16,10 +16,12 @@
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+transform="@program_transform_name@"
+
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
-. ${libdir}/grub/update-grub_lib
+. ${libdir}/`echo grub |sed ${transform}`/update-grub_lib
case "`uname 2>/dev/null`" in
CYGWIN*) ;;
diff -urp grub2.orig/util/i386/pc/grub-install.in grub2/util/i386/pc/grub-install.in
--- grub2.orig/util/i386/pc/grub-install.in 2008-08-07 21:37:28.000000000 +0200
+++ grub2/util/i386/pc/grub-install.in 2008-08-08 07:43:10.000000000 +0200
@@ -36,7 +36,7 @@ grub_mkimage=${bindir}/`echo grub-mkimag
grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}`
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
rootdir=
-grub_prefix=`echo /boot/grub | sed ${transform}`
+grub_prefix=/boot/`echo grub | sed ${transform}`
modules=
install_device=
@@ -118,7 +118,7 @@ for option in "$@"; do
done
# for make_system_path_relative_to_its_root()
-. ${libdir}/grub/update-grub_lib
+. ${libdir}/`echo grub | sed ${transform}`/update-grub_lib
if test "x$install_device" = x; then
echo "install_device not specified." 1>&2
diff -urp grub2.orig/util/powerpc/ieee1275/grub-mkrescue.in grub2/util/powerpc/ieee1275/grub-mkrescue.in
--- grub2.orig/util/powerpc/ieee1275/grub-mkrescue.in 2008-08-07 21:37:27.000000000 +0200
+++ grub2/util/powerpc/ieee1275/grub-mkrescue.in 2008-08-08 07:43:10.000000000 +0200
@@ -100,7 +100,7 @@ grub.img Raw 'UNIX' 'tbxi'
EOF
iso_dir=`mktemp -d`
-boot_dir=${iso_dir}/boot/grub
+boot_dir=${iso_dir}/boot/`echo grub | sed ${transform}`
mkdir ${iso_dir}/boot
mkdir ${boot_dir}
core_img=${boot_dir}/grub.img
diff -urp grub2.orig/util/update-grub.in grub2/util/update-grub.in
--- grub2.orig/util/update-grub.in 2008-08-07 21:37:28.000000000 +0200
+++ grub2/util/update-grub.in 2008-08-08 07:43:10.000000000 +0200
@@ -23,7 +23,7 @@ exec_prefix=@exec_prefix@
sbindir=@sbindir@
libdir=@libdir@
sysconfdir=@sysconfdir@
-grub_prefix=`echo /boot/grub | sed ${transform}`
+grub_prefix=/boot/`echo /grub | sed ${transform}`
grub_cfg=${grub_prefix}/grub.cfg
update_grub_dir=${sysconfdir}/grub.d
@@ -65,7 +65,7 @@ for option in "$@"; do
esac
done
-. ${libdir}/grub/update-grub_lib
+. ${libdir}/`echo grub | sed ${transform}`/update-grub_lib
if [ "x$EUID" = "x" ] ; then
EUID=`id -u`
@@ -107,7 +107,7 @@ fi
mkdir -p ${grub_prefix}
if test -e ${grub_prefix}/device.map ; then : ; else
- grub-mkdevicemap
+ ${grub_mkdevicemap}
fi
# Device containing our userland. Typically used for root= parameter.
diff -urp grub2.orig/util/update-grub_lib.in grub2/util/update-grub_lib.in
--- grub2.orig/util/update-grub_lib.in 2008-08-07 21:37:28.000000000 +0200
+++ grub2/util/update-grub_lib.in 2008-08-08 07:43:10.000000000 +0200
@@ -145,7 +145,8 @@ prepare_grub_to_access_device ()
font_path ()
{
- for dir in ${pkgdatadir} /boot/grub /usr/share/grub ; do
+ for dir in ${pkgdatadir} ${pkgdatadir}/`echo grub | sed ${transform}` \
+ /boot/`echo grub | sed ${transform}`; do
# FIXME: We prefer ascii because loading complete fonts is too slow (and
# we don't yet provide the gettext magic that would make unicode useful).
for basename in ascii unicode unifont ; do

View File

@ -1,30 +0,0 @@
2008-05-07: Lubomir Rintel <lkundrak@fedoraproject.org>
* kern/dl.c (grub_dl_resolve_symbols): Let the
grub_gdb_trapvec symbol be resolved correctly (instead of 0).
--- grub2/kern/dl.c 2008-01-26 21:34:58.000000000 +0100
+++ grub2-gdb/kern/dl.c 2008-05-07 09:27:08.000000000 +0200
@@ -352,16 +352,18 @@ grub_dl_resolve_symbols (grub_dl_t mod,
{
case STT_NOTYPE:
/* Resolve a global symbol. */
- if (sym->st_name != 0 && sym->st_shndx == 0)
+ if (sym->st_name == 0)
+ break;
+
+ if (sym->st_shndx == 0) /* external */
{
sym->st_value = (Elf_Addr) grub_dl_resolve_symbol (name);
if (! sym->st_value)
return grub_error (GRUB_ERR_BAD_MODULE,
"the symbol `%s' not found", name);
- }
- else
- sym->st_value = 0;
break;
+ }
+ /* nonexternal, same as STT_OBJECT */
case STT_OBJECT:
sym->st_value += (Elf_Addr) grub_dl_get_section_addr (mod,

View File

@ -1,38 +0,0 @@
2008-05-07: Lubomir Rintel <lkundrak@fedoraproject.org>
* genmk.rb: replace strip with objcopy, so unstripped files are
left untouched for debugging purposes.
diff -urp grub2.orig/genmk.rb grub2/genmk.rb
--- grub2.orig/genmk.rb 2008-08-07 21:37:29.000000000 +0200
+++ grub2/genmk.rb 2008-08-07 23:31:19.000000000 +0200
@@ -101,10 +101,11 @@ class PModule
mod_obj = mod_src.suffix('o')
defsym = 'def-' + @name.suffix('lst')
undsym = 'und-' + @name.suffix('lst')
+ exec = @name.suffix('elf')
mod_name = File.basename(@name, '.mod')
symbolic_name = mod_name.sub(/\.[^\.]*$/, '')
- "CLEANFILES += #{@name} #{mod_obj} #{mod_src} #{pre_obj} #{objs_str} #{undsym}
+ "CLEANFILES += #{@name} #{mod_obj} #{mod_src} #{pre_obj} #{objs_str} #{undsym} #{exec}
ifneq ($(#{prefix}_EXPORTS),no)
CLEANFILES += #{defsym}
DEFSYMFILES += #{defsym}
@@ -112,11 +113,14 @@ endif
MOSTLYCLEANFILES += #{deps_str}
UNDSYMFILES += #{undsym}
-#{@name}: #{pre_obj} #{mod_obj} $(TARGET_OBJ2ELF)
+#{@name}: #{exec}
+ -rm -f $@
+ $(OBJCOPY) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $^ $@
+
+#{exec}: #{pre_obj} #{mod_obj} $(TARGET_OBJ2ELF)
-rm -f $@
$(TARGET_CC) $(#{prefix}_LDFLAGS) $(TARGET_LDFLAGS) $(MODULE_LDFLAGS) -Wl,-r,-d -o $@ #{pre_obj} #{mod_obj}
if test ! -z $(TARGET_OBJ2ELF); then ./$(TARGET_OBJ2ELF) $@ || (rm -f $@; exit 1); fi
- $(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -K _grub_mod_init -K _grub_mod_fini -R .note -R .comment $@
#{pre_obj}: $(#{prefix}_DEPENDENCIES) #{objs_str}
-rm -f $@

View File

@ -12,40 +12,39 @@
%endif
Name: grub2
Epoch: 1
Version: 1.98
Release: 0.6.20090911svn%{?dist}
Release: 3%{?dist}
Summary: Bootloader with support for Linux, Multiboot and more
Group: System Environment/Base
License: GPLv3+
URL: http://www.gnu.org/software/grub/
#Source0: http://alpha.gnu.org/pub/gnu/grub/grub-%{version}.tar.gz
# svn -r2587 co svn://svn.sv.gnu.org/grub/trunk/grub2
# tar czf grub2.tar.gz --exclude .svn grub2
Source0: grub2.tar.gz
Source0: ftp://alpha.gnu.org/gnu/grub/grub-%{version}.tar.gz
Source1: 90_persistent
Source2: grub.default
Source3: README.Fedora
Patch0: grub-1.95-grubdir.patch
Patch1: http://fedorapeople.org/~lkundrak/grub2/grub2-dlsym-v4.patch
Patch1: grub-1.97.1-initramfs.patch
Patch2: grub-1.98-follow-dev-mapper-symlinks.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: flex bison ruby binutils
BuildRequires: ncurses-devel lzo-devel
BuildRequires: freetype2-devel libusb-devel
BuildRequires: freetype-devel libusb-devel
%ifarch %{sparc}
BuildRequires: /usr/lib64/crt1.o glibc-static
%else
BuildRequires: /usr/lib/crt1.o glibc-static
%endif
BuildRequires: autoconf automake
BuildRequires: autoconf automake gettext-devel
# grubby
Requires(pre): mkinitrd
Requires(post): mkinitrd
Requires(pre): dracut
Requires(post): dracut
# TODO: ppc and sparc
# TODO: ppc
ExclusiveArch: %{ix86} x86_64 %{sparc}
%description
@ -62,10 +61,11 @@ file that is part of this package's documentation for more information.
%prep
%setup -q -n grub2
%setup -q -n grub-%{version}
%patch0 -p1 -b .grubdir
%patch1 -p1 -b .dlsym
%patch1 -p1 -b .initramfs
%patch2 -p1 -b .follow-symlinks
# README.Fedora
cp %{SOURCE3} .
@ -81,7 +81,6 @@ sh autogen.sh
%else
--with-platform=pc \
%endif
--enable-grub-emu \
--program-transform-name=s,grub,%{name},
# TODO: Other platforms. Use alternatives system?
# --with-platform=ieee1275 \
@ -95,7 +94,6 @@ make %{?_smp_mflags}
#include/grub/script.h:26:29: error: grub_script.tab.h: No such file or directory
#make
%install
set -e
rm -fr $RPM_BUILD_ROOT
@ -126,6 +124,7 @@ done
# Defaults
install -m 644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/default/grub
%find_lang grub
%clean
rm -rf $RPM_BUILD_ROOT
@ -159,31 +158,42 @@ rm -f /boot/%{name}/device.map
%triggerin -- kernel, kernel-PAE
exec >/dev/null 2>&1
# Generate grub.cfg
%{name}-mkconfig
%{name}-mkconfig -o /boot/grub2/grub.cfg
%triggerun -- kernel, kernel-PAE
exec >/dev/null 2>&1
# Generate grub.cfg
%{name}-mkconfig
%{name}-mkconfig -o /boot/grub2/grub.cfg
%files
%files -f grub.lang
%defattr(-,root,root,-)
%{_libdir}/%{name}
%{_libdir}/grub/
%{_sbindir}/%{name}-mkdevicemap
%{_sbindir}/%{name}-install
%{_sbindir}/%{name}-emu
%{_sbindir}/%{name}-probe
%{_sbindir}/%{name}-setup
%{_sbindir}/%{name}-dumpbios
%{_sbindir}/%{name}-mkconfig
%{_sbindir}/%{name}-ofpathname
%{_sbindir}/%{name}-reboot
%{_sbindir}/%{name}-set-default
%{_bindir}/%{name}-mkimage
%{_bindir}/%{name}-mkelfimage
%{_bindir}/%{name}-editenv
%{_bindir}/%{name}-fstest
%{_bindir}/%{name}-mkfont
%{_bindir}/%{name}-bin2h
%{_bindir}/%{name}-mkisofs
%{_bindir}/%{name}-mkpasswd-pbkdf2
%{_bindir}/%{name}-mkrelpath
%{_bindir}/%{name}-script-check
%ifnarch %{sparc}
%{_bindir}/%{name}-mkrescue
%endif
%ifarch %{sparc}
%{_sbindir}/%{name}-ofpathname
%endif
%dir %{_sysconfdir}/grub.d
%config %{_sysconfdir}/grub.d/??_*
%{_sysconfdir}/grub.d/README
@ -196,12 +206,43 @@ exec >/dev/null 2>&1
%doc COPYING INSTALL NEWS README THANKS TODO ChangeLog README.Fedora
%exclude %{_mandir}
%{_includedir}/grub/
%{_includedir}/multiboot*.h
%changelog
* Fri Sep 11 2009 Dennis Gilmore <dennis@ausil.us - 1.9-0.6.20090911svn
* Sat Jul 17 2010 Dennis Gilmore <dennis@ausil.us> - 1:1.98-3
- correctly generate a grub.cfg on kernel update
* Fri May 28 2010 Dennis Gilmore <dennis@ausil.us> - 1:1.98-2
- add patch so grub2-probe works with lvm to detect devices correctly
* Wed Apr 21 2010 Dennis Gilmore <dennis@ausil.us> - 1:1.98-1
- update to 1.98
* Fri Feb 12 2010 Dennis Gilmore <dennis@ausil.us> - 1:1.97.2-1
- update to 1.97.2
* Wed Jan 20 2010 Dennis Gilmore <dennis@ausil.us> - 1:1.97.1-5
- drop requires on mkinitrd
* Tue Dec 01 2009 Dennis Gilmore <dennis@ausil.us> - 1:1.97.1-4
- add patch so that grub2 finds fedora's initramfs
* Tue Nov 10 2009 Dennis Gilmore <dennis@ausil.us> - 1:1.97.1-3
- no mkrescue on sparc arches
- ofpathname on sparc arches
- Requires dracut, not sure if we should just drop mkinitrd for dracut
* Tue Nov 10 2009 Dennis Gilmore <dennis@ausil.us> - 1:1.97.1-2
- update filelists
* Tue Nov 10 2009 Dennis Gilmore <dennis@ausil.us> - 1:1.97.1-1
- update to 1.97.1 release
- introduce epoch for upgrades
* Tue Nov 10 2009 Dennis Gilmore <dennis@ausil.us> - 1.98-0.7.20090911svn
- fix BR
* Fri Sep 11 2009 Dennis Gilmore <dennis@ausil.us> - 1.98-0.6.20090911svn
- update to new svn snapshot
- add sparc support

View File

@ -1 +0,0 @@
grub2-1_98-0_2_20080807svn_el5:HEAD:grub2-1.98-0.2.20080807svn.el5.src.rpm:1219824412

View File

@ -1 +1 @@
2f22e7c338fffbf44bc58cdc980eefd8 grub2.tar.gz
c0bcf60e524739bb64e3a2d4e3732a59 grub-1.98.tar.gz