gnome3.gdm: 3.28.3 → 3.30.2

This commit is contained in:
Jan Tojnar 2018-09-05 00:44:24 +00:00
parent b9d77e9f51
commit 5d6e2395ca
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
3 changed files with 50 additions and 64 deletions

View File

@ -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 {

View File

@ -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

View File

@ -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/",