summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca BRUNO <luca.bruno@coreos.com>2021-12-23 11:01:07 +0000
committerLuca BRUNO <luca.bruno@coreos.com>2021-12-23 11:01:12 +0000
commit623370e643e228449f5e49c0d82e6e423ae0e0f7 (patch)
treebe67f5ff16f8501b3970c3d48b6f5c9ee208eb0f
parent8f7a0fcbecb37569734264483c6ceb49af444982 (diff)
downloadsystemd-623370e643e228449f5e49c0d82e6e423ae0e0f7.tar.gz
factory: populate /etc/locale.conf with systemd build-time setting
This adds /etc/locale.conf to the set of configuration files populated by tmpfiles.d factory /etc handling. In particular, the build-time locale configuration in systemd is now wired to a /usr factory file, and installed to the system. On boot, if other locale customization tools did not write /etc/locale.conf on the system, the factory default file gets copied to /etc by systemd-tmpfiles. This is done in order to avoid skews between different system components when no locale settings are configured. At that point, systemd can safely act as the fallback owner of /etc/locale.conf.
-rw-r--r--factory/templates/locale.conf.in1
-rw-r--r--factory/templates/meson.build11
-rw-r--r--man/locale.conf.xml4
-rw-r--r--meson.build1
-rw-r--r--tmpfiles.d/etc.conf.in1
5 files changed, 16 insertions, 2 deletions
diff --git a/factory/templates/locale.conf.in b/factory/templates/locale.conf.in
new file mode 100644
index 0000000000..421fd569a9
--- /dev/null
+++ b/factory/templates/locale.conf.in
@@ -0,0 +1 @@
+LANG="{{ SYSTEMD_DEFAULT_LOCALE }}"
diff --git a/factory/templates/meson.build b/factory/templates/meson.build
new file mode 100644
index 0000000000..821f176a74
--- /dev/null
+++ b/factory/templates/meson.build
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+factory_etc_dir = factorydir / 'etc'
+
+custom_target(
+ 'locale.conf',
+ input : 'locale.conf.in',
+ output : 'locale.conf',
+ command : [meson_render_jinja2, config_h, '@INPUT@', '@OUTPUT@'],
+ install : true,
+ install_dir : factory_etc_dir)
diff --git a/man/locale.conf.xml b/man/locale.conf.xml
index b24ad9cf2e..fe263fcfd8 100644
--- a/man/locale.conf.xml
+++ b/man/locale.conf.xml
@@ -64,14 +64,14 @@
might be checked for locale configuration as well, however only as
fallback.</para>
- <para><filename>/etc/locale.conf</filename> is usually created and updated
+ <para><filename>/etc/locale.conf</filename> can be updated
using
<citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
<citerefentry project='man-pages'><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
may be used to alter the settings in this file during runtime from
the command line. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- to initialize them on mounted (but not booted) system images.</para>
+ to customize them on mounted (but not booted) system images.</para>
</refsect1>
<refsect1>
diff --git a/meson.build b/meson.build
index c0cbadecb1..dc6cbf8a58 100644
--- a/meson.build
+++ b/meson.build
@@ -3707,6 +3707,7 @@ subdir('docs/var-log')
install_subdir('factory/etc',
install_dir : factorydir)
+subdir('factory/templates')
if install_sysconfdir
install_data('xorg/50-systemd-user.sh',
diff --git a/tmpfiles.d/etc.conf.in b/tmpfiles.d/etc.conf.in
index ebdc699c26..2fdd498da5 100644
--- a/tmpfiles.d/etc.conf.in
+++ b/tmpfiles.d/etc.conf.in
@@ -12,6 +12,7 @@ L+ /etc/mtab - - - - ../proc/self/mounts
{% if HAVE_SMACK_RUN_LABEL %}
t /etc/mtab - - - - security.SMACK64=_
{% endif %}
+C! /etc/locale.conf - - - -
C! /etc/nsswitch.conf - - - -
{% if HAVE_PAM %}
C! /etc/pam.d - - - -