tags 281538 + patch thanks I would like to propose the attached patch.
I have tested it during another s390 installation by manually running the script in various variants: - with and without locales installed - for locale C - for locales en_US, [EMAIL PROTECTED] Christian: could you have a critical look at the patch? -- Cheers, FJP
--- prebaseconfig 2004-10-31 15:23:19.000000000 +0100 +++ prebaseconfig.new 2004-11-17 17:52:12.000000000 +0100 @@ -1,8 +1,14 @@ -#! /bin/sh -e +#! /bin/sh + +set -e . /usr/share/debconf/confmodule -LOG=/var/log/messages +MSGLOG=/var/log/messages + +log() { + logger -t prebaseconfig "$@" +} modify_cyrconfig() { if [ "$2" ]; then @@ -61,43 +67,63 @@ ;; esac -# Pass the language/locale information needed by base-config into -# /target/root/dbootstrap_settings. -# This exists only to support installing woody (skolelinux, etc) +# Determine the locale and language list set for the installation db_get debian-installer/locale LOCALE="$RET" +# Set locale to C if it has not yet been set +# This can happen during e.g. s390 installs where localechooser is not run +[ -z "$LOCALE" ] && LOCALE="C" + db_get debian-installer/language LANGLIST="$RET" +# Pass the language/locale information needed by base-config into +# /target/root/dbootstrap_settings. +# This exists only to support installing woody (skolelinux, etc) + if [ ! -d /target/root ] ; then if mkdir /target/root ; then : else - echo "error: unable to create /target/root" + log "Error: unable to create /target/root" fi fi -( - echo "# Inserted by languagechooser." - echo "LANG_INST=\"$LOCALE\"" - echo "LANGUAGE_INST=\"$LANGLIST\"" -) >> /target/root/dbootstrap_settings +DESTFILE="/target/root/dbootstrap_settings" +echo "# Inserted by languagechooser." > $DESTFILE +echo "LANG_INST=\"$LOCALE\"" >> $DESTFILE +if [ -n "$LANGLIST" ] ; then + echo "LANGUAGE_INST=\"$LANGLIST\"" >> $DESTFILE +fi # Set global locale and language, and make sure the glibc locale is # generated. This task is also done in termwrap and base-config, and # should probably be removed from there when this part work. -( - echo "LANG=\"$LOCALE\"" - echo "LANGUAGE=\"$LANGLIST\"" -) >> /target/etc/environment -# If the locale isn't already valid, append it to locale.gen -if chroot /target/ /usr/sbin/validlocale $LOCALE \ - >> /target/etc/locale.gen 2>> $LOG ; then - : # Nothing to do -else - # New locale added to locale.gen, generate it - chroot /target /usr/sbin/locale-gen >> $LOG 2>&1 +DESTFILE="/target/etc/environment" +echo "LANG=\"$LOCALE\"" > $DESTFILE +if [ -n "$LANGLIST" ] ; then + echo "LANGUAGE=\"$LANGLIST\"" >> $DESTFILE fi +# If the locale isn't already valid, append it to /etc/locale.gen +set +e +GEN_LOCALE=$(chroot /target/ /usr/sbin/validlocale "$LOCALE" 2>> $MSGLOG) +RESULT="$?" +set -e + +case "$RESULT" in + 0) + : # Nothing to do + ;; + 1) + # Add new locale to locale.gen, generate it + echo $GEN_LOCALE >> /target/etc/locale.gen + chroot /target /usr/sbin/locale-gen >> $MSGLOG 2>&1 + ;; + *) + log "Error running validlocale \"$LOCALE\": $RESULT" + exit 1 + ;; +esac