git: f3439a4562fe - main - x11/gdm: Update to 42.0

From: Neel Chauhan <nc_at_FreeBSD.org>
Date: Tue, 22 Mar 2022 22:02:21 UTC
The branch main has been updated by nc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f3439a4562feb90d08d7a174218d5b39f78d3663

commit f3439a4562feb90d08d7a174218d5b39f78d3663
Author:     Neel Chauhan <nc@FreeBSD.org>
AuthorDate: 2022-03-22 22:02:18 +0000
Commit:     Neel Chauhan <nc@FreeBSD.org>
CommitDate: 2022-03-22 22:02:18 +0000

    x11/gdm: Update to 42.0
---
 x11/gdm/Makefile                                   |  5 +-
 x11/gdm/distinfo                                   |  6 +-
 .../files/patch-daemon_gdm-local-display-factory.c | 70 +++++++++++++---------
 x11/gdm/files/patch-daemon_gdm-session-worker.c    | 11 +---
 x11/gdm/files/patch-daemon_main.c                  |  8 +--
 x11/gdm/files/patch-daemon_meson.build             |  6 +-
 x11/gdm/files/patch-data_61-gdm.rules.in           | 23 -------
 x11/gdm/files/patch-data_Init.in                   | 22 +++----
 x11/gdm/files/patch-data_PostSession.in            |  4 +-
 x11/gdm/files/patch-data_PreSession.in             |  6 +-
 .../files/patch-data_pam-exherbo_gdm-autologin.pam | 20 -------
 .../patch-data_pam-exherbo_gdm-fingerprint.pam     | 25 --------
 ...tch-data_pam-exherbo_gdm-launch-environment.pam | 25 --------
 .../files/patch-data_pam-exherbo_gdm-password.pam  | 20 -------
 .../files/patch-data_pam-exherbo_gdm-smartcard.pam | 28 ---------
 x11/gdm/files/patch-meson.build                    | 11 ++--
 16 files changed, 77 insertions(+), 213 deletions(-)

diff --git a/x11/gdm/Makefile b/x11/gdm/Makefile
index 3e4ea839fa38..d724d456eee5 100644
--- a/x11/gdm/Makefile
+++ b/x11/gdm/Makefile
@@ -1,14 +1,13 @@
 # Created by: Joe Marcus Clarke <marcus@FreeBSD.org>
 
 PORTNAME=	gdm
-PORTVERSION=	41.3
-PORTREVISION=	2
+PORTVERSION=	42.0
 CATEGORIES=	x11 gnome
 MASTER_SITES=	GNOME/sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+)\..*/\1/}
 DIST_SUBDIR=	gnome
 
 MAINTAINER=	gnome@FreeBSD.org
-COMMENT=	GNOME 3 display manager
+COMMENT=	GNOME display manager
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/COPYING
diff --git a/x11/gdm/distinfo b/x11/gdm/distinfo
index 01635d103c86..a80583954905 100644
--- a/x11/gdm/distinfo
+++ b/x11/gdm/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1643405191
-SHA256 (gnome/gdm-41.3.tar.xz) = bb0b650a7cea90f09a33284fbd02975315407efc18e814009852d1bcad3437d4
-SIZE (gnome/gdm-41.3.tar.xz) = 807452
+TIMESTAMP = 1647984111
+SHA256 (gnome/gdm-42.0.tar.xz) = a328ac976937bec179971ff07829a1246b98ce724181c128ae32a0ba47ad3855
+SIZE (gnome/gdm-42.0.tar.xz) = 811200
diff --git a/x11/gdm/files/patch-daemon_gdm-local-display-factory.c b/x11/gdm/files/patch-daemon_gdm-local-display-factory.c
index d9b65326ca26..5219f30fc618 100644
--- a/x11/gdm/files/patch-daemon_gdm-local-display-factory.c
+++ b/x11/gdm/files/patch-daemon_gdm-local-display-factory.c
@@ -1,16 +1,20 @@
---- daemon/gdm-local-display-factory.c.orig	2022-01-12 14:15:56 UTC
+--- daemon/gdm-local-display-factory.c.orig	2022-03-21 18:12:40 UTC
 +++ daemon/gdm-local-display-factory.c
