lightdm: 1.8.6 -> 1.13.1
This commit is contained in:
parent
e76d7e7b53
commit
23194559f3
@ -1,32 +1,47 @@
|
|||||||
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2
|
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2
|
||||||
, intltool, x11, libxklavier, libgcrypt, dbus/*for tests*/ }:
|
, intltool, x11, libxklavier, libgcrypt
|
||||||
|
, qt4 ? null, qt5 ? null
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
ver_branch = "1.8";
|
ver_branch = "1.13";
|
||||||
version = "1.8.6";
|
version = "1.13.1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "lightdm-${version}";
|
name = "lightdm-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
|
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
|
||||||
sha256 = "17ivc0c4dbnc0fzd581j53cn6hdav34zz2hswjzy8aczbpk605qi";
|
sha256 = "0xa23maq6phkfil8xx26viig2m99sbzcf1w7s56hns2qw6pycn79";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./lightdm.patch ];
|
|
||||||
patchFlags = "-p1";
|
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
|
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
|
||||||
] ++ stdenv.lib.optional doCheck dbus.daemon;
|
qt4 qt5
|
||||||
|
];
|
||||||
|
|
||||||
configureFlags = [ "--enable-liblightdm-gobject" "--localstatedir=/var" ];
|
configureFlags = [
|
||||||
|
"--enable-liblightdm-gobject"
|
||||||
|
"--localstatedir=/var"
|
||||||
|
"--sysconfdir=/etc"
|
||||||
|
] ++ stdenv.lib.optional (qt4 != null) "--enable-liblightdm-qt"
|
||||||
|
++ stdenv.lib.optional (qt5 != null) "--enable-liblightdm-qt5";
|
||||||
|
|
||||||
doCheck = false; # some tests fail, don't know why
|
installFlags = [ "DESTDIR=\${out}" ];
|
||||||
|
|
||||||
meta = {
|
# Correct for the nested nix folder tree
|
||||||
|
postInstall = ''
|
||||||
|
mv $out/$out/* $out
|
||||||
|
DIR=$out/$out
|
||||||
|
while rmdir $DIR 2>/dev/null; do
|
||||||
|
DIR="$(dirname "$DIR")"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
homepage = http://launchpad.net/lightdm;
|
homepage = http://launchpad.net/lightdm;
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ stdenv.lib.maintainers.ocharles ];
|
license = licenses.gpl3;
|
||||||
|
maintainers = with maintainers; [ ocharles wkennington ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,144 +0,0 @@
|
|||||||
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
|
|
||||||
index 9387118..635cea0 100644
|
|
||||||
--- a/liblightdm-gobject/greeter.c
|
|
||||||
+++ b/liblightdm-gobject/greeter.c
|
|
||||||
@@ -567,6 +567,21 @@ lightdm_greeter_get_default_session_hint (LightDMGreeter *greeter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
+ * lightdm_greeter_get_config_path
|
|
||||||
+ * @greeter: A #LightDMGreeter
|
|
||||||
+ *
|
|
||||||
+ * Get the config path to LightDM.
|
|
||||||
+ *
|
|
||||||
+ * Return value: The path to the current LightDM configuration file.
|
|
||||||
+ **/
|
|
||||||
+const gchar *
|
|
||||||
+lightdm_greeter_get_config_path (LightDMGreeter *greeter)
|
|
||||||
+{
|
|
||||||
+ g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL);
|
|
||||||
+ return lightdm_greeter_get_hint (greeter, "config-path");
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
* lightdm_greeter_get_hide_users_hint:
|
|
||||||
* @greeter: A #LightDMGreeter
|
|
||||||
*
|
|
||||||
diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h
|
|
||||||
index 7d8988f..2b54909 100644
|
|
||||||
--- a/liblightdm-gobject/lightdm/greeter.h
|
|
||||||
+++ b/liblightdm-gobject/lightdm/greeter.h
|
|
||||||
@@ -93,6 +93,8 @@ gboolean lightdm_greeter_get_select_guest_hint (LightDMGreeter *greeter);
|
|
||||||
|
|
||||||
const gchar *lightdm_greeter_get_autologin_user_hint (LightDMGreeter *greeter);
|
|
||||||
|
|
||||||
+const gchar *lightdm_greeter_get_config_path (LightDMGreeter *greeter);
|
|
||||||
+
|
|
||||||
gboolean lightdm_greeter_get_autologin_guest_hint (LightDMGreeter *greeter);
|
|
||||||
|
|
||||||
gint lightdm_greeter_get_autologin_timeout_hint (LightDMGreeter *greeter);
|
|
||||||
diff --git a/liblightdm-gobject/lightdm/session.h b/liblightdm-gobject/lightdm/session.h
|
|
||||||
index 13ddcd9..cdb2fd6 100644
|
|
||||||
--- a/liblightdm-gobject/lightdm/session.h
|
|
||||||
+++ b/liblightdm-gobject/lightdm/session.h
|
|
||||||
@@ -12,6 +12,7 @@
|
|
||||||
#define LIGHTDM_SESSION_H_
|
|
||||||
|
|
||||||
#include <glib-object.h>
|
|
||||||
+#include "greeter.h"
|
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
|
||||||
|
|
||||||
@@ -42,9 +43,9 @@ typedef struct
|
|
||||||
|
|
||||||
GType lightdm_session_get_type (void);
|
|
||||||
|
|
||||||
-GList *lightdm_get_sessions (void);
|
|
||||||
+GList *lightdm_get_sessions (LightDMGreeter *greeter);
|
|
||||||
|
|
||||||
-GList *lightdm_get_remote_sessions (void);
|
|
||||||
+GList *lightdm_get_remote_sessions (LightDMGreeter *greeter);
|
|
||||||
|
|
||||||
const gchar *lightdm_session_get_key (LightDMSession *session);
|
|
||||||
|
|
||||||
diff --git a/liblightdm-gobject/session.c b/liblightdm-gobject/session.c
|
|
||||||
index 949778f..db5e18a 100644
|
|
||||||
--- a/liblightdm-gobject/session.c
|
|
||||||
+++ b/liblightdm-gobject/session.c
|
|
||||||
@@ -11,6 +11,7 @@
|
|
||||||
#include <string.h>
|
|
||||||
#include <gio/gdesktopappinfo.h>
|
|
||||||
|
|
||||||
+#include "lightdm/greeter.h"
|
|
||||||
#include "lightdm/session.h"
|
|
||||||
|
|
||||||
enum {
|
|
||||||
@@ -189,7 +190,7 @@ load_sessions (const gchar *sessions_dir)
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
-update_sessions (void)
|
|
||||||
+update_sessions (LightDMGreeter *greeter)
|
|
||||||
{
|
|
||||||
GKeyFile *config_key_file = NULL;
|
|
||||||
gchar *config_path = NULL;
|
|
||||||
@@ -205,8 +206,7 @@ update_sessions (void)
|
|
||||||
remote_sessions_dir = g_strdup (REMOTE_SESSIONS_DIR);
|
|
||||||
|
|
||||||
/* Use session directory from configuration */
|
|
||||||
- /* FIXME: This should be sent in the greeter connection */
|
|
||||||
- config_path = g_build_filename (CONFIG_DIR, "lightdm.conf", NULL);
|
|
||||||
+ config_path = g_strdup (lightdm_greeter_get_config_path (greeter));
|
|
||||||
config_key_file = g_key_file_new ();
|
|
||||||
result = g_key_file_load_from_file (config_key_file, config_path, G_KEY_FILE_NONE, &error);
|
|
||||||
if (error && !g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
|
|
||||||
@@ -250,9 +250,9 @@ update_sessions (void)
|
|
||||||
* Return value: (element-type LightDMSession) (transfer none): A list of #LightDMSession
|
|
||||||
**/
|
|
||||||
GList *
|
|
||||||
-lightdm_get_sessions (void)
|
|
||||||
+lightdm_get_sessions (LightDMGreeter *greeter)
|
|
||||||
{
|
|
||||||
- update_sessions ();
|
|
||||||
+ update_sessions (greeter);
|
|
||||||
return local_sessions;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -264,9 +264,9 @@ lightdm_get_sessions (void)
|
|
||||||
* Return value: (element-type LightDMSession) (transfer none): A list of #LightDMSession
|
|
||||||
**/
|
|
||||||
GList *
|
|
||||||
-lightdm_get_remote_sessions (void)
|
|
||||||
+lightdm_get_remote_sessions (LightDMGreeter *greeter)
|
|
||||||
{
|
|
||||||
- update_sessions ();
|
|
||||||
+ update_sessions (greeter);
|
|
||||||
return remote_sessions;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/lightdm.c b/src/lightdm.c
|
|
||||||
index 7d35034..910164c 100644
|
|
||||||
--- a/src/lightdm.c
|
|
||||||
+++ b/src/lightdm.c
|
|
||||||
@@ -1142,6 +1142,9 @@ main (int argc, char **argv)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
g_clear_error (&error);
|
|
||||||
+
|
|
||||||
+ config_set_string (config_get_instance (), "SeatDefaults", "config-path", config_path);
|
|
||||||
+
|
|
||||||
g_free (config_path);
|
|
||||||
|
|
||||||
/* Set default values */
|
|
||||||
diff --git a/src/seat.c b/src/seat.c
|
|
||||||
index e2b9c2c..a950ea2 100644
|
|
||||||
--- a/src/seat.c
|
|
||||||
+++ b/src/seat.c
|
|
||||||
@@ -1137,6 +1137,7 @@ create_greeter_session (Seat *seat)
|
|
||||||
greeter_set_hint (greeter_session, "show-manual-login", seat_get_boolean_property (seat, "greeter-show-manual-login") ? "true" : "false");
|
|
||||||
greeter_set_hint (greeter_session, "show-remote-login", seat_get_boolean_property (seat, "greeter-show-remote-login") ? "true" : "false");
|
|
||||||
greeter_set_hint (greeter_session, "has-guest-account", seat_get_allow_guest (seat) && seat_get_boolean_property (seat, "greeter-allow-guest") ? "true" : "false");
|
|
||||||
+ greeter_set_hint (greeter_session, "config-path", seat_get_string_property (seat, "config-path"));
|
|
||||||
|
|
||||||
g_object_unref (session_config);
|
|
||||||
|
|
@ -11459,7 +11459,12 @@ let
|
|||||||
|
|
||||||
dropbox-cli = callPackage ../applications/networking/dropbox-cli { };
|
dropbox-cli = callPackage ../applications/networking/dropbox-cli { };
|
||||||
|
|
||||||
lightdm = callPackage ../applications/display-managers/lightdm { };
|
lightdm = callPackage ../applications/display-managers/lightdm {
|
||||||
|
qt4 = null;
|
||||||
|
qt5 = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
lightdm_qt = lightdm.override { qt5 = qt5; };
|
||||||
|
|
||||||
lightdm_gtk_greeter = callPackage ../applications/display-managers/lightdm-gtk-greeter { };
|
lightdm_gtk_greeter = callPackage ../applications/display-managers/lightdm-gtk-greeter { };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user