From dac45f997e6868ffba23610167c8bcb7476b0f96 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
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 c9c854a..30b7e03 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="__<variable mapping>__"::
+ Distribution specific variable mapping.
+ See dracut/modules.d/10i18n/README for a detailed description.
+
+*i18n_default_font=*"__<fontname>__"::
+ The font <fontname> 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 1a56a86..495e8fb 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 2a83728..413ee12 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
}
-