From: Daan De Meyer Date: Fri, 3 Jun 2022 11:18:10 +0000 (+0200) Subject: meson: Add nspawn-locale meson option X-Git-Tag: v252-rc1~850 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a22f5186761a437d8845397bbbfeaf9a7d590ec2;p=thirdparty%2Fsystemd.git meson: Add nspawn-locale meson option https://github.com/systemd/systemd/pull/23192 caused breakage in Arch Linux's build tooling. Let's give users an opt-out aside from reverting the patch. It's hardly any maintenance work on our side and gives users an easy way to revert the locale change if needed. Of course, by default we still pick C.UTF-8 if the option is not specified. --- diff --git a/meson.build b/meson.build index 2daaf3f4000..9adb2160a4e 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 6c816abd65d..3bb25c6f763 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 8e3c6522e45..a5cf4c2c19e 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++;