From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1OKK3z-0003ug-R1 for mharc-grub-devel@gnu.org; Thu, 03 Jun 2010 19:43:03 -0400 Received: from [140.186.70.92] (port=41937 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OKK3n-0003pg-3g for grub-devel@gnu.org; Thu, 03 Jun 2010 19:43:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OKK3i-0001M8-Nw for grub-devel@gnu.org; Thu, 03 Jun 2010 19:42:51 -0400 Received: from mail-wy0-f169.google.com ([74.125.82.169]:47203) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OKK3i-0001Lm-6x for grub-devel@gnu.org; Thu, 03 Jun 2010 19:42:46 -0400 Received: by wyb39 with SMTP id 39so554435wyb.0 for ; Thu, 03 Jun 2010 16:42:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:content-type; bh=/KGyY4Xb5vlYWrHBJ9gfSQlAgz5LLRGjMri9WPSDfM8=; b=YJeFqtbv4ccZHJbqTa/GqVVn4JgLDHzKA19GjibIpQmNaCdNj9WNM+huVrTEONUPhZ a8Uele5joLAQ1OSqp7MA4ohJe3NHkQPfWA9A80VFgQfZTjLn1xLMnP42F57dmthZyahf EihlDp02nSOwHu5XoeOJcCeoHegYP+Z/euLDY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :content-type; b=TzKE/iZxKuQZLiTFqUi5L32QseK/uo/S5cD7648SD+JHZi1RR2TBRlktlHom+c3oXk erw0IqaFYJtLMFFrR6xOHS8CIuCMTLcHZUs5uKxTvO2JpWOQqMN0HW1IUD62ItLxH8eq Gbpc/yVJEsa8fF1dWSbwsX7+vHizG9b+X1yGg= Received: by 10.227.128.81 with SMTP id j17mr9871893wbs.149.1275608564303; Thu, 03 Jun 2010 16:42:44 -0700 (PDT) Received: from [192.168.1.50] (c2433-1-88-160-112-182.fbx.proxad.net [88.160.112.182]) by mx.google.com with ESMTPS id y31sm4874227wby.16.2010.06.03.16.42.42 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 03 Jun 2010 16:42:43 -0700 (PDT) Message-ID: <4C083DF0.6080508@gmail.com> Date: Fri, 04 Jun 2010 01:42:40 +0200 From: =?ISO-8859-1?Q?Gr=E9goire_Sutre?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100411 Icedove/3.0.4 MIME-Version: 1.0 To: The development of GNU GRUB Content-Type: multipart/mixed; boundary="------------060100030607020307000504" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) Subject: [PATCH] File name transformations (split into 7 diffs) X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jun 2010 23:43:01 -0000 This is a multi-part message in MIME format. --------------060100030607020307000504 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Hi, This is the same patch as I sent before, but this time split into 7 diffs (which must be successively applied in order) and with a cleaner changelog. I hope that this will facilitate the review. This version does not include the --root-directory addition to grub-mkconfig, as this is quite orthognal to the goal of the patch (file name transformation). I welcome your comments, Grégoire --- mostly taken from my previous message ------------------------------ The attached patch fixes problems with file name transformations, which are partly broken in trunk. With this patch, several installations of grub can coexist with no conflict (at least they should), sharing however the same configuration directory (etc/grub.d). For instance: ./configure --program-transform-name=s,grub,aaa, will install bin/aaa-*, sbin/aaa-*, etc. The default grub directory will be /boot/aaa, modules will be installed there and grub-mkconfig will look for them there. The main changes in the patch are: - configure defines three new variables, accounting for transformations: . pkgdatadir (${datadir}/grub) . pkglibrootdir (${libdir}/grub) . defaultbootdir (/boot/grub, or /grub if OS is NetBSD or OpenBSD) - these variables are used in Makefile and in util/... scripts - output of --help and of --version in scripts uses `basename $0` and the same format as the one in binaries. - in Makefile, the help2man, .info, and .mo rules also account for file name transformations. - grub-mkconfig exports GRUB_DIR, which is used by grub-mkconfig_lib and by 00_header. ----------------------------------------------------------------------- --------------060100030607020307000504 Content-Type: text/x-patch; name="file-name-transformations_1.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="file-name-transformations_1.diff" === modified file 'ChangeLog' --- ChangeLog 2010-06-03 08:48:23 +0000 +++ ChangeLog 2010-06-03 20:34:49 +0000 @@ -1,3 +1,22 @@ +2010-06-03 GrĂ©goire Sutre + + Make --version uniform and avoid hard-coded program name. + + * util/grub-mkimage.c (main): Use `program_name' instead of + hard-coded string. + * util/i386/pc/grub-setup.c (main): Likewise. + * util/sparc64/ieee1275/grub-setup.c (parse_options): Likewise. + * 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-06-03 Colin Watson * INSTALL: Document several build requirements for optional features === modified file 'util/grub-install.in' --- util/grub-install.in 2010-05-18 11:45:25 +0000 +++ util/grub-install.in 2010-06-03 20:34:49 +0000 @@ -34,6 +34,8 @@ font=@datadir@/@PACKAGE_TARNAME@/ascii.p pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}` localedir=@datadir@/locale +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}` @@ -61,7 +63,7 @@ fi # Print the usage. usage () { cat <. @@ -108,7 +110,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=//'` ;; === modified file 'util/grub-mkconfig.in' --- util/grub-mkconfig.in 2010-05-23 12:11:11 +0000 +++ util/grub-mkconfig.in 2010-06-03 20:34:49 +0000 @@ -23,7 +23,8 @@ exec_prefix=@exec_prefix@ sbindir=@sbindir@ libdir=@libdir@ sysconfdir=@sysconfdir@ -package_version=@PACKAGE_VERSION@ +PACKAGE_NAME=@PACKAGE_NAME@ +PACKAGE_VERSION=@PACKAGE_VERSION@ host_os=@host_os@ datarootdir=@datarootdir@ datadir=@datadir@ @@ -31,6 +32,8 @@ pkgdatadir=${datadir}/`echo @PACKAGE_TAR 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}` @@ -38,7 +41,7 @@ grub_probe=${sbindir}/`echo grub-probe | # Print the usage. usage () { cat <&2 + echo "$self: You must run this as root" >&2 exit 1 fi fi @@ -284,7 +287,7 @@ 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-mkimage.c' --- util/grub-mkimage.c 2010-05-18 11:55:26 +0000 +++ util/grub-mkimage.c 2010-06-03 20:34:49 +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-27 11:43:22 +0000 +++ util/grub-mkrescue.in 2010-06-03 20:34:49 +0000 @@ -30,6 +30,8 @@ target_cpu=@target_cpu@ native_platform=@platform@ pkglib_DATA="@pkglib_DATA@" +self=`basename $0` + 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 @@ -44,7 +46,7 @@ grub_mkimage=${bindir}/`echo grub-mkimag # Print the usage. usage () { cat <. EOF @@ -67,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=//'` ;; === modified file 'util/grub-reboot.in' --- util/grub-reboot.in 2010-01-05 11:16:42 +0000 +++ util/grub-reboot.in 2010-06-03 20:34:49 +0000 @@ -22,6 +22,10 @@ transform="@program_transform_name@" prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ +PACKAGE_NAME=@PACKAGE_NAME@ +PACKAGE_VERSION=@PACKAGE_VERSION@ + +self=`basename $0` grub_editenv=${bindir}/`echo grub-editenv | sed ${transform}` rootdir= @@ -30,7 +34,7 @@ rootdir= # Print the usage. usage () { cat <. @@ -78,7 +80,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=//'` ;; @@ -219,7 +221,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-06-03 20:34:49 +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-06-03 20:34:49 +0000 @@ -34,6 +34,8 @@ target_cpu=@target_cpu@ platform=@platform@ pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}` +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}` @@ -53,7 +55,7 @@ nvsetenv=`which nvsetenv` # Print the usage. usage () { cat <. EOF @@ -61,7 +63,7 @@ for option in "$@"; do usage exit 0 ;; -v | --version) - echo "grub-mkrescue (GNU GRUB ${PACKAGE_VERSION})" + echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" exit 0 ;; --modules=*) modules=`echo "$option" | sed 's/--modules=//'` ;; === modified file 'util/sparc64/ieee1275/grub-setup.c' --- util/sparc64/ieee1275/grub-setup.c 2010-05-17 19:26:16 +0000 +++ util/sparc64/ieee1275/grub-setup.c 2010-06-03 20:34:49 +0000 @@ -503,7 +503,7 @@ parse_options (struct grub_setup_info *g 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': --------------060100030607020307000504 Content-Type: text/x-patch; name="file-name-transformations_2.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="file-name-transformations_2.diff" === modified file 'ChangeLog' --- ChangeLog 2010-06-03 20:34:49 +0000 +++ ChangeLog 2010-06-03 21:36:19 +0000 @@ -1,5 +1,29 @@ 2010-06-03 GrĂ©goire Sutre + * configure.ac: Set and subsitute pkgdatadir, pkglibrootdir and + defaultbootdir. + * Makefile.in: Use the above autoconfigured variables. + * util/grub-install.in: Likewise, and simplify usage message. + * util/grub-mkrescue.in: Likewise. + * util/grub-reboot.in: Likewise. + * util/grub-set-default.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. + * util/grub-mkconfig.in: Likewise. + (GRUB_DIR): Export new variable. + * util/grub-mkconfig_lib.in: Likewise, and use device.map in GRUB_DIR. + * util/grub.d/00_header.in: Likewise, and use GRUB_DIR. + +2010-06-03 GrĂ©goire Sutre + Make --version uniform and avoid hard-coded program name. * util/grub-mkimage.c (main): Use `program_name' instead of === modified file 'Makefile.in' --- Makefile.in 2010-05-18 11:55:26 +0000 +++ Makefile.in 2010-06-03 21:36:19 +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@ @@ -355,12 +356,12 @@ 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 \ @@ -412,7 +413,7 @@ 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 \ === modified file 'configure.ac' --- configure.ac 2010-05-28 17:13:48 +0000 +++ configure.ac 2010-06-03 21:36:19 +0000 @@ -798,6 +798,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 === modified file 'util/grub-install.in' --- util/grub-install.in 2010-06-03 20:34:49 +0000 +++ util/grub-install.in 2010-06-03 21:36:19 +0000 @@ -29,10 +29,11 @@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ target_cpu=@target_cpu@ platform=@platform@ -host_os=@host_os@ font=@datadir@/@PACKAGE_TARNAME@/ascii.pf2 -pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}` +pkglibrootdir=@pkglibrootdir@ +pkglibdir=${pkglibrootdir}/${target_cpu}-${platform} localedir=@datadir@/locale +defaultbootdir=@defaultbootdir@ self=`basename $0` @@ -42,7 +43,6 @@ grub_mkdevicemap=${sbindir}/`echo grub-m 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= @@ -91,13 +91,11 @@ EOF fi cat <. EOF @@ -155,7 +153,7 @@ for option in "$@"; do done # for make_system_path_relative_to_its_root() -. ${libdir}/grub/grub-mkconfig_lib +. ${pkglibrootdir}/grub-mkconfig_lib if test "x$install_device" = x && test "${target_cpu}-${platform}" != "mips-yeeloong"; then echo "install_device not specified." 1>&2 @@ -171,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}" @@ -358,8 +343,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-06-03 20:34:49 +0000 +++ util/grub-mkconfig.in 2010-06-03 21:36:19 +0000 @@ -25,10 +25,11 @@ libdir=@libdir@ sysconfdir=@sysconfdir@ PACKAGE_NAME=@PACKAGE_NAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ -host_os=@host_os@ datarootdir=@datarootdir@ datadir=@datadir@ -pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"` +pkgdatadir=@pkgdatadir@ +pkglibrootdir=@pkglibrootdir@ +defaultbootdir=@defaultbootdir@ grub_cfg="" grub_mkconfig_dir=${sysconfdir}/grub.d @@ -86,19 +87,33 @@ if $next_grub_cfg; then exit 1 fi -. ${libdir}/grub/grub-mkconfig_lib +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 + +GRUB_DIR=${defaultbootdir} + +# 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 -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 +. ${pkglibrootdir}/grub-mkconfig_lib if [ "x$EUID" = "x" ] ; then EUID=`id -u` @@ -121,28 +136,6 @@ if [ "$EUID" != 0 ] ; then 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 @@ -174,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 @@ -183,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 @@ -198,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 @@ -239,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 \ @@ -281,7 +275,7 @@ 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 # === modified file 'util/grub-mkconfig_lib.in' --- util/grub-mkconfig_lib.in 2010-05-27 14:38:16 +0000 +++ util/grub-mkconfig_lib.in 2010-06-03 21:36:19 +0000 @@ -22,7 +22,7 @@ datarootdir=@datarootdir@ datadir=@datadir@ bindir=@bindir@ sbindir=@sbindir@ -pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"` +pkgdatadir=@pkgdatadir@ 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 === modified file 'util/grub-mkrescue.in' --- util/grub-mkrescue.in 2010-06-03 20:34:49 +0000 +++ util/grub-mkrescue.in 2010-06-03 21:36:19 +0000 @@ -28,16 +28,17 @@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ target_cpu=@target_cpu@ native_platform=@platform@ +pkglibrootdir=@pkglibrootdir@ pkglib_DATA="@pkglib_DATA@" self=`basename $0` -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 +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= override_dir= grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}` === modified file 'util/grub-reboot.in' --- util/grub-reboot.in 2010-06-03 20:34:49 +0000 +++ util/grub-reboot.in 2010-06-03 21:36:19 +0000 @@ -24,6 +24,7 @@ exec_prefix=@exec_prefix@ bindir=@bindir@ PACKAGE_NAME=@PACKAGE_NAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ +defaultbootdir=@defaultbootdir@ self=`basename $0` @@ -81,20 +82,7 @@ if test "x$entry" = x; 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} prev_saved_entry=`$grub_editenv ${grubdir}/grubenv list | sed -n 's/^saved_entry=//p'` if [ "$prev_saved_entry" ]; then === modified file 'util/grub-set-default.in' --- util/grub-set-default.in 2010-06-03 20:34:49 +0000 +++ util/grub-set-default.in 2010-06-03 21:36:19 +0000 @@ -24,6 +24,7 @@ exec_prefix=@exec_prefix@ bindir=@bindir@ PACKAGE_NAME=@PACKAGE_NAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ +defaultbootdir=@defaultbootdir@ self=`basename $0` @@ -81,20 +82,7 @@ if test "x$entry" = x; 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} $grub_editenv ${grubdir}/grubenv unset prev_saved_entry $grub_editenv ${grubdir}/grubenv set saved_entry="$entry" === modified file 'util/grub.d/00_header.in' --- util/grub.d/00_header.in 2010-06-02 12:57:13 +0000 +++ util/grub.d/00_header.in 2010-06-03 21:36:19 +0000 @@ -20,12 +20,12 @@ transform="@program_transform_name@" prefix=@prefix@ exec_prefix=@exec_prefix@ -libdir=@libdir@ -grub_prefix=`echo /boot/grub | sed ${transform}` -locale_dir=`echo /boot/grub/locale | sed ${transform}` +pkglibrootdir=@pkglibrootdir@ + +locale_dir=${GRUB_DIR}/locale grub_lang=`echo $LANG | cut -d _ -f 1` -. ${libdir}/grub/grub-mkconfig_lib +. ${pkglibrootdir}/grub-mkconfig_lib # Do this as early as possible, since other commands might depend on it. # (e.g. the `loadfont' command might need lvm or raid modules) @@ -89,7 +89,7 @@ for x in ${GRUB_TERMINAL_INPUT} ${GRUB_T done if [ "x$serial" = x1 ]; then - if ! test -e ${grub_prefix}/serial.mod ; then + if ! test -e ${GRUB_DIR}/serial.mod ; then echo "Serial terminal not available on this platform." >&2 ; exit 1 fi === 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-06-03 21:36:19 +0000 @@ -18,8 +18,9 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ -libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +pkglibrootdir=@pkglibrootdir@ + +. ${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-06-03 21:36:19 +0000 @@ -19,8 +19,9 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ -libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +pkglibrootdir=@pkglibrootdir@ + +. ${pkglibrootdir}/grub-mkconfig_lib export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR=@localedir@ === 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-06-03 21:36:19 +0000 @@ -19,8 +19,9 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ -libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +pkglibrootdir=@pkglibrootdir@ + +. ${pkglibrootdir}/grub-mkconfig_lib export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR=@localedir@ === 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-06-03 21:36:19 +0000 @@ -19,8 +19,9 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ -libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +pkglibrootdir=@pkglibrootdir@ + +. ${pkglibrootdir}/grub-mkconfig_lib export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR=@localedir@ === 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-06-03 21:36:19 +0000 @@ -18,8 +18,9 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ -libdir=@libdir@ -. ${libdir}/grub/grub-mkconfig_lib +pkglibrootdir=@pkglibrootdir@ + +. ${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-06-03 21:36:19 +0000 @@ -18,9 +18,9 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ -libdir=@libdir@ +pkglibrootdir=@pkglibrootdir@ -. ${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-06-03 20:34:49 +0000 +++ util/i386/efi/grub-install.in 2010-06-03 21:36:19 +0000 @@ -29,9 +29,10 @@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ target_cpu=@target_cpu@ platform=@platform@ -host_os=@host_os@ -pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}` +pkglibrootdir=@pkglibrootdir@ +pkglibdir=${pkglibrootdir}/${target_cpu}-${platform} localedir=@datadir@/locale +defaultbootdir=@defaultbootdir@ self=`basename $0` @@ -40,7 +41,6 @@ grub_mkdevicemap=${sbindir}/`echo grub-m 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= no_floppy= @@ -66,7 +66,7 @@ Install GRUB on your EFI partition. --no-floppy do not probe any floppy drive --recheck probe a device map even if it already exists -$self copies GRUB images into the DIR/boot directory specified by +$self copies GRUB images into the DIR${defaultbootdir} directory specified by --root-directory. Report bugs to . @@ -113,20 +113,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 # Check if GRUB is installed. === modified file 'util/ieee1275/grub-install.in' --- util/ieee1275/grub-install.in 2010-06-03 20:34:49 +0000 +++ util/ieee1275/grub-install.in 2010-06-03 21:36:19 +0000 @@ -32,7 +32,9 @@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ target_cpu=@target_cpu@ platform=@platform@ -pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}` +pkglibrootdir=@pkglibrootdir@ +pkglibdir=${pkglibrootdir}/${target_cpu}-${platform} +defaultbootdir=@defaultbootdir@ self=`basename $0` @@ -41,7 +43,6 @@ grub_mkdevicemap=${sbindir}/`echo grub-m 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= @@ -68,7 +69,7 @@ Install GRUB on your drive. --grub-probe=FILE use FILE as grub-probe --no-nvram don't update the boot-device NVRAM variable -$self copies GRUB images into the DIR/boot directory specified by +$self copies GRUB images into the DIR${defaultbootdir} directory specified by --root-directory, and uses nvsetenv to set the Open Firmware boot-device variable. @@ -121,8 +122,7 @@ if test $debug = yes; then fi # Initialize these directories here, since ROOTDIR was initialized. -bootdir=${rootdir}/boot -grubdir=${bootdir}/`echo grub | sed ${transform}` +grubdir=${rootdir}${defaultbootdir} device_map=${grubdir}/device.map set $grub_mkimage dummy @@ -136,7 +136,7 @@ fi # 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 === modified file 'util/powerpc/ieee1275/grub-mkrescue.in' --- util/powerpc/ieee1275/grub-mkrescue.in 2010-06-03 20:34:49 +0000 +++ util/powerpc/ieee1275/grub-mkrescue.in 2010-06-03 21:36:19 +0000 @@ -28,7 +28,8 @@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ target_cpu=@target_cpu@ platform=@platform@ -pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}` +pkglibrootdir=@pkglibrootdir@ +pkglibdir=${pkglibrootdir}/${target_cpu}-${platform} self=`basename $0` === modified file 'util/update-grub_lib.in' --- util/update-grub_lib.in 2008-11-20 19:22:20 +0000 +++ util/update-grub_lib.in 2010-06-03 21:36:19 +0000 @@ -16,8 +16,8 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ -libdir=@libdir@ +pkglibrootdir=@pkglibrootdir@ -. ${libdir}/grub/grub-mkconfig_lib +. ${pkglibrootdir}/grub-mkconfig_lib grub_warn "update-grub_lib is deprecated, use grub-mkconfig_lib instead" --------------060100030607020307000504 Content-Type: text/x-patch; name="file-name-transformations_3.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="file-name-transformations_3.diff" === modified file 'ChangeLog' --- ChangeLog 2010-06-03 21:36:19 +0000 +++ ChangeLog 2010-06-03 22:02:54 +0000 @@ -1,5 +1,14 @@ 2010-06-03 GrĂ©goire Sutre + * util/grub-install.in: Use -x instead of -f when checking for grub + programs, and factorize these checks by a for loop. + * util/grub-mkconfig.in: Likewise. + * util/grub-mkrescue.in: Likewise. + * util/i386/efi/grub-install.in: Likewise. + * util/ieee1275/grub-install.in: Likewise. + +2010-06-03 GrĂ©goire Sutre + * configure.ac: Set and subsitute pkgdatadir, pkglibrootdir and defaultbootdir. * Makefile.in: Use the above autoconfigured variables. === modified file 'util/grub-install.in' --- util/grub-install.in 2010-06-03 21:36:19 +0000 +++ util/grub-install.in 2010-06-03 22:02:54 +0000 @@ -177,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 @@ -185,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 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 === modified file 'util/grub-mkconfig.in' --- util/grub-mkconfig.in 2010-06-03 21:36:19 +0000 +++ util/grub-mkconfig.in 2010-06-03 22:02:54 +0000 @@ -87,21 +87,16 @@ if $next_grub_cfg; then exit 1 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 +# 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=${defaultbootdir} === modified file 'util/grub-mkrescue.in' --- util/grub-mkrescue.in 2010-06-03 21:36:19 +0000 +++ util/grub-mkrescue.in 2010-06-03 22:02:54 +0000 @@ -103,7 +103,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/i386/efi/grub-install.in' --- util/i386/efi/grub-install.in 2010-06-03 21:36:19 +0000 +++ util/i386/efi/grub-install.in 2010-06-03 22:02:54 +0000 @@ -117,21 +117,15 @@ 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 === modified file 'util/ieee1275/grub-install.in' --- util/ieee1275/grub-install.in 2010-06-03 21:36:19 +0000 +++ util/ieee1275/grub-install.in 2010-06-03 22:02:54 +0000 @@ -125,13 +125,16 @@ fi grubdir=${rootdir}${defaultbootdir} device_map=${grubdir}/device.map -set $grub_mkimage dummy -if test -f "$1"; then - : -else - echo "$1: Not found." 1>&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}` @@ -195,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 @@ -203,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 --------------060100030607020307000504 Content-Type: text/x-patch; name="file-name-transformations_4.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="file-name-transformations_4.diff" === modified file 'ChangeLog' --- ChangeLog 2010-06-03 22:02:54 +0000 +++ ChangeLog 2010-06-03 22:06:21 +0000 @@ -1,5 +1,9 @@ 2010-06-03 GrĂ©goire Sutre + * configure.ac: Add `.' to the directories searched for unifont. + +2010-06-03 GrĂ©goire Sutre + * util/grub-install.in: Use -x instead of -f when checking for grub programs, and factorize these checks by a for loop. * util/grub-mkconfig.in: Likewise. === modified file 'configure.ac' --- configure.ac 2010-06-03 21:36:19 +0000 +++ configure.ac 2010-06-03 22:06:21 +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 --------------060100030607020307000504 Content-Type: text/x-patch; name="file-name-transformations_5.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="file-name-transformations_5.diff" === modified file 'ChangeLog' --- ChangeLog 2010-06-03 22:06:21 +0000 +++ ChangeLog 2010-06-03 22:15:52 +0000 @@ -1,5 +1,12 @@ 2010-06-03 GrĂ©goire Sutre + * Makefile.in (install-local): Use installed files on help2man command + line to account for file name transformations. Apply transformations + to generated info file. + (uninstall): Apply transformations to generated info file. + +2010-06-03 GrĂ©goire Sutre + * configure.ac: Add `.' to the directories searched for unifont. 2010-06-03 GrĂ©goire Sutre === modified file 'Makefile.in' --- Makefile.in 2010-06-03 21:36:19 +0000 +++ Makefile.in 2010-06-03 22:15:52 +0000 @@ -324,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 \ @@ -374,8 +374,8 @@ install-local: all @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" || :; \ @@ -417,7 +417,7 @@ uninstall: 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 \ --------------060100030607020307000504 Content-Type: text/x-patch; name="file-name-transformations_6.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="file-name-transformations_6.diff" === modified file 'ChangeLog' --- ChangeLog 2010-06-03 22:15:52 +0000 +++ ChangeLog 2010-06-03 22:23:22 +0000 @@ -1,5 +1,12 @@ 2010-06-03 GrĂ©goire Sutre + * Makefile.in (install-local): Apply file name transformations to + generated locale (*.mo) files. + * util/grub-install.in: Likewise. + * util/i386/efi/grub-install.in: Likewise. + +2010-06-03 GrĂ©goire Sutre + * Makefile.in (install-local): Use installed files on help2man command line to account for file name transformations. Apply transformations to generated info file. === modified file 'Makefile.in' --- Makefile.in 2010-06-03 22:15:52 +0000 +++ Makefile.in 2010-06-03 22:23:22 +0000 @@ -365,10 +365,11 @@ install-local: all 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)'; \ === modified file 'util/grub-install.in' --- util/grub-install.in 2010-06-03 22:02:54 +0000 +++ util/grub-install.in 2010-06-03 22:23:22 +0000 @@ -24,6 +24,7 @@ exec_prefix=@exec_prefix@ sbindir=@sbindir@ bindir=@bindir@ libdir=@libdir@ +PACKAGE=@PACKAGE@ PACKAGE_NAME=@PACKAGE_NAME@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ @@ -42,6 +43,7 @@ grub_mkimage=${bindir}/`echo grub-mkimag 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= modules= @@ -241,8 +243,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 === modified file 'util/i386/efi/grub-install.in' --- util/i386/efi/grub-install.in 2010-06-03 22:02:54 +0000 +++ util/i386/efi/grub-install.in 2010-06-03 22:23:22 +0000 @@ -24,6 +24,7 @@ exec_prefix=@exec_prefix@ sbindir=@sbindir@ bindir=@bindir@ libdir=@libdir@ +PACKAGE=@PACKAGE@ PACKAGE_NAME=@PACKAGE_NAME@ PACKAGE_TARNAME=@PACKAGE_TARNAME@ PACKAGE_VERSION=@PACKAGE_VERSION@ @@ -40,6 +41,7 @@ grub_mkimage=${bindir}/`echo grub-mkimag 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= modules= @@ -166,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 --------------060100030607020307000504 Content-Type: text/x-patch; name="file-name-transformations_7.diff" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="file-name-transformations_7.diff" === modified file 'ChangeLog' --- ChangeLog 2010-06-03 22:23:22 +0000 +++ ChangeLog 2010-06-03 22:35:21 +0000 @@ -1,5 +1,13 @@ 2010-06-03 GrĂ©goire Sutre + * util/grub-install.in: Remove the dependency on grub-mkconfig_lib. + * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix typo + in partmap module loading. + * util/grub.d/00_header.in: Check for non-empty LANG in locale support. + * util/grub.d/10_netbsd.in: Added a comment. + +2010-06-03 GrĂ©goire Sutre + * Makefile.in (install-local): Apply file name transformations to generated locale (*.mo) files. * util/grub-install.in: Likewise. === modified file 'util/grub-install.in' --- util/grub-install.in 2010-06-03 22:23:22 +0000 +++ util/grub-install.in 2010-06-03 22:35:21 +0000 @@ -41,6 +41,7 @@ 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}` @@ -154,9 +155,6 @@ for option in "$@"; do esac done -# for make_system_path_relative_to_its_root() -. ${pkglibrootdir}/grub-mkconfig_lib - if test "x$install_device" = x && test "${target_cpu}-${platform}" != "mips-yeeloong"; then echo "install_device not specified." 1>&2 usage @@ -187,7 +185,7 @@ if [ "${target_cpu}-${platform}" = "i386 fi fi -for prog in mkimage mkdevicemap probe; do +for prog in mkimage mkdevicemap mkrelpath probe; do eval set \$grub_$prog dummy if test -x "$1"; then : @@ -278,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 === modified file 'util/grub-mkconfig_lib.in' --- util/grub-mkconfig_lib.in 2010-06-03 21:36:19 +0000 +++ util/grub-mkconfig_lib.in 2010-06-03 22:35:21 +0000 @@ -114,7 +114,7 @@ prepare_grub_to_access_device () partmap="`${grub_probe} --device ${device} --target=partmap`" for module in ${partmap} ; do - echo "insmod ${module}" + echo "insmod part_${module}" done fs="`${grub_probe} --device ${device} --target=fs`" === modified file 'util/grub.d/00_header.in' --- util/grub.d/00_header.in 2010-06-03 21:36:19 +0000 +++ util/grub.d/00_header.in 2010-06-03 22:35:21 +0000 @@ -195,7 +195,7 @@ EOF esac # Gettext variables and module -if [ "x${LANG}" != "xC" ] && [ -d "${locale_dir}" ] ; 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_netbsd.in' --- util/grub.d/10_netbsd.in 2010-06-03 21:36:19 +0000 +++ util/grub.d/10_netbsd.in 2010-06-03 22:35:21 +0000 @@ -62,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 --------------060100030607020307000504--