From dac45f997e6868ffba23610167c8bcb7476b0f96 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Thu, 5 Dec 2013 16:42:05 +0100 Subject: [PATCH] i18n: introduce i18n_install_all, to install everything if i18n_install_all is set to "yes", then install all keyboard layouts and fonts regardless of the hostonly setting. This way, people can switch keyboard layouts, without having to recreate the initramfs. --- dracut.conf.5.asc | 14 ++++++++++++-- dracut.conf.d/fedora.conf.example | 1 + modules.d/10i18n/module-setup.sh | 31 +++++++++++++++++-------------- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/dracut.conf.5.asc b/dracut.conf.5.asc index c9c854a9..30b7e030 100644 --- a/dracut.conf.5.asc +++ b/dracut.conf.5.asc @@ -122,10 +122,10 @@ If chrooted to another root other than the real root device, use --fstab and pro *kernel_only=*"__{yes|no}__":: Only install kernel drivers and firmware files. (default=no) -*no_kernel=*"{yes|no}":: +*no_kernel=*"__{yes|no}__":: Do not install kernel drivers and firmware files (default=no) -*acpi_override=*"{yes|no}":: +*acpi_override=*"__{yes|no}__":: [WARNING] ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING! + Override BIOS provided ACPI tables. For further documentation read Documentation/acpi/initrd_table_override.txt in the kernel sources. @@ -158,6 +158,16 @@ If chrooted to another root other than the real root device, use --fstab and pro *show_modules=*"__{yes|no}__":: Print the name of the included modules to standard output during build. +*i18n_vars="____":: + Distribution specific variable mapping. + See dracut/modules.d/10i18n/README for a detailed description. + +*i18n_default_font=*"____":: + The font to install, if not specified otherwise. Default is "LatArCyrHeb-16". + +*i18n_install_all=*"__{yes|no}__":: + Install everything regardless of generic or hostonly mode. + Files ----- _/etc/dracut.conf_:: diff --git a/dracut.conf.d/fedora.conf.example b/dracut.conf.d/fedora.conf.example index 1a56a864..495e8fb3 100644 --- a/dracut.conf.d/fedora.conf.example +++ b/dracut.conf.d/fedora.conf.example @@ -3,6 +3,7 @@ # i18n i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:SYSFONT-FONT,FONTACM-FONT_MAP,FONT_UNIMAP" i18n_default_font="latarcyrheb-sun16" +i18n_install_all="yes" stdloglvl=3 sysloglvl=5 install_items+=" vi /etc/virc ps grep cat rm " diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh index 2a837280..413ee123 100755 --- a/modules.d/10i18n/module-setup.sh +++ b/modules.d/10i18n/module-setup.sh @@ -18,15 +18,11 @@ depends() { install() { if dracut_module_included "systemd"; then - [[ -f /etc/vconsole.conf ]] || return 0 unset FONT unset KEYMAP - . /etc/vconsole.conf - # if vconsole.conf has no settings, do not include anything - [[ $FONT ]] || [[ $KEYMAP ]] || return 0 + [[ -f /etc/vconsole.conf ]] && . /etc/vconsole.conf fi - inst_multiple -o $systemdutildir/systemd-vconsole-setup KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps DEFAULT_FONT="${i18n_default_font:-LatArCyrHeb-16}" I18N_CONF="/etc/locale.conf" @@ -207,10 +203,20 @@ install() { inst_simple ${kbddir}/unimaps/${FONT_UNIMAP}.uni fi - mksubdirs ${initdir}${I18N_CONF} - mksubdirs ${initdir}${VCONFIG_CONF} - print_vars LC_ALL LANG >> ${initdir}${I18N_CONF} - print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF} + if dracut_module_included "systemd" && [[ -f ${I18N_CONF} ]]; then + inst_simple ${I18N_CONF} + else + mksubdirs ${initdir}${I18N_CONF} + print_vars LC_ALL LANG >> ${initdir}${I18N_CONF} + fi + + if dracut_module_included "systemd" && [[ -f ${VCONFIG_CONF} ]]; then + inst_simple ${VCONFIG_CONF} + else + mksubdirs ${initdir}${VCONFIG_CONF} + print_vars KEYMAP EXT_KEYMAPS UNICODE FONT FONT_MAP FONT_UNIMAP >> ${initdir}${VCONFIG_CONF} + fi + return 0 } @@ -234,16 +240,13 @@ install() { return 0 } - if checks - then + if checks; then install_base - if [[ ${hostonly} ]] - then + if [[ ${hostonly} ]] && ! [[ ${i18n_install_all} ]]; then install_local_i18n || install_all_kbd else install_all_kbd fi fi } -