localectl-disable-keymap-support
authorLuca Boccassi <bluca@debian.org>
Wed, 8 Feb 2023 20:34:38 +0000 (20:34 +0000)
committerMichael Biebl <biebl@debian.org>
Tue, 2 Jan 2024 10:44:49 +0000 (11:44 +0100)
We no longer support old debianisms such as /etc/default/keyboard,
so disable the keymap interface in localectl until a definitive
solution is found.

Update the test suite to skip tests for unsupported localectl features.

Gbp-Pq: Topic debian
Gbp-Pq: Name localectl-disable-keymap-support.patch

src/locale/localectl.c
test/units/testsuite-73.sh

index 32354027f1755ef6d445b44fbc716f35fbf2e598..c4fb1f2aa6187992105788e0a64ab0a96313eb5e 100644 (file)
@@ -383,6 +383,10 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
         return 0;
 }
 
+static int not_supported(int argc, char **argv, void *userdata) {
+        return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Setting X11 and console keymaps is not supported in Debian.");
+}
+
 static int help(void) {
         _cleanup_free_ char *link = NULL;
         int r;
@@ -397,10 +401,7 @@ static int help(void) {
                "  status                   Show current locale settings\n"
                "  set-locale LOCALE...     Set system locale\n"
                "  list-locales             Show known locales\n"
-               "  set-keymap MAP [MAP]     Set console and X11 keyboard mappings\n"
                "  list-keymaps             Show known virtual console keyboard mappings\n"
-               "  set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]]\n"
-               "                           Set X11 and console keyboard mappings\n"
                "  list-x11-keymap-models   Show known X11 keyboard mapping models\n"
                "  list-x11-keymap-layouts  Show known X11 keyboard mapping layouts\n"
                "  list-x11-keymap-variants [LAYOUT]\n"
@@ -500,9 +501,9 @@ static int localectl_main(sd_bus *bus, int argc, char *argv[]) {
                 { "status",                   VERB_ANY, 1,        VERB_DEFAULT, show_status           },
                 { "set-locale",               2,        VERB_ANY, 0,            set_locale            },
                 { "list-locales",             VERB_ANY, 1,        0,            list_locales          },
-                { "set-keymap",               2,        3,        0,            set_vconsole_keymap   },
+                { "set-keymap",               2,        3,        0,            not_supported         },
                 { "list-keymaps",             VERB_ANY, 1,        0,            list_vconsole_keymaps },
-                { "set-x11-keymap",           2,        5,        0,            set_x11_keymap        },
+                { "set-x11-keymap",           2,        5,        0,            not_supported         },
                 { "list-x11-keymap-models",   VERB_ANY, 1,        0,            list_x11_keymaps      },
                 { "list-x11-keymap-layouts",  VERB_ANY, 1,        0,            list_x11_keymaps      },
                 { "list-x11-keymap-variants", VERB_ANY, 2,        0,            list_x11_keymaps      },
index df5af4ba87352d551902e31a175583c2326e5982..ec3fa6c75bd71319228a51ec4ddfb0e19d963035 100755 (executable)
@@ -227,6 +227,9 @@ wait_vconsole_setup() {
 testcase_vc_keymap() {
     local i output vc
 
+    echo "Setting X11 and console keymaps is not supported in Debian, skipping test."
+    return
+
     if [[ -z "$(localectl list-keymaps)" ]]; then
         echo "No vconsole keymap installed, skipping test."
         return
@@ -297,6 +300,9 @@ testcase_vc_keymap() {
 testcase_x11_keymap() {
     local output
 
+    echo "Setting X11 and console keymaps is not supported in Debian, skipping test."
+    return
+
     if [[ -z "$(localectl list-x11-keymap-layouts)" ]]; then
         echo "No x11 keymap installed, skipping test."
         return