diff options
| author | Maxim Cournoyer <maxim@guixotic.coop> | 2026-08-31 17:47:43 +0900 |
|---|---|---|
| committer | Maxim Cournoyer <maxim@guixotic.coop> | 2026-08-31 23:00:07 +0900 |
| commit | e4551d1475d2879d3570611000fbb14a7c5a4f9c (patch) | |
| tree | cce762cc73d06d83ac0c138e0163cabcd2708928 | |
| parent | 3c65d35b60436fd1f1b9276cf1cc31d1f812d398 (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.mk | 4 | ||||
| -rw-r--r-- | gnu/packages/display-managers.scm | 32 | ||||
| -rw-r--r-- | gnu/packages/patches/lightdm-arguments-ordering.patch | 54 | ||||
| -rw-r--r-- | gnu/packages/patches/lightdm-vnc-color-depth.patch | 81 | ||||
| -rw-r--r-- | gnu/packages/patches/lightdm-vnc-ipv6.patch | 48 | ||||
| -rw-r--r-- | gnu/packages/patches/lightdm-vncserver-check.patch | 66 |
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 |
| 553 | display manager which supports different greeters.") | 551 | display 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 @@ | |||
| 1 | When providing the VNCServer command as 'Xvnc -SecurityTypes None', | ||
| 2 | the formatted command line used would look like: | ||
| 3 | |||
| 4 | Xvnc -SecurityTypes None :1 -auth /var/run/lightdm/root/:1 | ||
| 5 | |||
| 6 | which is invalid (the display number must appear first). | ||
| 7 | |||
| 8 | Submitted 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 | |||
| 13 | diff --git a/src/x-server-local.c b/src/x-server-local.c | ||
| 14 | index 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 | -- | ||
| 53 | 2.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 @@ | |||
| 1 | There is no longer support for 8 bit color depth in TigerVNC (see: | ||
| 2 | https://github.com/TigerVNC/tigervnc/commit/e86d8720ba1e79b486ca29a5c2b27fa25811e6a2); | ||
| 3 | using it causes a fatal error. | ||
| 4 | |||
| 5 | Submitted upstream at: https://github.com/canonical/lightdm/pull/265. | ||
| 6 | |||
| 7 | diff --git a/data/lightdm.conf b/data/lightdm.conf | ||
| 8 | index 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 | ||
| 17 | diff --git a/src/x-server-xvnc.c b/src/x-server-xvnc.c | ||
| 18 | index 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 | ||
| 30 | diff --git a/tests/scripts/vnc-command.conf b/tests/scripts/vnc-command.conf | ||
| 31 | index 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 | ||
| 43 | diff --git a/tests/scripts/vnc-guest.conf b/tests/scripts/vnc-guest.conf | ||
| 44 | index 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 | ||
| 56 | diff --git a/tests/scripts/vnc-login.conf b/tests/scripts/vnc-login.conf | ||
| 57 | index 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 | ||
| 69 | diff --git a/tests/scripts/vnc-open-file-descriptors.conf b/tests/scripts/vnc-open-file-descriptors.conf | ||
| 70 | index 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 @@ | |||
| 1 | Submitted upstream: https://github.com/canonical/lightdm/pull/312 | ||
| 2 | |||
| 3 | diff --git a/src/vnc-server.c b/src/vnc-server.c | ||
| 4 | index 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 @@ | |||
| 1 | Honor the Xvnc command specified in the config instead of using a hard-coded | ||
| 2 | default. | ||
| 3 | |||
| 4 | Submitted upstream at: https://github.com/canonical/lightdm/pull/265 | ||
| 5 | |||
| 6 | diff --git a/src/lightdm.c b/src/lightdm.c | ||
| 7 | index 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 | { | ||
