diff --git a/meson.build b/meson.build index 2daaf3f400..9adb2160a4 100644 --- a/meson.build +++ b/meson.build @@ -937,6 +937,9 @@ conf.set_quoted('NTP_SERVERS', ntp_servers) default_locale = get_option('default-locale') conf.set_quoted('SYSTEMD_DEFAULT_LOCALE', default_locale) +nspawn_locale = get_option('nspawn-locale') +conf.set_quoted('SYSTEMD_NSPAWN_LOCALE', nspawn_locale) + localegen_path = get_option('localegen-path') if localegen_path != '' conf.set_quoted('LOCALEGEN_PATH', localegen_path) diff --git a/meson_options.txt b/meson_options.txt index 6c816abd65..3bb25c6f76 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -302,6 +302,8 @@ option('gshadow', type : 'boolean', description : 'support for shadow group') option('default-locale', type : 'string', value : 'C.UTF-8', description : 'default locale used when /etc/locale.conf does not exist') +option('nspawn-locale', type : 'string', value : 'C.UTF-8', + description : 'default locale used by systemd-nspawn when executing commands in a container') option('localegen-path', type : 'string', value : '', description : 'absolute path to the locale-gen binary in case the system is using locale-gen') option('service-watchdog', type : 'string', value : '3min', diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 8e3c6522e4..a5cf4c2c19 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -3488,10 +3488,7 @@ static int inner_child( } if (arg_start_mode != START_BOOT) { - /* If we're running a command in the container, let's default to the C.UTF-8 locale as it's - * part of glibc these days and was backported to most distros a long time before it got - * added to upstream glibc. */ - envp[n_env] = strdup("LANG=C.UTF-8"); + envp[n_env] = strdup("LANG=" SYSTEMD_NSPAWN_LOCALE); if (!envp[n_env]) return log_oom(); n_env++;