unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Andy Wingo <wingo@pobox.com>
To: guix-devel@gnu.org
Subject: elogind WIP
Date: Mon, 20 Apr 2015 10:40:47 +0200	[thread overview]
Message-ID: <87383vw5tc.fsf@pobox.com> (raw)

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

Hi,

Just a quick note to update on elogind status.  Elogind is an attempt to
rip logind out of systemd.  logind integrates with PAM to expose the
org.freedesktop.login1 interface over D-Bus.  It also integrates with
polkit to let polkit know who is logged in at the console.
Gnome-session and gnome-settings-daemon both have logind integration of
some kind, using the d-bus interface, and actually the logind support is
necessary for basic things to work like backlight control and
suspend/resume.

Anyway.  I forked the systemd repo and removed most of the non-logind
parts.  What's remaining is a library that pokes elogind's internal
state, exposed over the filesystem, to query user/seats/slices, the
daemon itself, a pam module, and a couple of test binaries (loginctl,
systemd-inhibit).  Most names were changed from systemd to logind but
not all, for compatibility reasons.  The name "elogind" was chosen
because it was available and it's like "eudev".

libelogind is an equivalent to libsystemd, for some things.  It should
be enough for GNOME, anyway.

There are still some files that could probably be removed but it's in a
pretty good state there.  It compiles but I haven't gotten it integrated
in Guix yet.  However since I won't have time for the next couple weeks
to work on it, and don't intend to spend much time on it anyway, I put
the repo here for your interest:

  https://github.com/andywingo/elogind

You can "git clone" that URL.  To make, do "intltoolize --automake
--force && autoreconf -vif" and then configure as usual.

Attached is the beginnings of a Guix file to build the thing.

Regards,

Andy

[-- Attachment #2: elogind.scm --]
[-- Type: text/plain, Size: 4587 bytes --]

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Andy Wingo <wingo@pobox.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages elogind)
  #:use-module ((guix licenses) #:select (lgpl2.1+))
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages autotools)
  #:use-module (gnu packages base)
  #:use-module (gnu packages docbook)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages gperf)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages xml))

(define-public elogind
  (let ((commit "b952404"))
    (package
      (name "elogind")
      (version (string-append "216." commit))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/andywingo/elogind")
                      ; (url "file:///home/wingo/src/elogind")
                      (commit commit)))
                (sha256
                 (base32
                  "0h54jw7h8csgfcjnyhijpmic5511jj0z5ln03p0b0mx0gvm11lsa"))))
      (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")))))
           (add-before 'build 'fix-docbook
                       (lambda* (#:key inputs #:allow-other-keys)
                         (substitute* "man/custom-html.xsl"
                           (("http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl")
                            (string-append (assoc-ref inputs "docbook-xsl") 
                                           "/xml/xsl/docbook-xsl-"
                                           ,(package-version docbook-xsl)
                                           "/html/docbook.xsl")))
                         (substitute* "man/custom-man.xsl"
                           (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
                            (string-append (assoc-ref inputs "docbook-xsl") 
                                           "/xml/xsl/docbook-xsl-"
                                           ,(package-version docbook-xsl)
                                           "/manpages/docbook.xsl")))
                         #;
                         (setenv "XML_CATALOG_FILES" 
                                 (string-append (assoc-ref inputs "docbook-xml") 
                                                "/xml/dtd/docbook/catalog.xml"))
                         #t)))))
      (native-inputs
       `(("intltool" ,intltool)
         ("gettext" ,gnu-gettext)
         ("docbook-xsl" ,docbook-xsl)
         ("xsltproc" ,libxslt)
         ("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 lgpl2.1+))))

[-- Attachment #3: Type: text/plain, Size: 26 bytes --]


-- 
http://wingolog.org/

             reply	other threads:[~2015-04-20  8:40 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-20  8:40 Andy Wingo [this message]
2015-04-23 21:08 ` elogind WIP Ludovic Courtès
2015-04-23 21:11   ` Ludovic Courtès
2015-04-24 21:09     ` Ricardo Wurmus
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=87383vw5tc.fsf@pobox.com \
    --to=wingo@pobox.com \
    --cc=guix-devel@gnu.org \
    /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).