summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debian/changelog6
-rw-r--r--debian/patches/series1
-rw-r--r--debian/patches/test-fix-D-Bus-policy-override-for-TEST-73-LOCALE.patch25
-rwxr-xr-xdebian/tests/localed-locale18
-rwxr-xr-xdebian/tests/localed-x11-keymap18
5 files changed, 68 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index fba5acc..5128f17 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+systemd (256.4-2) unstable; urgency=medium
+
+ * autopkgtest: allow localectl in localed tests.
+
+ -- Luca Boccassi <bluca@debian.org> Thu, 25 Jul 2024 13:18:09 +0100
+
systemd (256.4-1) unstable; urgency=medium
[ Nick Rosbrook ]
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..acd7014
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+test-fix-D-Bus-policy-override-for-TEST-73-LOCALE.patch
diff --git a/debian/patches/test-fix-D-Bus-policy-override-for-TEST-73-LOCALE.patch b/debian/patches/test-fix-D-Bus-policy-override-for-TEST-73-LOCALE.patch
new file mode 100644
index 0000000..5cf6e44
--- /dev/null
+++ b/debian/patches/test-fix-D-Bus-policy-override-for-TEST-73-LOCALE.patch
@@ -0,0 +1,25 @@
+Author: Luca Boccassi <bluca@debian.org>
+Forwarded: yes
+Description: test: fix D-Bus policy override for TEST-73-LOCALE
+ We don't need to allow non-root, and the policy needs to specify destination
+ and interface too, to narrow it down
+--- a/test/units/TEST-73-LOCALE.sh
++++ b/test/units/TEST-73-LOCALE.sh
+@@ -666,14 +666,9 @@
+ "https://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+ <busconfig>
+ <policy user="root">
+- <allow send_member="SetLocale"/>
+- <allow send_member="SetVConsoleKeyboard"/>
+- <allow send_member="SetX11Keyboard"/>
+- </policy>
+- <policy context="default">
+- <allow send_member="SetLocale"/>
+- <allow send_member="SetVConsoleKeyboard"/>
+- <allow send_member="SetX11Keyboard"/>
++ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetLocale"/>
++ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetVConsoleKeyboard"/>
++ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetX11Keyboard"/>
+ </policy>
+ </busconfig>
+ EOF
diff --git a/debian/tests/localed-locale b/debian/tests/localed-locale
index d666be2..85477b0 100755
--- a/debian/tests/localed-locale
+++ b/debian/tests/localed-locale
@@ -3,6 +3,24 @@ set -e
. `dirname $0`/assert.sh
+# Calls to localed are blocked as other tools are used to change settings,
+# override that policy
+mkdir -p /etc/dbus-1/system.d/
+cat >/etc/dbus-1/system.d/systemd-localed-read-only.conf <<EOF
+<?xml version="1.0"?>
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "https://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <policy user="root">
+ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetLocale"/>
+ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetVConsoleKeyboard"/>
+ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetX11Keyboard"/>
+ </policy>
+</busconfig>
+EOF
+trap 'rm -f /etc/dbus-1/system.d/systemd-localed-read-only.conf' EXIT
+systemctl reload dbus.service || true
+
if [ -f /etc/locale.conf ]; then
cp /etc/locale.conf /etc/locale.conf.orig
fi
diff --git a/debian/tests/localed-x11-keymap b/debian/tests/localed-x11-keymap
index 1fd29d3..b4f8af8 100755
--- a/debian/tests/localed-x11-keymap
+++ b/debian/tests/localed-x11-keymap
@@ -24,9 +24,27 @@ cleanup() {
rm -f /etc/default/keyboard
fi
rm -f /etc/X11/xorg.conf.d/00-keyboard.conf
+ rm -f /etc/dbus-1/system.d/systemd-localed-read-only.conf
}
trap cleanup EXIT INT QUIT PIPE
+# Calls to localed are blocked as other tools are used to change settings,
+# override that policy
+mkdir -p /etc/dbus-1/system.d/
+cat >/etc/dbus-1/system.d/systemd-localed-read-only.conf <<EOF
+<?xml version="1.0"?>
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "https://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <policy user="root">
+ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetLocale"/>
+ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetVConsoleKeyboard"/>
+ <allow send_destination="org.freedesktop.locale1" send_interface="org.freedesktop.locale1" send_member="SetX11Keyboard"/>
+ </policy>
+</busconfig>
+EOF
+systemctl reload dbus.service || true
+
# should activate daemon and work
STATUS=`localectl`
assert_in "X11 Layout:" "`localectl --no-pager`"