summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/gnome.scm5
-rw-r--r--gnu/packages/patches/gdm-default-session.patch65
-rw-r--r--gnu/packages/patches/gdm-elogind-support.patch21
-rw-r--r--gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch13
-rw-r--r--gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch36
-rw-r--r--gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch13
6 files changed, 72 insertions, 81 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d64c2b3a78..312e710d73 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8382,7 +8382,7 @@ library.")
 (define-public gdm
   (package
     (name "gdm")
-    (version "40.1")
+    (version "42.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -8390,7 +8390,7 @@ library.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1zbks7bwbys1pn7sk0aq0dbn09adx51amb441z4z4j28cvma3f5b"))
+                "0m9qmm3vm81jmqlc30a1fb79hsr4l4lpiw0zjxww3gipd6bsqa53"))
               (patches
                (search-patches
                 "gdm-default-session.patch"
@@ -8586,6 +8586,7 @@ logo='~a'~%" icon))))))
            gtk+
            iso-codes
            libcanberra
+           libgudev
            linux-pam))
     (synopsis "Display manager for GNOME")
     (home-page "https://wiki.gnome.org/Projects/GDM/")
diff --git a/gnu/packages/patches/gdm-default-session.patch b/gnu/packages/patches/gdm-default-session.patch
index 8325b6102b..27f7035bfb 100644
--- a/gnu/packages/patches/gdm-default-session.patch
+++ b/gnu/packages/patches/gdm-default-session.patch
@@ -4,12 +4,14 @@ and not in the directories listed in $XDG_DATA_DIRS.  The latter includes
 /run/current-system/profile, and only then.
 
 Fixes <https://bugs.gnu.org/37831>.
---- a/daemon/gdm-session.c	2021-07-23 15:16:15.164201000 +0000
-+++ b/daemon/gdm-session.c	2021-09-26 08:18:58.730134555 +0000
-@@ -354,25 +354,19 @@
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index 4b709731..3b83fcd3 100644
+--- a/daemon/gdm-session.c
++++ b/daemon/gdm-session.c
+@@ -362,16 +362,15 @@ get_system_session_dirs (GdmSession *self,
          GArray *search_array = NULL;
          char **search_dirs;
-         int i;
+         int i, j;
 -        const gchar * const *system_data_dirs = g_get_system_data_dirs ();
  
          static const char *x_search_dirs[] = {
@@ -25,43 +27,44 @@ Fixes <https://bugs.gnu.org/37831>.
  
          search_array = g_array_new (TRUE, TRUE, sizeof (char *));
  
-         if (type == NULL || g_str_equal (type, "x11")) {
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
--                        g_array_append_val (search_array, dir);
--                }
--
-                 g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
-         }
+@@ -380,11 +379,6 @@ get_system_session_dirs (GdmSession *self,
  
-@@ -382,16 +376,7 @@
- #ifdef ENABLE_USER_DISPLAY_SERVER
-                 g_array_prepend_val (search_array, wayland_search_dir);
+                 if (g_str_equal (supported_type, "x11") &&
+                     (type == NULL || g_str_equal (type, supported_type))) {
+-                        for (i = 0; system_data_dirs[i]; i++) {
+-                                gchar *dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
+-                                g_array_append_val (search_array, dir);
+-                        }
+-
+                         g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs));
+                 }
  
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                        g_array_insert_val (search_array, i, dir);
--                }
- #else
--                for (i = 0; system_data_dirs[i]; i++) {
--                        gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
--                        g_array_append_val (search_array, dir);
--                }
+@@ -392,11 +386,6 @@ get_system_session_dirs (GdmSession *self,
+ #ifdef ENABLE_WAYLAND_SUPPORT
+                 if (g_str_equal (supported_type, "wayland") &&
+                     (type == NULL || g_str_equal (type, supported_type))) {
+-                        for (i = 0; system_data_dirs[i]; i++) {
+-                                gchar *dir = g_build_filename (system_data_dirs[i], "wayland-sessions", NULL);
+-                                g_array_append_val (search_array, dir);
+-                        }
 -
-                 g_array_append_val (search_array, wayland_search_dir);
+                         g_array_append_val (search_array, wayland_search_dir);
+                 }
  #endif
-         }
-diff -ur a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
---- a/libgdm/gdm-sessions.c	2019-10-07 04:53:35.000000000 -0400
-+++ b/libgdm/gdm-sessions.c	2020-04-18 18:31:42.491348691 -0400
-@@ -245,35 +245,23 @@
+diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
+index d8b4d5cd..7ed8de91 100644
+--- a/libgdm/gdm-sessions.c
++++ b/libgdm/gdm-sessions.c
+@@ -275,7 +275,7 @@ collect_sessions (void)
                  "/etc/X11/sessions/",
                  DMCONFDIR "/Sessions/",
                  DATADIR "/gdm/BuiltInSessions/",
 -                DATADIR "/xsessions/",
 +                "/run/current-system/profile/share/xsessions/"
          };
