summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim@guixotic.coop>2026-08-31 17:47:43 +0900
committerMaxim Cournoyer <maxim@guixotic.coop>2026-08-31 23:00:07 +0900
commite4551d1475d2879d3570611000fbb14a7c5a4f9c (patch)
treecce762cc73d06d83ac0c138e0163cabcd2708928
parent3c65d35b60436fd1f1b9276cf1cc31d1f812d398 (diff)
gnu: lightdm: Update to 1.33.1.
* gnu/packages/display-managers.scm (lightdm): lightdm: Update to 1.33.1. [source]: Delete patches. Update URL. [#:configure-flags]: Remove custom CFLAGS. [#:phases] {check}: Re-order after install phase; add comment. [native-inputs]: Replace dbus-1.15.0 with dbus. Replace python-pygobject-3.50 with python-pygobject. [home-page]: Update URL. * gnu/packages/patches/lightdm-arguments-ordering.patch * gnu/packages/patches/lightdm-vnc-color-depth.patch * gnu/packages/patches/lightdm-vnc-ipv6.patch * gnu/packages/patches/lightdm-vncserver-check.patch: Delete files. * gnu/local.mk (dist_patch_DATA): De-register them.
-rw-r--r--gnu/local.mk4
-rw-r--r--gnu/packages/display-managers.scm32
-rw-r--r--gnu/packages/patches/lightdm-arguments-ordering.patch54
-rw-r--r--gnu/packages/patches/lightdm-vnc-color-depth.patch81
-rw-r--r--gnu/packages/patches/lightdm-vnc-ipv6.patch48
-rw-r--r--gnu/packages/patches/lightdm-vncserver-check.patch66
6 files changed, 15 insertions, 270 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 903bcdcf0b8..ce67a59d35d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1750,10 +1750,6 @@ dist_patch_DATA = \
1750 %D%/packages/patches/libvirt-respect-modules-path.patch \ 1750 %D%/packages/patches/libvirt-respect-modules-path.patch \
1751 %D%/packages/patches/libzmf-doxygen-1.14.patch \ 1751 %D%/packages/patches/libzmf-doxygen-1.14.patch \
1752 %D%/packages/patches/libziparchive-add-includes.patch \ 1752 %D%/packages/patches/libziparchive-add-includes.patch \
1753 %D%/packages/patches/lightdm-arguments-ordering.patch \
1754 %D%/packages/patches/lightdm-vnc-ipv6.patch \
1755 %D%/packages/patches/lightdm-vnc-color-depth.patch \
1756 %D%/packages/patches/lightdm-vncserver-check.patch \
1757 %D%/packages/patches/linphone-desktop-cmake-belcard.patch \ 1753 %D%/packages/patches/linphone-desktop-cmake-belcard.patch \
1758 %D%/packages/patches/linphone-desktop-cmake-find-modules.patch \ 1754 %D%/packages/patches/linphone-desktop-cmake-find-modules.patch \
1759 %D%/packages/patches/localed-xorg-keyboard.patch \ 1755 %D%/packages/patches/localed-xorg-keyboard.patch \
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 6cbbc89782f..55f5d29912d 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -12,7 +12,7 @@
12;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> 12;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
13;;; Copyright © 2021-2023 Efraim Flashner <efraim@flashner.co.il> 13;;; Copyright © 2021-2023 Efraim Flashner <efraim@flashner.co.il>
14;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> 14;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
15;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim@guixotic.coop> 15;;; Copyright © 2022-2023, 2026 Maxim Cournoyer <maxim@guixotic.coop>
16;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org> 16;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
17;;; Copyright © 2026 Anderson Torres <anderson.torres.8519@gmail.com> 17;;; Copyright © 2026 Anderson Torres <anderson.torres.8519@gmail.com>
18;;; 18;;;
@@ -457,20 +457,16 @@ the screen.")
457(define-public lightdm 457(define-public lightdm
458 (package 458 (package
459 (name "lightdm") 459 (name "lightdm")
460 (version "1.32.0") 460 (version "1.33.1")
461 (source (origin 461 (source (origin
462 (method git-fetch) 462 (method git-fetch)
463 (uri (git-reference 463 (uri (git-reference
464 (url "https://github.com/canonical/lightdm") 464 (url "https://github.com/ubuntu/lightdm")
465 (commit version))) 465 (commit version)))
466 (file-name (git-file-name name version)) 466 (file-name (git-file-name name version))
467 (sha256 467 (sha256
468 (base32 468 (base32
469 "1wr60c946p8jz9kb8zi4cd8d4mkcy7infbvlfzwajiglc22nblxn")) 469 "1gayj1gasxfrr22njwyqs40k3w5dvkfjszzzf2sljildc9bpz7py"))))
470 (patches (search-patches "lightdm-arguments-ordering.patch"
471 "lightdm-vncserver-check.patch"
472 "lightdm-vnc-color-depth.patch"
473 "lightdm-vnc-ipv6.patch"))))
474 (build-system gnu-build-system) 470 (build-system gnu-build-system)
475 (arguments 471 (arguments
476 (list 472 (list
@@ -478,9 +474,7 @@ the screen.")
478 #:configure-flags 474 #:configure-flags
479 #~(list "--localstatedir=/var" 475 #~(list "--localstatedir=/var"
480 "--sysconfdir=/etc" 476 "--sysconfdir=/etc"
481 "--enable-gtk-doc" 477 "--enable-gtk-doc")
482 ;; Otherwise the test suite fails on such a warning.
483 "CFLAGS=-Wno-error=missing-prototypes")
484 #:phases 478 #:phases
485 #~(modify-phases %standard-phases 479 #~(modify-phases %standard-phases
486 (add-after 'unpack 'fix-paths 480 (add-after 'unpack 'fix-paths
@@ -497,6 +491,13 @@ the screen.")
497 (substitute* "src/seat.c" 491 (substitute* "src/seat.c"
498 (("/bin/sh") 492 (("/bin/sh")
499 (search-input-file inputs "bin/sh"))))) 493 (search-input-file inputs "bin/sh")))))
494 ;; The check phase is re-ordered after the install phase, so the
495 ;; shared libraries referenced absolutely in the typelibs (that's
496 ;; thanks to 'gobject-introspection-absolute-shlib-path.patch') are
497 ;; found (recent pygobject raises an error otherwise).
498 (delete 'check) ;moved after install phase
499 (add-after 'install 'check
500 (assoc-ref %standard-phases 'check))
500 (add-before 'check 'pre-check 501 (add-before 'check 'pre-check
501 (lambda _ 502 (lambda _
502 (wrap-program "tests/src/test-python-greeter" 503 (wrap-program "tests/src/test-python-greeter"
@@ -536,18 +537,15 @@ the screen.")
536 intltool 537 intltool
537 libtool 538 libtool
538 vala ;for Vala bindings 539 vala ;for Vala bindings
539 ;; For tests 540 dbus
540 ;; All tests fail with dbus >= 1.15.2, see
541 ;; https://github.com/canonical/lightdm/issues/346
542 dbus-1.15.0
543 python-wrapper 541 python-wrapper
544 python-pygobject-3.50 542 python-pygobject ;<https://github.com/ubuntu/lightdm/issues/471>
545 which 543 which
546 yelp-tools)) 544 yelp-tools))
547 ;; Required by liblightdm-gobject-1.pc. 545 ;; Required by liblightdm-gobject-1.pc.
548 (propagated-inputs 546 (propagated-inputs
549 (list glib libx11 libxklavier)) 547 (list glib libx11 libxklavier))
550 (home-page "https://www.freedesktop.org/wiki/Software/LightDM/") 548 (home-page "https://github.com/ubuntu/lightdm")
551 (synopsis "Lightweight display manager") 549 (synopsis "Lightweight display manager")
552 (description "The Light Display Manager (LightDM) is a cross-desktop 550 (description "The Light Display Manager (LightDM) is a cross-desktop
553display manager which supports different greeters.") 551display manager which supports different greeters.")
diff --git a/gnu/packages/patches/lightdm-arguments-ordering.patch b/gnu/packages/patches/lightdm-arguments-ordering.patch
deleted file mode 100644
index c3b513a19a6..00000000000
--- a/gnu/packages/patches/lightdm-arguments-ordering.patch
+++ /dev/null
@@ -1,54 +0,0 @@
1When providing the VNCServer command as 'Xvnc -SecurityTypes None',
2the formatted command line used would look like:
3
4 Xvnc -SecurityTypes None :1 -auth /var/run/lightdm/root/:1
5
6which is invalid (the display number must appear first).
7
8Submitted upstream at: https://github.com/canonical/lightdm/pull/265
9
10 src/x-server-local.c | 14 +++++++++++++-
11 1 file changed, 13 insertions(+), 1 deletion(-)
12
13diff --git a/src/x-server-local.c b/src/x-server-local.c
14index 7c4ab870..6c540d18 100644
15--- a/src/x-server-local.c
16+++ b/src/x-server-local.c
17@@ -463,14 +463,20 @@ x_server_local_start (DisplayServer *display_server)
18 l_debug (display_server, "Logging to %s", log_file);
19
20 g_autofree gchar *absolute_command = get_absolute_command (priv->command);
21+ g_auto(GStrv) tokens = g_strsplit (absolute_command, " ", 2);
22+ const gchar* binary = tokens[0];
23+ const gchar *extra_options = tokens[1];
24+
25 if (!absolute_command)
26 {
27 l_debug (display_server, "Can't launch X server %s, not found in path", priv->command);
28 stopped_cb (priv->x_server_process, X_SERVER_LOCAL (server));
29 return FALSE;
30 }
31- g_autoptr(GString) command = g_string_new (absolute_command);
32+ g_autoptr(GString) command = g_string_new (binary);
33
34+ /* The display argument must be given first when the X server used
35+ * is Xvnc. */
36 g_string_append_printf (command, " :%d", priv->display_number);
37
38 if (priv->config_file)
39@@ -513,6 +519,12 @@ x_server_local_start (DisplayServer *display_server)
40 if (X_SERVER_LOCAL_GET_CLASS (server)->add_args)
41 X_SERVER_LOCAL_GET_CLASS (server)->add_args (server, command);
42
43+ /* Any extra user options provided via the VNCServer 'command'
44+ * config option are appended last, so the user can override any
45+ * of the above. */
46+ if (extra_options)
47+ g_string_append_printf (command, " %s", extra_options);
48+
49 process_set_command (priv->x_server_process, command->str);
50
51 l_debug (display_server, "Launching X Server");
52--
532.36.1
54
diff --git a/gnu/packages/patches/lightdm-vnc-color-depth.patch b/gnu/packages/patches/lightdm-vnc-color-depth.patch
deleted file mode 100644
index cd69977d6ac..00000000000
--- a/gnu/packages/patches/lightdm-vnc-color-depth.patch
+++ /dev/null
@@ -1,81 +0,0 @@
1There is no longer support for 8 bit color depth in TigerVNC (see:
2https://github.com/TigerVNC/tigervnc/commit/e86d8720ba1e79b486ca29a5c2b27fa25811e6a2);
3using it causes a fatal error.
4
5Submitted upstream at: https://github.com/canonical/lightdm/pull/265.
6
7diff --git a/data/lightdm.conf b/data/lightdm.conf
8index 0df38429..60e3e8b4 100644
9--- a/data/lightdm.conf
10+++ b/data/lightdm.conf
11@@ -160,4 +160,4 @@
12 #listen-address=
13 #width=1024
14 #height=768
15-#depth=8
16+#depth=24
17diff --git a/src/x-server-xvnc.c b/src/x-server-xvnc.c
18index 68340d53..27ca4454 100644
19--- a/src/x-server-xvnc.c
20+++ b/src/x-server-xvnc.c
21@@ -127,7 +127,7 @@ x_server_xvnc_init (XServerXVNC *server)
22 XServerXVNCPrivate *priv = x_server_xvnc_get_instance_private (server);
23 priv->width = 1024;
24 priv->height = 768;
25- priv->depth = 8;
26+ priv->depth = 24;
27 }
28
29 static void
30diff --git a/tests/scripts/vnc-command.conf b/tests/scripts/vnc-command.conf
31index 0f1e25fd..335956d9 100644
32--- a/tests/scripts/vnc-command.conf
33+++ b/tests/scripts/vnc-command.conf
34@@ -19,7 +19,7 @@ command=Xvnc -option
35 #?VNC-CLIENT CONNECT
36
37 # Xvnc server starts
38-#?XVNC-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=TRUE
39+#?XVNC-0 START GEOMETRY=1024x768 DEPTH=24 OPTION=TRUE
40
41 # Daemon connects when X server is ready
42 #?*XVNC-0 INDICATE-READY
43diff --git a/tests/scripts/vnc-guest.conf b/tests/scripts/vnc-guest.conf
44index 431bb244..ce2b97db 100644
45--- a/tests/scripts/vnc-guest.conf
46+++ b/tests/scripts/vnc-guest.conf
47@@ -21,7 +21,7 @@ user-session=default
48 #?VNC-CLIENT CONNECT
49
50 # Xvnc server starts
51-#?XVNC-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=FALSE
52+#?XVNC-0 START GEOMETRY=1024x768 DEPTH=24 OPTION=FALSE
53
54 # Daemon connects when X server is ready
55 #?*XVNC-0 INDICATE-READY
56diff --git a/tests/scripts/vnc-login.conf b/tests/scripts/vnc-login.conf
57index cdfe17b8..f0d65b7f 100644
58--- a/tests/scripts/vnc-login.conf
59+++ b/tests/scripts/vnc-login.conf
60@@ -21,7 +21,7 @@ user-session=default
61 #?VNC-CLIENT CONNECT
62
63 # Xvnc server starts
64-#?XVNC-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=FALSE
65+#?XVNC-0 START GEOMETRY=1024x768 DEPTH=24 OPTION=FALSE
66
67 # Daemon connects when X server is ready
68 #?*XVNC-0 INDICATE-READY
69diff --git a/tests/scripts/vnc-open-file-descriptors.conf b/tests/scripts/vnc-open-file-descriptors.conf
70index 753c84dd..e5d35730 100644
71--- a/tests/scripts/vnc-open-file-descriptors.conf
72+++ b/tests/scripts/vnc-open-file-descriptors.conf
73@@ -21,7 +21,7 @@ user-session=default
74 #?VNC-CLIENT CONNECT
75
76 # Xvnc server starts
77-#?XVNC-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=FALSE
78+#?XVNC-0 START GEOMETRY=1024x768 DEPTH=24 OPTION=FALSE
79
80 # Daemon connects when X server is ready
81 #?*XVNC-0 INDICATE-READY
diff --git a/gnu/packages/patches/lightdm-vnc-ipv6.patch b/gnu/packages/patches/lightdm-vnc-ipv6.patch
deleted file mode 100644
index 68e4363d3e3..00000000000
--- a/gnu/packages/patches/lightdm-vnc-ipv6.patch
+++ /dev/null
@@ -1,48 +0,0 @@
1Submitted upstream: https://github.com/canonical/lightdm/pull/312
2
3diff --git a/src/vnc-server.c b/src/vnc-server.c
4index d3500764..00a2fc02 100644
5--- a/src/vnc-server.c
6+++ b/src/vnc-server.c
7@@ -126,18 +126,10 @@ vnc_server_start (VNCServer *server)
8
9 g_return_val_if_fail (server != NULL, FALSE);
10
11- g_autoptr(GError) ipv4_error = NULL;
12- priv->socket = open_tcp_socket (G_SOCKET_FAMILY_IPV4, priv->port, priv->listen_address, &ipv4_error);
13- if (ipv4_error)
14- g_warning ("Failed to create IPv4 VNC socket: %s", ipv4_error->message);
15-
16- if (priv->socket)
17- {
18- GSource *source = g_socket_create_source (priv->socket, G_IO_IN, NULL);
19- g_source_set_callback (source, (GSourceFunc) read_cb, server, NULL);
20- g_source_attach (source, NULL);
21- }
22-
23+ // Bind to IPv6 first, as this implies binding to 0.0.0.0 in the
24+ // Linux kernel default configuration, which would otherwise cause
25+ // IPv6 clients to fail with "Error binding to address [::]:5900:
26+ // Address already in use" (#266).
27 g_autoptr(GError) ipv6_error = NULL;
28 priv->socket6 = open_tcp_socket (G_SOCKET_FAMILY_IPV6, priv->port, priv->listen_address, &ipv6_error);
29 if (ipv6_error)
30@@ -150,6 +142,18 @@ vnc_server_start (VNCServer *server)
31 g_source_attach (source, NULL);
32 }
33
34+ g_autoptr(GError) ipv4_error = NULL;
35+ priv->socket = open_tcp_socket (G_SOCKET_FAMILY_IPV4, priv->port, priv->listen_address, &ipv4_error);
36+ if (ipv4_error)
37+ g_warning ("Failed to create IPv4 VNC socket: %s", ipv4_error->message);
38+
39+ if (priv->socket)
40+ {
41+ GSource *source = g_socket_create_source (priv->socket, G_IO_IN, NULL);
42+ g_source_set_callback (source, (GSourceFunc) read_cb, server, NULL);
43+ g_source_attach (source, NULL);
44+ }
45+
46 if (!priv->socket && !priv->socket6)
47 return FALSE;
48
diff --git a/gnu/packages/patches/lightdm-vncserver-check.patch b/gnu/packages/patches/lightdm-vncserver-check.patch
deleted file mode 100644
index 0e31ff3d68a..00000000000
--- a/gnu/packages/patches/lightdm-vncserver-check.patch
+++ /dev/null
@@ -1,66 +0,0 @@
1Honor the Xvnc command specified in the config instead of using a hard-coded
2default.
3
4Submitted upstream at: https://github.com/canonical/lightdm/pull/265
5
6diff --git a/src/lightdm.c b/src/lightdm.c
7index 74f9ff2d..0ccfcd78 100644
8--- a/src/lightdm.c
9+++ b/src/lightdm.c
10@@ -349,27 +349,42 @@ start_display_manager (void)
11 /* Start the VNC server */
12 if (config_get_boolean (config_get_instance (), "VNCServer", "enabled"))
13 {
14- g_autofree gchar *path = g_find_program_in_path ("Xvnc");
15- if (path)
16+ /* Validate that a the VNC command is available. */
17+ g_autofree gchar *command = config_get_string (config_get_instance (), "VNCServer", "command");
18+ if (command)
19 {
20- vnc_server = vnc_server_new ();
21- if (config_has_key (config_get_instance (), "VNCServer", "port"))
22+ g_auto(GStrv) tokens = g_strsplit (command, " ", 2);
23+ if (!g_find_program_in_path (tokens[0]))
24 {
25- gint port = config_get_integer (config_get_instance (), "VNCServer", "port");
26- if (port > 0)
27- vnc_server_set_port (vnc_server, port);
28+ g_warning ("Can't start VNC server; command '%s' not found", tokens[0]);
29+ return;
30 }
31- g_autofree gchar *listen_address = config_get_string (config_get_instance (), "VNCServer", "listen-address");
32- vnc_server_set_listen_address (vnc_server, listen_address);
33- g_signal_connect (vnc_server, VNC_SERVER_SIGNAL_NEW_CONNECTION, G_CALLBACK (vnc_connection_cb), NULL);
34-
35- g_debug ("Starting VNC server on TCP/IP port %d", vnc_server_get_port (vnc_server));
36- vnc_server_start (vnc_server);
37 }
38 else
39- g_warning ("Can't start VNC server, Xvnc is not in the path");
40+ {
41+ /* Fallback to 'Xvnc'. */
42+ if (!g_find_program_in_path ("Xvnc")) {
43+ g_warning ("Can't start VNC server; 'Xvnc' command not found");
44+ return;
45+ }
46+ }
47+
48+ vnc_server = vnc_server_new ();
49+ if (config_has_key (config_get_instance (), "VNCServer", "port"))
50+ {
51+ gint port = config_get_integer (config_get_instance (), "VNCServer", "port");
52+ if (port > 0)
53+ vnc_server_set_port (vnc_server, port);
54+ }
55+ g_autofree gchar *listen_address = config_get_string (config_get_instance (), "VNCServer", "listen-address");
56+ vnc_server_set_listen_address (vnc_server, listen_address);
57+ g_signal_connect (vnc_server, VNC_SERVER_SIGNAL_NEW_CONNECTION, G_CALLBACK (vnc_connection_cb), NULL);
58+
59+ g_debug ("Starting VNC server on TCP/IP port %d", vnc_server_get_port (vnc_server));
60+ vnc_server_start (vnc_server);
61 }
62 }
63+
64 static void
65 service_ready_cb (DisplayManagerService *service)
66 {