summaryrefslogtreecommitdiffstats
path: root/debian/patches/debian/localectl-disable-keymap-support.patch
blob: 50fad4c384dac6c796f035b41e2b49e331cc94a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
From: Luca Boccassi <bluca@debian.org>
Date: Wed, 8 Feb 2023 20:34:38 +0000
Subject: localectl-disable-keymap-support

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.
---
 src/locale/localectl.c     | 11 ++++++-----
 test/units/testsuite-73.sh |  6 ++++++
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/locale/localectl.c b/src/locale/localectl.c
index 3235402..c4fb1f2 100644
--- a/src/locale/localectl.c
+++ b/src/locale/localectl.c
@@ -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      },
diff --git a/test/units/testsuite-73.sh b/test/units/testsuite-73.sh
index df5af4b..ec3fa6c 100755
--- a/test/units/testsuite-73.sh
+++ b/test/units/testsuite-73.sh
@@ -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