=== added file 'ChangeLog.fixes'
--- ChangeLog.fixes 1970-01-01 00:00:00 +0000
+++ ChangeLog.fixes 2010-05-23 14:40:00 +0000
@@ -0,0 +1,69 @@
+2010-05-23 Grégoire Sutre
+
+ * util/grub-install.in: Save the basename of $0 in $self, and use the
+ latter in informational messages. Use the same format for --version
+ as the binary programs.
+ * util/grub-mkconfig.in: Likewise.
+ * util/grub-mkrescue.in: Likewise.
+ * util/grub-reboot.in: Likewise.
+ * util/grub-set-default.in: Likewise.
+ * util/i386/efi/grub-install.in: Likewise.
+ * util/ieee1275/grub-install.in: Likewise.
+ * util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
+
+2010-05-22 Grégoire Sutre
+
+ * configure.ac: Add `.' to the directories searched for unifont.
+ * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load
+ partmap modules.
+ * util/grub.d/00_header.in: Extra sanity checks for locale support.
+ * util/grub.d/10_netbsd.in: Added a comment.
+
+2010-05-22 Grégoire Sutre
+
+ * Makefile.in: apply file name transformation to .mo files.
+ * util/grub-install.in: Likewise.
+ * util/i386/efi/grub-install.in: Likewise.
+
+2010-05-21 Grégoire Sutre
+
+ * util/grub-install.in: Remove the dependency on grub-mkconfig_lib.
+ * util/grub-mkconfig.in: New option --root-directory=DIR.
+ (GRUB_DIR): Export new variable.
+ * util/grub-mkconfig_lib.in: Let grub-probe use ${GRUB_DIR}/device.map.
+ * util/grub.d/00_header.in: Use GRUB_DIR passed by grub-mkconfig.
+
+2010-05-21 Grégoire Sutre
+
+ * Makefile.in: Apply program name transformation to generated info file.
+
+2010-05-21 Grégoire Sutre
+
+ * configure.ac: Set and subsitute pkgdatadir, pkglibrootdir and
+ defaultbootdir.
+ * Makefile.in: Use pkgdatadir, pkglibrootdir and defaultbootdir.
+ * util/grub-install.in: Likewise.
+ * util/grub-mkconfig.in: Likewise.
+ * util/grub-mkconfig_lib.in: Likewise.
+ * util/grub-mkrescue.in: Likewise.
+ * util/grub-reboot.in: Likewise.
+ * util/grub-set-default.in: Likewise.
+ * util/grub.d/00_header.in: Likewise.
+ * util/grub.d/10_hurd.in: Likewise.
+ * util/grub.d/10_kfreebsd.in: Likewise.
+ * util/grub.d/10_linux.in: Likewise.
+ * util/grub.d/10_netbsd.in: Likewise.
+ * util/grub.d/10_windows.in: Likewise.
+ * util/grub.d/30_os-prober.in: Likewise.
+ * util/i386/efi/grub-install.in: Likewise.
+ * util/ieee1275/grub-install.in: Likewise.
+ * util/powerpc/ieee1275/grub-mkrescue.in: Likewise.
+ * util/update-grub_lib.in: Likewise.
+
+2010-05-19 Grégoire Sutre
+
+ * Makefile.in: Use installed files on help2man command line.
+ * util/grub-mkimage.c (main): Use `program_name' instead of
+ hardcoded string.
+ * util/i386/pc/grub-setup.c (main): Likewise.
+ * util/sparc64/ieee1275/grub-setup.c (parse_options): Likewise.
=== modified file 'Makefile.in'
--- Makefile.in 2010-05-18 11:55:26 +0000
+++ Makefile.in 2010-05-22 00:31:13 +0000
@@ -39,8 +39,9 @@ localedir = @localedir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
-pkgdatadir = $(datadir)/`echo @PACKAGE_TARNAME@ | sed '$(transform)'`
-pkglibdir = $(libdir)/`echo @PACKAGE_TARNAME@/$(target_cpu)-$(platform) | sed '$(transform)'`
+pkgdatadir = @pkgdatadir@
+pkglibrootdir = @pkglibrootdir@
+pkglibdir = $(pkglibrootdir)/$(target_cpu)-$(platform)
# Internationalization library.
LIBINTL = @LIBINTL@
@@ -90,7 +91,7 @@ GNULIB_CFLAGS = $(GNULIB_UTIL_CFLAGS) $(
ASFLAGS = @ASFLAGS@
LDFLAGS = @LDFLAGS@ $(LIBS)
CPPFLAGS = @CPPFLAGS@ -I$(builddir) -I$(builddir)/include -I$(srcdir)/gnulib -I$(srcdir)/include -Wall -W \
- -DGRUB_PKGLIBROOTDIR=\"$(libdir)/`echo @PACKAGE_TARNAME@ | sed '$(transform)'`\" -DLOCALEDIR=\"$(localedir)\"
+ -DGRUB_PKGLIBROOTDIR=\"$(pkglibrootdir)\" -DLOCALEDIR=\"$(localedir)\"
TARGET_CC = @TARGET_CC@
TARGET_CFLAGS = -ffreestanding @TARGET_CFLAGS@
TARGET_ASFLAGS = -nostdinc -fno-builtin @TARGET_ASFLAGS@
@@ -323,26 +324,26 @@ install-local: all
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
$(INSTALL_PROGRAM) $$dir$$file $(DESTDIR)$(bindir)/$$dest; \
- $(HELP2MAN) --section=1 -o $(DESTDIR)$(mandir)/man1/$$dest.1 $(builddir)/$$file; \
+ $(HELP2MAN) --section=1 -o $(DESTDIR)$(mandir)/man1/$$dest.1 $(DESTDIR)$(bindir)/$$dest; \
done
$(SHELL) $(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8
@list='$(sbin_UTILITIES)'; for file in $$list; do \
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
$(INSTALL_PROGRAM) $$dir$$file $(DESTDIR)$(sbindir)/$$dest; \
- $(HELP2MAN) --section=8 -o $(DESTDIR)$(mandir)/man8/$$dest.8 $(builddir)/$$file; \
+ $(HELP2MAN) --section=8 -o $(DESTDIR)$(mandir)/man8/$$dest.8 $(DESTDIR)$(sbindir)/$$dest; \
done
@list='$(bin_SCRIPTS)'; for file in $$list; do \
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
$(INSTALL_SCRIPT) $$dir$$file $(DESTDIR)$(bindir)/$$dest; \
- $(HELP2MAN) --section=1 -o $(DESTDIR)$(mandir)/man1/$$dest.1 $(builddir)/$$file; \
+ $(HELP2MAN) --section=1 -o $(DESTDIR)$(mandir)/man1/$$dest.1 $(DESTDIR)$(bindir)/$$dest; \
done
@list='$(sbin_SCRIPTS)'; for file in $$list; do \
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
$(INSTALL_SCRIPT) $$dir$$file $(DESTDIR)$(sbindir)/$$dest; \
- $(HELP2MAN) --section=8 -o $(DESTDIR)$(mandir)/man8/$$dest.8 $(builddir)/$$file; \
+ $(HELP2MAN) --section=8 -o $(DESTDIR)$(mandir)/man8/$$dest.8 $(DESTDIR)$(sbindir)/$$dest; \
done
$(SHELL) $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/grub.d
@list='$(grub-mkconfig_SCRIPTS)'; for file in $$list; do \
@@ -355,26 +356,27 @@ install-local: all
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
$(INSTALL_DATA) $$dir$$file $(DESTDIR)$(sysconfdir)/grub.d/$$dest; \
done
- $(SHELL) $(mkinstalldirs) $(DESTDIR)$(libdir)/grub
+ $(SHELL) $(mkinstalldirs) $(DESTDIR)$(pkglibrootdir)
@list='$(lib_SCRIPTS)'; \
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)$(pkglibrootdir)/$$dest; \
done
@langs='$(LINGUAS)'; \
for lang in $$langs; do \
- $(SHELL) $(mkinstalldirs) $(DESTDIR)/$(datadir)/locale/$$lang/LC_MESSAGES; \
+ $(SHELL) $(mkinstalldirs) $(DESTDIR)$(datadir)/locale/$$lang/LC_MESSAGES; \
file="po/$$lang.mo"; \
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
- $(INSTALL_DATA) $$dir$$file $(DESTDIR)/$(datadir)/locale/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
+ dest="`echo $(PACKAGE).mo | sed 's,.*/,,' | sed '$(transform)'`"; \
+ $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(datadir)/locale/$$lang/LC_MESSAGES/$$dest; \
done
$(SHELL) $(mkinstalldirs) $(DESTDIR)$(infodir)
@list='$(info_INFOS)'; \
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)$(infodir); \
+ dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
+ $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(infodir)/$$dest; \
if (install-info --version && \
install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$dest" || :; \
@@ -412,11 +414,11 @@ uninstall:
@list='$(lib_SCRIPTS)'; \
for file in $$list; do \
dest="`echo $$file | sed 's,.*/,,'`"; \
- rm -f $(DESTDIR)$(libdir)/grub/$$dest; \
+ rm -f $(DESTDIR)$(pkglibrootdir)/$$dest; \
done
@list='$(info_INFOS)'; \
for file in $$list; do \
- dest="`echo $$file | sed 's,.*/,,'`"; \
+ dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
if (install-info --version && \
install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$dest"; then \
=== modified file 'configure.ac'
--- configure.ac 2010-05-18 11:33:35 +0000
+++ configure.ac 2010-05-22 14:16:39 +0000
@@ -179,11 +179,13 @@ if test "x$YACC" = x; then
AC_MSG_ERROR([bison is not found])
fi
-for file in /usr/src/unifont.bdf /usr/share/fonts/X11/misc/unifont.pcf.gz /usr/share/fonts/unifont/unifont.pcf.gz; do
- if test -e $file ; then
- AC_SUBST([FONT_SOURCE], [$file])
- break
- fi
+for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do
+ for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont; do
+ if test -f "$dir/unifont.$ext"; then
+ AC_SUBST([FONT_SOURCE], [$dir/unifont.$ext])
+ break 2
+ fi
+ done
done
AC_PROG_INSTALL
@@ -798,6 +800,27 @@ fi
AC_SUBST(ASFLAGS)
+# Additional names and paths to be substituted in makefiles and scripts.
+pkgdatadir=${datadir}/`echo ${PACKAGE_TARNAME} | sed "${program_transform_name}"`
+pkglibrootdir=${libdir}/`echo ${PACKAGE_TARNAME} | sed "${program_transform_name}"`
+
+case "$host_os" in
+netbsd* | openbsd*)
+ # Because /boot is used for the boot block in NetBSD and OpenBSD, use /grub
+ # instead of /boot/grub.
+ defaultbootdir=
+ ;;
+*)
+ # Use /boot/grub by default.
+ defaultbootdir=/boot
+ ;;
+esac
+defaultbootdir=${defaultbootdir}/`echo ${PACKAGE_TARNAME} | sed "${program_transform_name}"`
+
+AC_SUBST([pkgdatadir])
+AC_SUBST([pkglibrootdir])
+AC_SUBST([defaultbootdir])
+
# Output files.
grub_CHECK_LINK_DIR
if test x"$link_dir" = xyes ; then
=== added directory 'util/elf'
=== modified file 'util/grub-install.in'
--- util/grub-install.in 2010-05-18 11:45:25 +0000
+++ util/grub-install.in 2010-05-24 13:58:09 +0000
@@ -24,23 +24,28 @@ address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@/@PACKAGE_TARNAME@/ascii.pf2
-pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}`
address@hidden@
+pkglibdir=${pkglibrootdir}/${target_cpu}-${platform}
address@hidden@/locale
address@hidden@
+
+self=`basename $0`
grub_setup=${sbindir}/`echo grub-setup | sed ${transform}`
grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}`
grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}`
+grub_mkrelpath=${bindir}/`echo grub-mkrelpath | sed ${transform}`
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
grub_editenv=${bindir}/`echo grub-editenv | sed ${transform}`
+grub_mofile=`echo ${PACKAGE}.mo | sed ${transform}`
rootdir=
-grub_prefix=`echo /boot/grub | sed ${transform}`
modules=
install_device=
@@ -61,7 +66,7 @@ fi
# Print the usage.
usage () {
cat <.
EOF
@@ -108,7 +111,7 @@ for option in "$@"; do
usage
exit 0 ;;
-v | --version)
- echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
+ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}"
exit 0 ;;
--modules=*)
modules=`echo "$option" | sed 's/--modules=//'` ;;
@@ -152,9 +155,6 @@ for option in "$@"; do
esac
done
-# for make_system_path_relative_to_its_root()
-. ${libdir}/grub/grub-mkconfig_lib
-
if test "x$install_device" = x && test "${target_cpu}-${platform}" != "mips-yeeloong"; then
echo "install_device not specified." 1>&2
usage
@@ -169,20 +169,7 @@ if test $debug = yes; then
fi
# Initialize these directories here, since ROOTDIR was initialized.
-case "$host_os" in
-netbsd* | openbsd*)
- # Because /boot is used for the boot block in NetBSD and OpenBSD, use /grub
- # instead of /boot/grub.
- grub_prefix=`echo /grub | sed ${transform}`
- bootdir=${rootdir}
- ;;
-*)
- # Use /boot/grub by default.
- bootdir=${rootdir}/boot
- ;;
-esac
-
-grubdir=${bootdir}/`echo grub | sed ${transform}`
+grubdir=${rootdir}${defaultbootdir}
device_map=${grubdir}/device.map
grub_probe="${grub_probe} --device-map=${device_map}"
@@ -190,7 +177,7 @@ grub_probe="${grub_probe} --device-map=$
# Check if GRUB is installed.
if [ "${target_cpu}-${platform}" = "i386-pc" ] || [ "${target_cpu}-${platform}" = "sparc64-ieee1275" ] ; then
set $grub_setup dummy
- if test -f "$1"; then
+ if test -x "$1"; then
:
else
echo "$1: Not found." 1>&2
@@ -198,21 +185,15 @@ if [ "${target_cpu}-${platform}" = "i386
fi
fi
-set $grub_mkimage dummy
-if test -f "$1"; then
- :
-else
- echo "$1: Not found." 1>&2
- exit 1
-fi
-
-set $grub_mkdevicemap dummy
-if test -f "$1"; then
- :
-else
- echo "$1: Not found." 1>&2
- exit 1
-fi
+for prog in mkimage mkdevicemap mkrelpath probe; do
+ eval set \$grub_$prog dummy
+ if test -x "$1"; then
+ :
+ else
+ echo "$1: Not found." 1>&2
+ exit 1
+ fi
+done
# Create the GRUB directory if it is not present.
mkdir -p "$grubdir" || exit 1
@@ -260,8 +241,8 @@ fi
# Copy gettext files
mkdir -p ${grubdir}/locale/
for dir in ${localedir}/*; do
- if test -f "$dir/LC_MESSAGES/grub.mo"; then
- cp -f "$dir/LC_MESSAGES/grub.mo" "${grubdir}/locale/${dir##*/}.mo"
+ if test -f "$dir/LC_MESSAGES/${grub_mofile}"; then
+ cp -f "$dir/LC_MESSAGES/${grub_mofile}" "${grubdir}/locale/${dir##*/}.mo"
fi
done
@@ -295,7 +276,7 @@ devabstraction_module=`$grub_probe --tar
modules="$modules $disk_module"
modules="$modules $fs_module $partmap_module $devabstraction_module"
-relative_grubdir=`make_system_path_relative_to_its_root ${grubdir}` || exit 1
+relative_grubdir=`$grub_mkrelpath ${grubdir}` || exit 1
if [ "x${relative_grubdir}" = "x" ] ; then
relative_grubdir=/
fi
@@ -356,8 +337,10 @@ if [ "${target_cpu}-${platform}" = "i386
$grub_setup ${setup_verbose} ${setup_force} --directory=${grubdir} --device-map=${device_map} \
${install_device} || exit 1
elif [ "${target_cpu}-${platform}" = "mips-yeeloong" ] ; then
+ # XXX hard-coded /boot (use ${grubdir} or ${defaultbootdir} ?)
$grub_mkimage ${config_opt} -f ${font} -d ${pkglibdir} -O ${mkimage_target} --output=/boot/grub.elf --prefix=${prefix_drive}${relative_grubdir} $modules || exit 1
else
+ # XXX hard-coded /boot (use ${grubdir} or ${defaultbootdir} ?)
$grub_mkimage -O ${mkimage_target} ${config_opt} -d ${pkglibdir} --output=/boot/multiboot.img --prefix=${prefix_drive}${relative_grubdir} $modules || exit 1
fi
=== modified file 'util/grub-mkconfig.in'
--- util/grub-mkconfig.in 2010-05-23 12:11:11 +0000
+++ util/grub-mkconfig.in 2010-05-24 13:58:00 +0000
@@ -23,27 +23,34 @@ address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"`
address@hidden@
address@hidden@
address@hidden@
grub_cfg=""
grub_mkconfig_dir=${sysconfdir}/grub.d
+self=`basename $0`
+
grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}`
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
+rootdir=
# Usage: usage
# Print the usage.
usage () {
cat <.
EOF
@@ -62,8 +69,10 @@ for option in "$@"; do
usage
exit 0 ;;
-v | --version)
- echo "$0 (GNU GRUB ${package_version})"
+ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}"
exit 0 ;;
+ --root-directory=*)
+ rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
-o)
next_grub_cfg=:
;;
@@ -83,19 +92,28 @@ if $next_grub_cfg; then
exit 1
fi
-. ${libdir}/grub/grub-mkconfig_lib
+# Check if GRUB is installed.
+for prog in mkdevicemap probe; do
+ eval set \$grub_$prog dummy
+ if test -x "$1"; then
+ :
+ else
+ echo "$1: Not found." 1>&2
+ exit 1
+ fi
+done
+
+GRUB_DIR=${rootdir}${defaultbootdir}
-case "$host_os" in
-netbsd* | openbsd*)
- # Because /boot is used for the boot block in NetBSD and OpenBSD, use /grub
- # instead of /boot/grub.
- grub_prefix=`echo /grub | sed ${transform}`
- ;;
-*)
- # Use /boot/grub by default.
- grub_prefix=`echo /boot/grub | sed ${transform}`
- ;;
-esac
+# Create the GRUB directory if it is not present.
+mkdir -p ${GRUB_DIR} || exit 1
+
+# This must be done before sourcing grub-mkconfig_lib.
+if test -e ${GRUB_DIR}/device.map ; then : ; else
+ ${grub_mkdevicemap} --device-map=${GRUB_DIR}/device.map
+fi
+
+. ${pkglibrootdir}/grub-mkconfig_lib
if [ "x$EUID" = "x" ] ; then
EUID=`id -u`
@@ -113,33 +131,11 @@ if [ "$EUID" != 0 ] ; then
done ;;
esac
if [ $root != t ] ; then
- echo "$0: You must run this as root" >&2
+ echo "$self: You must run this as root" >&2
exit 1
fi
fi
-set $grub_mkdevicemap dummy
-if test -f "$1"; then
- :
-else
- echo "$1: Not found." 1>&2
- exit 1
-fi
-
-set $grub_probe dummy
-if test -f "$1"; then
- :
-else
- echo "$1: Not found." 1>&2
- exit 1
-fi
-
-mkdir -p ${grub_prefix}
-
-if test -e ${grub_prefix}/device.map ; then : ; else
- ${grub_mkdevicemap}
-fi
-
# Device containing our userland. Typically used for root= parameter.
GRUB_DEVICE="`${grub_probe} --target=device /`"
GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true
@@ -171,7 +167,7 @@ fi
for x in ${GRUB_TERMINAL_OUTPUT}; do
if [ "x${x}" = "xgfxterm" ]; then
# If this platform supports gfxterm, try to use it.
- if ! test -e ${grub_prefix}/gfxterm.mod ; then
+ if ! test -e ${GRUB_DIR}/gfxterm.mod ; then
if [ "x$termoutdefault" != "x1" ]; then
echo "gfxterm isn't available on your platform" >&2 ; exit 1
fi
@@ -180,7 +176,7 @@ for x in ${GRUB_TERMINAL_OUTPUT}; do
fi
# FIXME: this should do something smarter than just loading first
# video backend.
- GRUB_VIDEO_BACKEND=$(head -n 1 ${grub_prefix}/video.lst || true)
+ GRUB_VIDEO_BACKEND=$(head -n 1 ${GRUB_DIR}/video.lst || true)
if [ -z "${GRUB_VIDEO_BACKEND}" ] ; then
if [ "x$termoutdefault" != "x1" ]; then
echo "No suitable backend could be found for gfxterm." >&2 ; exit 1
@@ -195,7 +191,7 @@ for x in ${GRUB_TERMINAL_OUTPUT}; do
exit 1
fi
else
- for dir in ${pkgdatadir} /boot/grub /usr/share/grub ; do
+ for dir in ${GRUB_DIR} ${pkgdatadir} /boot/grub /usr/share/grub ; do
for basename in unicode unifont ascii; do
path="${dir}/${basename}.pf2"
if is_path_readable_by_grub ${path} > /dev/null ; then
@@ -236,6 +232,7 @@ export GRUB_DEVICE \
GRUB_DEVICE_UUID \
GRUB_DEVICE_BOOT \
GRUB_DEVICE_BOOT_UUID \
+ GRUB_DIR \
GRUB_FS \
GRUB_FONT_PATH \
GRUB_PRELOAD_MODULES \
@@ -278,13 +275,13 @@ if test "x${grub_cfg}" != "x"; then
chmod 400 ${grub_cfg}.new || grub_warn "Could not make ${grub_cfg}.new readable by only root.\
This means that if the generated config contains a password it is readable by everyone"
fi
-echo "Generating grub.cfg ..." >&2
+echo "Generating grub configuration ..." >&2
cat << EOF
#
# DO NOT EDIT THIS FILE
#
-# It is automatically generated by $0 using templates
+# It is automatically generated by $self using templates
# from ${grub_mkconfig_dir} and settings from ${sysconfdir}/default/grub
#
EOF
=== modified file 'util/grub-mkconfig_lib.in'
--- util/grub-mkconfig_lib.in 2010-05-01 19:39:32 +0000
+++ util/grub-mkconfig_lib.in 2010-05-22 23:16:57 +0000
@@ -22,7 +22,7 @@ address@hidden@
address@hidden@
address@hidden@
address@hidden@
-pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"`
address@hidden@
if test "x$grub_probe" = x; then
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
@@ -31,6 +31,13 @@ if test "x$grub_mkrelpath" = x; then
grub_mkrelpath=${bindir}/`echo grub-mkrelpath | sed ${transform}`
fi
+# GRUB_DIR should be set before sourcing this file, but let's be safe.
+if test "x${GRUB_DIR}" != "x"; then
+ if test -e "${GRUB_DIR}/device.map"; then
+ grub_probe="${grub_probe} --device-map=${GRUB_DIR}/device.map"
+ fi
+fi
+
if $(which gettext >/dev/null 2>/dev/null) ; then
gettext="gettext"
else
@@ -105,6 +112,11 @@ prepare_grub_to_access_device ()
echo "insmod ${module}"
done
+ partmap="`${grub_probe} --device ${device} --target=partmap`"
+ for module in ${partmap} ; do
+ echo "insmod part_${module}"
+ done
+
fs="`${grub_probe} --device ${device} --target=fs`"
for module in ${fs} ; do
echo "insmod ${module}"
=== modified file 'util/grub-mkimage.c'
--- util/grub-mkimage.c 2010-05-18 11:55:26 +0000
+++ util/grub-mkimage.c 2010-05-19 21:06:18 +0000
@@ -1307,7 +1307,7 @@ main (int argc, char *argv[])
break;
case 'V':
- printf ("grub-mkimage (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
+ printf ("%s (%s) %s\n", program_name, PACKAGE_NAME, PACKAGE_VERSION);
return 0;
case 'v':
=== modified file 'util/grub-mkrescue.in'
--- util/grub-mkrescue.in 2010-05-18 12:21:15 +0000
+++ util/grub-mkrescue.in 2010-05-24 12:03:08 +0000
@@ -28,14 +28,17 @@ address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
pkglib_DATA="@pkglib_DATA@"
-multiboot_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/i386-multiboot
-coreboot_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/i386-coreboot
-qemu_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/i386-qemu
-pc_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/i386-pc
-efi32_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/i386-efi
-efi64_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/x86_64-efi
+self=`basename $0`
+
+multiboot_dir=${pkglibrootdir}/i386-multiboot
+coreboot_dir=${pkglibrootdir}/i386-coreboot
+qemu_dir=${pkglibrootdir}/i386-qemu
+pc_dir=${pkglibrootdir}/i386-pc
+efi32_dir=${pkglibrootdir}/i386-efi
+efi64_dir=${pkglibrootdir}/x86_64-efi
rom_directory=
grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}`
@@ -43,7 +46,7 @@ grub_mkimage=${bindir}/`echo grub-mkimag
# Print the usage.
usage () {
cat <.
EOF
@@ -66,7 +69,7 @@ for option in "$@"; do
usage
exit 0 ;;
-v | --version)
- echo "$0 (GNU GRUB ${PACKAGE_VERSION})"
+ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}"
exit 0 ;;
--modules=*)
modules=`echo "$option" | sed 's/--modules=//'` ;;
@@ -99,7 +102,7 @@ if [ "x${output_image}" = x ] ; then
fi
set $grub_mkimage dummy
-if test -f "$1"; then
+if test -x "$1"; then
:
else
echo "$1: Not found." 1>&2
=== modified file 'util/grub-reboot.in'
--- util/grub-reboot.in 2010-01-05 11:16:42 +0000
+++ util/grub-reboot.in 2010-05-23 14:36:37 +0000
@@ -22,6 +22,11 @@ transform="@program_transform_name@"
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
+
+self=`basename $0`
grub_editenv=${bindir}/`echo grub-editenv | sed ${transform}`
rootdir=
@@ -30,7 +35,7 @@ rootdir=
# Print the usage.
usage () {
cat <&2 ; exit 1
fi
@@ -195,7 +195,7 @@ EOF
esac
# Gettext variables and module
-if [ "x${LANG}" != "xC" ] ; then
+if [ "x${LANG}" != "x" ] && [ "x${LANG}" != "xC" ] && [ -d "${locale_dir}" ] ; then
prepare_grub_to_access_device $(${grub_probe} --target=device ${locale_dir})
cat << EOF
set locale_dir=(\$root)$(make_system_path_relative_to_its_root ${locale_dir})
=== modified file 'util/grub.d/10_hurd.in'
--- util/grub.d/10_hurd.in 2010-05-18 18:10:37 +0000
+++ util/grub.d/10_hurd.in 2010-05-21 13:44:06 +0000
@@ -18,8 +18,9 @@
address@hidden@
address@hidden@
address@hidden@
-. ${libdir}/grub/grub-mkconfig_lib
address@hidden@
+
+. ${pkglibrootdir}/grub-mkconfig_lib
CLASS="--class gnu --class os"
=== modified file 'util/grub.d/10_kfreebsd.in'
--- util/grub.d/10_kfreebsd.in 2010-04-14 12:59:58 +0000
+++ util/grub.d/10_kfreebsd.in 2010-05-21 13:43:53 +0000
@@ -19,8 +19,9 @@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-. ${libdir}/grub/grub-mkconfig_lib
address@hidden@
+
+. ${pkglibrootdir}/grub-mkconfig_lib
export address@hidden@
export address@hidden@
=== modified file 'util/grub.d/10_linux.in'
--- util/grub.d/10_linux.in 2010-04-14 12:59:58 +0000
+++ util/grub.d/10_linux.in 2010-05-21 13:43:42 +0000
@@ -19,8 +19,9 @@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-. ${libdir}/grub/grub-mkconfig_lib
address@hidden@
+
+. ${pkglibrootdir}/grub-mkconfig_lib
export address@hidden@
export address@hidden@
=== modified file 'util/grub.d/10_netbsd.in'
--- util/grub.d/10_netbsd.in 2010-04-19 19:25:41 +0000
+++ util/grub.d/10_netbsd.in 2010-05-22 23:18:51 +0000
@@ -19,8 +19,9 @@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-. ${libdir}/grub/grub-mkconfig_lib
address@hidden@
+
+. ${pkglibrootdir}/grub-mkconfig_lib
export address@hidden@
export address@hidden@
@@ -61,6 +62,7 @@ netbsd_entry ()
printf "}\n"
}
+# Cache the sequence of commands to access / (whose device is ${GRUB_DEVICE}).
prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | sed -e 's,^, ,')"
# We look for NetBSD kernels in / but not in subdirectories. We simply
=== modified file 'util/grub.d/10_windows.in'
--- util/grub.d/10_windows.in 2010-05-18 19:58:49 +0000
+++ util/grub.d/10_windows.in 2010-05-21 13:43:14 +0000
@@ -18,8 +18,9 @@
address@hidden@
address@hidden@
address@hidden@
-. ${libdir}/grub/grub-mkconfig_lib
address@hidden@
+
+. ${pkglibrootdir}/grub-mkconfig_lib
case "`uname 2>/dev/null`" in
CYGWIN*) ;;
=== modified file 'util/grub.d/30_os-prober.in'
--- util/grub.d/30_os-prober.in 2010-02-03 00:24:07 +0000
+++ util/grub.d/30_os-prober.in 2010-05-23 13:42:20 +0000
@@ -18,9 +18,9 @@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-. ${libdir}/grub/grub-mkconfig_lib
+. ${pkglibrootdir}/grub-mkconfig_lib
if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
exit 0
=== modified file 'util/i386/efi/grub-install.in'
--- util/i386/efi/grub-install.in 2010-04-26 19:27:41 +0000
+++ util/i386/efi/grub-install.in 2010-05-23 14:34:05 +0000
@@ -24,21 +24,25 @@ address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}`
address@hidden@
+pkglibdir=${pkglibrootdir}/${target_cpu}-${platform}
address@hidden@/locale
address@hidden@
+
+self=`basename $0`
grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}`
grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}`
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
grub_editenv=${bindir}/`echo grub-editenv | sed ${transform}`
+grub_mofile=`echo ${PACKAGE}.mo | sed ${transform}`
rootdir=
-grub_prefix=`echo /boot/grub | sed ${transform}`
modules=
no_floppy=
@@ -50,7 +54,7 @@ debug=no
# Print the usage.
usage () {
cat <.
@@ -78,7 +82,7 @@ for option in "$@"; do
usage
exit 0 ;;
-v | --version)
- echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
+ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}"
exit 0 ;;
--modules=*)
modules=`echo "$option" | sed 's/--modules=//'` ;;
@@ -111,38 +115,19 @@ if test $debug = yes; then
fi
# Initialize these directories here, since ROOTDIR was initialized.
-case "$host_os" in
-netbsd* | openbsd*)
- # Because /boot is used for the boot block in NetBSD and OpenBSD, use /grub
- # instead of /boot/grub.
- grub_prefix=`echo /grub | sed ${transform}`
- bootdir=${rootdir}
- ;;
-*)
- # Use /boot/grub by default.
- bootdir=${rootdir}/boot
- ;;
-esac
-
-grubdir=${bootdir}/`echo grub | sed ${transform}`
+grubdir=${rootdir}${defaultbootdir}
device_map=${grubdir}/device.map
# Check if GRUB is installed.
-set $grub_mkimage dummy
-if test -f "$1"; then
- :
-else
- echo "$1: Not found." 1>&2
- exit 1
-fi
-
-set $grub_mkdevicemap dummy
-if test -f "$1"; then
- :
-else
- echo "$1: Not found." 1>&2
- exit 1
-fi
+for prog in mkimage mkdevicemap probe; do
+ eval set \$grub_$prog dummy
+ if test -x "$1"; then
+ :
+ else
+ echo "$1: Not found." 1>&2
+ exit 1
+ fi
+done
# Create the GRUB directory if it is not present.
mkdir -p "$grubdir" || exit 1
@@ -183,8 +168,8 @@ done
# Copy gettext files
mkdir -p ${grubdir}/locale/
for dir in ${localedir}/*; do
- if test -f "$dir/LC_MESSAGES/grub.mo"; then
- cp -f "$dir/LC_MESSAGES/grub.mo" "${grubdir}/locale/${dir##*/}.mo"
+ if test -f "$dir/LC_MESSAGES/${grub_mofile}"; then
+ cp -f "$dir/LC_MESSAGES/${grub_mofile}" "${grubdir}/locale/${dir##*/}.mo"
fi
done
@@ -219,7 +204,7 @@ $grub_mkimage -O ${target_cpu}-efi --out
echo "Installation finished. No error reported."
echo "This is the contents of the device map $device_map."
echo "Check if this is correct or not. If any of the lines is incorrect,"
-echo "fix it and re-run the script \`grub-install'."
+echo "fix it and re-run the script \`$self'."
echo
cat $device_map
=== modified file 'util/i386/pc/grub-setup.c'
--- util/i386/pc/grub-setup.c 2010-05-17 19:26:16 +0000
+++ util/i386/pc/grub-setup.c 2010-05-19 21:03:21 +0000
@@ -702,7 +702,7 @@ main (int argc, char *argv[])
break;
case 'V':
- printf ("grub-setup (%s) %s\n", PACKAGE_NAME, PACKAGE_VERSION);
+ printf ("%s (%s) %s\n", program_name, PACKAGE_NAME, PACKAGE_VERSION);
return 0;
case 'v':
=== modified file 'util/ieee1275/grub-install.in'
--- util/ieee1275/grub-install.in 2010-04-26 19:27:41 +0000
+++ util/ieee1275/grub-install.in 2010-05-24 12:02:20 +0000
@@ -32,14 +32,17 @@ address@hidden@
address@hidden@
address@hidden@
address@hidden@
-pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}`
address@hidden@
+pkglibdir=${pkglibrootdir}/${target_cpu}-${platform}
address@hidden@
+
+self=`basename $0`
grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}`
grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}`
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
grub_editenv=${bindir}/`echo grub-editenv | sed ${transform}`
rootdir=
-grub_prefix=`echo /boot/grub | sed ${transform}`
modules=
install_device=
@@ -53,7 +56,7 @@ nvsetenv=`which nvsetenv`
# Print the usage.
usage () {
cat <&2
- exit 1
-fi
+# Check if GRUB is installed.
+for prog in mkimage mkdevicemap probe; do
+ eval set \$grub_$prog dummy
+ if test -x "$1"; then
+ :
+ else
+ echo "$1: Not found." 1>&2
+ exit 1
+ fi
+done
# Find the partition at the right mount point.
install_device=`$grub_mkdevicemap --device-map=/dev/stdout | $grub_probe --target=device --device-map=/dev/stdin ${grubdir}`
-if test "x$install_device" = "x`$grub_mkdevicemap --device-map=/dev/stdout | $grub_probe --target=device --device-map=/dev/stdin ${bootdir}`"; then
+if test "x$install_device" = "x`$grub_mkdevicemap --device-map=/dev/stdout | $grub_probe --target=device --device-map=/dev/stdin ${grubdir}/..`"; then
echo "$grubdir must be a mount point."
exit 1
fi
@@ -193,7 +198,7 @@ modules="$modules $fs_module $partmap_mo
if test $update_nvram = yes; then
set $ofpathname dummy
- if test -f "$1"; then
+ if test -x "$1"; then
:
else
echo "$1: Not found." 1>&2
@@ -201,7 +206,7 @@ if test $update_nvram = yes; then
fi
set $nvsetenv dummy
- if test -f "$1"; then
+ if test -x "$1"; then
:
else
echo "$1: Not found." 1>&2
@@ -231,7 +236,7 @@ fi
echo "Installation finished. No error reported."
echo "This is the contents of the device map $device_map."
echo "Check if this is correct or not. If any of the lines is incorrect,"
-echo "fix it and re-run the script \`grub-install'."
+echo "fix it and re-run the script \`$self'."
echo
cat $device_map
=== modified file 'util/powerpc/ieee1275/grub-mkrescue.in'
--- util/powerpc/ieee1275/grub-mkrescue.in 2010-04-26 19:27:41 +0000
+++ util/powerpc/ieee1275/grub-mkrescue.in 2010-05-23 14:35:04 +0000
@@ -28,7 +28,10 @@ address@hidden@
address@hidden@
address@hidden@
address@hidden@
-pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}`
address@hidden@
+pkglibdir=${pkglibrootdir}/${target_cpu}-${platform}
+
+self=`basename $0`
grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}`
@@ -36,7 +39,7 @@ grub_mkimage=${bindir}/`echo grub-mkimag
# Print the usage.
usage () {
cat <