As far as a test plan goes, I think this can mostly be done using the localectl tool that is already shipped in the base snap. This exercises the same D-Bus API that higher level tools like ubuntu-desktop-init use. As a command line tool, it could likely be used by a spread test.
To test system locale changes, it might look something like this: 1. On a pristine Ubuntu Core system, run "localectl status". Verify that the system locale is set to the default (seems to be "C.UTF-8" based on the current core24 snap). 2. Modify the system locale by running "localectl set-locale LANG=en_AU.UTF-8". The command should complete without error. 3. Check that the locale has changed by running "localectl status". 4. Check that the locale has been saved to /etc/locale.conf 5. Reboot the system, and run "localectl status" again to check that the change has persisted. Testing the key map changes is a little more difficult, since the relevant commands have been patched out of our localectl: $ localectl set-keymap foo Setting X11 and console keymaps is not supported in Debian. It should still be possible to call the D-Bus API directly via "busctl call", but it will be a bit more verbose. Longer term, it might be worth looking at whether we can drop the patch that disables set-keymap. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/2091657 Title: systemd-localed requires read-only-etc hacks for /etc/vconsole.conf and /etc/locale.conf Status in systemd package in Ubuntu: Invalid Status in systemd source package in Noble: Triaged Bug description: [Impact] Ubuntu Core has a read-only /etc, but a writable partition in /etc/writable. In some versions of Ubuntu, the systemd package ships a patch to follow symlinks from /etc/ -> /etc/writable, e.g. for files like /etc/locale.conf. In Core24, this patch needs to be expanded for /etc/locale.conf and /etc/vconsole.conf in systemd-localed. [Test Plan] TODO [Where problems could occur] This hack is designed to be a no-op in non-Ubuntu Core cases. I.e., when /etc/writable does not exist or does not have a link for the given path in etc, the original path is used. As is evident by the ever-expanding nature of this patch, this is not a complete solution. It's possible that more cases will be found where this hack needs to be applied. [Other information] This patch is not carried in supported releases newer than Noble. While this patch is far from ideal, expanding this hack has become the go-to for existing stable releases. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2091657/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp