i18n: move to vconfig.* and locale.* namespace

This commit is contained in:
Harald Hoyer 2010-10-29 13:39:20 +02:00
parent 9b79345001
commit ee6fa3240d
10 changed files with 136 additions and 76 deletions

View File

@ -2,5 +2,4 @@
# Dracut config file customized for RedHat/Fedora.
# i18n
keyboard_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP"
i18n_vars="/etc/sysconfig/i18n:SYSFONT,SYSFONTACM-CONTRANS,UNIMAP"
i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:FONT,FONTACM-FONT_MAP,FONT_UNIMAP"

View File

@ -6,5 +6,4 @@
#
# i18n
keyboard_vars="/etc/conf.d/keymaps:keymap-KEYMAP,extended_keymaps-EXT_KEYMAPS"
i18n_vars="/etc/conf.d/consolefont:consolefont-SYSFONT,consoletranslation-CONTRANS /etc/rc.conf:unicode-UNICODE"
i18n_vars="/etc/conf.d/keymaps:keymap-KEYMAP,extended_keymaps-EXT_KEYMAPS /etc/conf.d/consolefont:consolefont-FONT,consoletranslation-FONT_MAP /etc/rc.conf:unicode-UNICODE"

View File

@ -6,5 +6,4 @@
#
# i18n
keyboard_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS"
i18n_vars="/etc/conf.d/consolefont:CONSOLEFONT-SYSFONT,CONSOLETRANSLATION-CONTRANS /etc/rc.conf:UNICODE"
i18n_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS /etc/conf.d/consolefont:CONSOLEFONT-FONT,CONSOLETRANSLATION-FONT_MAP /etc/rc.conf:UNICODE"

View File

@ -1,5 +1,4 @@
i18n_vars="/etc/sysconfig/language:RC_LANG-LANG,RC_LC_ALL-LC_ALL /etc/sysconfig/console:CONSOLE_UNICODEMAP-UNIMAP,CONSOLE_FONT-SYSFONT,CONSOLE_SCREENMAP-CONTRANS"
keyboard_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP"
i18n_vars="/etc/sysconfig/language:RC_LANG-LANG,RC_LC_ALL-LC_ALL /etc/sysconfig/console:CONSOLE_UNICODEMAP-FONT_UNIMAP,CONSOLE_FONT-FONT,CONSOLE_SCREENMAP-FONT_MAP /etc/sysconfig/keyboard:KEYTABLE-KEYMAP"
omit_dracutmodules+=" selinux "
hostonly="yes"

View File

