gnome3.gdm: 3.28.3 → 3.30.2
This commit is contained in:
parent
b9d77e9f51
commit
5d6e2395ca
@ -1,15 +1,15 @@
|
|||||||
{ stdenv, fetchurl, substituteAll, pkgconfig, glib, itstool, libxml2, xorg
|
{ 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
|
, gtk, libcanberra-gtk3, pam, libtool, gobjectIntrospection, plymouth
|
||||||
, librsvg, coreutils, xwayland }:
|
, librsvg, coreutils, xwayland, fetchpatch }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gdm-${version}";
|
name = "gdm-${version}";
|
||||||
version = "3.28.3";
|
version = "3.30.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
|
||||||
sha256 = "12d1cp2dyca8rwh9y9cg8xn6grdp8nmxkkqwg4xpkr8i8ml65n88";
|
sha256 = "1handy65r1n0zby09jr492b3643wszzigdkxp7q2ypgxb3hyv45y";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Only needed to make it build
|
# Only needed to make it build
|
||||||
@ -24,9 +24,10 @@ stdenv.mkDerivation rec {
|
|||||||
"--enable-gdm-xsession"
|
"--enable-gdm-xsession"
|
||||||
"--with-initial-vt=7"
|
"--with-initial-vt=7"
|
||||||
"--with-systemdsystemunitdir=$(out)/etc/systemd/system"
|
"--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 = [
|
buildInputs = [
|
||||||
glib accountsservice systemd
|
glib accountsservice systemd
|
||||||
gobjectIntrospection libX11 gtk
|
gobjectIntrospection libX11 gtk
|
||||||
@ -35,7 +36,6 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
# Disable Access Control because our X does not support FamilyServerInterpreted yet
|
|
||||||
patches = [
|
patches = [
|
||||||
# Change hardcoded paths to nix store paths.
|
# Change hardcoded paths to nix store paths.
|
||||||
(substituteAll {
|
(substituteAll {
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
--- a/daemon/gdm-local-display-factory.c
|
--- a/daemon/gdm-local-display-factory.c
|
||||||
+++ b/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
|
#ifdef ENABLE_WAYLAND_SUPPORT
|
||||||
gboolean wayland_enabled = FALSE;
|
gboolean wayland_enabled = FALSE;
|
||||||
if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) {
|
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 ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
|
||||||
+ if (wayland_enabled && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) {
|
+ if (wayland_enabled && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) )
|
||||||
session_type = "wayland";
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
#endif
|
||||||
--- a/daemon/gdm-manager.c
|
--- a/daemon/gdm-manager.c
|
||||||
+++ b/daemon/gdm-manager.c
|
+++ b/daemon/gdm-manager.c
|
||||||
@@ -147,7 +147,7 @@
|
@@ -145,7 +145,7 @@
|
||||||
GError *error;
|
GError *error;
|
||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
@ -20,7 +20,7 @@
|
|||||||
NULL, NULL, &status, &error);
|
NULL, NULL, &status, &error);
|
||||||
if (! res) {
|
if (! res) {
|
||||||
g_debug ("Could not ping plymouth: %s", error->message);
|
g_debug ("Could not ping plymouth: %s", error->message);
|
||||||
@@ -165,7 +165,7 @@
|
@@ -163,7 +163,7 @@
|
||||||
GError *error;
|
GError *error;
|
||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
@ -29,7 +29,7 @@
|
|||||||
NULL, NULL, NULL, &error);
|
NULL, NULL, NULL, &error);
|
||||||
if (! res) {
|
if (! res) {
|
||||||
g_warning ("Could not deactivate plymouth: %s", error->message);
|
g_warning ("Could not deactivate plymouth: %s", error->message);
|
||||||
@@ -180,7 +180,7 @@
|
@@ -178,7 +178,7 @@
|
||||||
GError *error;
|
GError *error;
|
||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
@ -38,7 +38,7 @@
|
|||||||
if (! res) {
|
if (! res) {
|
||||||
g_warning ("Could not quit plymouth: %s", error->message);
|
g_warning ("Could not quit plymouth: %s", error->message);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
@@ -196,7 +196,7 @@
|
@@ -194,7 +194,7 @@
|
||||||
GError *error;
|
GError *error;
|
||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
@ -49,12 +49,12 @@
|
|||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
--- a/data/gdm.service.in
|
--- a/data/gdm.service.in
|
||||||
+++ b/data/gdm.service.in
|
+++ b/data/gdm.service.in
|
||||||
@@ -28,7 +28,7 @@
|
@@ -28,7 +28,7 @@ BusName=org.gnome.DisplayManager
|
||||||
StandardOutput=syslog
|
StandardOutput=syslog
|
||||||
StandardError=inherit
|
StandardError=inherit
|
||||||
EnvironmentFile=-@LANG_CONFIG_FILE@
|
EnvironmentFile=-@LANG_CONFIG_FILE@
|
||||||
-ExecReload=/bin/kill -SIGHUP $MAINPID
|
-ExecReload=/bin/kill -SIGHUP $MAINPID
|
||||||
+ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
|
+ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
|
||||||
|
KeyringMode=shared
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
Alias=display-manager.service
|
|
||||||
|
@ -1,52 +1,38 @@
|
|||||||
--- a/daemon/gdm-launch-environment.c
|
--- a/daemon/gdm-launch-environment.c
|
||||||
+++ b/daemon/gdm-launch-environment.c
|
+++ b/daemon/gdm-launch-environment.c
|
||||||
@@ -126,7 +126,7 @@
|
@@ -143,6 +143,7 @@
|
||||||
"LC_COLLATE", "LC_MONETARY", "LC_MESSAGES", "LC_PAPER",
|
"WINDOWPATH",
|
||||||
"LC_NAME", "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT",
|
"XCURSOR_PATH",
|
||||||
"LC_IDENTIFICATION", "LC_ALL", "WINDOWPATH", "XCURSOR_PATH",
|
"XDG_CONFIG_DIRS",
|
||||||
- "XDG_CONFIG_DIRS", NULL
|
+ "GDM_SESSIONS_DIR",
|
||||||
+ "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 @@
|
|
||||||
NULL
|
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) {
|
+ if (getenv("GDM_SESSIONS_DIR") != NULL) {
|
||||||
+ xorg_search_dirs[0] = g_getenv("GDM_SESSIONS_DIR");
|
+ 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
|
#ifdef ENABLE_WAYLAND_SUPPORT
|
||||||
const char *wayland_search_dirs[] = {
|
|
||||||
DATADIR "/wayland-sessions/",
|
|
||||||
|
Loading…
Reference in New Issue
Block a user