summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
author宋文武 <iyzsong@gmail.com>2015-12-13 12:08:04 +0800
committer宋文武 <iyzsong@gmail.com>2015-12-13 23:26:28 +0800
commitdf12f04a0ce7658fe13ca8ab104d094947b61280 (patch)
treefc2a0edab4eff37c50f7e2a33ad2abe9b3e4cee1 /gnu
parentdec1e2b3520d00a910189425303aab1a7d2bd1c1 (diff)
downloadguix-df12f04a0ce7658fe13ca8ab104d094947b61280.tar.gz
gnu: Add gdm.
* gnu/packages/gnome.scm (gdm): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/gnome.scm61
1 files changed, 61 insertions, 0 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index dee911fc0e..0a02d08ae3 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages calendar)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
@@ -4264,3 +4265,63 @@ the available networks and allows users to easily switch between them.")
      "This package provides a C++ wrapper for the XML parser library
 libxml2.")
     (license license:lgpl2.1+)))
+
+(define-public gdm
+  (package
+    (name "gdm")
+    (version "3.18.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "08pqhslwd487nh9w0jp4d0s4s2imm4ds0jjsbl6lzmqifqj3b4jl"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       '("--without-plymouth")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before
+          'configure 'pre-configure
+          (lambda _
+            ;; We don't have <systemd/sd-daemon.h>.
+            (substitute* '("common/gdm-log.c"
+                           "daemon/gdm-server.c"
+                           "daemon/gdm-session-worker.c"
+                           "daemon/gdm-session-worker-job.c")
+              (("#include <systemd/sd-daemon\\.h>") ""))
+            ;; Use elogind for sd-login.
+            (substitute* '("common/gdm-common.c"
+                           "daemon/gdm-manager.c"
+                           "libgdm/gdm-user-switching.c")
+              (("#include <systemd/sd-login\\.h>")
+               "#include <elogind/sd-login.h>"))
+            ;; Avoid checking SYSTEMD using pkg-config.
+            (setenv "SYSTEMD_CFLAGS" " ")
+            (setenv "SYSTEMD_LIBS" "-lelogind")
+            #t)))))
+    (native-inputs
+     `(("dconf" ,dconf)
+       ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("accountsservice" ,accountsservice)
+       ("check" ,check) ; for testing
+       ("elogind" ,elogind)
+       ("gtk+" ,gtk+)
+       ("iso-codes" ,iso-codes)
+       ("libcanberra" ,libcanberra)
+       ("linux-pam" ,linux-pam)))
+    (synopsis "Display manager for GNOME")
+    (home-page "http://wiki.gnome.org/Projects/GDM/")
+    (description
+     "GNOME Display Manager is a system service that is responsible for
+providing graphical log-ins and managing local and remote displays.")
+    (license license:gpl2+)))