unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ricardo Wurmus <rekado@elephly.net>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: Andy Wingo <wingo@pobox.com>, guix-devel@gnu.org
Subject: Re: elogind WIP
Date: Fri, 24 Apr 2015 23:09:18 +0200	[thread overview]
Message-ID: <87vbglz11d.fsf@mango.localdomain> (raw)
In-Reply-To: <87lhhible8.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 1280 bytes --]


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.)


[-- Attachment #2: elogind.patch --]
[-- Type: text/x-patch, Size: 4689 bytes --]

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 <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>
 ;;;
 ;;; 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	other threads:[~2015-04-24 21:09 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-20  8:40 elogind WIP Andy Wingo
2015-04-23 21:08 ` Ludovic Courtès
2015-04-23 21:11   ` Ludovic Courtès
2015-04-24 21:09     ` Ricardo Wurmus [this message]
2015-04-29 20:10       ` Ludovic Courtès
2015-04-29 20:19         ` Ricardo Wurmus
2015-05-04  6:52           ` Ricardo Wurmus
2015-05-04 15:07             ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87vbglz11d.fsf@mango.localdomain \
    --to=rekado@elephly.net \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    --cc=wingo@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).