From 899f59e4357a2a3bfb5a2e58ad83700f16d347a7 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 28 Dec 2012 06:57:17 +0000 Subject: [PATCH 071/482] Apply program name transformations at build-time rather than at run-time. Fixes Debian bug #696465. * acinclude.m4 (grub_TRANSFORM): New macro. * configure.ac: Create output variables with transformed names for most programs. * util/bash-completion.d/grub-completion.bash.in: Use pre-transformed variables for program names. * util/grub-install.in: Likewise. * util/grub-kbdcomp.in: Likewise. * util/grub-mkconfig.in: Likewise. * util/grub-mkconfig_lib.in: Likewise. * util/grub-mknetdir.in: Likewise. * util/grub-mkrescue.in: Likewise. * util/grub-mkstandalone.in: Likewise. * util/grub-reboot.in: Likewise. * util/grub-set-default.in: Likewise. * util/powerpc/ieee1275/grub-mkrescue.in: Likewise. * tests/util/grub-shell-tester.in: Remove unused assignment. * tests/util/grub-shell.in: Likewise. * util/grub.d/00_header.in: Likewise. --- ChangeLog | 24 ++++++++++++++++++++++++ acinclude.m4 | 6 ++++++ configure.ac | 16 ++++++++++++++++ tests/util/grub-shell-tester.in | 2 -- tests/util/grub-shell.in | 2 -- util/bash-completion.d/grub-completion.bash.in | 24 ++++++++++++------------ util/grub-install.in | 14 ++++++-------- util/grub-kbdcomp.in | 4 +--- util/grub-mkconfig.in | 7 +++---- util/grub-mkconfig_lib.in | 6 ++---- util/grub-mknetdir.in | 4 +--- util/grub-mkrescue.in | 4 +--- util/grub-mkstandalone.in | 4 +--- util/grub-reboot.in | 4 +--- util/grub-set-default.in | 4 +--- util/grub.d/00_header.in | 2 -- util/powerpc/ieee1275/grub-mkrescue.in | 4 +--- 17 files changed, 76 insertions(+), 55 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0f04f5c..b8bd215 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,29 @@ 2012-12-28 Colin Watson + Apply program name transformations at build-time rather than at + run-time. Fixes Debian bug #696465. + + * acinclude.m4 (grub_TRANSFORM): New macro. + * configure.ac: Create output variables with transformed names for + most programs. + * util/bash-completion.d/grub-completion.bash.in: Use + pre-transformed variables for program names. + * util/grub-install.in: Likewise. + * util/grub-kbdcomp.in: Likewise. + * util/grub-mkconfig.in: Likewise. + * util/grub-mkconfig_lib.in: Likewise. + * util/grub-mknetdir.in: Likewise. + * util/grub-mkrescue.in: Likewise. + * util/grub-mkstandalone.in: Likewise. + * util/grub-reboot.in: Likewise. + * util/grub-set-default.in: Likewise. + * util/powerpc/ieee1275/grub-mkrescue.in: Likewise. + * tests/util/grub-shell-tester.in: Remove unused assignment. + * tests/util/grub-shell.in: Likewise. + * util/grub.d/00_header.in: Likewise. + +2012-12-28 Colin Watson + Backport gnulib fixes for C11. Fixes Savannah bug #37738. * grub-core/gnulib/stdio.in.h (gets): Warn on use only if diff --git a/acinclude.m4 b/acinclude.m4 index 0eb2e2a..49a1a75 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -452,3 +452,9 @@ else AC_MSG_RESULT([no]) [fi] ]) + +dnl Create an output variable with the transformed name of a GRUB utility +dnl program. +AC_DEFUN([grub_TRANSFORM],[dnl +AC_SUBST(AS_TR_SH([$1]), [`AS_ECHO([$1]) | sed "$program_transform_name"`])dnl +]) diff --git a/configure.ac b/configure.ac index ea3830a..a41f117 100644 --- a/configure.ac +++ b/configure.ac @@ -50,6 +50,22 @@ AC_CONFIG_HEADER([config-util.h]) # Program name transformations AC_ARG_PROGRAM +grub_TRANSFORM([grub-bios-setup]) +grub_TRANSFORM([grub-editenv]) +grub_TRANSFORM([grub-install]) +grub_TRANSFORM([grub-mkconfig]) +grub_TRANSFORM([grub-mkfont]) +grub_TRANSFORM([grub-mkimage]) +grub_TRANSFORM([grub-mklayout]) +grub_TRANSFORM([grub-mkpasswd-pbkdf2]) +grub_TRANSFORM([grub-mkrelpath]) +grub_TRANSFORM([grub-mkrescue]) +grub_TRANSFORM([grub-probe]) +grub_TRANSFORM([grub-reboot]) +grub_TRANSFORM([grub-script-check]) +grub_TRANSFORM([grub-set-default]) +grub_TRANSFORM([grub-setup]) +grub_TRANSFORM([grub-sparc64-setup]) # Optimization flag. Allow user to override. if test "x$TARGET_CFLAGS" = x; then diff --git a/tests/util/grub-shell-tester.in b/tests/util/grub-shell-tester.in index 80c8830..5adce0a 100644 --- a/tests/util/grub-shell-tester.in +++ b/tests/util/grub-shell-tester.in @@ -18,8 +18,6 @@ set -e # along with GRUB. If not, see . # Initialize some variables. -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in index f4fa23a..04e64da 100644 --- a/tests/util/grub-shell.in +++ b/tests/util/grub-shell.in @@ -18,8 +18,6 @@ set -e # along with GRUB. If not, see . # Initialize some variables. -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" diff --git a/util/bash-completion.d/grub-completion.bash.in b/util/bash-completion.d/grub-completion.bash.in index 64d49fe..5f4b249 100644 --- a/util/bash-completion.d/grub-completion.bash.in +++ b/util/bash-completion.d/grub-completion.bash.in @@ -165,12 +165,12 @@ _grub_set_entry () { fi } -__grub_set_default_program=$( echo grub-set-default | sed "@program_transform_name@" ) +__grub_set_default_program="@grub_set_default@" have ${__grub_set_default_program} && \ complete -F _grub_set_entry -o filenames ${__grub_set_default_program} unset __grub_set_default_program -__grub_reboot_program=$( echo grub-reboot | sed "@program_transform_name@" ) +__grub_reboot_program="@grub_reboot@" have ${__grub_reboot_program} && \ complete -F _grub_set_entry -o filenames ${__grub_reboot_program} unset __grub_reboot_program @@ -197,7 +197,7 @@ _grub_editenv () { create list set unset" } -__grub_editenv_program=$( echo grub-editenv | sed "@program_transform_name@" ) +__grub_editenv_program="@grub_editenv@" have ${__grub_editenv_program} && \ complete -F _grub_editenv -o filenames ${__grub_editenv_program} unset __grub_editenv_program @@ -218,7 +218,7 @@ _grub_mkconfig () { _filedir fi } -__grub_mkconfig_program=$( echo grub-mkconfig | sed "@program_transform_name@" ) +__grub_mkconfig_program="@grub_mkconfig@" have ${__grub_mkconfig_program} && \ complete -F _grub_mkconfig -o filenames ${__grub_mkconfig_program} unset __grub_mkconfig_program @@ -252,7 +252,7 @@ _grub_setup () { _filedir fi } -__grub_setup_program=$( echo grub-setup | sed "@program_transform_name@" ) +__grub_setup_program="@grub_setup@" have ${__grub_setup_program} && \ complete -F _grub_setup -o filenames ${__grub_setup_program} unset __grub_setup_program @@ -298,7 +298,7 @@ _grub_install () { _filedir fi } -__grub_install_program=$( echo grub-install | sed "@program_transform_name@" ) +__grub_install_program="@grub_install@" have ${__grub_install_program} && \ complete -F _grub_install -o filenames ${__grub_install_program} unset __grub_install_program @@ -320,7 +320,7 @@ _grub_mkfont () { _filedir fi } -__grub_mkfont_program=$( echo grub-mkfont | sed "@program_transform_name@" ) +__grub_mkfont_program="@grub_mkfont@" have ${__grub_mkfont_program} && \ complete -F _grub_mkfont -o filenames ${__grub_mkfont_program} unset __grub_mkfont_program @@ -351,7 +351,7 @@ _grub_mkrescue () { _filedir fi } -__grub_mkrescue_program=$( echo grub-mkrescue | sed "@program_transform_name@" ) +__grub_mkrescue_program="@grub_mkrescue@" have ${__grub_mkrescue_program} && \ complete -F _grub_mkrescue -o filenames ${__grub_mkrescue_program} unset __grub_mkrescue_program @@ -393,7 +393,7 @@ _grub_mkimage () { _filedir fi } -__grub_mkimage_program=$( echo grub-mkimage | sed "@program_transform_name@" ) +__grub_mkimage_program="@grub_mkimage@" have ${__grub_mkimage_program} && \ complete -F _grub_mkimage -o filenames ${__grub_mkimage_program} unset __grub_mkimage_program @@ -415,7 +415,7 @@ _grub_mkpasswd_pbkdf2 () { _filedir fi } -__grub_mkpasswd_pbkdf2_program=$( echo grub-mkpasswd-pbkdf2 | sed "@program_transform_name@" ) +__grub_mkpasswd_pbkdf2_program="@grub_mkpasswd_pbkdf2@" have ${__grub_mkpasswd_pbkdf2_program} && \ complete -F _grub_mkpasswd_pbkdf2 -o filenames ${__grub_mkpasswd_pbkdf2_program} unset __grub_mkpasswd_pbkdf2_program @@ -453,7 +453,7 @@ _grub_probe () { _filedir fi } -__grub_probe_program=$( echo grub-probe | sed "@program_transform_name@" ) +__grub_probe_program="@grub_probe@" have ${__grub_probe_program} && \ complete -F _grub_probe -o filenames ${__grub_probe_program} unset __grub_probe_program @@ -475,7 +475,7 @@ _grub_script_check () { _filedir fi } -__grub_script_check_program=$( echo grub-script-check | sed "@program_transform_name@" ) +__grub_script_check_program="@grub_script_check@" have ${__grub_script_check_program} && \ complete -F _grub_script_check -o filenames ${__grub_script_check_program} diff --git a/util/grub-install.in b/util/grub-install.in index 9dc4e0b..218bbd9 100644 --- a/util/grub-install.in +++ b/util/grub-install.in @@ -17,8 +17,6 @@ # along with GRUB. If not, see . # Initialize some variables. -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" @@ -44,10 +42,10 @@ localedir="@datadir@/locale" self="`basename $0`" -grub_mkimage="${bindir}/`echo grub-mkimage | sed ${transform}`" -grub_probe="${sbindir}/`echo grub-probe | sed ${transform}`" -grub_editenv="${bindir}/`echo grub-editenv | sed ${transform}`" -grub_mkrelpath="${bindir}/`echo grub-mkrelpath | sed ${transform}`" +grub_mkimage="${bindir}/@grub_mkimage@" +grub_probe="${sbindir}/@grub_probe@" +grub_editenv="${bindir}/@grub_editenv@" +grub_mkrelpath="${bindir}/@grub_mkrelpath@" rootdir= bootdir= grubdir="`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'`" @@ -347,11 +345,11 @@ else fi if test "x$grub_setup" = x && [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-pc" ]; then - grub_setup="${sbindir}/`echo grub-bios-setup | sed ${transform}`" + grub_setup="${sbindir}/@grub_bios_setup@" fi if test "x$grub_setup" = x && [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "sparc64-ieee1275" ]; then - grub_setup="${sbindir}/`echo grub-sparc64-setup | sed ${transform}`" + grub_setup="${sbindir}/@grub_sparc64_setup@" fi if test "x$install_device" = x && ([ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-pc" ] \ diff --git a/util/grub-kbdcomp.in b/util/grub-kbdcomp.in index 29f0456..715c483 100644 --- a/util/grub-kbdcomp.in +++ b/util/grub-kbdcomp.in @@ -1,7 +1,5 @@ #!/bin/sh -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" bindir="@bindir@" @@ -11,7 +9,7 @@ if [ "x$pkgdatadir" = x ]; then pkgdatadir="${datadir}/@PACKAGE@" fi -grub_mklayout="${bindir}/`echo grub-mklayout | sed ${transform}`" +grub_mklayout="${bindir}/@grub_mklayout@" ckbcomp_options="" diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in index 516be86..4263367 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -17,7 +17,6 @@ set -e # You should have received a copy of the GNU General Public License # along with GRUB. If not, see . -transform="@program_transform_name@" prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" @@ -39,9 +38,9 @@ grub_mkconfig_dir="${sysconfdir}"/grub.d self=`basename $0` -grub_probe="${sbindir}/`echo grub-probe | sed "${transform}"`" -grub_editenv="${bindir}/`echo grub-editenv | sed "${transform}"`" -grub_script_check="${bindir}/`echo grub-script-check | sed "${transform}"`" +grub_probe="${sbindir}/@grub_probe@" +grub_editenv="${bindir}/@grub_editenv@" +grub_script_check="${bindir}/@grub_script_check@" export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR="@localedir@" diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in index 3574839..e560dd7 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -14,8 +14,6 @@ # You should have received a copy of the GNU General Public License # along with GRUB. If not, see . -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" @@ -25,10 +23,10 @@ sbindir="@sbindir@" pkgdatadir="${datadir}/@PACKAGE@" if test "x$grub_probe" = x; then - grub_probe="${sbindir}/`echo grub-probe | sed "${transform}"`" + grub_probe="${sbindir}/@grub_probe@" fi if test "x$grub_mkrelpath" = x; then - grub_mkrelpath="${bindir}/`echo grub-mkrelpath | sed "${transform}"`" + grub_mkrelpath="${bindir}/@grub_mkrelpath@" fi if which gettext >/dev/null 2>/dev/null; then diff --git a/util/grub-mknetdir.in b/util/grub-mknetdir.in index d1ad763..e235af3 100644 --- a/util/grub-mknetdir.in +++ b/util/grub-mknetdir.in @@ -17,8 +17,6 @@ # along with GRUB. If not, see . # Initialize some variables. -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" @@ -36,7 +34,7 @@ fi self=`basename $0` -grub_mkimage="${bindir}/`echo grub-mkimage | sed ${transform}`" +grub_mkimage="${bindir}/@grub_mkimage@" rootdir=/srv/tftp modules= diff --git a/util/grub-mkrescue.in b/util/grub-mkrescue.in index f71099e..d279a9d 100644 --- a/util/grub-mkrescue.in +++ b/util/grub-mkrescue.in @@ -19,8 +19,6 @@ set -e # Initialize some variables. -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" @@ -49,7 +47,7 @@ efi64_dir="${libdir}/@PACKAGE@/x86_64-efi" ia64_dir="${libdir}/@PACKAGE@/ia64-efi" rom_directory= override_dir= -grub_mkimage="${bindir}/`echo grub-mkimage | sed ${transform}`" +grub_mkimage="${bindir}/@grub_mkimage@" xorriso=xorriso diff --git a/util/grub-mkstandalone.in b/util/grub-mkstandalone.in index 87a3b42..78b83e0 100644 --- a/util/grub-mkstandalone.in +++ b/util/grub-mkstandalone.in @@ -19,8 +19,6 @@ set -e # Initialize some variables. -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" @@ -40,7 +38,7 @@ self=`basename $0` source_directory= compression=auto format= -grub_mkimage="${bindir}/`echo grub-mkimage | sed ${transform}`" +grub_mkimage="${bindir}/@grub_mkimage@" source= export TEXTDOMAIN=@PACKAGE@ diff --git a/util/grub-reboot.in b/util/grub-reboot.in index 93dbe6c..7516a03 100644 --- a/util/grub-reboot.in +++ b/util/grub-reboot.in @@ -17,8 +17,6 @@ # along with GRUB. If not, see . # Initialize some variables. -transform="@program_transform_name@" - prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ @@ -32,7 +30,7 @@ fi self=`basename $0` -grub_editenv=${bindir}/`echo grub-editenv | sed ${transform}` +grub_editenv=${bindir}/@grub_editenv@ rootdir= bootdir= grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` diff --git a/util/grub-set-default.in b/util/grub-set-default.in index 3d890be..443e56f 100644 --- a/util/grub-set-default.in +++ b/util/grub-set-default.in @@ -17,8 +17,6 @@ # along with GRUB. If not, see . # Initialize some variables. -transform="@program_transform_name@" - prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ @@ -32,7 +30,7 @@ fi self=`basename $0` -grub_editenv=${bindir}/`echo grub-editenv | sed ${transform}` +grub_editenv=${bindir}/@grub_editenv@ rootdir= bootdir= grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in index 765bfdc..3da5d12 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -17,8 +17,6 @@ set -e # You should have received a copy of the GNU General Public License # along with GRUB. If not, see . -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" diff --git a/util/powerpc/ieee1275/grub-mkrescue.in b/util/powerpc/ieee1275/grub-mkrescue.in index b3b88f0..2615cab 100644 --- a/util/powerpc/ieee1275/grub-mkrescue.in +++ b/util/powerpc/ieee1275/grub-mkrescue.in @@ -18,8 +18,6 @@ set -e # along with GRUB. If not, see . # Initialize some variables. -transform="@program_transform_name@" - prefix="@prefix@" exec_prefix="@exec_prefix@" bindir="@bindir@" @@ -36,7 +34,7 @@ fi self=`basename $0` -grub_mkimage="${bindir}/`echo grub-mkimage | sed ${transform}`" +grub_mkimage="${bindir}/@grub_mkimage@" export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR="@localedir@" -- 1.8.2.1