@ -177,74 +177,74 @@ This parameter can be specified multiple times.</para>
<variablelist>
<varlistentry>
<term>
<envar>KEYMAP=</envar>
<envar>voonsole.keymap=</envar>
<replaceable>&lt;keymap base file name&gt;</replaceable>
</term>
<listitem>
<para>keyboard translation table loaded by loadkeys; taken from keymaps directory; will be written to <filename>/etc/sysconfig/keyboard</filename> in the initramfs, e.g.: <programlisting>KEYMAP=de-latin1-nodeadkeys</programlisting></para>
<para>keyboard translation table loaded by loadkeys; taken from keymaps directory; will be written as <envar>KEYMAP</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs, e.g.: <programlisting>vconsole.keymap=de-latin1-nodeadkeys</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>EXT_KEYMAPS=</envar>
<envar>vconsole.keymap.ext=</envar>
<replaceable>&lt;list of keymap base file names&gt;</replaceable>
</term>
<listitem>
<para>list of extra keymaps to bo loaded (sep. by space); will be written to <filename>/etc/sysconfig/keyboard</filename> in the initramfs</para>
<para>list of extra keymaps to bo loaded (sep. by space); will be written as <envar>EXT_KEYMAP</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>UNICODE=</envar>
<envar>vconsole.font.unicode=</envar>
<replaceable>&lt;1|0&gt;</replaceable>
</term>
<listitem>
<para>boolean, indicating UTF-8 mode; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs</para>
<para>boolean, indicating UTF-8 mode; will be written as <envar>UNICODE</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>SYSFONT=</envar>
<envar>vconsole.font=</envar>
<replaceable>&lt;font base file name&gt;</replaceable>
</term>
<listitem>
<para>console font; taken from consolefonts directory; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs; e.g.: <programlisting>SYSFONT=LatArCyrHeb-16</programlisting></para>
<para>console font; taken from consolefonts directory; will be written as <envar>FONT</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs; e.g.: <programlisting>vconsole.font=LatArCyrHeb-16</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>CONTRANS=</envar>
<envar>vconsole.font.map=</envar>
<replaceable>&lt;console map base file name&gt;</replaceable>
</term>
<listitem>
<para>see description of &apos;-m&apos; parameter in setfont manual; taken from consoletrans directory; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs</para>
<para>see description of &apos;-m&apos; parameter in setfont manual; taken from consoletrans directory; will be written as <envar>FONT_MAP</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>UNIMAP=</envar>
<envar>vconsole.font.unimap=</envar>
<replaceable>&lt;unicode table base file name&gt;</replaceable>
</term>
<listitem>
<para>see description of &apos;-u&apos; parameter in setfont manual; taken from unimaps directory; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs</para>
<para>see description of &apos;-u&apos; parameter in setfont manual; taken from unimaps directory; will be written as <envar>FONT_UNIMAP</envar> to <filename>/etc/vconsole.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>LANG=</envar>
<envar>locale.LANG=</envar>
<replaceable>&lt;locale&gt;</replaceable>
</term>
<listitem>
<para>taken from the environment; if no UNICODE is defined we set its value in basis of LANG value (whether it ends with &quot;.utf8&quot; (or similar) or not); will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs; e.g.: <programlisting>LANG=pl_PL.utf8</programlisting></para>
<para>taken from the environment; if no UNICODE is defined we set its value in basis of LANG value (whether it ends with &quot;.utf8&quot; (or similar) or not); will be written as <envar>LANG</envar> to <filename>/etc/locale.conf</filename> in the initramfs; e.g.: <programlisting>locale.LANG=pl_PL.utf8</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>LC_ALL=</envar>
<envar>locale.LC_ALL=</envar>
<replaceable>&lt;locale&gt;</replaceable>
</term>
<listitem>
<para>taken from the environment; will be written to <filename>/etc/sysconfig/i18n</filename> in the initramfs</para>
<para>taken from the environment; will be written as <envar>LC_ALL</envar> to <filename>/etc/locale.conf</filename> in the initramfs</para>
</listitem>
</varlistentry>
</variablelist>
@ -1063,6 +1063,62 @@ rd_ZNET=ctc,0.0.0600,0.0.0601,0.0.0602,protocol=bar</programlisting></para>
<para><envar>rd.zfcp</envar></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>KEYMAP</envar>
</term>
<listitem>
<para><envar>vconsole.keymap</envar></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>KEYTABLE</envar>
</term>
<listitem>
<para><envar>vconsole.keymap</envar></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>SYSFONT</envar>
</term>
<listitem>
<para><envar>vconsole.font</envar></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>CONTRANS</envar>
</term>
<listitem>
<para><envar>vconsole.font.map</envar></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>UNIMAP</envar>
</term>
<listitem>
<para><envar>vconsole.font.unimap</envar></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>UNICODE</envar>
</term>
<listitem>
<para><envar>vconsole.font.unicode</envar></para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<envar>EXT_KEYMAP</envar>
</term>
<listitem>
<para><envar>vconsole.keymap.ext</envar></para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsect1>

View File

@ -1,2 +1,2 @@
# Console initialization - keyboard, font, etc.
KERNEL=="tty0", RUN+="/lib/udev/console_init %k"
KERNEL=="tty0", RUN+="/lib/udev/console_init $root/$name"

View File

