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:
commit
f41c6dba15
10
meson.build
10
meson.build
|
@ -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(' '))
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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
12
tools/choose-default-locale.sh
Executable 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
|
Loading…
Reference in a new issue