summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/display-managers.scm81
1 files changed, 81 insertions, 0 deletions
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 0a70fd737b..1c3acd15aa 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -2,6 +2,8 @@
 ;;; Copyright © 2013 Joshua Grant <tadni@riseup.net>
 ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,17 +25,22 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages image)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
@@ -186,6 +193,80 @@ create smooth, animated user interfaces.")
     ;; QML files are MIT licensed and images are CC BY 3.0.
     (license (list license:gpl2+ license:expat license:cc-by3.0))))
 
+(define-public lightdm
+  (package
+    (name "lightdm")
+    (version "1.22.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://launchpad.net/lightdm/"
+                                  (version-major+minor version) "/"
+                                  version "/+download/lightdm-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0a5bvfl2h7r873al6q7c819h0kg564k9fh51rl6489z6lyvazfg4"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:parallel-tests? #f ; fails when run in parallel
+       #:configure-flags
+       (list "--localstatedir=/var")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda _
+             (substitute* "src/shared-data-manager.c"
+               (("/bin/rm") (which "rm")))
+             (substitute* '("data/users.conf"
+                            "common/user-list.c")
+               (("/bin/false") (which "false"))
+               (("/usr/sbin/nologin") (which "nologin")))
+             (substitute* "src/seat.c"
+               (("/bin/sh") (which "sh")))
+             #t))
+         (add-after 'unpack 'disable-broken-tests
+           (lambda _
+             (substitute* "tests/Makefile.in"
+               (("test-sessions-gobject ") "")
+               ((" test-sessions-python ") " "))
+             #t))
+         (add-before 'check 'pre-check
+           ;; Run test-suite under a dbus session.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (wrap-program "tests/src/test-python-greeter"
+               `("PYTHONPATH"      ":" prefix (,(getenv "PYTHONPATH")))
+               `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
+
+             ;; Avoid printing locale warnings, which trip up the text
+             ;; matching tests.
+             (unsetenv "LC_ALL")
+             #t)))))
+    (inputs
+     `(("audit" ,audit)
+       ("linux-pam" ,linux-pam)
+       ("util-linux" ,util-linux) ; for sbin/nologin
+       ("libgcrypt" ,libgcrypt)
+       ("libxcb" ,libxcb)))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
+       ("itstool" ,itstool)
+       ("intltool" ,intltool)
+       ;; For tests
+       ("dbus" ,dbus)
+       ("python" ,python-2)
+       ("python-pygobject" ,python2-pygobject)))
+    ;; Required by liblightdm-gobject-1.pc.
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("libx11" ,libx11)
+       ("libxklavier" ,libxklavier)))
+    (home-page "https://www.freedesktop.org/wiki/Software/LightDM/")
+    (synopsis "Lightweight display manager")
+    (description "The Light Display Manager (LightDM) is a cross-desktop
+display manager which supports different greeters.")
+    (license license:gpl3+)))
+
 (define-public slim
   (package
     (name "slim")