@ -49,9 +49,9 @@ runtime:
KEYMAP - keyboard translation table loaded by loadkeys
EXT_KEYMAPS - list of extra keymaps to bo loaded (sep. by space)
UNICODE - boolean, indicating UTF-8 mode
SYSFONT - console font
CONTRANS - see description of '-m' parameter in setfont manual
UNIMAP - see description of '-u' parameter in setfont manual
FONT - console font
FONT_MAP - see description of '-m' parameter in setfont manual
FONT_UNIMAP - see description of '-u' parameter in setfont manual
The following are appended to EXT_KEYMAPS only during build time:
@ -72,11 +72,9 @@ used on the basis of LANG value (if it ends with ".utf8" or similar).
Mappings between variables listed in 2.1. and the ones spread around
your system are set up in /etc/dracut.conf.d/<foo>.conf. You need to
assign mappings to fields keyboard_vars and i18n_vars. Here's an
example:
assign mappings to i18n_vars. Here's an example:
keyboard_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS"
i18n_vars="/etc/conf.d/consolefont:CONSOLEFONT-SYSFONT,CONSOLETRANSLATION-CONTRANS /etc/rc.conf:UNICODE"
i18n_vars="/etc/conf.d/keymaps:KEYMAP,EXTENDED_KEYMAPS-EXT_KEYMAPS /etc/conf.d/consolefont:CONSOLEFONT-FONT,CONSOLETRANSLATION-FONT_MAP /etc/rc.conf:UNICODE"
First we've got name of file in host file system tree. After colon
there's mapping: <from>-<to>. If both variables have the same name you
@ -121,4 +119,4 @@ file (the same where you put mappings).
If you create generic initramfs you can set up i18n by kernel
parameters using variables listed in 2.1. (except of UNIKEYMAP
and GRP_TOGGLE) The recommended minimum is: SYSFONT, KEYMAP and UNICODE.
and GRP_TOGGLE) The recommended minimum is: FONT and KEYMAP.

View File

