Merge pull request #11291 from yuwata/fix-11259

meson: check whether C.UTF-8 exists or not and use it if exists
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2019-01-02 09:36:01 +01:00 committed by GitHub
commit f41c6dba15
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 3 deletions

View file

@ -828,6 +828,13 @@ ntp_servers = get_option('ntp-servers')
conf.set_quoted('NTP_SERVERS', ntp_servers)
substs.set('NTP_SERVERS', ntp_servers)
default_locale = get_option('default-locale')
if default_locale == ''
choose_default_locale_sh = find_program('tools/choose-default-locale.sh')
default_locale = run_command(choose_default_locale_sh).stdout().strip()
endif
conf.set_quoted('SYSTEMD_DEFAULT_LOCALE', default_locale)
conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
substs.set('SUSHELL', get_option('debug-shell'))
@ -3096,7 +3103,8 @@ status = [
'default DNS-over-TLS mode: @0@'.format(default_dns_over_tls),
'default cgroup hierarchy: @0@'.format(default_hierarchy),
'default net.naming-scheme setting: @0@'.format(default_net_naming_scheme),
'default KillUserProcesses setting: @0@'.format(kill_user_processes)]
'default KillUserProcesses setting: @0@'.format(kill_user_processes),
'default locale: @0@'.format(default_locale)]
alt_dns_servers = '\n '.join(dns_servers.split(' '))
alt_ntp_servers = '\n '.join(ntp_servers.split(' '))

View file

@ -195,6 +195,8 @@ option('default-kill-user-processes', type : 'boolean',
description : 'the default value for KillUserProcesses= setting')
option('gshadow', type : 'boolean',
description : 'support for shadow group')
option('default-locale', type : 'string', value : '',
description : 'default locale used when /etc/locale.conf does not exist')
option('default-dnssec', type : 'combo',
description : 'default DNSSEC mode',

View file

@ -74,9 +74,9 @@ int locale_setup(char ***environment) {
}
if (strv_isempty(add)) {
/* If no locale is configured then default to C.UTF-8. */
/* If no locale is configured then default to compile-time default. */
add = strv_new("LANG=C.UTF-8");
add = strv_new("LANG=" SYSTEMD_DEFAULT_LOCALE);
if (!add)
return -ENOMEM;
}

12
tools/choose-default-locale.sh Executable file
View file

@ -0,0 +1,12 @@
#!/bin/bash
set -e
# Fedora uses C.utf8 but Debian uses C.UTF-8
if locale -a | grep -xq -E 'C\.(utf8|UTF-8)'; then
echo 'C.UTF-8'
elif locale -a | grep -xqF 'en_US.utf8'; then
echo 'en_US.UTF-8'
else
echo 'C'
fi