- 
+         const gchar *supported_session_types_env = NULL;
+         g_auto (GStrv) supported_session_types = NULL;
+@@ -288,29 +288,17 @@ collect_sessions (void)
          names_seen_before = g_hash_table_new (g_str_hash, g_str_equal);
          xorg_search_array = g_ptr_array_new_with_free_func (g_free);
  
diff --git a/gnu/packages/patches/gdm-elogind-support.patch b/gnu/packages/patches/gdm-elogind-support.patch
index 39cd12dd22..5c8e3bd610 100644
--- a/gnu/packages/patches/gdm-elogind-support.patch
+++ b/gnu/packages/patches/gdm-elogind-support.patch
@@ -19,7 +19,7 @@ system and user units.
  6 files changed, 66 insertions(+), 42 deletions(-)
 
 diff --git a/common/meson.build b/common/meson.build
-index 074dd92e1..bca58f7c4 100644
+index 074dd92e..bca58f7c 100644
 --- a/common/meson.build
 +++ b/common/meson.build
 @@ -11,7 +11,7 @@ libgdmcommon_src = files(
@@ -32,10 +32,10 @@ index 074dd92e1..bca58f7c4 100644
    gio_dep,
    gio_unix_dep,
 diff --git a/data/meson.build b/data/meson.build
-index 7c5222eaf..403336c31 100644
+index 2dec4c23..c3452e1c 100644
 --- a/data/meson.build
 +++ b/data/meson.build
-@@ -168,41 +168,53 @@ else
+@@ -164,41 +164,53 @@ else
    service_config.set('PLYMOUTH_QUIT_SERVICE', '')
  endif
  
@@ -115,7 +115,7 @@ index 7c5222eaf..403336c31 100644
  # XSession
  if get_option('gdm-xsession')
 diff --git a/libgdm/meson.build b/libgdm/meson.build
-index 3f8cafbb7..83e95151b 100644
+index 3f8cafbb..83e95151 100644
 --- a/libgdm/meson.build
 +++ b/libgdm/meson.build
 @@ -56,7 +56,7 @@ libgdm_deps = [
@@ -128,12 +128,12 @@ index 3f8cafbb7..83e95151b 100644
  ]
  
 diff --git a/meson.build b/meson.build
-index e6fcf4b8b..a86a486b7 100644
+index 845f673e..d0ca41ef 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -92,21 +92,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp'))
+@@ -96,21 +96,30 @@ xdmcp_dep = cc.find_library('Xdmcp', required: get_option('xdmcp'))
  if xdmcp_dep.found() and get_option('tcp-wrappers')
-   libwrap_dep = cc.find_library('libwrap')
+   libwrap_dep = cc.find_library('wrap')
  endif
 -# systemd
 -systemd_dep = dependency('systemd')
@@ -175,7 +175,7 @@ index e6fcf4b8b..a86a486b7 100644
  # Plymouth
  plymouth_dep = dependency('ply-boot-client', required: get_option('plymouth'))
  # Check for Solaris auditing API (ADT)
-@@ -313,6 +322,7 @@ summary({
+@@ -319,6 +328,7 @@ summary({
      'PAM Syslog': have_pam_syslog,
      'Supports PAM Extensions': pam_extensions_supported,
      'SeLinux': libselinux_dep.found(),
@@ -184,7 +184,7 @@ index e6fcf4b8b..a86a486b7 100644
      'Use UserDisplayServer': get_option('user-display-server'),
      'Use SystemdJournal': get_option('systemd-journal'),
 diff --git a/meson_options.txt b/meson_options.txt
-index 14e0b908b..5135d7d66 100644
+index 14e0b908..5135d7d6 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
 @@ -12,6 +12,7 @@ option('initial-vt', type: 'integer', value: 1, description: 'Initial virtual te
@@ -206,6 +206,3 @@ index 14e0b908b..5135d7d66 100644
  option('tcp-wrappers', type: 'boolean', value: false, description: 'Use TCP wrappers.')
  option('udev-dir', type: 'string', value: '', description: 'Directory for udev rules file.')
  option('user', type: 'string', value: 'gdm', description: 'GDM\'s username.')
--- 
-GitLab
-
diff --git a/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch
index 4341e3fc30..2c095c8003 100644
--- a/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch
+++ b/gnu/packages/patches/gdm-pass-gdk-pixbuf-loader-env.patch
@@ -1,17 +1,11 @@
-From 444250fce55f916af993bc855930c6809686e4bd Mon Sep 17 00:00:00 2001
 From: Josselin Poiret <dev@jpoiret.xyz>
 Date: Tue, 23 Nov 2021 18:39:39 +0000
 Subject: [PATCH] Make GDM pass GDK_PIXBUF_MODULE_FILE to sessions
-
----
- daemon/gdm-launch-environment.c | 1 +
- 1 file changed, 1 insertion(+)
-
 diff --git a/daemon/gdm-launch-environment.c b/daemon/gdm-launch-environment.c
-index 14ecfac2..3e618321 100644
+index 932c3e8a..a50dcc8c 100644
 --- a/daemon/gdm-launch-environment.c
 +++ b/daemon/gdm-launch-environment.c
-@@ -158,6 +158,7 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment,
+@@ -157,6 +157,7 @@ build_launch_environment (GdmLaunchEnvironment *launch_environment,
                  "WINDOWPATH",
                  "XCURSOR_PATH",
                  "XDG_CONFIG_DIRS",
@@ -19,6 +13,3 @@ index 14ecfac2..3e618321 100644
                  NULL
          };
          char *system_data_dirs;
--- 
-2.33.1
-
diff --git a/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch
index 366fb91668..83d56ddf69 100644
--- a/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch
+++ b/gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch
@@ -1,22 +1,28 @@
 Remove check for hardcoded Xwayland path in gdm.
 
----
- daemon/gdm-local-display-factory.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
 diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
-index da1093bb..37355c06 100644
+index 7de7b99c..065325f4 100644
 --- a/daemon/gdm-local-display-factory.c
 +++ b/daemon/gdm-local-display-factory.c
-@@ -203,7 +203,7 @@ gdm_local_display_factory_use_wayland (void)
+@@ -245,9 +245,9 @@ struct GdmDisplayServerConfiguration {
+         const char *session_type;
+ } display_server_configuration[] = {
  #ifdef ENABLE_WAYLAND_SUPPORT
-         gboolean wayland_enabled = FALSE;
-         if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) {
--                if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
-+                if (wayland_enabled)
-                         return TRUE;
-         }
+-        { "wayland", GDM_KEY_WAYLAND_ENABLE, "/usr/bin/Xwayland", "wayland" },
++        { "wayland", GDM_KEY_WAYLAND_ENABLE, "", "wayland" },
  #endif
---
-2.33.0
-
+-        { "xorg", GDM_KEY_XORG_ENABLE, "/usr/bin/Xorg", "x11" },
++        { "xorg", GDM_KEY_XORG_ENABLE, "", "x11" },
+         { NULL, NULL, NULL },
+ };
+ 
+@@ -269,9 +269,6 @@ display_server_enabled (GdmLocalDisplayFactory *factory,
+                 if (!gdm_settings_direct_get_boolean (key, &enabled) || !enabled)
+                         return FALSE;
+ 
+-                if (!g_file_test (binary, G_FILE_TEST_IS_EXECUTABLE))
+-                        return FALSE;
+-
+                 return TRUE;
+         }
+ 
diff --git a/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch b/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch
index 44ab6a9471..6ea0daf6a7 100644
--- a/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch
+++ b/gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch
@@ -1,14 +1,10 @@
 Get wayland-session wrapper from environment.
 
----
- daemon/gdm-session.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
 diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
-index 4e303e70..1deca4e9 100644
+index 3b83fcd3..e60e6a57 100644
 --- a/daemon/gdm-session.c
 +++ b/daemon/gdm-session.c
-@@ -2888,8 +2888,9 @@ gdm_session_start_session (GdmSession *self,
+@@ -2933,8 +2933,9 @@ gdm_session_start_session (GdmSession *self,
                                                             allow_remote_connections? "--allow-remote-connections " : "",
                                                             command);
                          } else {
@@ -19,7 +15,7 @@ index 4e303e70..1deca4e9 100644
                                                             command);
                          }
                  } else if (run_xsession_script) {
-@@ -2942,8 +2942,9 @@
+@@ -2965,8 +2966,9 @@ gdm_session_start_session (GdmSession *self,
                                                             register_session ? "--register-session " : "",
                                                             self->selected_program);
                          } else {
@@ -30,6 +26,3 @@ index 4e303e70..1deca4e9 100644
                                                             self->selected_program);
                          }
                  } else {
---
-2.33.0
-