-@@ -28,7 +28,9 @@
- #include <glib-object.h>
+@@ -29,10 +29,12 @@
  #include <gio/gio.h>
  
+ #ifdef HAVE_UDEV
+-#include <gudev/gudev.h>
++#undef HAVE_UDEV
+ #endif
+ 
 +#ifdef WITH_SYSTEMD
  #include <systemd/sd-login.h>
 +#endif
  
  #include "gdm-common.h"
  #include "gdm-manager.h"
-@@ -61,8 +63,10 @@ struct _GdmLocalDisplayFactory
+@@ -68,8 +70,10 @@ struct _GdmLocalDisplayFactory
          /* FIXME: this needs to be per seat? */
          guint            num_failures;
  
@@ -20,8 +24,8 @@
 +#endif
          guint            seat_properties_changed_id;
  
-         gboolean         seat0_graphics_check_timed_out;
-@@ -94,9 +98,11 @@ static void     on_display_status_changed             
+         gboolean         seat0_has_platform_graphics;
+@@ -106,9 +110,11 @@ static gpointer local_display_factory_object = NULL;
  
  static gboolean gdm_local_display_factory_sync_seats    (GdmLocalDisplayFactory *factory);
  static gpointer local_display_factory_object = NULL;
@@ -33,7 +37,7 @@
  
  G_DEFINE_TYPE (GdmLocalDisplayFactory, gdm_local_display_factory, GDM_TYPE_DISPLAY_FACTORY)
  
