Accepting request 616857 from system:install:head
- Add new method of invocation for jeos-firstboot - Try to overwrite existing values in vconsole.conf - Don't write _NOT countries into zypp/RequestedLocales - Add sysconfig handling back - Ignore suffix on passed locale - Call set-keymap after set-x11-keymap - Restart of systemd-vconsole-setup is not necessary (forwarded request 616854 from favogt) OBS-URL: https://build.opensuse.org/request/show/616857 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/live-langset-data?expand=0&rev=8
This commit is contained in:
commit
3491e82574
74
langset.sh
74
langset.sh
@ -1,19 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
lang=en_US
|
||||
for o in $(cat /proc/cmdline); do
|
||||
case $o in
|
||||
lang=*)
|
||||
eval $o
|
||||
;;
|
||||
keytable=*)
|
||||
eval $o
|
||||
;;
|
||||
esac
|
||||
done
|
||||
# Support two methods of invocation:
|
||||
# a) Called without arguments, use /proc/cmdline (lang= and keytable=)
|
||||
# b) Called with arguments, use $1 as lang and $2 as keytable
|
||||
|
||||
# we need the _NOT so there is always a field 2
|
||||
Country=$(echo "$lang"_NOT | cut -d_ -f2)
|
||||
if [ $# != 0 ]; then
|
||||
lang=$1
|
||||
keytable=$2
|
||||
else
|
||||
lang=en_US
|
||||
for o in $(cat /proc/cmdline); do
|
||||
case $o in
|
||||
lang=*)
|
||||
eval $o
|
||||
;;
|
||||
keytable=*)
|
||||
eval $o
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
# Strip potential .UTF-8 suffix
|
||||
lang="${lang%%.*}"
|
||||
|
||||
Country=$(echo "$lang" | cut -d_ -f2)
|
||||
Language=$(echo "$lang" | cut -d_ -f1)
|
||||
|
||||
file="/usr/share/langset/$Language""_$Country"
|
||||
@ -28,14 +39,35 @@ fi
|
||||
[ -n "$RC_LC_MESSAGES" ] || RC_LC_MESSAGES=$RC_LANG
|
||||
[ -z "$RC_LANG" ] || localectl set-locale LANG=$RC_LANG LC_MESSAGES=$RC_LC_MESSAGES
|
||||
|
||||
[ -z "$CONSOLE_FONT" ] || echo "FONT=$CONSOLE_FONT" >> /etc/vconsole.conf
|
||||
[ -z "$CONSOLE_SCREENMAP" ] || echo "FONT_MAP=$CONSOLE_SCREENMAP" >> /etc/vconsole.conf
|
||||
[ -z "$CONSOLE_UNICODEMAP" ] || echo "FONT_UNIMAP=$CONSOLE_UNICODEMAP" >> /etc/vconsole.conf
|
||||
# set_vconsole_option KEY value
|
||||
set_vconsole_option() {
|
||||
# "t;q1" means that this sed command exits with 1 if no substitution was done
|
||||
sed -i"" -E "s/^$1=.+\$/$1=$2/g;t;q1" /etc/vconsole.conf && return
|
||||
echo "$1=$2" >> /etc/vconsole.conf
|
||||
}
|
||||
|
||||
[ -z "$CONSOLE_FONT" ] || set_vconsole_option FONT "$CONSOLE_FONT"
|
||||
[ -z "$CONSOLE_SCREENMAP" ] || set_vconsole_option FONT_MAP "$CONSOLE_SCREENMAP"
|
||||
[ -z "$CONSOLE_UNICODEMAP" ] || set_vconsole_option FONT_UNIMAP "$CONSOLE_UNICODEMAP"
|
||||
|
||||
# set_sysconfig_option KEY value
|
||||
set_sysconfig_option() {
|
||||
sed -i -e "s#$1=\".*#$1=\"$2\"#" /etc/sysconfig/language
|
||||
sed -i -e "s#$1=\".*#$1=\"$2\"#" /etc/sysconfig/keyboard
|
||||
sed -i -e "s#$1=\".*#$1=\"$2\"#" /etc/sysconfig/console
|
||||
}
|
||||
|
||||
# Set legacy sysconfig values for backwards-compat
|
||||
[ -z "$CONSOLE_FONT" ] || set_sysconfig_option CONSOLE_FONT "$CONSOLE_FONT"
|
||||
[ -z "$CONSOLE_SCREENMAP" ] || set_sysconfig_option CONSOLE_SCREENMAP "$CONSOLE_SCREENMAP"
|
||||
[ -z "$CONSOLE_UNICODEMAP" ] || set_sysconfig_option CONSOLE_UNICODEMAP "$CONSOLE_UNICODEMAP"
|
||||
[ -z "$RC_LANG" ] || set_sysconfig_option RC_LANG "$RC_LANG"
|
||||
[ -z "$RC_LC_MESSAGES" ] || set_sysconfig_option RC_LC_MESSAGES "$RC_LC_MESSAGES"
|
||||
[ -z "$KEYTABLE" ] || set_sysconfig_option KEYTABLE "$KEYTABLE"
|
||||
[ -z "$COMPOSETABLE" ] || set_sysconfig_option COMPOSETABLE "$COMPOSETABLE"
|
||||
|
||||
# Try the lang-provided keytable first
|
||||
[ -z "$KEYTABLE" ] || localectl set-keymap $KEYTABLE
|
||||
# Then override with the cmdline provided one, if possible
|
||||
[ -z "$keytable" ] || localectl set-keymap $keytable
|
||||
|
||||
[ -n "$TIMEZONE" ] && [ -f "/usr/share/zoneinfo/$TIMEZONE" ] && rm -f /etc/localtime && ln -s /usr/share/zoneinfo/$TIMEZONE /etc/localtime
|
||||
|
||||
@ -43,7 +75,7 @@ if [ -n "$XkbLayout" ] && [ -n "$XkbModel" ] && [ -n "$XkbVariant" ] && [ -n "$X
|
||||
localectl set-x11-keymap "$XkbLayout" "$XkbModel" "$XkbVariant" "$XkbOptions"
|
||||
fi
|
||||
|
||||
echo "$Language""_$Country" > /var/lib/zypp/RequestedLocales
|
||||
# Override with the cmdline provided one, if possible
|
||||
[ -z "$keytable" ] || localectl set-keymap $keytable
|
||||
|
||||
# Apply the settings
|
||||
systemctl restart systemd-vconsole-setup
|
||||
echo "$lang" > /var/lib/zypp/RequestedLocales
|
||||
|
@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 12 07:52:34 UTC 2018 - fvogt@suse.com
|
||||
|
||||
- Add new method of invocation for jeos-firstboot
|
||||
- Try to overwrite existing values in vconsole.conf
|
||||
- Don't write _NOT countries into zypp/RequestedLocales
|
||||
- Add sysconfig handling back
|
||||
- Ignore suffix on passed locale
|
||||
- Call set-keymap after set-x11-keymap
|
||||
- Restart of systemd-vconsole-setup is not necessary
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 31 09:08:22 UTC 2018 - fvogt@suse.de
|
||||
|
||||
|
@ -20,7 +20,7 @@ Name: live-langset-data
|
||||
Version: 2.0
|
||||
Release: 0
|
||||
Summary: Scripts and data to allow locale switching in live media
|
||||
License: GPL-2.0
|
||||
License: GPL-2.0-only
|
||||
Group: System/YaST
|
||||
Url: https://build.opensuse.org/package/show/openSUSE:Factory:Live/live-langset-data
|
||||
Source1: langset.sh
|
||||
|
Loading…
x
Reference in New Issue
Block a user