aboutsummaryrefslogtreecommitdiff
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
guix-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+)))