-@@ -233,9 +239,9 @@ struct GdmDisplayServerConfiguration {
+@@ -245,9 +251,9 @@ struct GdmDisplayServerConfiguration {
          const char *session_type;
  } display_server_configuration[] = {
  #ifdef ENABLE_WAYLAND_SUPPORT
@@ -45,7 +49,15 @@
          { NULL, NULL, NULL },
  };
  
-@@ -439,6 +445,7 @@ gdm_local_display_factory_create_transient_display (Gd
+@@ -373,7 +379,6 @@ gdm_local_display_factory_create_transient_display (Gd
+         gboolean         ret;
+         GdmDisplay      *display = NULL;
+         gboolean         is_initial = FALSE;
+-        const char      *session_type;
+         g_autofree gchar *preferred_display_server = NULL;
+ 
+         g_return_val_if_fail (GDM_IS_LOCAL_DISPLAY_FACTORY (factory), FALSE);
+@@ -451,6 +456,7 @@ gdm_local_display_factory_create_transient_display (Gd
          return ret;
  }
  
@@ -53,7 +65,7 @@
  static void
  finish_display_on_seat_if_waiting (GdmDisplayStore *display_store,
                                     GdmDisplay      *display,
-@@ -493,6 +500,7 @@ on_session_registered_cb (GObject *gobject,
+@@ -505,6 +511,7 @@ on_session_registered_cb (GObject *gobject,
  
          finish_waiting_displays_on_seat (factory, "seat0");
  }
@@ -61,7 +73,7 @@
  
  static void
  on_display_status_changed (GdmDisplay             *display,
-@@ -540,7 +548,7 @@ on_display_status_changed (GdmDisplay             *dis
+@@ -552,7 +559,7 @@ on_display_status_changed (GdmDisplay             *dis
                   * if there isn't one.
                   */
                  if (is_local &&
@@ -70,7 +82,7 @@
                          /* reset num failures */
                          factory->num_failures = 0;
  
-@@ -649,7 +657,9 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
+@@ -741,7 +748,9 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
          const char *legacy_session_types[] = { "x11", NULL };
          GdmDisplayStore *store;
          GdmDisplay      *display = NULL;
@@ -80,8 +92,8 @@
          gboolean wayland_enabled = FALSE, xorg_enabled = FALSE;
          g_autofree gchar *preferred_display_server = NULL;
          gboolean falling_back = FALSE;
-@@ -679,7 +689,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
-                 seat_supports_graphics = TRUE;
+@@ -781,7 +790,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
+                seat_supports_graphics = FALSE;
          }
  
 -        if (g_strcmp0 (seat_id, "seat0") == 0) {
@@ -89,7 +101,7 @@
                  is_seat0 = TRUE;
  
                  falling_back = factory->num_failures > 0;
-@@ -767,6 +777,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
+@@ -869,6 +878,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
                  return;
          }
  
@@ -97,7 +109,7 @@
          /* If we already have a login window, switch to it */
          if (gdm_get_login_window_session_id (seat_id, &login_session_id)) {
                  GdmDisplay *display;
-@@ -784,6 +795,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
+@@ -886,6 +896,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
                          return;
                  }
          }
@@ -105,7 +117,7 @@
  
          g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", seat_id);
  
-@@ -827,6 +839,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
+@@ -929,6 +940,7 @@ ensure_display_for_seat (GdmLocalDisplayFactory *facto
          return;
  }
  
@@ -113,7 +125,7 @@
  static void
  delete_display (GdmLocalDisplayFactory *factory,
                  const char             *seat_id) {
-@@ -838,6 +851,7 @@ delete_display (GdmLocalDisplayFactory *factory,
+@@ -940,6 +952,7 @@ delete_display (GdmLocalDisplayFactory *factory,
          store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory));
          gdm_display_store_foreach_remove (store, lookup_by_seat_id, (gpointer) seat_id);
  }
@@ -121,7 +133,7 @@
  
  static gboolean
  gdm_local_display_factory_sync_seats (GdmLocalDisplayFactory *factory)
-@@ -849,6 +863,8 @@ gdm_local_display_factory_sync_seats (GdmLocalDisplayF
+@@ -951,6 +964,8 @@ gdm_local_display_factory_sync_seats (GdmLocalDisplayF
          const char *seat;
  
          g_debug ("GdmLocalDisplayFactory: enumerating seats from logind");
@@ -130,7 +142,7 @@
          result = g_dbus_connection_call_sync (factory->connection,
                                                "org.freedesktop.login1",
                                                "/org/freedesktop/login1",
-@@ -859,6 +875,18 @@ gdm_local_display_factory_sync_seats (GdmLocalDisplayF
+@@ -961,6 +976,18 @@ gdm_local_display_factory_sync_seats (GdmLocalDisplayF
                                                G_DBUS_CALL_FLAGS_NONE,
                                                -1,
                                                NULL, &error);
@@ -149,7 +161,7 @@
  
          if (!result) {
                  g_warning ("GdmLocalDisplayFactory: Failed to issue method call: %s", error->message);
-@@ -878,6 +906,7 @@ gdm_local_display_factory_sync_seats (GdmLocalDisplayF
+@@ -980,6 +1007,7 @@ gdm_local_display_factory_sync_seats (GdmLocalDisplayF
          return TRUE;
  }
  
@@ -157,7 +169,7 @@
  static void
  on_seat_new (GDBusConnection *connection,
               const gchar     *sender_name,
-@@ -989,6 +1018,7 @@ lookup_by_tty (const char *id,
+@@ -1093,6 +1121,7 @@ lookup_by_tty (const char *id,
  
          return g_strcmp0 (tty_to_check, tty_to_find) == 0;
  }
@@ -165,7 +177,7 @@
  
  #if defined(ENABLE_USER_DISPLAY_SERVER)
  static void
-@@ -1166,6 +1196,7 @@ on_vt_changed (GIOChannel    *source,
+@@ -1295,6 +1324,7 @@ on_uevent (GUdevClient *client,
  }
  #endif
  
@@ -173,7 +185,7 @@
  static void
  gdm_local_display_factory_start_monitor (GdmLocalDisplayFactory *factory)
  {
-@@ -1215,10 +1246,12 @@ gdm_local_display_factory_start_monitor (GdmLocalDispl
+@@ -1352,10 +1382,12 @@ gdm_local_display_factory_start_monitor (GdmLocalDispl
          }
  #endif
  }
@@ -182,11 +194,11 @@
  static void
  gdm_local_display_factory_stop_monitor (GdmLocalDisplayFactory *factory)
  {
-+#ifdef WITH_SYSTEMD
-         if (factory->seat_new_id) {
-                 g_dbus_connection_signal_unsubscribe (factory->connection,
-                                                       factory->seat_new_id);
-@@ -1244,6 +1277,7 @@ gdm_local_display_factory_stop_monitor (GdmLocalDispla
++#ifdef HAVE_UDEV
+         if (factory->uevent_handler_id) {
+                 g_signal_handler_disconnect (factory->gudev_client, factory->uevent_handler_id);
+                 factory->uevent_handler_id = 0;
+@@ -1387,6 +1419,7 @@ gdm_local_display_factory_stop_monitor (GdmLocalDispla
                  factory->wait_to_finish_timeout_id = 0;
          }
  #endif
@@ -194,7 +206,7 @@
  }
  
  static void
-@@ -1298,7 +1332,9 @@ gdm_local_display_factory_start (GdmDisplayFactory *ba
+@@ -1441,7 +1474,9 @@ gdm_local_display_factory_start (GdmDisplayFactory *ba
                                   factory,
                                   0);
  
diff --git a/x11/gdm/files/patch-daemon_gdm-session-worker.c b/x11/gdm/files/patch-daemon_gdm-session-worker.c
index a05cb45b5d4c..23d9aaa34d46 100644
--- a/x11/gdm/files/patch-daemon_gdm-session-worker.c
+++ b/x11/gdm/files/patch-daemon_gdm-session-worker.c
@@ -1,4 +1,4 @@
---- daemon/gdm-session-worker.c.orig	2022-01-12 14:15:56 UTC
+--- daemon/gdm-session-worker.c.orig	2022-03-21 18:12:40 UTC
 +++ daemon/gdm-session-worker.c
 @@ -28,9 +28,11 @@
  #include <string.h>
@@ -22,15 +22,6 @@
  
  #ifdef ENABLE_SYSTEMD_JOURNAL
  #include <systemd/sd-journal.h>
-@@ -94,7 +98,7 @@
- #endif
- 
- #ifndef GDM_SESSION_DEFAULT_PATH
--#define GDM_SESSION_DEFAULT_PATH "/usr/local/bin:/usr/bin:/bin"
-+#define GDM_SESSION_DEFAULT_PATH "%%LOCALBASE%%/bin:/usr/bin:/bin"
- #endif
- 
- #ifndef GDM_SESSION_ROOT_UID
 @@ -126,6 +130,10 @@ struct GdmSessionWorkerPrivate
  
          int               exit_code;
diff --git a/x11/gdm/files/patch-daemon_main.c b/x11/gdm/files/patch-daemon_main.c
index abdcc0604e97..bf8e2ba56b83 100644
--- a/x11/gdm/files/patch-daemon_main.c
+++ b/x11/gdm/files/patch-daemon_main.c
@@ -1,6 +1,6 @@
---- daemon/main.c.orig	2022-01-12 14:15:56 UTC
+--- daemon/main.c.orig	2022-03-21 18:12:40 UTC
 +++ daemon/main.c
-@@ -289,6 +289,7 @@ is_debug_set (void)
+@@ -281,6 +281,7 @@ is_debug_set (void)
          return debug;
  }
  
@@ -8,7 +8,7 @@
  /* SIGUSR1 is used by the X server to tell us that we're ready, so
   * block it. We'll unblock it in the worker thread in gdm-server.c
   */
-@@ -301,6 +302,7 @@ block_sigusr1 (void)
+@@ -293,6 +294,7 @@ block_sigusr1 (void)
          sigaddset (&mask, SIGUSR1);
          sigprocmask (SIG_BLOCK, &mask, NULL);
  }
@@ -16,7 +16,7 @@
  
  int
  main (int    argc,
-@@ -321,7 +323,9 @@ main (int    argc,
+@@ -313,7 +315,9 @@ main (int    argc,
                  { NULL }
          };
  
diff --git a/x11/gdm/files/patch-daemon_meson.build b/x11/gdm/files/patch-daemon_meson.build
index b9d96a12b5dc..710e52e9e3d1 100644
--- a/x11/gdm/files/patch-daemon_meson.build
+++ b/x11/gdm/files/patch-daemon_meson.build
@@ -1,6 +1,6 @@
---- daemon/meson.build.orig	2022-01-12 14:15:56 UTC
+--- daemon/meson.build.orig	2022-03-21 18:12:40 UTC
 +++ daemon/meson.build
-@@ -128,6 +128,7 @@ endif
+@@ -128,6 +128,7 @@ gdm_session_worker = executable('gdm-session-worker',
  gdm_session_worker = executable('gdm-session-worker',
    gdm_session_worker_src,
    dependencies: gdm_session_worker_deps,
@@ -8,7 +8,7 @@
    include_directories: gdm_session_worker_includes,
    install: true,
    install_dir: get_option('libexecdir'),
-@@ -207,6 +208,7 @@ endif
+@@ -211,6 +212,7 @@ gdm_daemon = executable('gdm',
  gdm_daemon = executable('gdm',
    [ gdm_daemon_sources, gdm_daemon_gen_sources ],
    dependencies: gdm_daemon_deps,
diff --git a/x11/gdm/files/patch-data_61-gdm.rules.in b/x11/gdm/files/patch-data_61-gdm.rules.in
deleted file mode 100644
index 7818313a987a..000000000000
--- a/x11/gdm/files/patch-data_61-gdm.rules.in
+++ /dev/null
@@ -1,23 +0,0 @@
---- data/61-gdm.rules.in.orig	2022-01-12 14:15:56 UTC
-+++ data/61-gdm.rules.in
-@@ -10,7 +10,9 @@ IMPORT{cmdline}="nomodeset", GOTO="gdm_disable_wayland
- LABEL="gdm_nomodeset_end"
- 
- # Disable wayland when nvidia modeset is disabled or when drivers are a lower
--# version than 470, in any case always prefer Xorg
-+# version than 470,
-+# For versions above 470 but lower than 510 prefer Xorg,
-+# Above 510, prefer Wayland.
- KERNEL!="nvidia_drm", GOTO="gdm_nvidia_drm_end"
- SUBSYSTEM!="module", GOTO="gdm_nvidia_drm_end"
- ACTION!="add", GOTO="gdm_nvidia_drm_end"
-@@ -18,6 +20,9 @@ ACTION!="add", GOTO="gdm_nvidia_drm_end"
- ATTR{parameters/modeset}!="Y", GOTO="gdm_disable_wayland"
- # disable wayland for nvidia drivers versions lower than 470
- ATTR{version}=="4[0-6][0-9].*|[0-3][0-9][0-9].*|[0-9][0-9].*|[0-9].*", GOTO="gdm_disable_wayland"
-+# For nvidia drivers versions Above 510, keep Wayland by default
-+ATTR{version}=="[5-9][1-9][0-9].*", GOTO="gdm_end"
-+# For nvidia drivers versions 470-495, prefer Xorg by default
- GOTO="gdm_prefer_xorg"
- LABEL="gdm_nvidia_drm_end"
- 
diff --git a/x11/gdm/files/patch-data_Init.in b/x11/gdm/files/patch-data_Init.in
index ec1ed65598d1..7ec028b66b5b 100644
--- a/x11/gdm/files/patch-data_Init.in
+++ b/x11/gdm/files/patch-data_Init.in
@@ -1,6 +1,6 @@
---- data/Init.in.orig	2022-01-12 14:15:56 UTC
+--- data/Init.in.orig	2022-03-21 18:12:40 UTC
 +++ data/Init.in
-@@ -6,6 +6,19 @@
+@@ -6,6 +6,19 @@ OLD_IFS=$IFS
  PATH="@X_PATH@:$PATH"
  OLD_IFS=$IFS
  
@@ -26,34 +26,34 @@
  
 -if [ -f /etc/X11/Xresources ]; then
 -    sysresources=/etc/X11/Xresources
-+if [ -f /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xresources ]; then
-+    sysresources=/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xresources
++if [ -f /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xresources ]; then
++    sysresources=/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xresources
  else
 -    sysresources=/usr/etc/X11/Xresources
-+    sysresources=/usr/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xresources
++    sysresources=/usr/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xresources
  fi
  
  # merge in defaults
-@@ -33,10 +46,10 @@ if [ -f "$sysresources" ]; then
+@@ -33,10 +46,10 @@ fi
      xrdb -nocpp -merge "$sysresources"
  fi
  
 -if [ -f /etc/X11/Xmodmap ]; then
 -    sysmodmap=/etc/X11/Xmodmap
-+if [ -f /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xmodmap ]; then
-+    sysmodmap=/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xmodmap
++if [ -f /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xmodmap ]; then
++    sysmodmap=/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xmodmap
  else
 -    sysmodmap=/usr/etc/X11/Xmodmap
-+    sysmodmap=/usr/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xmodmap
++    sysmodmap=/usr/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/Xmodmap
  fi
  
  XMODMAP=`gdmwhich xmodmap`
-@@ -93,5 +106,15 @@ if [ "x$SETXKBMAP" != "x" ] ; then
+@@ -93,5 +106,15 @@ fi
      fi
    fi
  fi
 +
-+# /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/xenodm/GiveConsole, fbtab(5)
++# /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/xenodm/GiveConsole, fbtab(5)
 +if [ -c /dev/dri/card0 ]; then
 +    /usr/sbin/chown _gdm /dev/dri/card0
 +fi
diff --git a/x11/gdm/files/patch-data_PostSession.in b/x11/gdm/files/patch-data_PostSession.in
index bcb06fbdcc99..d8752cc882b3 100644
--- a/x11/gdm/files/patch-data_PostSession.in
+++ b/x11/gdm/files/patch-data_PostSession.in
@@ -1,9 +1,9 @@
---- data/PostSession.in.orig	2022-01-12 14:15:56 UTC
+--- data/PostSession.in.orig	2022-03-21 18:12:40 UTC
 +++ data/PostSession.in
 @@ -1,3 +1,11 @@
  #!/bin/sh
  
-+# /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/xenodm/TakeConsole, fbtab(5)
++# /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/xenodm/TakeConsole, fbtab(5)
 +if [ -c /dev/dri/card0 ]; then
 +    /usr/sbin/chown root /dev/dri/card0
 +fi
diff --git a/x11/gdm/files/patch-data_PreSession.in b/x11/gdm/files/patch-data_PreSession.in
index f6731620e957..31abf42f57d9 100644
--- a/x11/gdm/files/patch-data_PreSession.in
+++ b/x11/gdm/files/patch-data_PreSession.in
@@ -1,11 +1,11 @@
---- data/PreSession.in.orig	2022-01-12 14:15:56 UTC
+--- data/PreSession.in.orig	2022-03-21 18:12:40 UTC
 +++ data/PreSession.in
-@@ -7,3 +7,11 @@
+@@ -7,3 +7,11 @@ PATH="@X_PATH@:$PATH"
  # Note that output goes into the .xsession-errors file for easy debugging
  #
  PATH="@X_PATH@:$PATH"
 +
-+# /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/xenodm/GiveConsole, fbtab(5)
++# /usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/usr/local/etc/X11/xenodm/GiveConsole, fbtab(5)
 +if [ -c /dev/dri/card0 ]; then
 +    /usr/sbin/chown $USER /dev/dri/card0
 +fi
diff --git a/x11/gdm/files/patch-data_pam-exherbo_gdm-autologin.pam b/x11/gdm/files/patch-data_pam-exherbo_gdm-autologin.pam
deleted file mode 100644
index 79bd730409f8..000000000000
--- a/x11/gdm/files/patch-data_pam-exherbo_gdm-autologin.pam
+++ /dev/null
@@ -1,20 +0,0 @@
---- data/pam-exherbo/gdm-autologin.pam.orig	2022-01-12 14:15:56 UTC
-+++ data/pam-exherbo/gdm-autologin.pam
-@@ -1,9 +1,7 @@
--# mirrors system-auth / system(-local)-login
--# except for the authentication method, which is:
--# always permit login
-+#%PAM-1.0
- 
- auth        [success=ok default=1] pam_gdm.so
---auth       optional    pam_gnome_keyring.so
-+auth        optional    pam_gnome_keyring.so
- auth        sufficient  pam_permit.so
- 
- account     include     system-local-login
-@@ -11,4 +9,4 @@ account     include     system-local-login
- password    include     system-local-login
- 
- session     include     system-local-login
---session    optional    pam_gnome_keyring.so auto_start
-+session     optional    pam_gnome_keyring.so auto_start
diff --git a/x11/gdm/files/patch-data_pam-exherbo_gdm-fingerprint.pam b/x11/gdm/files/patch-data_pam-exherbo_gdm-fingerprint.pam
deleted file mode 100644
index 3e7098a3d6fb..000000000000
--- a/x11/gdm/files/patch-data_pam-exherbo_gdm-fingerprint.pam
+++ /dev/null
@@ -1,25 +0,0 @@
---- data/pam-exherbo/gdm-fingerprint.pam.orig	2022-01-12 14:15:56 UTC
-+++ data/pam-exherbo/gdm-fingerprint.pam
-@@ -1,10 +1,16 @@
--account  include  system-login
-+#%PAM-1.0
- 
--auth     substack fingerprint-auth
--auth     optional pam_gnome_keyring.so
-+auth        required    pam_shells.so
-+auth        required    pam_nologin.so
-+auth        required    pam_faillock.so preauth
-+auth        required    pam_fprintd.so
-+auth        required    pam_env.so
-+auth        [success=ok default=1] pam_gdm.so
-+auth        optional    pam_gnome_keyring.so
- 
--password required pam_deny.so
-+account     include     system-local-login
- 
--session  substack system-login
--session  optional pam_gnome_keyring.so auto_start
-+password    include     system-local-login
- 
-+session     include     system-local-login
-+session     optional    pam_gnome_keyring.so auto_start
diff --git a/x11/gdm/files/patch-data_pam-exherbo_gdm-launch-environment.pam b/x11/gdm/files/patch-data_pam-exherbo_gdm-launch-environment.pam
deleted file mode 100644
index 249c803fd05d..000000000000
--- a/x11/gdm/files/patch-data_pam-exherbo_gdm-launch-environment.pam
+++ /dev/null
@@ -1,25 +0,0 @@
---- data/pam-exherbo/gdm-launch-environment.pam.orig	2022-01-12 14:15:56 UTC
-+++ data/pam-exherbo/gdm-launch-environment.pam
-@@ -1,15 +1,16 @@
--account     required    pam_nologin.so
--account     required    pam_succeed_if.so audit quiet_success user = gdm
--account     required    pam_permit.so
-+#%PAM-1.0
- 
--auth        required    pam_env.so
- auth        required    pam_succeed_if.so audit quiet_success user = gdm
- auth        required    pam_permit.so
-+auth        required    pam_env.so
- 
-+account     required    pam_succeed_if.so audit quiet_success user = gdm
-+account     required    pam_permit.so
-+
- password    required    pam_deny.so
- 
---session    optional    pam_systemd.so
-+session     optional    pam_loginuid.so
- session     optional    pam_keyinit.so force revoke
- session     required    pam_succeed_if.so audit quiet_success user = gdm
- session     required    pam_permit.so
--
-+-session    optional    pam_systemd.so
diff --git a/x11/gdm/files/patch-data_pam-exherbo_gdm-password.pam b/x11/gdm/files/patch-data_pam-exherbo_gdm-password.pam
deleted file mode 100644
index dca6f4c51c84..000000000000
--- a/x11/gdm/files/patch-data_pam-exherbo_gdm-password.pam
+++ /dev/null
@@ -1,20 +0,0 @@
---- data/pam-exherbo/gdm-password.pam.orig	2022-01-12 14:15:56 UTC
-+++ data/pam-exherbo/gdm-password.pam
-@@ -1,10 +1,12 @@
--account  include  system-login
-+#%PAM-1.0
- 
--auth     substack system-login
-+auth     include  system-local-login
- auth     optional pam_gnome_keyring.so
- 
--password required pam_deny.so
-+account  include  system-local-login
- 
--session  substack system-login
--session  optional pam_gnome_keyring.so auto_start
-+password include  system-local-login
-+password optional pam_gnome_keyring.so use_authtok
- 
-+session  include  system-local-login
-+session  optional pam_gnome_keyring.so auto_start
diff --git a/x11/gdm/files/patch-data_pam-exherbo_gdm-smartcard.pam b/x11/gdm/files/patch-data_pam-exherbo_gdm-smartcard.pam
deleted file mode 100644
index 3331fca00fe6..000000000000
--- a/x11/gdm/files/patch-data_pam-exherbo_gdm-smartcard.pam
+++ /dev/null
@@ -1,28 +0,0 @@
---- data/pam-exherbo/gdm-smartcard.pam.orig	2022-01-12 14:15:56 UTC
-+++ data/pam-exherbo/gdm-smartcard.pam
-@@ -1,18 +1,16 @@
--# mirrors system-auth / system(-local)-login
--# except for the authentication method, which is:
--# smartcard login
-+#%PAM-1.0
- 
--auth        required    pam_env.so
--auth        required    pam_tally.so file=/var/log/faillog onerr=succeed
- auth        required    pam_shells.so
- auth        required    pam_nologin.so
--auth [success=done ignore=ignore default=die] pam_pkcs11.so wait_for_card card_only
---auth       optional    pam_gnome_keyring.so
-+auth        required    pam_faillock.so preauth
-+auth        required    pam_pkcs11.so wait_for_card card_only
-+auth        required    pam_env.so
-+auth        [success=ok default=1] pam_gdm.so
-+auth        optional    pam_gnome_keyring.so
- 
- account     include     system-local-login
- 
- password    include     system-local-login
- 
- session     include     system-local-login
---session    optional    pam_gnome_keyring.so auto_start
--
-+session     optional    pam_gnome_keyring.so auto_start
diff --git a/x11/gdm/files/patch-meson.build b/x11/gdm/files/patch-meson.build
index 18d3af61c242..33555b783dc8 100644
--- a/x11/gdm/files/patch-meson.build
+++ b/x11/gdm/files/patch-meson.build
@@ -1,20 +1,23 @@
---- meson.build.orig	2022-01-12 14:15:56 UTC
+--- meson.build.orig	2022-03-21 18:12:40 UTC
 +++ meson.build
-@@ -37,7 +37,12 @@ gdm_screenshot_dir = (get_option('screenshot-dir') != 
+@@ -37,8 +37,14 @@ config_h_dir = include_directories('.')
  config_h_dir = include_directories('.')
  
  # Dependencies
 -udev_dep = dependency('udev')
+-gudev_dep = dependency('gudev-1.0', version: '>= 232')
 +if host_machine.system() == 'linux'
 +  udev_dep = dependency('udev')
++  gudev_dep = dependency('gudev-1.0', version: '>= 232')
 +else
 +  udev_dep = declare_dependency()
++  gudev_dep = declare_dependency()
 +  udev_dir = '/usr/local/lib/udev/rules.d'
 +endif
  
  glib_min_version = '2.56.0'
  
-@@ -88,17 +93,22 @@ if find_x_server_out != ''
+@@ -89,17 +95,22 @@ else
  else
    # what to do, what to do, this is wrong, but this just sets the
    # defaults, perhaps this user is cross compiling or some such
@@ -42,7 +45,7 @@
    systemd_multiseat_x = find_program('systemd-multi-seat-x',
      required: false,
      dirs: [
-@@ -255,6 +265,7 @@ conf.set('HAVE_UT_UT_TIME', utmp_has_time_field)
+@@ -257,6 +268,7 @@ conf.set('ENABLE_IPV6', get_option('ipv6'))
  conf.set('HAVE_UT_UT_TV', utmp_has_tv_field)
  conf.set('HAVE_UT_UT_SYSLEN', utmp_has_syslen_field)
  conf.set('ENABLE_IPV6', get_option('ipv6'))