From 6ce94b9c23b1d9f1fe1fb341469d960feb702859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Torres=20L=C3=B3pez?= Date: Fri, 13 Jun 2025 14:19:01 +0200 Subject: [PATCH] Update patches to avoid conflict Just reducing the patch context fixes the conflict. --- 0001-display-Add-new-FAILING-state.patch | 174 +---------- ...it-plymouth-at-first-sign-of-failure.patch | 293 +----------------- 2 files changed, 16 insertions(+), 451 deletions(-) diff --git a/0001-display-Add-new-FAILING-state.patch b/0001-display-Add-new-FAILING-state.patch index fd82498..a8d4887 100644 --- a/0001-display-Add-new-FAILING-state.patch +++ b/0001-display-Add-new-FAILING-state.patch @@ -16,37 +16,10 @@ d# 3 files changed, 4 insertions(+) diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c -index 9438fe72c..0e6249896 100644 +index 3446785..b8af350 100644 --- a/daemon/gdm-display.c +++ b/daemon/gdm-display.c -@@ -667,60 +667,61 @@ gdm_display_disconnect (GdmDisplay *self) - xcb_flush (priv->xcb_connection); - - g_clear_pointer (&priv->xcb_connection, xcb_disconnect); - } - - gboolean - gdm_display_unmanage (GdmDisplay *self) - { - GdmDisplayPrivate *priv; - - g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); - - priv = gdm_display_get_instance_private (self); - - gdm_display_disconnect (self); - - if (priv->user_access_file != NULL) { - gdm_display_access_file_close (priv->user_access_file); - g_object_unref (priv->user_access_file); - priv->user_access_file = NULL; - } - - if (priv->access_file != NULL) { - gdm_display_access_file_close (priv->access_file); - g_object_unref (priv->access_file); - priv->access_file = NULL; - } +@@ -694,6 +694,7 @@ gdm_display_unmanage (GdmDisplay *self) if (!priv->session_registered) { g_warning ("GdmDisplay: Session never registered, failing"); @@ -54,65 +27,11 @@ index 9438fe72c..0e6249896 100644 _gdm_display_set_status (self, GDM_DISPLAY_FAILED); } else { _gdm_display_set_status (self, GDM_DISPLAY_UNMANAGED); - } - - return TRUE; - } - - gboolean - gdm_display_get_id (GdmDisplay *self, - char **id, - GError **error) - { - GdmDisplayPrivate *priv; - - g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); - - priv = gdm_display_get_instance_private (self); - if (id != NULL) { - *id = g_strdup (priv->id); - } - - return TRUE; - } - - gboolean - gdm_display_get_x11_display_name (GdmDisplay *self, - char **x11_display, - GError **error) - { diff --git a/daemon/gdm-display.h b/daemon/gdm-display.h -index ef3736cd3..bd048cd0d 100644 +index ef3736c..bd048cd 100644 --- a/daemon/gdm-display.h +++ b/daemon/gdm-display.h -@@ -9,60 +9,61 @@ - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - */ - - - #ifndef __GDM_DISPLAY_H - #define __GDM_DISPLAY_H - - #include - #include - - G_BEGIN_DECLS - - #define GDM_TYPE_DISPLAY (gdm_display_get_type ()) - G_DECLARE_DERIVABLE_TYPE (GdmDisplay, gdm_display, GDM, DISPLAY, GObject) - - typedef enum { - GDM_DISPLAY_UNMANAGED = 0, - GDM_DISPLAY_PREPARED, +@@ -36,6 +36,7 @@ typedef enum { GDM_DISPLAY_MANAGED, GDM_DISPLAY_WAITING_TO_FINISH, GDM_DISPLAY_FINISHED, @@ -120,65 +39,11 @@ index ef3736cd3..bd048cd0d 100644 GDM_DISPLAY_FAILED, } GdmDisplayStatus; - struct _GdmDisplayClass - { - GObjectClass parent_class; - - /* methods */ - gboolean (*prepare) (GdmDisplay *display); - void (*manage) (GdmDisplay *self); - }; - - typedef enum - { - GDM_DISPLAY_ERROR_GENERAL, - GDM_DISPLAY_ERROR_GETTING_USER_INFO, - GDM_DISPLAY_ERROR_GETTING_SESSION_INFO, - } GdmDisplayError; - - #define GDM_DISPLAY_ERROR gdm_display_error_quark () - - GQuark gdm_display_error_quark (void); - - int gdm_display_get_status (GdmDisplay *display); - time_t gdm_display_get_creation_time (GdmDisplay *display); - char * gdm_display_open_session_sync (GdmDisplay *display, - GPid pid_of_caller, - uid_t uid_of_caller, - GCancellable *cancellable, - GError **error); diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c -index 61522dbf0..5dc0aebe5 100644 +index 61b7b45..6df9e84 100644 --- a/daemon/gdm-local-display-factory.c +++ b/daemon/gdm-local-display-factory.c -@@ -544,60 +544,62 @@ on_display_status_changed (GdmDisplay *display, - "is-initial", &is_initial, - "is-local", &is_local, - "session-type", &session_type, - "session-class", &session_class, - NULL); - - status = gdm_display_get_status (display); - - g_debug ("GdmLocalDisplayFactory: display status changed: %d", status); - switch (status) { - case GDM_DISPLAY_FINISHED: - /* remove the display number from factory->used_display_numbers - so that it may be reused */ - if (num != -1) { - g_hash_table_remove (factory->used_display_numbers, GUINT_TO_POINTER (num)); - } - gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory)); - - /* if this is a local display, do a full resync. Only - * seats without displays will get created anyway. This - * ensures we get a new login screen when the user logs out, - * if there isn't one. - */ - if (is_local && g_strcmp0 (session_class, "greeter") != 0) { - /* reset num failures */ - factory->num_failures = 0; - +@@ -577,6 +577,8 @@ on_display_status_changed (GdmDisplay *display, gdm_local_display_factory_sync_seats (factory); } break; @@ -187,33 +52,6 @@ index 61522dbf0..5dc0aebe5 100644 case GDM_DISPLAY_FAILED: /* leave the display number in factory->used_display_numbers so that it doesn't get reused */ - gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory)); - - /* Create a new equivalent display if it was static */ - if (is_local) { - - factory->num_failures++; - - /* oh shit */ - if (factory->num_failures > MAX_DISPLAY_FAILURES) - g_warning ("GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors"); - else - ensure_display_for_seat (factory, seat_id); - } - break; - case GDM_DISPLAY_UNMANAGED: - break; - case GDM_DISPLAY_PREPARED: - break; - case GDM_DISPLAY_MANAGED: - #if defined(ENABLE_USER_DISPLAY_SERVER) - g_signal_connect_object (display, - "notify::session-registered", - G_CALLBACK (on_session_registered_cb), - factory, - 0); - #endif - break; -- 2.44.0 diff --git a/0002-manager-Quit-plymouth-at-first-sign-of-failure.patch b/0002-manager-Quit-plymouth-at-first-sign-of-failure.patch index 5c5d8bf..ee8ceb8 100644 --- a/0002-manager-Quit-plymouth-at-first-sign-of-failure.patch +++ b/0002-manager-Quit-plymouth-at-first-sign-of-failure.patch @@ -13,37 +13,10 @@ of display servers. 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/common/gdm-address.c b/common/gdm-address.c -index a8b73e286..3a507d0af 100644 +index a8b73e2..3a507d0 100644 --- a/common/gdm-address.c +++ b/common/gdm-address.c -@@ -107,61 +107,61 @@ gdm_address_new_from_sockaddr (struct sockaddr *sa, - - g_return_val_if_fail (sa != NULL, NULL); - g_return_val_if_fail (size >= sizeof (struct sockaddr), NULL); - g_return_val_if_fail (size <= sizeof (struct sockaddr_storage), NULL); - - addr = g_new0 (GdmAddress, 1); - addr->ss = g_new0 (struct sockaddr_storage, 1); - memcpy (addr->ss, sa, size); - - return addr; - } - - /** - * gdm_address_get_sockaddr_storage: - * @address: A #GdmAddress - * - * This function tanslates @address into a equivalent - * sockaddr_storage - * - * Return value: A newly allocated sockaddr_storage structure the caller must free - * or %NULL if @address did not point to a valid #GdmAddress. - **/ - struct sockaddr_storage * - gdm_address_get_sockaddr_storage (GdmAddress *address) - { - struct sockaddr_storage *ss; - +@@ -134,7 +134,7 @@ gdm_address_get_sockaddr_storage (GdmAddress *address) g_return_val_if_fail (address != NULL, NULL); g_return_val_if_fail (address->ss != NULL, NULL); @@ -52,61 +25,7 @@ index a8b73e286..3a507d0af 100644 return ss; } - - struct sockaddr_storage * - gdm_address_peek_sockaddr_storage (GdmAddress *address) - { - g_return_val_if_fail (address != NULL, NULL); - - return address->ss; - } - - static gboolean - v4_v4_equal (const struct sockaddr_in *a, - const struct sockaddr_in *b) - { - return a->sin_addr.s_addr == b->sin_addr.s_addr; - } - - #ifdef ENABLE_IPV6 - static gboolean - v6_v6_equal (struct sockaddr_in6 *a, - struct sockaddr_in6 *b) - { - return IN6_ARE_ADDR_EQUAL (&a->sin6_addr, &b->sin6_addr); - } - #endif - - #define SA(__s) ((struct sockaddr *) __s) - #define SIN(__s) ((struct sockaddr_in *) __s) -@@ -502,50 +502,50 @@ gdm_address_is_local (GdmAddress *address) - - while (list != NULL) { - GdmAddress *addr = list->data; - - if (gdm_address_equal (address, addr)) { - return TRUE; - } - - list = list->next; - } - - return FALSE; - } - - /** - * gdm_address_copy: - * @address: A #GdmAddress. - * - * Duplicates @address. - * - * Return value: Duplicated @address or %NULL if @address was not valid. - **/ - GdmAddress * - gdm_address_copy (GdmAddress *address) - { - GdmAddress *addr; - +@@ -529,7 +529,7 @@ gdm_address_copy (GdmAddress *address) g_return_val_if_fail (address != NULL, NULL); addr = g_new0 (GdmAddress, 1); @@ -115,54 +34,11 @@ index a8b73e286..3a507d0af 100644 return addr; } - - /** - * gdm_address_free: - * @address: A #GdmAddress. - * - * Frees the memory allocated for @address. - **/ - void - gdm_address_free (GdmAddress *address) - { - g_return_if_fail (address != NULL); - - g_free (address->ss); - g_free (address); - } - diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c -index 08c3cc177..100b967fb 100644 +index 7a68d52..23734e8 100644 --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c -@@ -1551,70 +1551,75 @@ on_display_status_changed (GdmDisplay *display, - - g_object_get (display, - "is-local", &display_is_local, - NULL); - quit_plymouth = display_is_local && manager->priv->plymouth_is_running; - #endif - - g_object_get (display, - "x11-display-number", &display_number, - "session-type", &session_type, - "doing-initial-setup", &doing_initial_setup, - NULL); - - status = gdm_display_get_status (display); - - switch (status) { - case GDM_DISPLAY_PREPARED: - case GDM_DISPLAY_MANAGED: - if ((display_number == -1 && status == GDM_DISPLAY_PREPARED) || - (display_number != -1 && status == GDM_DISPLAY_MANAGED)) { - char *session_class; - - g_object_get (display, - "session-class", &session_class, - NULL); - if (g_strcmp0 (session_class, "greeter") == 0) - set_up_session (manager, display); +@@ -1545,6 +1545,8 @@ on_display_status_changed (GdmDisplay *display, g_free (session_class); } break; @@ -171,10 +47,7 @@ index 08c3cc177..100b967fb 100644 case GDM_DISPLAY_FAILED: case GDM_DISPLAY_UNMANAGED: case GDM_DISPLAY_FINISHED: - #ifdef WITH_PLYMOUTH - if (quit_plymouth) { - plymouth_quit_without_transition (); - manager->priv->plymouth_is_running = FALSE; +@@ -1555,6 +1557,9 @@ on_display_status_changed (GdmDisplay *display, } #endif @@ -184,65 +57,11 @@ index 08c3cc177..100b967fb 100644 g_object_set_data (G_OBJECT (display), "gdm-user-session", NULL); if (display == manager->priv->automatic_login_display) { - g_clear_weak_pointer (&manager->priv->automatic_login_display); - - manager->priv->did_automatic_login = TRUE; - - #ifdef ENABLE_WAYLAND_SUPPORT - if (g_strcmp0 (session_type, "wayland") != 0 && status == GDM_DISPLAY_FAILED) { - /* we're going to fall back to X11, so try to autologin again - */ - manager->priv->did_automatic_login = FALSE; - } - #endif - } - break; - default: - break; - } - - } - - static void - on_display_removed (GdmDisplayStore *display_store, - GdmDisplay *display, - GdmManager *manager) - { - char *id; - - gdm_display_get_id (display, &id, NULL); diff --git a/daemon/gdm-xdmcp-display-factory.c b/daemon/gdm-xdmcp-display-factory.c -index abb58faeb..e82cfe1b4 100644 +index abb58fa..e82cfe1 100644 --- a/daemon/gdm-xdmcp-display-factory.c +++ b/daemon/gdm-xdmcp-display-factory.c -@@ -891,87 +891,87 @@ gdm_xdmcp_send_unwilling (GdmXdmcpDisplayFactory *factory, - header.length = 4 + factory->servhost.length + status.length; - header.version = XDM_PROTOCOL_VERSION; - XdmcpWriteHeader (&factory->buf, &header); - - XdmcpWriteARRAY8 (&factory->buf, &factory->servhost); - XdmcpWriteARRAY8 (&factory->buf, &status); - XdmcpFlush (factory->socket_fd, - &factory->buf, - (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), - (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); - - last_time = time (NULL); - } - - #define SIN(__s) ((struct sockaddr_in *) __s) - #define SIN6(__s) ((struct sockaddr_in6 *) __s) - - static void - set_port_for_request (GdmAddress *address, - ARRAY8 *port) - { - struct sockaddr_storage *ss; - - ss = gdm_address_peek_sockaddr_storage (address); - - /* we depend on this being 2 elsewhere as well */ - port->length = 2; +@@ -918,10 +918,10 @@ set_port_for_request (GdmAddress *address, switch (ss->ss_family) { case AF_INET: @@ -255,18 +74,7 @@ index abb58faeb..e82cfe1b4 100644 break; default: port->data = NULL; - break; - } - } - - static void - set_address_for_request (GdmAddress *address, - ARRAY8 *addr) - { - struct sockaddr_storage *ss; - - ss = gdm_address_peek_sockaddr_storage (address); - +@@ -940,11 +940,11 @@ set_address_for_request (GdmAddress *address, switch (ss->ss_family) { case AF_INET: addr->length = sizeof (struct in_addr); @@ -280,61 +88,7 @@ index abb58faeb..e82cfe1b4 100644 break; default: addr->length = 0; - addr->data = NULL; - break; - } - - } - - static void - gdm_xdmcp_send_forward_query (GdmXdmcpDisplayFactory *factory, - IndirectClient *ic, - GdmAddress *address, - GdmAddress *display_address, - ARRAYofARRAY8Ptr authlist) - { - XdmcpHeader header; - int i; - ARRAY8 addr; - ARRAY8 port; - char *host; - char *serv; - - g_assert (ic != NULL); - g_assert (ic->chosen_address != NULL); - - host = NULL; - gdm_address_get_numeric_info (ic->chosen_address, &host, NULL); - g_debug ("GdmXdmcpDisplayFactory: Sending forward query to %s", - host ? host : "(null)"); -@@ -2063,60 +2063,62 @@ on_display_status_changed (GdmDisplay *display, - { - int status; - GdmLaunchEnvironment *launch_environment; - GdmSession *session; - GdmAddress *address; - gint32 session_number; - int display_number; - - launch_environment = NULL; - g_object_get (display, "launch-environment", &launch_environment, NULL); - - session = NULL; - if (launch_environment != NULL) { - session = gdm_launch_environment_get_session (launch_environment); - } - - status = gdm_display_get_status (display); - - g_debug ("GdmXdmcpDisplayFactory: xdmcp display status changed: %d", status); - switch (status) { - case GDM_DISPLAY_FINISHED: - g_object_get (display, - "remote-address", &address, - "x11-display-number", &display_number, - "session-number", &session_number, - NULL); - gdm_xdmcp_send_alive (factory, address, display_number, session_number); +@@ -2090,6 +2090,8 @@ on_display_status_changed (GdmDisplay *display, gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory)); break; @@ -343,33 +97,6 @@ index abb58faeb..e82cfe1b4 100644 case GDM_DISPLAY_FAILED: gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory)); break; - case GDM_DISPLAY_UNMANAGED: - if (session != NULL) { - g_signal_handlers_disconnect_by_func (G_OBJECT (session), - G_CALLBACK (on_client_disconnected), - display); - } - break; - case GDM_DISPLAY_PREPARED: - break; - case GDM_DISPLAY_MANAGED: - if (session != NULL) { - g_signal_connect_object (G_OBJECT (session), - "client-disconnected", - G_CALLBACK (on_client_disconnected), - display, G_CONNECT_SWAPPED); - g_signal_connect_object (G_OBJECT (session), - "disconnected", - G_CALLBACK (on_client_disconnected), - display, G_CONNECT_SWAPPED); - } - break; - default: - g_assert_not_reached (); - break; - } - - g_clear_object (&launch_environment); -- 2.44.0