Make default locale a compile time option

Default to a locale that's guaranteed to exist everywhere, but let
distros override this with something more exotic if they choose to.

Closes #11259.
This commit is contained in:
Dave Reisner 2018-12-28 07:38:36 -05:00 committed by Yu Watanabe
parent 911649fdd4
commit 8ca9e92c74
3 changed files with 9 additions and 3 deletions

View File

@ -828,6 +828,9 @@ 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')
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 +3099,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 : 'C',
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;
}