@ -2,13 +2,11 @@
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[ -e /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
[ -e /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard
[ -e /etc/vconsole.conf ] && . /etc/vconsole.conf
DEFAULT_SYSFONT=LatArCyrHeb-16
DEFAULT_KEYMAP=/etc/sysconfig/console/default.kmap
set_keyboard() {
local param

View File

@ -3,10 +3,9 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps
DEFAULT_SYSFONT=LatArCyrHeb-16
I18N_CONF="${initdir}/etc/sysconfig/i18n"
KEYBOARD_CONF="${initdir}/etc/sysconfig/keyboard"
DEFAULT_FONT=LatArCyrHeb-16
I18N_CONF="${initdir}/etc/locale.conf"
KEYBOARD_CONF="${initdir}/etc/vconsole.conf"
# This is from 10redhat-i18n.
findkeymap () {
@ -73,7 +72,14 @@ gather_vars() {
install_base() {
dracut_install setfont loadkeys kbd_mode stty
inst ${moddir}/console_init /lib/udev/console_init
if [ -x /lib/systemd/systemd-vconsole-setup ]; then
dracut_install /lib/systemd/systemd-vconsole-setup
inst_dir /lib/udev
ln -s /lib/systemd/systemd-vconsole-setup "${initdir}/lib/udev/console_init"
else
inst ${moddir}/console_init /lib/udev/console_init
fi
inst_rules ${moddir}/10-console.rules
inst_hook cmdline 20 "${moddir}/parse-i18n.sh"
}
@ -94,10 +100,16 @@ install_all_kbd() {
}
install_local_keyboard() {
local map
eval $(gather_vars ${keyboard_vars})
mksubdirs ${KEYBOARD_CONF}
}
install_local_i18n() {
local map
eval $(gather_vars ${i18n_vars})
# Gentoo user may have KEYMAP set to something like "-u pl2",
KEYMAP=${KEYMAP#-* }
# I'm not sure of the purpose of UNIKEYMAP and GRP_TOGGLE. They were in
@ -115,27 +127,20 @@ install_local_keyboard() {
inst_opt_decompress ${KEYMAPS}
mksubdirs ${KEYBOARD_CONF}
print_vars KEYMAP EXT_KEYMAPS >> ${KEYBOARD_CONF}
}
[[ ${FONT} ]] || FONT=${DEFAULT_FONT}
FONT=${FONT%.psf*}
inst_opt_decompress ${kbddir}/consolefonts/${FONT}.*
install_local_i18n() {
eval $(gather_vars ${i18n_vars})
[[ ${SYSFONT} ]] || SYSFONT=${DEFAULT_SYSFONT}
SYSFONT=${SYSFONT%.psf*}
inst_opt_decompress ${kbddir}/consolefonts/${SYSFONT}.*
if [[ ${CONTRANS} ]]
if [[ ${FONT_MAP} ]]
then
CONTRANS=${CONTRANS%.trans}
inst ${kbddir}/consoletrans/${CONTRANS}.trans
FONT_MAP=${FONT_MAP%.trans}
inst ${kbddir}/consoletrans/${FONT_MAP}.trans
fi
if [[ ${UNIMAP} ]]
if [[ ${FONT_UNIMAP} ]]
then
UNIMAP=${UNIMAP%.uni}
inst ${kbddir}/unimaps/${UNIMAP}.uni
FONT_UNIMAP=${FONT_UNIMAP%.uni}
inst ${kbddir}/unimaps/${FONT_UNIMAP}.uni
fi
if [[ ${UNICODE} ]]
@ -156,7 +161,9 @@ install_local_i18n() {
fi
mksubdirs ${I18N_CONF}
print_vars LC_ALL LANG UNICODE SYSFONT CONTRANS UNIMAP >> ${I18N_CONF}
mksubdirs ${KEYBOARD_CONF}
print_vars LC_ALL LANG >> ${I18N_CONF}
print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${KEYBOARD_CONF}
}
checks() {
@ -176,8 +183,8 @@ checks() {
return 1
}
[[ ! ${hostonly} || ${keyboard_vars} && ${i18n_vars} ]] || {
derror 'Please set up keyboard_vars and i18n_vars in configuration file.'
[[ ! ${hostonly} || ${i18n_vars} ]] || {
derror 'Please set up i18n_vars in configuration file.'
return 1
}
}
@ -189,7 +196,6 @@ then
if [[ ${hostonly} ]]
then
install_local_keyboard
install_local_i18n
else
install_all_kbd

View File

@ -3,24 +3,30 @@
# ex: ts=8 sw=4 sts=4 et filetype=sh
inst_key_val() {
local value
value=$(getarg $1)
[ -n "${value}" ] && printf '%s="%s"\n' $1 ${value} >> $2
local _value
local _file
_file=$1
shift
_value=$(getarg $@)
if [ -n "${_value}" ]; then
printf '%s="%s"\n' $1 ${_value} >> $_file
fi
unset _file
unset _value
}
inst_key_val /etc/vconsole.conf KEYMAP vconsole.keymap KEYTABLE
inst_key_val /etc/vconsole.conf FONT vconsole.font SYSFONT
inst_key_val /etc/vconsole.conf FONT_MAP vconsole.font.map CONTRANS
inst_key_val /etc/vconsole.conf FONT_UNIMAP vconsole.font.unimap UNIMAP
inst_key_val /etc/vconsole.conf UNICODE vconsole.font.unicode
inst_key_val /etc/vconsole.conf EXT_KEYMAP vconsole.keymap.ext
mkdir -p /etc/sysconfig
inst_key_val KEYMAP /etc/sysconfig/keyboard
inst_key_val EXT_KEYMAPS /etc/sysconfig/keyboard
inst_key_val UNICODE /etc/sysconfig/i18n
inst_key_val SYSFONT /etc/sysconfig/i18n
inst_key_val CONTRANS /etc/sysconfig/i18n
inst_key_val UNIMAP /etc/sysconfig/i18n
inst_key_val LANG /etc/sysconfig/i18n
inst_key_val LC_ALL /etc/sysconfig/i18n
inst_key_val /etc/locale.conf LANG locale.LANG
inst_key_val /etc/locale.conf LC_ALL locale.LC_ALL
if [ -f /etc/sysconfig/i18n ]; then
. /etc/sysconfig/i18n
if [ -f /etc/locale.conf ]; then
. /etc/locale.conf
export LANG
export LC_ALL
fi