008-09-15 Felix Zielcke
* util/update-grub_lib.in: Rename to ...
* util/grub-mkconfig_lib.in: ... this. Update all users.
* util/update-grub.in: Rename to ...
* util/grub-mkconf.in: ... this. Update all users. Print
generated config to stdout.
(update_grub_dir): Rename to ...
(grub_mkconf_dir): ... this.
* conf/common.rmk (update-grub): Rename to ...
(grub-mkconf): ... this.
(update-grub_lib): Rename to ...
(grub-mkconf_lib): ... this.
(update-grub_SCRIPTS): Rename to ...
(grub-mkconf_SCRIPTS): ... this. Update all users.
(update-grub_DATA): Rename to ...
(grub-mkconf_DATA): ... this.
Index: Makefile.in
===================================================================
--- Makefile.in (revision 1863)
+++ Makefile.in (working copy)
@@ -108,7 +108,7 @@ PKGLIB = $(pkglib_IMAGES) $(pkglib_MODUL
$(pkglib_DATA) $(lib_DATA)
PKGDATA = $(pkgdata_DATA)
PROGRAMS = $(bin_UTILITIES) $(sbin_UTILITIES)
-SCRIPTS = $(bin_SCRIPTS) $(sbin_SCRIPTS) $(update-grub_SCRIPTS)
+SCRIPTS = $(bin_SCRIPTS) $(sbin_SCRIPTS) $(grub-mkconf_SCRIPTS)
CLEANFILES =
MOSTLYCLEANFILES =
@@ -209,12 +209,12 @@ install-local: all
$(HELP2MAN) --section=8 $(builddir)/$$file > $(DESTDIR)$(mandir)/man8/$$dest.8; \
done
$(mkinstalldirs) $(DESTDIR)$(sysconfdir)/grub.d
- @list='$(update-grub_SCRIPTS)'; for file in $$list; do \
+ @list='$(grub-mkconf_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)$(sysconfdir)/grub.d/$$dest; \
done
- @list='$(update-grub_DATA)'; for file in $$list; do \
+ @list='$(grub-mkconf_DATA)'; for file in $$list; do \
if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
$(INSTALL_DATA) $$dir$$file $(DESTDIR)$(sysconfdir)/grub.d/$$dest; \
@@ -249,7 +249,7 @@ uninstall:
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
rm -f $(DESTDIR)$(sbindir)/$$dest; \
done
- @list='$(update-grub_SCRIPTS) $(update-grub_DATA)'; for file in $$list; do \
+ @list='$(grub-mkconf_SCRIPTS) $(grub-mkconf_DATA)'; for file in $$list; do \
dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \
rm -f $(DESTDIR)$(sysconfdir)/grub.d/$$dest; \
done
Index: conf/common.rmk
===================================================================
--- conf/common.rmk (revision 1863)
+++ conf/common.rmk (working copy)
@@ -115,30 +115,30 @@ endif
grub_pe2elf_SOURCES = util/grub-pe2elf.c util/misc.c
CLEANFILES += grub-pe2elf
-# For update-grub
-update-grub: util/update-grub.in config.status
+# For grub-mkconf
+grub-mkconf: util/grub-mkconf.in config.status
./config.status --file=$@:$<
chmod +x $@
-sbin_SCRIPTS += update-grub
-CLEANFILES += update-grub
+sbin_SCRIPTS += grub-mkconf
+CLEANFILES += grub-mkconf
-update-grub_lib: util/update-grub_lib.in config.status
+grub-mkconf_lib: util/grub-mkconf_lib.in config.status
./config.status --file=$@:$<
chmod +x $@
-lib_DATA += update-grub_lib
-CLEANFILES += update-grub_lib
+lib_DATA += grub-mkconf_lib
+CLEANFILES += grub-mkconf_lib
%: util/grub.d/%.in config.status
./config.status --file=$@:$<
chmod +x $@
-update-grub_SCRIPTS = 00_header 10_linux 10_hurd 30_os-prober 40_custom
+grub-mkconf_SCRIPTS = 00_header 10_linux 10_hurd 30_os-prober 40_custom
ifeq ($(target_os), cygwin)
-update-grub_SCRIPTS += 10_windows
+grub-mkconf_SCRIPTS += 10_windows
endif
-CLEANFILES += $(update-grub_SCRIPTS)
+CLEANFILES += $(grub-mkconf_SCRIPTS)
-update-grub_DATA += util/grub.d/README
+grub-mkconf_DATA += util/grub.d/README
# Filing systems.
Index: util/grub-mkconf.in
===================================================================
--- util/grub-mkconf.in (revision 1863)
+++ util/grub-mkconf.in (working copy)
@@ -25,7 +25,7 @@ address@hidden@
address@hidden@
grub_prefix=`echo /boot/grub | sed ${transform}`
grub_cfg=${grub_prefix}/grub.cfg
-update_grub_dir=${sysconfdir}/grub.d
+grub_mkconf_dir=${sysconfdir}/grub.d
grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}`
grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
@@ -165,14 +165,7 @@ export GRUB_DEVICE GRUB_DEVICE_UUID GRUB
# These are optional, user-defined variables.
export GRUB_DEFAULT GRUB_TIMEOUT GRUB_DISTRIBUTOR GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX_DEFAULT GRUB_TERMINAL GRUB_SERIAL_COMMAND GRUB_DISABLE_LINUX_UUID GRUB_GFXMODE
-rm -f ${grub_cfg}.new
-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
-
-echo "Updating ${grub_cfg} ..." >&2
+echo "Generating grub.cfg ..." >&2
cat << EOF
#
@@ -183,7 +176,7 @@ cat << EOF
#
EOF
-for i in ${update_grub_dir}/* ; do
+for i in ${grub_mkconf_dir}/* ; do
case "$i" in
# emacsen backup files. FIXME: support other editors
*~) ;;
@@ -198,7 +191,4 @@ for i in ${update_grub_dir}/* ; do
esac
done
-# none of the children aborted with error, install the new grub.cfg
-mv -f ${grub_cfg}.new ${grub_cfg}
-
echo "done" >&2
Property changes on: util/grub-mkconf.in
___________________________________________________________________
Added: svn:mergeinfo
Index: util/update-grub.in
===================================================================
--- util/update-grub.in (revision 1863)
+++ util/update-grub.in (working copy)
@@ -1,204 +0,0 @@
-#! /bin/sh -e
-
-# Generate grub.cfg by inspecting /boot contents.
-# Copyright (C) 2006,2007,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 .
-
-transform="@program_transform_name@"
-
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-grub_prefix=`echo /boot/grub | sed ${transform}`
-grub_cfg=${grub_prefix}/grub.cfg
-update_grub_dir=${sysconfdir}/grub.d
-
-grub_mkdevicemap=${sbindir}/`echo grub-mkdevicemap | sed ${transform}`
-grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
-
-# Usage: usage
-# Print the usage.
-usage () {
- cat <.
-EOF
-}
-
-# Check the arguments.
-for option in "$@"; do
- case "$option" in
- -h | --help)
- usage
- exit 0 ;;
- -v | --version)
- echo "$0 (GNU GRUB ${PACKAGE_VERSION})"
- exit 0 ;;
- -y)
- echo "$0: warning: Ignoring -y option (no longer needed)." >&2
- ;;
- -*)
- echo "Unrecognized option \`$option'" 1>&2
- usage
- exit 1
- ;;
- esac
-done
-
-. ${libdir}/grub/update-grub_lib
-
-if [ "x$EUID" = "x" ] ; then
- EUID=`id -u`
-fi
-
-if [ "$EUID" != 0 ] ; then
- root=f
- case "`uname 2>/dev/null`" in
- CYGWIN*)
- # Cygwin: Assume root if member of admin group
- for g in `id -G 2>/dev/null` ; do
- case $g in
- 0|544) root=t ;;
- esac
- done ;;
- esac
- if [ $root != t ] ; then
- echo "$0: 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
-
-# Device containing our /boot partition. Usually the same as GRUB_DEVICE.
-GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`"
-GRUB_DEVICE_BOOT_UUID="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true
-
-# Filesystem for the device containing our userland. Used for stuff like
-# choosing Hurd filesystem module.
-GRUB_FS="`${grub_probe} --target=fs / 2> /dev/null || echo unknown`"
-
-if test -f ${sysconfdir}/default/grub ; then
- . ${sysconfdir}/default/grub
-fi
-
-case x${GRUB_TERMINAL} in
- x)
- # If this platform supports gfxterm, try to use it.
- if test -e ${grub_prefix}/gfxterm.mod ; then
- GRUB_TERMINAL=gfxterm
- fi
- ;;
- xconsole | xserial | xofconsole | xgfxterm) ;;
- *) echo "Invalid terminal \"${GRUB_TERMINAL}\"" >&2 ; exit 1 ;;
-esac
-
-# check for terminals that require fonts
-case ${GRUB_TERMINAL} in
- gfxterm)
- if path=`font_path` ; then
- GRUB_FONT_PATH="${path}"
- else
- # fallback to the native terminal for this platform
- unset GRUB_TERMINAL
- fi
- ;;
-esac
-
-# does our terminal support utf-8 ?
-case ${GRUB_TERMINAL} in
- gfxterm) ;;
- *)
- # make sure all our children behave in conformance with ascii..
- export LANG=C
- ;;
-esac
-
-# These are defined in this script, export them here so that user can
-# override them.
-export GRUB_DEVICE GRUB_DEVICE_UUID GRUB_DEVICE_BOOT GRUB_DEVICE_BOOT_UUID GRUB_FS GRUB_FONT_PATH GRUB_PRELOAD_MODULES
-
-# These are optional, user-defined variables.
-export GRUB_DEFAULT GRUB_TIMEOUT GRUB_DISTRIBUTOR GRUB_CMDLINE_LINUX GRUB_CMDLINE_LINUX_DEFAULT GRUB_TERMINAL GRUB_SERIAL_COMMAND GRUB_DISABLE_LINUX_UUID GRUB_GFXMODE
-
-rm -f ${grub_cfg}.new
-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
-
-echo "Updating ${grub_cfg} ..." >&2
-
-cat << EOF
-#
-# DO NOT EDIT THIS FILE
-#
-# It is automatically generated by $0 using templates
-# from ${update_grub_dir} and settings from ${sysconfdir}/default/grub
-#
-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
-done
-
-# none of the children aborted with error, install the new grub.cfg
-mv -f ${grub_cfg}.new ${grub_cfg}
-
-echo "done" >&2
Index: util/grub-mkconf_lib.in
===================================================================
--- util/grub-mkconf_lib.in (revision 1863)
+++ util/grub-mkconf_lib.in (working copy)
@@ -1,4 +1,4 @@
-# Helper library for update-grub
+# Helper library for grub-mkconf
# Copyright (C) 2007,2008 Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
Property changes on: util/grub-mkconf_lib.in
___________________________________________________________________
Added: svn:mergeinfo
Index: util/update-grub_lib.in
===================================================================
--- util/update-grub_lib.in (revision 1863)
+++ util/update-grub_lib.in (working copy)
@@ -1,173 +0,0 @@
-# Helper library for update-grub
-# Copyright (C) 2007,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 .
-
-transform="@program_transform_name@"
-
address@hidden@
address@hidden@
address@hidden@
address@hidden@
address@hidden@
-pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"`
-
-grub_probe=${sbindir}/`echo grub-probe | sed ${transform}`
-
-make_system_path_relative_to_its_root ()
-{
- path=$1
- # abort if file doesn't exist
- if test -e $path ; then : ;else
- return 1
- fi
-
- # canonicalize
- if path=`readlink -f $path` ; then : ; else
- return 1
- fi
-
- # if not a directory, climb up to the directory containing it
- if test -d $path ; then
- dir=$path
- else
- dir=`echo $path | sed -e "s,/[^/]*$,,g"`
- fi
-
- num=`stat -c %d $dir`
-
- # this loop sets $dir to the root directory of the filesystem we're inspecting
- while : ; do
- parent=`readlink -f $dir/..`
- if [ "x`stat -c %d $parent`" = "x$num" ] ; then : ; else
- # $parent is another filesystem; we found it.
- break
- fi
- if [ "x$dir" = "x/" ] ; then
- # / is our root.
- break
- fi
- dir=$parent
- done
-
- # This function never prints trailing slashes (so that its output can be
- # appended a slash unconditionally). Each slash in $dir is considered a
- # preceding slash, and therefore the root directory is an empty string.
- if [ "$dir" = "/" ] ; then
- dir=""
- fi
-
- # XXX: This fails if $dir contains ','.
- path=`echo "$path" | sed -e "s,^$dir,,g"` || return 1
-
- case "`uname 2>/dev/null`" in
- CYGWIN*)
- # Cygwin: Check if regular or emulated mount.
- if [ -z "$dir" ] || [ "`stat -c %D "$dir/.."`" != 620000 ] ; then
- # Reached some mount point not below /cygdrive.
- # GRUB does not know Cygwin's emulated mounts,
- # convert to Win32 path and remove drive letter.
- path=`cygpath -m "$path" | sed -n 's,^[A-Za-z]:,,p'`
- test ! -z "$path" || return 1
- fi ;;
- esac
-
- echo "$path"
-}
-
-is_path_readable_by_grub ()
-{
- path=$1
-
- # abort if path doesn't exist
- if test -e $path ; then : ;else
- return 1
- fi
-
- # abort if file is in a filesystem we can't read
- if ${grub_probe} -t fs $path > /dev/null 2>&1 ; then : ; else
- return 1
- fi
-
- return 0
-}
-
-convert_system_path_to_grub_path ()
-{
- path=$1
-
- echo "Warning: convert_system_path_to_grub_path() is deprecated. Use prepare_grub_to_access_device() instead." >&2
-
- # abort if GRUB can't access the path
- if is_path_readable_by_grub ${path} ; then : ; else
- return 1
- fi
-
- if drive=`${grub_probe} -t drive $path` ; then : ; else
- return 1
- fi
-
- if relative_path=`make_system_path_relative_to_its_root $path` ; then : ; else
- return 1
- fi
-
- echo ${drive}${relative_path}
-}
-
-prepare_grub_to_access_device ()
-{
- device=$1
-
- # Abstraction modules aren't auto-loaded.
- abstraction="`${grub_probe} --device ${device} --target=abstraction`"
- if [ "x${abstraction}" = "x" ] ; then : ; else
- echo "insmod ${abstraction}"
- fi
-
- # If there's a filesystem UUID that GRUB is capable of identifying, use it;
- # otherwise set root as per value in device.map.
- echo "set root=`${grub_probe} --device ${device} --target=drive`"
- if fs_uuid="`${grub_probe} --device ${device} --target=fs_uuid 2> /dev/null`" ; then
- echo "search --fs-uuid --set ${fs_uuid}"
- fi
-}
-
-font_path ()
-{
- for dir in ${pkgdatadir} /boot/grub /usr/share/grub ; 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
- path="${dir}/${basename}.pff"
- if is_path_readable_by_grub ${path} > /dev/null ; then
- echo "${path}"
- return 0
- fi
- done
- done
-
- return 1
-}
-
-grub_file_is_not_garbage ()
-{
- if test -f "$1" ; then
- case "$1" in
- *.dpkg-dist|*.dpkg-old|*.dpkg-tmp) return 1 ;; # debian dpkg
- esac
- else
- return 1
- fi
- return 0
-}