From 5d6e2395ca4c872ae2e67599c87365b0e5813a8f Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 5 Sep 2018 00:44:24 +0000 Subject: [PATCH] =?UTF-8?q?gnome3.gdm:=203.28.3=20=E2=86=92=203.30.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/desktops/gnome-3/core/gdm/default.nix | 12 +-- .../desktops/gnome-3/core/gdm/fix-paths.patch | 28 +++---- .../gnome-3/core/gdm/sessions_dir.patch | 74 ++++++++----------- 3 files changed, 50 insertions(+), 64 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix index 761f6b34ec6..c419df5093e 100644 --- a/pkgs/desktops/gnome-3/core/gdm/default.nix +++ b/pkgs/desktops/gnome-3/core/gdm/default.nix @@ -1,15 +1,15 @@ { stdenv, fetchurl, substituteAll, pkgconfig, glib, itstool, libxml2, xorg -, intltool, accountsservice, libX11, gnome3, systemd, autoreconfHook +, accountsservice, libX11, gnome3, systemd, autoreconfHook , gtk, libcanberra-gtk3, pam, libtool, gobjectIntrospection, plymouth -, librsvg, coreutils, xwayland }: +, librsvg, coreutils, xwayland, fetchpatch }: stdenv.mkDerivation rec { name = "gdm-${version}"; - version = "3.28.3"; + version = "3.30.2"; src = fetchurl { url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; - sha256 = "12d1cp2dyca8rwh9y9cg8xn6grdp8nmxkkqwg4xpkr8i8ml65n88"; + sha256 = "1handy65r1n0zby09jr492b3643wszzigdkxp7q2ypgxb3hyv45y"; }; # Only needed to make it build @@ -24,9 +24,10 @@ stdenv.mkDerivation rec { "--enable-gdm-xsession" "--with-initial-vt=7" "--with-systemdsystemunitdir=$(out)/etc/systemd/system" + "--with-udevdir=$(out)/lib/udev" ]; - nativeBuildInputs = [ pkgconfig libxml2 itstool intltool autoreconfHook libtool gnome3.dconf ]; + nativeBuildInputs = [ pkgconfig libxml2 itstool autoreconfHook libtool gnome3.dconf ]; buildInputs = [ glib accountsservice systemd gobjectIntrospection libX11 gtk @@ -35,7 +36,6 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - # Disable Access Control because our X does not support FamilyServerInterpreted yet patches = [ # Change hardcoded paths to nix store paths. (substituteAll { diff --git a/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch b/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch index adac2dc913c..6b5bd6152bd 100644 --- a/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch +++ b/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch @@ -1,17 +1,17 @@ --- a/daemon/gdm-local-display-factory.c +++ b/daemon/gdm-local-display-factory.c -@@ -450,7 +450,7 @@ +@@ -201,7 +201,7 @@ #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 && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) { - session_type = "wayland"; - } - } + 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 && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) + return TRUE; + } + #endif --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c -@@ -147,7 +147,7 @@ +@@ -145,7 +145,7 @@ GError *error; error = NULL; @@ -20,7 +20,7 @@ NULL, NULL, &status, &error); if (! res) { g_debug ("Could not ping plymouth: %s", error->message); -@@ -165,7 +165,7 @@ +@@ -163,7 +163,7 @@ GError *error; error = NULL; @@ -29,7 +29,7 @@ NULL, NULL, NULL, &error); if (! res) { g_warning ("Could not deactivate plymouth: %s", error->message); -@@ -180,7 +180,7 @@ +@@ -178,7 +178,7 @@ GError *error; error = NULL; @@ -38,7 +38,7 @@ if (! res) { g_warning ("Could not quit plymouth: %s", error->message); g_error_free (error); -@@ -196,7 +196,7 @@ +@@ -194,7 +194,7 @@ GError *error; error = NULL; @@ -49,12 +49,12 @@ g_error_free (error); --- a/data/gdm.service.in +++ b/data/gdm.service.in -@@ -28,7 +28,7 @@ +@@ -28,7 +28,7 @@ BusName=org.gnome.DisplayManager StandardOutput=syslog StandardError=inherit EnvironmentFile=-@LANG_CONFIG_FILE@ -ExecReload=/bin/kill -SIGHUP $MAINPID +ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID + KeyringMode=shared [Install] - Alias=display-manager.service diff --git a/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch b/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch index 7722e2550bd..cda0468d349 100644 --- a/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch +++ b/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch @@ -1,52 +1,38 @@ --- a/daemon/gdm-launch-environment.c +++ b/daemon/gdm-launch-environment.c -@@ -126,7 +126,7 @@ - "LC_COLLATE", "LC_MONETARY", "LC_MESSAGES", "LC_PAPER", - "LC_NAME", "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT", - "LC_IDENTIFICATION", "LC_ALL", "WINDOWPATH", "XCURSOR_PATH", -- "XDG_CONFIG_DIRS", NULL -+ "XDG_CONFIG_DIRS", "GDM_SESSIONS_DIR", NULL - }; - char *system_data_dirs; - int i; ---- a/daemon/gdm-session.c -+++ b/daemon/gdm-session.c -@@ -345,12 +345,17 @@ - char **search_dirs; - - static const char *x_search_dirs[] = { -+ "/var/empty", - "/etc/X11/sessions/", - DMCONFDIR "/Sessions/", - DATADIR "/gdm/BuiltInSessions/", - DATADIR "/xsessions/", - }; - -+ if (getenv("GDM_SESSIONS_DIR") != NULL) { -+ x_search_dirs[0] = getenv("GDM_SESSIONS_DIR"); -+ }; -+ - static const char *wayland_search_dir = DATADIR "/wayland-sessions/"; - - search_array = g_array_new (TRUE, TRUE, sizeof (char *)); ---- a/libgdm/gdm-sessions.c -+++ b/libgdm/gdm-sessions.c -@@ -217,6 +217,7 @@ - { - int i; - const char *xorg_search_dirs[] = { -+ "/var/empty/", - "/etc/X11/sessions/", - DMCONFDIR "/Sessions/", - DATADIR "/gdm/BuiltInSessions/", -@@ -224,6 +225,10 @@ +@@ -143,6 +143,7 @@ + "WINDOWPATH", + "XCURSOR_PATH", + "XDG_CONFIG_DIRS", ++ "GDM_SESSIONS_DIR", NULL }; + char *system_data_dirs; +--- a/daemon/gdm-session.c ++++ b/daemon/gdm-session.c +@@ -364,6 +364,11 @@ + g_array_append_val (search_array, dir); + } -+ if (g_getenv("GDM_SESSIONS_DIR") != NULL) { -+ xorg_search_dirs[0] = g_getenv("GDM_SESSIONS_DIR"); ++ if (getenv("GDM_SESSIONS_DIR") != NULL) { ++ gchar *gdm_sessions_dir = g_getenv("GDM_SESSIONS_DIR"); ++ g_array_append_val (search_array, gdm_sessions_dir); + }; + + g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs)); + + #ifdef ENABLE_WAYLAND_SUPPORT +--- a/libgdm/gdm-sessions.c ++++ b/libgdm/gdm-sessions.c +@@ -236,6 +236,11 @@ + g_array_append_val (xorg_search_array, session_dir); + } + ++ if (g_getenv("GDM_SESSIONS_DIR") != NULL) { ++ gchar *gdm_sessions_dir = g_getenv("GDM_SESSIONS_DIR"); ++ g_array_append_val (xorg_search_array, gdm_sessions_dir); ++ }; ++ + g_array_append_vals (xorg_search_array, xorg_search_dirs, G_N_ELEMENTS (xorg_search_dirs)); + #ifdef ENABLE_WAYLAND_SUPPORT - const char *wayland_search_dirs[] = { - DATADIR "/wayland-sessions/",