[v3,1/1] Set default locale in /etc/locale.conf

Message ID 20221025102651.1729975-2-tobias.schaffner@siemens.com
State Accepted, archived
Headers show
Series Set default locale in /etc/locale.conf | expand

Commit Message

Tobias Schaffner Oct. 25, 2022, 10:26 a.m. UTC
From: Tobias Schaffner <tobias.schaffner@siemens.com>

Debian bookworm introduced systemd-firstboot [1] which asks the user to
configure some basic settings like hostname, timezone or locale if not already
configured.

It asks the user interactively to select a locale on first boot as we do not
have it set in /etc/locale.conf [2].

/etc/locale.conf has the same format as /etc/default/locale.

Symlink /etc/locale.conf to /etc/default/locale for bookworm images to allow
booting without user interaction.

[1] https://www.freedesktop.org/software/systemd/man/systemd-firstboot.html
[2] https://man7.org/linux/man-pages/man5/locale.conf.5.html

Signed-off-by: Tobias Schaffner <tobias.schaffner@siemens.com>
---
 meta/classes/image-locales-extension.bbclass | 8 ++++++++
 1 file changed, 8 insertions(+)

Patch

diff --git a/meta/classes/image-locales-extension.bbclass b/meta/classes/image-locales-extension.bbclass
index 2db6d4a..9def316 100644
--- a/meta/classes/image-locales-extension.bbclass
+++ b/meta/classes/image-locales-extension.bbclass
@@ -82,6 +82,14 @@  __EOF__
             debconf-set-selections /tmp/locale.debconf
             rm -f '/tmp/locale.debconf'
 
+            SYSTEMD_VERSION=$(dpkg-query \
+                --showformat='${source:Upstream-Version}' \
+                --show systemd || echo "0" )
+
+            if dpkg --compare-versions "$SYSTEMD_VERSION" "ge" "251"; then
+                ln -s /etc/default/locale /etc/locale.conf
+            fi
+
             echo 'reconfigure locales'
             dpkg-reconfigure -f noninteractive locales