On Fri, Apr 25, 2008 at 10:50:29AM +0200, Michael Schutte wrote: > > Uh, that's bad. I'll do the obvious thing and create an appropriate > symlink.
Hardcoding paths of executables is almost always evil. Please take a look at the attached patch (I haven't tested it). Anton Zinoviev
--- install-keymap 2008-04-25 22:00:50.000000000 +0300 +++ install-keymap.new 2008-04-25 22:08:57.000000000 +0300 @@ -11,9 +11,23 @@ TEXTDOMAIN=install-keymap export TEXTDOMAIN -if [ -x /usr/bin/gettext ] +# The same as /usr/bin/which - in order to make "which" available before +# /usr is mounted +which () { + local IFS + IFS=: + for i in $PATH; do + if [ -x "$i/$1" ]; then + echo "$i/$1" + return 0 + fi + done + return 1 +} + +if which gettext >/dev/null then - GETTEXT="/usr/bin/gettext -e -s" + GETTEXT="gettext -e -s" else GETTEXT="echo -e" fi @@ -59,7 +73,7 @@ fi } -if [ ! -x /bin/loadkeys ] +if ! which loadkeys >/dev/null then $GETTEXT >&2 "Warning: no console utilities installed yet.\n deferring keymap setting until either console-tools or kbd is installed." exit 0 @@ -70,7 +84,7 @@ { # save keymap TMP=`tempfile` - if ! /usr/bin/dumpkeys >${TMP}; then + if ! dumpkeys >${TMP}; then check_if_serial_console $GETTEXT >&2 "Failed to dump keymap!" $GETTEXT >&2 "This might be because your console cannot be opened. Perhaps you don't have\na video card, are connected via the serial console or ssh.\nNot loading keymap!" @@ -79,7 +93,7 @@ exit 0 fi - if ! (eval "$*" && /bin/loadkeys -q ${TMP}); then + if ! (eval "$*" && loadkeys -q ${TMP}); then check_if_serial_console $GETTEXT >&2 "Failed to preserve keymap!" rm -f ${TMP} @@ -149,7 +163,7 @@ do_preserving_keymap "loadkeys -q $keymap ; dumpkeys | $TRANSLATOR | gzip -9n > $NEW" # if diff is available, use it to install only if needed - if [ -r $CONFFILE -a -x /usr/bin/diff ] + if [ -r $CONFFILE ] && which diff >/dev/null then if diff -q $CONFFILE $NEW >/dev/null then @@ -161,7 +175,7 @@ backup fi - if ! /bin/loadkeys -q $CONFFILE; then + if ! loadkeys -q $CONFFILE; then $GETTEXT >&2 "Failed to load keymap!" fi # Store md5sum. debconf code uses this to track keymaps it has installed,