gnu: Add elogind.
authorRicardo Wurmus <rekado@elephly.net>
Sun, 26 Apr 2015 13:55:59 +0000 (15:55 +0200)
committerRicardo Wurmus <rekado@elephly.net>
Wed, 6 May 2015 09:52:07 +0000 (11:52 +0200)
* gnu/packages/freedesktop.scm (elogind): New variable.

gnu/packages/freedesktop.scm

index 386f4c5..891bd31 100644 (file)
@@ -1,6 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2015 Andy Wingo <wingo@pobox.com>
+;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages freedesktop)
-  #:use-module ((guix licenses) #:select (expat x11))
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages glib)                ;intltool
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
@@ -48,7 +58,7 @@
     (description "The xdg-utils package is a set of simple scripts that
 provide basic desktop integration functions in the framework of the
 freedesktop.org project.")
-    (license expat)))
+    (license license:expat)))
 
 (define-public libinput
   (package
@@ -74,4 +84,65 @@ freedesktop.org project.")
     (description
      "Libinput is a library to handle input devices for display servers and
 other applications that need to directly deal with input devices.")
-    (license x11)))
+    (license license:x11)))
+
+(define-public elogind
+  (let ((commit "14405a9"))
+    (package
+      (name "elogind")
+      (version (string-append "219." commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "http://git.elephly.net/software/elogind.git")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "1wz5lxj95qg64x2q5hf4zcb35hpxlw3wfswx6sb2srvsg50y3y72"))
+                (file-name (string-append name "-checkout-" commit))
+                (modules '((guix build utils)))
+                (snippet
+                 '(begin
+                    (use-modules (guix build utils))
+                    (substitute* "Makefile.am"
+                      ;; Avoid validation against DTD because the DTDs for
+                      ;; both doctype 4.2 and 4.5 are needed.
+                      (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:configure-flags
+         (list
+          ;; pam_elogind fails because of bus-error.c hackery
+          "--disable-pam"
+          (string-append "--with-rootprefix=" (assoc-ref %outputs "out")))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'autogen
+                      (lambda _
+                        (and (zero? (system* "intltoolize" "--force" "--automake"))
+                             (zero? (system* "autoreconf" "-vif"))))))))
+      (native-inputs
+       `(("intltool" ,intltool)
+         ("gettext" ,gnu-gettext)
+         ("docbook-xsl" ,docbook-xsl)
+         ("docbook-xml" ,docbook-xml)
+         ("xsltproc" ,libxslt)
+         ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
+         ("pkg-config", pkg-config)
+         ("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("libtool" ,libtool)
+         ("gperf" ,gperf)))
+      (inputs
+       `(("linux-pam" ,linux-pam)
+         ("linux-libre-headers" ,linux-libre-headers)
+         ("libcap" ,libcap)
+         ("dbus" ,dbus)
+         ("eudev" ,eudev)))
+      (home-page "https://github.com/andywingo/elogind")
+      (synopsis "User, seat, and session management service")
+      (description "Elogind is the systemd project's \"logind\" service,
+extracted out as a separate project.  Elogind integrates with PAM to provide
+the org.freedesktop.login1 interface over the system bus, allowing other parts
+of a the system to know what users are logged in, and where.")
+      (license license:lgpl2.1+))))