preseeded value of "locales/locales_to_be_generated"
andrew bezella
abezella at archive.org
Mon Jul 11 04:39:06 CEST 2016
hi -
i've been having some issues w/locales on a xenial system, installed
from a jessie nfsroot with fai 5.1. my initial problem was that i'd not
been including the 'language-pack-en' but it still doesn't seem to be
working as expected.
i'd logged https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1598326
but at one point it appeared that might be a red herring.
the locales excerpts from debconf.data ([2]) are:
locales locales/default_environment_locale select None
locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8
it's unclear to me why the run of `/var/lib/dpkg/info/locales.config
reconfigure 2.23-0ubuntu3` behaves as it does. beyond the above
"Substitution failed" error, while looking at the debug output i noticed
other confusing bits. e.g., after finding $target/etc/locale.gen empty,
the locales.config script (via GEN_LOCALES and SELECTED_LOCALES
variables) appears to *un*set locales/locales_to_be_generated:
+ SELECTED_LOCALES=
+ db_set locales/locales_to_be_generated
+ _db_cmd SET locales/locales_to_be_generated
+ _db_internal_IFS=
+ IFS=
+ printf %s\n SET locales/locales_to_be_generated
+ IFS=
+ IFS=
read -r _db_internal_line
debconf (developer): <-- SET locales/locales_to_be_generated
debconf (developer): --> 0 value set
+ RET=value set
+ return 0
similarly, it seems that the script tries to substitute the
DEFAULT_LOCALES that it finds (from on-disk files) into
locales/default_environment_locale (cf. the debconf error above) without
regard to its existing value.
while investigating i did also find this unexpected bit during fai's
debconf task (full logs[1]):
read -r _db_internal_line
debconf (developer): <-- SUBST locales/default_environment_locale locales en_US.UTF-8
debconf (developer): --> 100 Substitution failed
+ RET=100 Substitution failed
+ return 100
but i'm guessing some of my confusion there may have to do with:
DEBCONF_DB_OVERRIDE="File{$tmpdb readonly:true}"
and its interaction with `dpkg-reconfigure`
because despite all the above, the resultant system ends up with the
desired debconf settings:
locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8
locales locales/default_environment_locale select None
*however*, the on-disk /etc/locale.gen only has commented lines and
while /etc/default/locale is empty when i set "None", it is also empty
when i set locales/default_environment_locale to en_US.UTF-8 via fai's
debconf.
then there's a bit that leads me back to that bug. on the live system,
attempting to noninteractively reconfigure locales again *un*sets
locales/locales_to_be_generated (full output [3]):
~# debconf-show locales
* locales/locales_to_be_generated: en_US.UTF-8 UTF-8
* locales/default_environment_locale: en_US.UTF-8
~# egrep -v ^\# /etc/locale.gen
[intentionally blank lines]
~# cat /etc/default/locale
# File generated by update-locale
~# DEBIAN_FRONTEND=noninteractive /usr/sbin/dpkg-reconfigure locales
Generating locales (this might take a while)...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8... done
en_GB.UTF-8... done
en_HK.UTF-8... done
en_IE.UTF-8... done
en_IN.UTF-8... done
en_NG.UTF-8... done
en_NZ.UTF-8... done
en_PH.UTF-8... done
en_SG.UTF-8... done
en_US.UTF-8... done
en_ZA.UTF-8... done
en_ZM.UTF-8... done
en_ZW.UTF-8... done
Generation complete.
~# debconf-show locales
* locales/locales_to_be_generated:
* locales/default_environment_locale: en_US.UTF-8
~# egrep -v ^\# /etc/locale.gen
~# cat /etc/default/locale
# File generated by update-locale
LANG=en_US.UTF-8
so at this point i believe i'm back to it being a bug of some sort in
locales's dpkg wrappings. notably, when `/usr/sbin/dpkg-reconfigure
locales` is run *interactively* in place of the noninteractive call,
"en_US.UTF-8 UTF-8" is *not* preselected; selecting it and completing
the reconfigure results in what i would expect (full output [4]):
~# debconf-show locales
* locales/locales_to_be_generated: en_US.UTF-8 UTF-8
* locales/default_environment_locale: en_US.UTF-8
~# egrep -v ^\# /etc/locale.gen
~# cat /etc/default/locale
# File generated by update-locale
~# /usr/sbin/dpkg-reconfigure locales
Generating locales (this might take a while)...
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8... done
en_GB.UTF-8... done
en_HK.UTF-8... done
en_IE.UTF-8... done
en_IN.UTF-8... done
en_NG.UTF-8... done
en_NZ.UTF-8... done
en_PH.UTF-8... done
en_SG.UTF-8... done
en_US.UTF-8... done
en_ZA.UTF-8... done
en_ZM.UTF-8... done
en_ZW.UTF-8... done
Generation complete.
~# debconf-show locales
* locales/default_environment_locale: en_US.UTF-8
* locales/locales_to_be_generated: en_US.UTF-8 UTF-8
~# egrep -v ^\# /etc/locale.gen
en_US.UTF-8 UTF-8
~# cat /etc/default/locale
# File generated by update-locale
LANG=en_US.UTF-8
if anyone has feedback/advice/thoughts, please lmk. otherwise i think
i'll be adding this to that bug report.
tia!
andy
1 https://www.us.archive.org/~abezella/tmp/fai-debconf+debug.log
2 https://catalogd.archive.org/~abezella/tmp/debconf.data.txt
3 https://catalogd.archive.org/~abezella/tmp/noninteractive-dpkg-reconfigure+debug.log
4 https://catalogd.archive.org/~abezella/tmp/interactive-dpkg-reconfigure+debug.log
--
andrew bezella <abezella at archive.org>
Internet Archive
More information about the linux-fai
mailing list