From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: elogind WIP Date: Fri, 24 Apr 2015 23:09:18 +0200 Message-ID: <87vbglz11d.fsf@mango.localdomain> References: <87383vw5tc.fsf@pobox.com> <87tww6blhy.fsf@gnu.org> <87lhhible8.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59379) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ylkqn-0000VA-Hh for guix-devel@gnu.org; Fri, 24 Apr 2015 17:09:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ylkqm-0002PT-6H for guix-devel@gnu.org; Fri, 24 Apr 2015 17:09:29 -0400 In-reply-to: <87lhhible8.fsf@gnu.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: Andy Wingo , guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 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.) --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=elogind.patch Content-Transfer-Encoding: 8bit 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 ;;; Copyright © 2015 Sou Bunnbu +;;; Copyright © 2015 Andy Wingo +;;; Copyright © 2015 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,12 +20,19 @@ ;;; along with GNU Guix. If not, see . (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+)))) --=-=-=--