Submitted upstream: https://github.com/canonical/lightdm/pull/312 diff --git a/src/vnc-server.c b/src/vnc-server.c index d3500764..00a2fc02 100644 --- a/src/vnc-server.c +++ b/src/vnc-server.c @@ -126,18 +126,10 @@ vnc_server_start (VNCServer *server) g_return_val_if_fail (server != NULL, FALSE); - g_autoptr(GError) ipv4_error = NULL; - priv->socket = open_tcp_socket (G_SOCKET_FAMILY_IPV4, priv->port, priv->listen_address, &ipv4_error); - if (ipv4_error) - g_warning ("Failed to create IPv4 VNC socket: %s", ipv4_error->message); - - if (priv->socket) - { - GSource *source = g_socket_create_source (priv->socket, G_IO_IN, NULL); - g_source_set_callback (source, (GSourceFunc) read_cb, server, NULL); - g_source_attach (source, NULL); - } - + // Bind to IPv6 first, as this implies binding to 0.0.0.0 in the + // Linux kernel default configuration, which would otherwise cause + // IPv6 clients to fail with "Error binding to address [::]:5900: + // Address already in use" (#266). g_autoptr(GError) ipv6_error = NULL; priv->socket6 = open_tcp_socket (G_SOCKET_FAMILY_IPV6, priv->port, priv->listen_address, &ipv6_error); if (ipv6_error) @@ -150,6 +142,18 @@ vnc_server_start (VNCServer *server) g_source_attach (source, NULL); } + g_autoptr(GError) ipv4_error = NULL; + priv->socket = open_tcp_socket (G_SOCKET_FAMILY_IPV4, priv->port, priv->listen_address, &ipv4_error); + if (ipv4_error) + g_warning ("Failed to create IPv4 VNC socket: %s", ipv4_error->message); + + if (priv->socket) + { + GSource *source = g_socket_create_source (priv->socket, G_IO_IN, NULL); + g_source_set_callback (source, (GSourceFunc) read_cb, server, NULL); + g_source_attach (source, NULL); + } + if (!priv->socket && !priv->socket6) return FALSE; on>
path: root/gnu/system/mapped-devices.scm
ts/substitute.scm (%default-substitute-urls): Likewise. * guix/store.scm (%default-substitute-urls): Likewise. * guix/self.scm (miscellaneous-files): Add "ci.guix.gnu.org".
AgeCommit message (Expand)Author
2022-04-08mapped-devices: Ensure 'cryptsetup open' gets a tty....Fixes <https://issues.guix.gnu.org/54770>. Regression introduced in 400c9ed3d779308e56038305d40cd93acb496180. Previously, for an encrypted /home (say), "cryptsetup open" would be invoked by shepherd, with /dev/null as its standard input. It would thus run in non-interactive mode and, instead of asking for a passphrase, fail with: Nothing to read on input. This change ensures it runs in interactive mode. * gnu/build/file-systems.scm (system*/console, system*/tty): New procedures. * gnu/system/mapped-devices.scm (open-luks-device): Use 'system*/tty' instead of 'system*'. Ludovic Courtès
2021-12-01gnu: system: Add LUKS2 support for the root file system....* gnu/bootloader/grub.scm (grub-configuration-file): Add 'insmod luks2'. * gnu/system/mapped-devices.scm (open-luks-device): Create '/run/cryptsetup/' directory. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret
Ludovic Courtès