summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/display-managers/lightdm
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2015-03-09 17:32:49 -0700
committerWilliam A. Kennington III <william@wkennington.com>2015-03-09 17:44:38 -0700
commit23194559f3ce9ede82b81d00359725e3f1312949 (patch)
tree50493e8d31707b6eb54a10c6b13abb8b11fe7f9d /pkgs/applications/display-managers/lightdm
parente76d7e7b537a76181d576aac64aaaab7852f8d82 (diff)
lightdm: 1.8.6 -> 1.13.1
Diffstat (limited to 'pkgs/applications/display-managers/lightdm')
-rw-r--r--pkgs/applications/display-managers/lightdm/default.nix41
-rw-r--r--pkgs/applications/display-managers/lightdm/lightdm.patch144
2 files changed, 28 insertions, 157 deletions
diff --git a/pkgs/applications/display-managers/lightdm/default.nix b/pkgs/applications/display-managers/lightdm/default.nix
index d4c6f24d69a3..b2a2d8799791 100644
--- a/pkgs/applications/display-managers/lightdm/default.nix
+++ b/pkgs/applications/display-managers/lightdm/default.nix
@@ -1,32 +1,47 @@
{ 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
- ver_branch = "1.8";
- version = "1.8.6";
+ ver_branch = "1.13";
+ version = "1.13.1";
in
stdenv.mkDerivation rec {
name = "lightdm-${version}";
src = fetchurl {
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
- sha256 = "17ivc0c4dbnc0fzd581j53cn6hdav34zz2hswjzy8aczbpk605qi";
+ sha256 = "0xa23maq6phkfil8xx26viig2m99sbzcf1w7s56hns2qw6pycn79";
};
- patches = [ ./lightdm.patch ];
- patchFlags = "-p1";
-
buildInputs = [
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
- ] ++ stdenv.lib.optional doCheck dbus.daemon;
+ qt4 qt5
+ ];
+
+ configureFlags = [
+ "--enable-liblightdm-gobject"
+ "--localstatedir=/var"
+ "--sysconfdir=/etc"
+ ] ++ stdenv.lib.optional (qt4 != null) "--enable-liblightdm-qt"
+ ++ stdenv.lib.optional (qt5 != null) "--enable-liblightdm-qt5";
- configureFlags = [ "--enable-liblightdm-gobject" "--localstatedir=/var" ];
+ installFlags = [ "DESTDIR=\${out}" ];
- doCheck = false; # some tests fail, don't know why
+ # 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 = {
+ meta = with stdenv.lib; {
homepage = http://launchpad.net/lightdm;
- platforms = stdenv.lib.platforms.linux;
- maintainers = [ stdenv.lib.maintainers.ocharles ];
+ platforms = platforms.linux;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ocharles wkennington ];
};
}
diff --git a/pkgs/applications/display-managers/lightdm/lightdm.patch b/pkgs/applications/display-managers/lightdm/lightdm.patch
deleted file mode 100644
index d81e0aae56d5..000000000000
--- a/pkgs/applications/display-managers/lightdm/lightdm.patch
+++ /dev/null
@@ -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);
-