guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: elogind WIP


From: Ricardo Wurmus
Subject: Re: elogind WIP
Date: Fri, 24 Apr 2015 23:09:18 +0200

Ludovic Courtès writes:

> For the record, I went a bit further building it (patch attached), but
> now I think we stuck because some of the XSL files used to produce man
> pages are missing in the repo:

I restored a few files needed to produce man page, renamed two instances
of "systemd.version", and disabled DTD validation.  There are,
unfortunately, even more XML files that are missing, but they look like
we shouldn't want them to be part of elogind:

--8<---------------cut here---------------start------------->8---
  XSLT     man/sd-login.html
warning: failed to load external entity "man/libsystemd-pkgconfig.xml"
man/sd-login.xml:118: element include: XInclude error : could not load 
man/libsystemd-pkgconfig.xml, and no fallback was found
Makefile:4988: recipe for target 'man/sd-login.html' failed
make[2]: *** [man/sd-login.html] Error 6
--8<---------------cut here---------------end--------------->8---

What to do with these files?  Should we ignore the man page generation
for now and rewrite the wee bit we need for elogind?  (Or should elogind
stay close to systemd upstream to make it easier to track development?)

Attached is the recipe I've been using.  (I modified it to work with my
clone of Andy's elogind repository which is ahead by two commits.)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 386f4c5..7e25686 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1,6 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Andreas Enge <address@hidden>
 ;;; Copyright © 2015 Sou Bunnbu <address@hidden>
+;;; Copyright © 2015 Andy Wingo <address@hidden>
+;;; Copyright © 2015 Ludovic Courtès <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,12 +20,19 @@
 ;;; 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 +57,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 +83,70 @@ 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 "c9c0992"))
+    (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
+                  "0lg8jgp9rl3wf9w2xfip87nx9zpjhm4js7x1z05744xiyfmvawp5"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(begin
+                    (use-modules (guix build utils))
+
+                    ;; Remove reference to nonexistent file.
+                    (substitute* "Makefile.am"
+                      (("shell-completion/zsh/_systemd-inhibit")
+                       "")
+                      (("shell-completion/zsh/_loginctl \\\\")
+                       "shell-completion/zsh/_loginctl")
+                      ;; Avoid validation against DTD because the DTDs for
+                      ;; both doctype 4.2 and 4.5 are needed.
+                      (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))
+
+                    ;; Rename this PAM configuration file to match what
+                    ;; Makefile.am expects.
+                    (rename-file "src/login/systemd-user"
+                                 "src/login/elogind-user")))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#: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+))))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]