09/09: PRELIMINARY: gnu: polkit: Work on making it functional in practice.

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 65ac587e1ac5c98a5e5464496b44e601af013361
Author: Mark H Weaver 
Date:   Mon Jul 27 00:08:39 2015 -0400

PRELIMINARY: gnu: polkit: Work on making it functional in practice.
---
 gnu/packages/polkit.scm |   66 ++
 1 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 6a89d6b..baf183f 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge 
+;;; Copyright © 2015 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -64,20 +65,61 @@
(("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
-  `(("expat" ,expat)
-("glib:bin" ,glib "bin") ; for glib-mkenums
-("elogind" ,elogind)
-("intltool" ,intltool)
-("linux-pam" ,linux-pam)
-;; FIXME: Shouldn't need libcap, it should be correctly propagated
-;; from elogind.
-("libcap" ,libcap)
-("mozjs" ,mozjs)
-("nspr" ,nspr)))
+ `(("expat" ,expat)
+   ("linux-pam" ,linux-pam)
+   ;; FIXME: Shouldn't need libcap, it should be correctly propagated
+   ;; from elogind.
+   ("libcap" ,libcap)
+   ("elogind" ,elogind)
+   ("mozjs" ,mozjs)
+   ("nspr" ,nspr)))
 (propagated-inputs
-  `(("glib" ,glib))) ; required by polkit-gobject-1.pc
+ `(("glib" ,glib))) ; required by polkit-gobject-1.pc
 (native-inputs
-  `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin") ; for glib-mkenums
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)))
+(arguments
+ `(#:configure-flags '("--sysconfdir=/etc"
+   "--enable-man-pages")
+   #:phases
+   (modify-phases %standard-phases
+ (add-after
+  'unpack 'patch-file-names
+  (lambda* (#:key outputs #:allow-other-keys)
+(substitute* "src/polkitagent/polkitagentsession.c"
+  (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
+   "\"/run/setuid-programs/polkit-agent-helper-1\""))
+(substitute* 
"src/polkitbackend/polkitbackendinteractiveauthority.c"
+  (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
+   "\"/run/current-system/profile/share/polkit-1/actions\""))
+(substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+  (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
+   "\"/run/current-system/profile/share/polkit-1/rules.d\""))
+#t))
+ (add-after
+  'unpack 'fix-introspection-install-dir
+  (lambda* (#:key outputs #:allow-other-keys)
+(let ((out (assoc-ref outputs "out")))
+  (substitute* (find-files "." "Makefile.in")
+(("@INTROSPECTION_GIRDIR@")
+ (string-append out "/share/gir-1.0/"))
+(("@INTROSPECTION_TYPELIBDIR@")
+ (string-append out "/lib/girepository-1.0/"))
+ (replace
+  'install
+  (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
+;; Override sysconfdir during "make install", to avoid attempting
+;; to install in /etc, and to instead install the skeletons in the
+;; output directory.
+(let ((out (assoc-ref outputs "out")))
+ (zero? (apply system*
+   "make" "install"
+   (string-append "sysconfdir=" out "/etc")
+   (string-append "polkit_actiondir="
+  out "/share/polkit-1/actions")
+   make-flags
 (home-page "http://www.freedesktop.org/wiki/Software/polkit/";)
 (synopsis "Authorization API for privilege management")
 (description "Polkit is an application-level toolkit for defining and



04/09: gnu: polkit: Use elogind for seat management.

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 191799932e570d0fce62e0dc408d335fc28619cc
Author: Andy Wingo 
Date:   Tue Aug 18 11:39:22 2015 +0200

gnu: polkit: Use elogind for seat management.

* gnu/packages/polkit.scm (polkit): Depend on elogind.
---
 gnu/packages/polkit.scm |   23 ++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 172b0e1..6a89d6b 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -23,6 +23,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages linux)
@@ -44,13 +45,33 @@
  (sha256
   (base32
"109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
- (patches (list (search-patch "polkit-drop-test.patch")
+ (patches (list (search-patch "polkit-drop-test.patch")))
+ (modules '((guix build utils)))
+ (snippet
+  '(begin
+ (use-modules (guix build utils))
+ (substitute* "configure"
+   ;; Replace libsystemd-login with libelogind.
+   (("libsystemd-login") "libelogind")
+   ;; Skip the sanity check that the current system runs
+   ;; systemd.
+   (("test ! -d /sys/fs/cgroup/systemd/") "false"))
+ (substitute* "src/polkit/polkitunixsession-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
   `(("expat" ,expat)
 ("glib:bin" ,glib "bin") ; for glib-mkenums
+("elogind" ,elogind)
 ("intltool" ,intltool)
 ("linux-pam" ,linux-pam)
+;; FIXME: Shouldn't need libcap, it should be correctly propagated
+;; from elogind.
+("libcap" ,libcap)
 ("mozjs" ,mozjs)
 ("nspr" ,nspr)))
 (propagated-inputs



05/09: gnu: colord: Add libcap input.

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit cf0d6da404460deb19bf70ac97aff4b5e969f19c
Author: Andy Wingo 
Date:   Tue Aug 18 11:54:13 2015 +0200

gnu: colord: Add libcap input.

* gnu/packages/gnome.scm (colord): Add libcap as an input.  I don't know 
why;
  I suspect something libtool-related with libelogind.la.
---
 gnu/packages/gnome.scm |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4b26066..42c31c0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2202,6 +2202,8 @@ keyboard shortcuts.")
 (inputs
  `(("dbus-glib" ,dbus-glib)
("libusb" ,libusb)
+   ;; FIXME: propagated in from elogind via polkit.  Why?
+   ("libcap" ,libcap)
("sqlite" ,sqlite)
("polkit" ,polkit)
("sane-backends" ,sane-backends)))



06/09: gnu: Add elogind service.

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 8d49f94397e901839964862f1261a52545aef072
Author: Andy Wingo 
Date:   Tue Aug 18 11:56:17 2015 +0200

gnu: Add elogind service.

* gnu/services/desktop.scm (elogind-service): New function.
  (%desktop-services): Add elogind-service.
---
 gnu/services/desktop.scm |   27 ++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4e4b49d..4973e82 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
@@ -39,6 +40,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+elogind-service
 %desktop-services))
 
 ;;; Commentary:
@@ -374,6 +376,28 @@ site} for more information."
 
 
 ;;;
+;;; Elogind login and seat management service.
+;;;
+
+(define* (elogind-service #:key (elogind elogind))
+  "Return a service that runs the @command{elogind} login and seat management
+service.  The @command{elogind} service integrates with PAM to allow other
+system components to know the set of logged-in users as well as their session
+types (graphical, console, remote, etc.).  It can also clean up after users
+when they log out."
+  (with-monad %store-monad
+(return
+ (service
+  (documentation "Run the elogind login and seat management service.")
+  (provision '(elogind))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$elogind "/libexec/elogind/elogind"
+  (stop #~(make-kill-destructor))
+
+
+;;;
 ;;; The default set of desktop services.
 ;;;
 (define %desktop-services
@@ -389,7 +413,8 @@ site} for more information."
  ;; time, so we currently add them to the set of default services.
  (colord-service)
  (geoclue-service)
- (dbus-service (list avahi wicd upower colord geoclue))
+ (elogind-service)
+ (dbus-service (list avahi wicd upower colord geoclue elogind))
 
  (ntp-service)
 



02/09: gnu: elogind: Update to version 219.5.

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 21db195910c93dada0c479367ecf455b6f5018df
Author: Andy Wingo 
Date:   Tue Aug 18 10:05:24 2015 +0200

gnu: elogind: Update to version 219.5.

* gnu/packages/freedesktop.scm (elogind): Update to 219.5.
---
 gnu/packages/freedesktop.scm |  110 -
 1 files changed, 54 insertions(+), 56 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d477668..17c7b3a 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -130,65 +130,63 @@ the freedesktop.org XDG Base Directory specification.")
 (license license:expat)))
 
 (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,
+  (package
+(name "elogind")
+(version "219.5")
+(source (origin
+  (method git-fetch)
+  (uri (git-reference
+(url "https://github.com/andywingo/elogind";)
+(tag (string-append "v" version
+  (sha256
+   (base32
+"09ipra2q6gsdll3356jcb1yx2za9p4qab5qfk9g2z40msvb93hs5"))
+  (file-name (string-append name "-checkout-" version))
+  (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 (string-append "--with-udevrulesdir="
+(assoc-ref %outputs "out")
+"/lib/udev/rules.d"))
+   #:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'autogen
+(lambda _
+  (and (zero? (system* "intltoolize" "--force" 
"--automake"))
+   (zero? (system* 

01/09: guix: git: Support shallow git clones if a tag is available

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 7c01e2653555d6a7f9b1cbf73ef60877cfe46043
Author: Andy Wingo 
Date:   Tue Aug 18 10:03:06 2015 +0200

guix: git: Support shallow git clones if a tag is available

* guix/build/git.scm (git-fetch): Instead of cloning the remote repo, use 
the
  lower-level "init" / "fetch" / "checkout" operations.  This lets us make a
  shallow checkout if we are checking out a tag.

* guix/git-download.scm (): Add tag field.
  (git-fetch): Support git references with tags but no commits.
---
 guix/build/git.scm|   58 +
 guix/git-download.scm |   10 ++-
 2 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/guix/build/git.scm b/guix/build/git.scm
index 121f07a..1af547f 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -28,32 +28,52 @@
 ;;; Code:
 
 (define* (git-fetch url commit directory
-#:key (git-command "git") recursive?)
+#:key tag (git-command "git") recursive?)
   "Fetch COMMIT from URL into DIRECTORY.  COMMIT must be a valid Git commit
 identifier.  When RECURSIVE? is true, all the sub-modules of URL are fetched,
 recursively.  Return #t on success, #f otherwise."
-
   ;; Disable TLS certificate verification.  The hash of the checkout is known
   ;; in advance anyway.
   (setenv "GIT_SSL_NO_VERIFY" "true")
 
-  (let ((args `("clone" ,@(if recursive? '("--recursive") '())
-,url ,directory)))
-(and (zero? (apply system* git-command args))
- (with-directory-excursion directory
-   (system* git-command "tag" "-l")
-   (and (zero? (system* git-command "checkout" commit))
-(begin
-  ;; The contents of '.git' vary as a function of the current
-  ;; status of the Git repo.  Since we want a fixed output, 
this
-  ;; directory needs to be taken out.
-  (delete-file-recursively ".git")
+  (mkdir directory)
+  (with-directory-excursion directory
+(and (zero? (system* git-command "init"))
+ (zero? (system* git-command "remote" "add" "origin" url))
+ (cond
+  ;; If there's a tag, do a shallow fetch.  Otherwise we do a full
+  ;; fetch.
+  (tag
+   (and (zero? (system* git-command "fetch" "--depth=1" "origin" tag))
+;; Either there is no commit specified, in which case we are
+;; good, or there is a commit and it is the same as the tag,
+;; in which case we're still good, or there's a commit and
+;; it's under the tag so we have to unshallow the checkout and
+;; try again.
+(if commit
+(or (zero? (system* git-command "checkout" commit))
+(and (zero? (system* git-command "fetch" 
"--unshallow"))
+ (zero? (system* git-command "checkout" commit
+(zero? (system* git-command "checkout" "FETCH_HEAD")
+  (else
+   ;; Fall back to a full fetch.  In that case print available tags.
+   (and (zero? (system* git-command "fetch" "origin"))
+(zero? (system* git-command "tag" "-l"))
+(zero? (system* git-command "checkout" commit)
+ (or (not recursive?)
+ (zero? (system* git-command
+ "submodule" "update" "--init" "--recursive")))
+ (begin
+   ;; The contents of '.git' vary as a function of the current
+   ;; status of the Git repo.  Since we want a fixed output, this
+   ;; directory needs to be taken out.
+   (delete-file-recursively ".git")
 
-  (when recursive?
-;; In sub-modules, '.git' is a flat file, not a directory,
-;; so we can use 'find-files' here.
-(for-each delete-file-recursively
-  (find-files directory "^\\.git$")))
-  #t))
+   (when recursive?
+ ;; In sub-modules, '.git' is a flat file, not a directory,
+ ;; so we can use 'find-files' here.
+ (for-each delete-file-recursively
+   (find-files directory "^\\.git$")))
+   #t
 
 ;;; git.scm ends here
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 0f2218c..43bc466 1

branch wip-pam-elogind created (now 65ac587)

2015-08-24 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

at  65ac587   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

This branch includes the following new commits:

   new  7c01e26   guix: git: Support shallow git clones if a tag is 
available
   new  21db195   gnu: elogind: Update to version 219.5.
   new  2f6328a   gnu: Allow OS configurations to add PAM session modules
   new  1917999   gnu: polkit: Use elogind for seat management.
   new  cf0d6da   gnu: colord: Add libcap input.
   new  8d49f94   gnu: Add elogind service.
   new  7b89171   gnu: Add polkit service.
   new  77724c7   gnu: elogind: Update to v219.6
   new  65ac587   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

The 9 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.




07/09: gnu: Add polkit service.

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 7b891712f144f61c451246a446dc394e257d25e2
Author: Andy Wingo 
Date:   Tue Aug 18 11:57:15 2015 +0200

gnu: Add polkit service.

* gnu/services/desktop.scm (polkit-service): New function.
  (%desktop-services): Add polkit service.
---
 gnu/services/desktop.scm |   48 +
 1 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4973e82..543b452 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
+  #:use-module (gnu packages polkit)
   #:use-module (guix monads)
   #:use-module (guix store)
   #:use-module (guix gexp)
@@ -40,6 +41,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+polkit-service
 elogind-service
 %desktop-services))
 
@@ -376,6 +378,40 @@ site} for more information."
 
 
 ;;;
+;;; Polkit privilege management service.
+;;;
+
+(define* (polkit-service #:key (polkit polkit))
+  "Return a service that runs the @command{polkit} privilege management
+service.  By querying the @command{polkit} service, a privileged system
+component can know when it should grant additional capabilities to ordinary
+users.  For example, an ordinary user can be granted the capability to suspend
+the system if the user is logged in locally."
+  (with-monad %store-monad
+(return
+ (service
+  (documentation "Run the polkit privilege management service.")
+  (provision '(polkit-daemon))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$polkit "/lib/polkit-1/polkitd"
+  (stop #~(make-kill-destructor))
+
+  (user-groups (list (user-group
+  (name "polkitd")
+  (system? #t
+  (user-accounts (list (user-account
+(name "polkitd")
+(group "polkitd")
+(system? #t)
+(comment "Polkit daemon user")
+(home-directory "/var/empty")
+(shell
+ "/run/current-system/profile/sbin/nologin"
+
+
+;;;
 ;;; Elogind login and seat management service.
 ;;;
 
@@ -407,14 +443,16 @@ when they log out."
  (avahi-service)
  (wicd-service)
  (upower-service)
- ;; FIXME: The colord and geoclue services could all be bus-activated
- ;; by default, so they don't run at program startup.  However, user
- ;; creation and /var/lib.colord creation happen at service activation
- ;; time, so we currently add them to the set of default services.
+ ;; FIXME: The colord, geoclue, and polkit services could all be
+ ;; bus-activated by default, so they don't run at program startup.
+ ;; However, user creation and /var/lib/colord creation happen at
+ ;; service activation time, so we currently add them to the set of
+ ;; default services.
  (colord-service)
  (geoclue-service)
+ (polkit-service)
  (elogind-service)
- (dbus-service (list avahi wicd upower colord geoclue elogind))
+ (dbus-service (list avahi wicd upower colord geoclue polkit elogind))
 
  (ntp-service)
 



08/09: gnu: elogind: Update to v219.6

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 77724c7c8fd7991e0db6d84f24faffcb84371fba
Author: Andy Wingo 
Date:   Mon Aug 24 22:54:44 2015 +0200

gnu: elogind: Update to v219.6

* gnu/packages/freedesktop.scm (elogind): Update to v219.6.
---
 gnu/packages/freedesktop.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 17c7b3a..b206d45 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -132,7 +132,7 @@ the freedesktop.org XDG Base Directory specification.")
 (define-public elogind
   (package
 (name "elogind")
-(version "219.5")
+(version "219.6")
 (source (origin
   (method git-fetch)
   (uri (git-reference
@@ -140,7 +140,7 @@ the freedesktop.org XDG Base Directory specification.")
 (tag (string-append "v" version
   (sha256
(base32
-"09ipra2q6gsdll3356jcb1yx2za9p4qab5qfk9g2z40msvb93hs5"))
+"0lixvvwn6p3ajwjhz6nzbpp8ah2pn3jqk0pga0bvxh2aq5hqgf84"))
   (file-name (string-append name "-checkout-" version))
   (modules '((guix build utils)))
   (snippet



03/09: gnu: Allow OS configurations to add PAM session modules

2015-08-24 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 2f6328ac294e2fcbeef414a6e62cebba9822ca20
Author: Andy Wingo 
Date:   Tue Aug 18 10:22:16 2015 +0200

gnu: Allow OS configurations to add PAM session modules

* gnu/services/base.scm (mingetty-service):
* gnu/services/xorg.scm (slim-service):
* gnu/services/ssh.scm (lsh-service):
* gnu/system/linux.scm (unix-pam-service, base-pam-services): Add
  #:additional-session-modules keyword argument.
---
 gnu/services/base.scm |6 --
 gnu/services/ssh.scm  |6 --
 gnu/services/xorg.scm |6 --
 gnu/system/linux.scm  |   27 ---
 4 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 888e446..60dc93b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -364,7 +364,8 @@ stopped before 'kill' is called."
;; Allow empty passwords by default so that
;; first-time users can log in when the 'root'
;; account has just been created.
-   (allow-empty-passwords? #t))
+   (allow-empty-passwords? #t)
+   (additional-session-modules '()))
   "Return a service to run mingetty on @var{tty}.
 
 When @var{allow-empty-passwords?} is true, allow empty log-in password.  When
@@ -416,7 +417,8 @@ the ``message of the day''."
;; duplicates are removed.
(list (unix-pam-service "login"
#:allow-empty-passwords? allow-empty-passwords?
-   #:motd motd)))
+   #:motd motd
+   #:additional-session-modules 
additional-session-modules)))
 
 (define-record-type*  nscd-configuration
   make-nscd-configuration
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index e2f8542..15e4052 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -86,7 +86,8 @@
   (tcp/ip-forwarding? #t)
   (password-authentication? #t)
   (public-key-authentication? #t)
-  (initialize? #t))
+  (initialize? #t)
+  (additional-session-modules '()))
   "Run the @command{lshd} program from @var{lsh} to listen on port 
@var{port-number}.
 @var{host-key} must designate a file containing the host key, and readable
 only by root.
@@ -162,7 +163,8 @@ The other options should be self-descriptive."
  (pam-services
   (list (unix-pam-service
  "lshd"
- #:allow-empty-passwords? allow-empty-passwords?)))
+ #:allow-empty-passwords? allow-empty-passwords?
+ #:additional-session-modules additional-session-modules)))
  (activate #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/spool/lsh")
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 9ee8817..71bbb32 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -224,7 +224,8 @@ which should be passed to this script as the first 
argument.  If not, the
(xauth xauth) (dmd dmd) (bash bash)
(auto-login-session #~(string-append #$windowmaker
 "/bin/wmaker"))
-   startx)
+   startx
+   (additional-session-modules '()))
   "Return a service that spawns the SLiM graphical login manager, which in
 turn starts the X display server with @var{startx}, a command as returned by
 @code{xorg-start-command}.
@@ -305,6 +306,7 @@ reboot_cmd " dmd "/sbin/reboot
;; Tell PAM about 'slim'.
(list (unix-pam-service
   "slim"
-  #:allow-empty-passwords? allow-empty-passwords?)))
+  #:allow-empty-passwords? allow-empty-passwords?
+  #:additional-session-modules additional-session-modules)))
 
 ;;; xorg.scm ends here
diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm
index 8c6..d6a9959 100644
--- a/gnu/system/linux.scm
+++ b/gnu/system/linux.scm
@@ -133,7 +133,8 @@ dumped in /etc/pam.d/NAME, where NAME is the name of 
SERVICE."
   (let ((unix (pam-entry
(control "required")
(module "pam_unix.so"
-(lambda* (name #:key allow-empty-passwords? motd)
+(lambda* (name #:key allow-empty-passwords? motd
+   (additional-session-modules '()))
   "Return a standard Unix-style PAM service for NAME.  When
 ALLOW-EMPTY-PASSWORDS? is true, allow empty

branch wip-pam-elogind deleted (was 65ac587)

2015-08-29 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

   was  65ac587   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

This change permanently discards the following revisions:

  discards  65ac587   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.
  discards  77724c7   gnu: elogind: Update to v219.6
  discards  7b89171   gnu: Add polkit service.
  discards  8d49f94   gnu: Add elogind service.
  discards  cf0d6da   gnu: colord: Add libcap input.
  discards  1917999   gnu: polkit: Use elogind for seat management.
  discards  2f6328a   gnu: Allow OS configurations to add PAM session modules
  discards  21db195   gnu: elogind: Update to version 219.5.
  discards  7c01e26   guix: git: Support shallow git clones if a tag is 
available



01/07: gnu: elogind: Update to version 219.8.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit d0234dae389672a949ad6f58b5c0fa96d16d9065
Author: Andy Wingo 
Date:   Tue Aug 18 10:05:24 2015 +0200

gnu: elogind: Update to version 219.8.

* gnu/packages/freedesktop.scm (elogind): Update to 219.8.  Use a tarball
  instead of a git checkout.
---
 gnu/packages/freedesktop.scm |  103 +++---
 1 files changed, 47 insertions(+), 56 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d477668..1da0d76 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages doxygen)
   #:use-module (gnu packages libffi)
@@ -130,65 +131,55 @@ the freedesktop.org XDG Base Directory specification.")
 (license license:expat)))
 
 (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,
+  (package
+(name "elogind")
+(version "219.8")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://wingolog.org/pub/"; name "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0i3vikgc4pbky43i7fr5v5amdx8wr3sq9k6pagc8jzrc5akg0frb"))
+  (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 (string-append "--with-libcap="
+(assoc-ref %build-inputs "libcap"))
+ (string-append "--with-udevrulesdir="
+(assoc-ref

06/07: gnu: Add polkit service.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 0df716f97a6d25e49803cb3040c2c706167efa34
Author: Andy Wingo 
Date:   Tue Aug 18 11:57:15 2015 +0200

gnu: Add polkit service.

* gnu/services/desktop.scm (polkit-service): New function.
  (%desktop-services): Add polkit service.
---
 gnu/services/desktop.scm |   48 +
 1 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4973e82..543b452 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
+  #:use-module (gnu packages polkit)
   #:use-module (guix monads)
   #:use-module (guix store)
   #:use-module (guix gexp)
@@ -40,6 +41,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+polkit-service
 elogind-service
 %desktop-services))
 
@@ -376,6 +378,40 @@ site} for more information."
 
 
 ;;;
+;;; Polkit privilege management service.
+;;;
+
+(define* (polkit-service #:key (polkit polkit))
+  "Return a service that runs the @command{polkit} privilege management
+service.  By querying the @command{polkit} service, a privileged system
+component can know when it should grant additional capabilities to ordinary
+users.  For example, an ordinary user can be granted the capability to suspend
+the system if the user is logged in locally."
+  (with-monad %store-monad
+(return
+ (service
+  (documentation "Run the polkit privilege management service.")
+  (provision '(polkit-daemon))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$polkit "/lib/polkit-1/polkitd"
+  (stop #~(make-kill-destructor))
+
+  (user-groups (list (user-group
+  (name "polkitd")
+  (system? #t
+  (user-accounts (list (user-account
+(name "polkitd")
+(group "polkitd")
+(system? #t)
+(comment "Polkit daemon user")
+(home-directory "/var/empty")
+(shell
+ "/run/current-system/profile/sbin/nologin"
+
+
+;;;
 ;;; Elogind login and seat management service.
 ;;;
 
@@ -407,14 +443,16 @@ when they log out."
  (avahi-service)
  (wicd-service)
  (upower-service)
- ;; FIXME: The colord and geoclue services could all be bus-activated
- ;; by default, so they don't run at program startup.  However, user
- ;; creation and /var/lib.colord creation happen at service activation
- ;; time, so we currently add them to the set of default services.
+ ;; FIXME: The colord, geoclue, and polkit services could all be
+ ;; bus-activated by default, so they don't run at program startup.
+ ;; However, user creation and /var/lib/colord creation happen at
+ ;; service activation time, so we currently add them to the set of
+ ;; default services.
  (colord-service)
  (geoclue-service)
+ (polkit-service)
  (elogind-service)
- (dbus-service (list avahi wicd upower colord geoclue elogind))
+ (dbus-service (list avahi wicd upower colord geoclue polkit elogind))
 
  (ntp-service)
 



05/07: gnu: Add elogind service.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit a99bec2b16a99fb6635c2fe18265cbd3dd6cf7f3
Author: Andy Wingo 
Date:   Tue Aug 18 11:56:17 2015 +0200

gnu: Add elogind service.

* gnu/services/desktop.scm (elogind-service): New function.
  (%desktop-services): Add elogind-service.
---
 gnu/services/desktop.scm |   27 ++-
 1 files changed, 26 insertions(+), 1 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4e4b49d..4973e82 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
@@ -39,6 +40,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+elogind-service
 %desktop-services))
 
 ;;; Commentary:
@@ -374,6 +376,28 @@ site} for more information."
 
 
 ;;;
+;;; Elogind login and seat management service.
+;;;
+
+(define* (elogind-service #:key (elogind elogind))
+  "Return a service that runs the @command{elogind} login and seat management
+service.  The @command{elogind} service integrates with PAM to allow other
+system components to know the set of logged-in users as well as their session
+types (graphical, console, remote, etc.).  It can also clean up after users
+when they log out."
+  (with-monad %store-monad
+(return
+ (service
+  (documentation "Run the elogind login and seat management service.")
+  (provision '(elogind))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$elogind "/libexec/elogind/elogind"
+  (stop #~(make-kill-destructor))
+
+
+;;;
 ;;; The default set of desktop services.
 ;;;
 (define %desktop-services
@@ -389,7 +413,8 @@ site} for more information."
  ;; time, so we currently add them to the set of default services.
  (colord-service)
  (geoclue-service)
- (dbus-service (list avahi wicd upower colord geoclue))
+ (elogind-service)
+ (dbus-service (list avahi wicd upower colord geoclue elogind))
 
  (ntp-service)
 



03/07: guix: git: Support shallow git clones if a tag is available

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 231e4230754e8f0cf52476affb1980fe87a18a8e
Author: Andy Wingo 
Date:   Tue Aug 18 10:03:06 2015 +0200

guix: git: Support shallow git clones if a tag is available

* guix/build/git.scm (git-fetch): Instead of cloning the remote repo, use 
the
  lower-level "init" / "fetch" / "checkout" operations.  This lets us make a
  shallow checkout if we are checking out a tag.

* guix/git-download.scm (): Add tag field.
  (git-fetch): Support git references with tags but no commits.
---
 guix/build/git.scm|   58 +
 guix/git-download.scm |   10 ++-
 2 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/guix/build/git.scm b/guix/build/git.scm
index 121f07a..1af547f 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -28,32 +28,52 @@
 ;;; Code:
 
 (define* (git-fetch url commit directory
-#:key (git-command "git") recursive?)
+#:key tag (git-command "git") recursive?)
   "Fetch COMMIT from URL into DIRECTORY.  COMMIT must be a valid Git commit
 identifier.  When RECURSIVE? is true, all the sub-modules of URL are fetched,
 recursively.  Return #t on success, #f otherwise."
-
   ;; Disable TLS certificate verification.  The hash of the checkout is known
   ;; in advance anyway.
   (setenv "GIT_SSL_NO_VERIFY" "true")
 
-  (let ((args `("clone" ,@(if recursive? '("--recursive") '())
-,url ,directory)))
-(and (zero? (apply system* git-command args))
- (with-directory-excursion directory
-   (system* git-command "tag" "-l")
-   (and (zero? (system* git-command "checkout" commit))
-(begin
-  ;; The contents of '.git' vary as a function of the current
-  ;; status of the Git repo.  Since we want a fixed output, 
this
-  ;; directory needs to be taken out.
-  (delete-file-recursively ".git")
+  (mkdir directory)
+  (with-directory-excursion directory
+(and (zero? (system* git-command "init"))
+ (zero? (system* git-command "remote" "add" "origin" url))
+ (cond
+  ;; If there's a tag, do a shallow fetch.  Otherwise we do a full
+  ;; fetch.
+  (tag
+   (and (zero? (system* git-command "fetch" "--depth=1" "origin" tag))
+;; Either there is no commit specified, in which case we are
+;; good, or there is a commit and it is the same as the tag,
+;; in which case we're still good, or there's a commit and
+;; it's under the tag so we have to unshallow the checkout and
+;; try again.
+(if commit
+(or (zero? (system* git-command "checkout" commit))
+(and (zero? (system* git-command "fetch" 
"--unshallow"))
+ (zero? (system* git-command "checkout" commit
+(zero? (system* git-command "checkout" "FETCH_HEAD")
+  (else
+   ;; Fall back to a full fetch.  In that case print available tags.
+   (and (zero? (system* git-command "fetch" "origin"))
+(zero? (system* git-command "tag" "-l"))
+(zero? (system* git-command "checkout" commit)
+ (or (not recursive?)
+ (zero? (system* git-command
+ "submodule" "update" "--init" "--recursive")))
+ (begin
+   ;; The contents of '.git' vary as a function of the current
+   ;; status of the Git repo.  Since we want a fixed output, this
+   ;; directory needs to be taken out.
+   (delete-file-recursively ".git")
 
-  (when recursive?
-;; In sub-modules, '.git' is a flat file, not a directory,
-;; so we can use 'find-files' here.
-(for-each delete-file-recursively
-  (find-files directory "^\\.git$")))
-  #t))
+   (when recursive?
+ ;; In sub-modules, '.git' is a flat file, not a directory,
+ ;; so we can use 'find-files' here.
+ (for-each delete-file-recursively
+   (find-files directory "^\\.git$")))
+   #t
 
 ;;; git.scm ends here
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 0f2218c..43bc466 1

02/07: gnu: polkit: Use elogind for seat management.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 585e2ccb58018b23ac609bc8aa8836bb66a818cc
Author: Andy Wingo 
Date:   Tue Aug 18 11:39:22 2015 +0200

gnu: polkit: Use elogind for seat management.

* gnu/packages/polkit.scm (polkit): Depend on elogind.
---
 gnu/packages/polkit.scm |   20 +++-
 1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 172b0e1..acbc03d 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -23,6 +23,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages linux)
@@ -44,11 +45,28 @@
  (sha256
   (base32
"109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
- (patches (list (search-patch "polkit-drop-test.patch")
+ (patches (list (search-patch "polkit-drop-test.patch")))
+ (modules '((guix build utils)))
+ (snippet
+  '(begin
+ (use-modules (guix build utils))
+ (substitute* "configure"
+   ;; Replace libsystemd-login with libelogind.
+   (("libsystemd-login") "libelogind")
+   ;; Skip the sanity check that the current system runs
+   ;; systemd.
+   (("test ! -d /sys/fs/cgroup/systemd/") "false"))
+ (substitute* "src/polkit/polkitunixsession-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
   `(("expat" ,expat)
 ("glib:bin" ,glib "bin") ; for glib-mkenums
+("elogind" ,elogind)
 ("intltool" ,intltool)
 ("linux-pam" ,linux-pam)
 ("mozjs" ,mozjs)



07/07: PRELIMINARY: gnu: polkit: Work on making it functional in practice.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit f36a170fab53fae4f9f5875023aba7e284931abc
Author: Mark H Weaver 
Date:   Mon Jul 27 00:08:39 2015 -0400

PRELIMINARY: gnu: polkit: Work on making it functional in practice.
---
 gnu/packages/polkit.scm |   60 +++---
 1 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index acbc03d..1813933 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge 
+;;; Copyright © 2015 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -64,17 +65,58 @@
(("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
-  `(("expat" ,expat)
-("glib:bin" ,glib "bin") ; for glib-mkenums
-("elogind" ,elogind)
-("intltool" ,intltool)
-("linux-pam" ,linux-pam)
-("mozjs" ,mozjs)
-("nspr" ,nspr)))
+ `(("expat" ,expat)
+   ("linux-pam" ,linux-pam)
+   ("elogind" ,elogind)
+   ("mozjs" ,mozjs)
+   ("nspr" ,nspr)))
 (propagated-inputs
-  `(("glib" ,glib))) ; required by polkit-gobject-1.pc
+ `(("glib" ,glib))) ; required by polkit-gobject-1.pc
 (native-inputs
-  `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin") ; for glib-mkenums
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)))
+(arguments
+ `(#:configure-flags '("--sysconfdir=/etc"
+   "--enable-man-pages")
+   #:phases
+   (modify-phases %standard-phases
+ (add-after
+  'unpack 'patch-file-names
+  (lambda* (#:key outputs #:allow-other-keys)
+(substitute* "src/polkitagent/polkitagentsession.c"
+  (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
+   "\"/run/setuid-programs/polkit-agent-helper-1\""))
+(substitute* 
"src/polkitbackend/polkitbackendinteractiveauthority.c"
+  (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
+   "\"/run/current-system/profile/share/polkit-1/actions\""))
+(substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+  (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
+   "\"/run/current-system/profile/share/polkit-1/rules.d\""))
+#t))
+ (add-after
+  'unpack 'fix-introspection-install-dir
+  (lambda* (#:key outputs #:allow-other-keys)
+(let ((out (assoc-ref outputs "out")))
+  (substitute* (find-files "." "Makefile.in")
+(("@INTROSPECTION_GIRDIR@")
+ (string-append out "/share/gir-1.0/"))
+(("@INTROSPECTION_TYPELIBDIR@")
+ (string-append out "/lib/girepository-1.0/"))
+ (replace
+  'install
+  (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
+;; Override sysconfdir during "make install", to avoid attempting
+;; to install in /etc, and to instead install the skeletons in the
+;; output directory.
+(let ((out (assoc-ref outputs "out")))
+ (zero? (apply system*
+   "make" "install"
+   (string-append "sysconfdir=" out "/etc")
+   (string-append "polkit_actiondir="
+  out "/share/polkit-1/actions")
+   make-flags
 (home-page "http://www.freedesktop.org/wiki/Software/polkit/";)
 (synopsis "Authorization API for privilege management")
 (description "Polkit is an application-level toolkit for defining and



branch wip-pam-elogind created (now f36a170)

2015-08-29 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

at  f36a170   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

This branch includes the following new commits:

   new  d0234da   gnu: elogind: Update to version 219.8.
   new  585e2cc   gnu: polkit: Use elogind for seat management.
   new  231e423   guix: git: Support shallow git clones if a tag is 
available
   new  e688525   gnu: Allow OS configurations to add PAM session modules
   new  a99bec2   gnu: Add elogind service.
   new  0df716f   gnu: Add polkit service.
   new  f36a170   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.




04/07: gnu: Allow OS configurations to add PAM session modules

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit e6885258d4d8d802527f30c0d752d104f083b444
Author: Andy Wingo 
Date:   Tue Aug 18 10:22:16 2015 +0200

gnu: Allow OS configurations to add PAM session modules

* gnu/services/base.scm (mingetty-service):
* gnu/services/xorg.scm (slim-service):
* gnu/services/ssh.scm (lsh-service):
* gnu/system/linux.scm (unix-pam-service, base-pam-services): Add
  #:additional-session-modules keyword argument.
---
 gnu/services/base.scm |6 --
 gnu/services/ssh.scm  |6 --
 gnu/services/xorg.scm |6 --
 gnu/system/linux.scm  |   27 ---
 4 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 888e446..60dc93b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -364,7 +364,8 @@ stopped before 'kill' is called."
;; Allow empty passwords by default so that
;; first-time users can log in when the 'root'
;; account has just been created.
-   (allow-empty-passwords? #t))
+   (allow-empty-passwords? #t)
+   (additional-session-modules '()))
   "Return a service to run mingetty on @var{tty}.
 
 When @var{allow-empty-passwords?} is true, allow empty log-in password.  When
@@ -416,7 +417,8 @@ the ``message of the day''."
;; duplicates are removed.
(list (unix-pam-service "login"
#:allow-empty-passwords? allow-empty-passwords?
-   #:motd motd)))
+   #:motd motd
+   #:additional-session-modules 
additional-session-modules)))
 
 (define-record-type*  nscd-configuration
   make-nscd-configuration
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index e2f8542..15e4052 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -86,7 +86,8 @@
   (tcp/ip-forwarding? #t)
   (password-authentication? #t)
   (public-key-authentication? #t)
-  (initialize? #t))
+  (initialize? #t)
+  (additional-session-modules '()))
   "Run the @command{lshd} program from @var{lsh} to listen on port 
@var{port-number}.
 @var{host-key} must designate a file containing the host key, and readable
 only by root.
@@ -162,7 +163,8 @@ The other options should be self-descriptive."
  (pam-services
   (list (unix-pam-service
  "lshd"
- #:allow-empty-passwords? allow-empty-passwords?)))
+ #:allow-empty-passwords? allow-empty-passwords?
+ #:additional-session-modules additional-session-modules)))
  (activate #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/spool/lsh")
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 9ee8817..71bbb32 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -224,7 +224,8 @@ which should be passed to this script as the first 
argument.  If not, the
(xauth xauth) (dmd dmd) (bash bash)
(auto-login-session #~(string-append #$windowmaker
 "/bin/wmaker"))
-   startx)
+   startx
+   (additional-session-modules '()))
   "Return a service that spawns the SLiM graphical login manager, which in
 turn starts the X display server with @var{startx}, a command as returned by
 @code{xorg-start-command}.
@@ -305,6 +306,7 @@ reboot_cmd " dmd "/sbin/reboot
;; Tell PAM about 'slim'.
(list (unix-pam-service
   "slim"
-  #:allow-empty-passwords? allow-empty-passwords?)))
+  #:allow-empty-passwords? allow-empty-passwords?
+  #:additional-session-modules additional-session-modules)))
 
 ;;; xorg.scm ends here
diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm
index 7461a4a..1656862 100644
--- a/gnu/system/linux.scm
+++ b/gnu/system/linux.scm
@@ -133,7 +133,8 @@ dumped in /etc/pam.d/NAME, where NAME is the name of 
SERVICE."
   (let ((unix (pam-entry
(control "required")
(module "pam_unix.so"
-(lambda* (name #:key allow-empty-passwords? motd)
+(lambda* (name #:key allow-empty-passwords? motd
+   (additional-session-modules '()))
   "Return a standard Unix-style PAM service for NAME.  When
 ALLOW-EMPTY-PASSWORDS? is true, allow empty

branch wip-pam-elogind deleted (was f36a170)

2015-08-29 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

   was  f36a170   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

This change permanently discards the following revisions:

  discards  f36a170   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.
  discards  0df716f   gnu: Add polkit service.
  discards  a99bec2   gnu: Add elogind service.
  discards  e688525   gnu: Allow OS configurations to add PAM session modules
  discards  231e423   guix: git: Support shallow git clones if a tag is 
available
  discards  585e2cc   gnu: polkit: Use elogind for seat management.
  discards  d0234da   gnu: elogind: Update to version 219.8.



01/07: gnu: elogind: Update to version 219.8.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit d0234dae389672a949ad6f58b5c0fa96d16d9065
Author: Andy Wingo 
Date:   Tue Aug 18 10:05:24 2015 +0200

gnu: elogind: Update to version 219.8.

* gnu/packages/freedesktop.scm (elogind): Update to 219.8.  Use a tarball
  instead of a git checkout.
---
 gnu/packages/freedesktop.scm |  103 +++---
 1 files changed, 47 insertions(+), 56 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d477668..1da0d76 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages doxygen)
   #:use-module (gnu packages libffi)
@@ -130,65 +131,55 @@ the freedesktop.org XDG Base Directory specification.")
 (license license:expat)))
 
 (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,
+  (package
+(name "elogind")
+(version "219.8")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://wingolog.org/pub/"; name "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"0i3vikgc4pbky43i7fr5v5amdx8wr3sq9k6pagc8jzrc5akg0frb"))
+  (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 (string-append "--with-libcap="
+(assoc-ref %build-inputs "libcap"))
+ (string-append "--with-udevrulesdir="
+(assoc-ref

05/07: gnu: Allow OS configurations to add PAM session modules

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 3b26f6ea8bdde7e3e867f10e9ca41a05b4662375
Author: Andy Wingo 
Date:   Tue Aug 18 10:22:16 2015 +0200

gnu: Allow OS configurations to add PAM session modules

* gnu/services/base.scm (mingetty-service):
* gnu/services/xorg.scm (slim-service):
* gnu/services/ssh.scm (lsh-service):
* gnu/system/linux.scm (unix-pam-service, base-pam-services): Add
  #:additional-session-modules keyword argument.
---
 gnu/services/base.scm |6 --
 gnu/services/ssh.scm  |6 --
 gnu/services/xorg.scm |6 --
 gnu/system/linux.scm  |   27 ---
 4 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 888e446..60dc93b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -364,7 +364,8 @@ stopped before 'kill' is called."
;; Allow empty passwords by default so that
;; first-time users can log in when the 'root'
;; account has just been created.
-   (allow-empty-passwords? #t))
+   (allow-empty-passwords? #t)
+   (additional-session-modules '()))
   "Return a service to run mingetty on @var{tty}.
 
 When @var{allow-empty-passwords?} is true, allow empty log-in password.  When
@@ -416,7 +417,8 @@ the ``message of the day''."
;; duplicates are removed.
(list (unix-pam-service "login"
#:allow-empty-passwords? allow-empty-passwords?
-   #:motd motd)))
+   #:motd motd
+   #:additional-session-modules 
additional-session-modules)))
 
 (define-record-type*  nscd-configuration
   make-nscd-configuration
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index e2f8542..15e4052 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -86,7 +86,8 @@
   (tcp/ip-forwarding? #t)
   (password-authentication? #t)
   (public-key-authentication? #t)
-  (initialize? #t))
+  (initialize? #t)
+  (additional-session-modules '()))
   "Run the @command{lshd} program from @var{lsh} to listen on port 
@var{port-number}.
 @var{host-key} must designate a file containing the host key, and readable
 only by root.
@@ -162,7 +163,8 @@ The other options should be self-descriptive."
  (pam-services
   (list (unix-pam-service
  "lshd"
- #:allow-empty-passwords? allow-empty-passwords?)))
+ #:allow-empty-passwords? allow-empty-passwords?
+ #:additional-session-modules additional-session-modules)))
  (activate #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/spool/lsh")
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 9ee8817..71bbb32 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -224,7 +224,8 @@ which should be passed to this script as the first 
argument.  If not, the
(xauth xauth) (dmd dmd) (bash bash)
(auto-login-session #~(string-append #$windowmaker
 "/bin/wmaker"))
-   startx)
+   startx
+   (additional-session-modules '()))
   "Return a service that spawns the SLiM graphical login manager, which in
 turn starts the X display server with @var{startx}, a command as returned by
 @code{xorg-start-command}.
@@ -305,6 +306,7 @@ reboot_cmd " dmd "/sbin/reboot
;; Tell PAM about 'slim'.
(list (unix-pam-service
   "slim"
-  #:allow-empty-passwords? allow-empty-passwords?)))
+  #:allow-empty-passwords? allow-empty-passwords?
+  #:additional-session-modules additional-session-modules)))
 
 ;;; xorg.scm ends here
diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm
index 7461a4a..1656862 100644
--- a/gnu/system/linux.scm
+++ b/gnu/system/linux.scm
@@ -133,7 +133,8 @@ dumped in /etc/pam.d/NAME, where NAME is the name of 
SERVICE."
   (let ((unix (pam-entry
(control "required")
(module "pam_unix.so"
-(lambda* (name #:key allow-empty-passwords? motd)
+(lambda* (name #:key allow-empty-passwords? motd
+   (additional-session-modules '()))
   "Return a standard Unix-style PAM service for NAME.  When
 ALLOW-EMPTY-PASSWORDS? is true, allow empty

03/07: gnu: polkit: Use elogind for seat management.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit c79b9515bcdcf79181c12db9d3ecce3ba0a99c30
Author: Andy Wingo 
Date:   Tue Aug 18 11:39:22 2015 +0200

gnu: polkit: Use elogind for seat management.

* gnu/packages/polkit.scm (polkit): Depend on elogind.
---
 gnu/packages/polkit.scm |   20 +++-
 1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 172b0e1..acbc03d 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -23,6 +23,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages linux)
@@ -44,11 +45,28 @@
  (sha256
   (base32
"109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
- (patches (list (search-patch "polkit-drop-test.patch")
+ (patches (list (search-patch "polkit-drop-test.patch")))
+ (modules '((guix build utils)))
+ (snippet
+  '(begin
+ (use-modules (guix build utils))
+ (substitute* "configure"
+   ;; Replace libsystemd-login with libelogind.
+   (("libsystemd-login") "libelogind")
+   ;; Skip the sanity check that the current system runs
+   ;; systemd.
+   (("test ! -d /sys/fs/cgroup/systemd/") "false"))
+ (substitute* "src/polkit/polkitunixsession-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
   `(("expat" ,expat)
 ("glib:bin" ,glib "bin") ; for glib-mkenums
+("elogind" ,elogind)
 ("intltool" ,intltool)
 ("linux-pam" ,linux-pam)
 ("mozjs" ,mozjs)



branch wip-pam-elogind created (now 1a61bc4)

2015-08-29 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

at  1a61bc4   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

This branch includes the following new commits:

   new  d0234da   gnu: elogind: Update to version 219.8.
   new  36dd8f8   gnu: Add elogind service.
   new  c79b951   gnu: polkit: Use elogind for seat management.
   new  c7dd700   guix: git: Support shallow git clones if a tag is 
available
   new  3b26f6e   gnu: Allow OS configurations to add PAM session modules
   new  42489a4   gnu: Add polkit service.
   new  1a61bc4   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.




07/07: PRELIMINARY: gnu: polkit: Work on making it functional in practice.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 1a61bc4085e6e8694d4047023575b2535c7ae8c3
Author: Mark H Weaver 
Date:   Mon Jul 27 00:08:39 2015 -0400

PRELIMINARY: gnu: polkit: Work on making it functional in practice.
---
 gnu/packages/polkit.scm |   60 +++---
 1 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index acbc03d..1813933 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge 
+;;; Copyright © 2015 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -64,17 +65,58 @@
(("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
-  `(("expat" ,expat)
-("glib:bin" ,glib "bin") ; for glib-mkenums
-("elogind" ,elogind)
-("intltool" ,intltool)
-("linux-pam" ,linux-pam)
-("mozjs" ,mozjs)
-("nspr" ,nspr)))
+ `(("expat" ,expat)
+   ("linux-pam" ,linux-pam)
+   ("elogind" ,elogind)
+   ("mozjs" ,mozjs)
+   ("nspr" ,nspr)))
 (propagated-inputs
-  `(("glib" ,glib))) ; required by polkit-gobject-1.pc
+ `(("glib" ,glib))) ; required by polkit-gobject-1.pc
 (native-inputs
-  `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin") ; for glib-mkenums
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)))
+(arguments
+ `(#:configure-flags '("--sysconfdir=/etc"
+   "--enable-man-pages")
+   #:phases
+   (modify-phases %standard-phases
+ (add-after
+  'unpack 'patch-file-names
+  (lambda* (#:key outputs #:allow-other-keys)
+(substitute* "src/polkitagent/polkitagentsession.c"
+  (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
+   "\"/run/setuid-programs/polkit-agent-helper-1\""))
+(substitute* 
"src/polkitbackend/polkitbackendinteractiveauthority.c"
+  (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
+   "\"/run/current-system/profile/share/polkit-1/actions\""))
+(substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+  (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
+   "\"/run/current-system/profile/share/polkit-1/rules.d\""))
+#t))
+ (add-after
+  'unpack 'fix-introspection-install-dir
+  (lambda* (#:key outputs #:allow-other-keys)
+(let ((out (assoc-ref outputs "out")))
+  (substitute* (find-files "." "Makefile.in")
+(("@INTROSPECTION_GIRDIR@")
+ (string-append out "/share/gir-1.0/"))
+(("@INTROSPECTION_TYPELIBDIR@")
+ (string-append out "/lib/girepository-1.0/"))
+ (replace
+  'install
+  (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
+;; Override sysconfdir during "make install", to avoid attempting
+;; to install in /etc, and to instead install the skeletons in the
+;; output directory.
+(let ((out (assoc-ref outputs "out")))
+ (zero? (apply system*
+   "make" "install"
+   (string-append "sysconfdir=" out "/etc")
+   (string-append "polkit_actiondir="
+  out "/share/polkit-1/actions")
+   make-flags
 (home-page "http://www.freedesktop.org/wiki/Software/polkit/";)
 (synopsis "Authorization API for privilege management")
 (description "Polkit is an application-level toolkit for defining and



02/07: gnu: Add elogind service.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 36dd8f8b142392626725567216d4bb116d09b214
Author: Andy Wingo 
Date:   Tue Aug 18 11:56:17 2015 +0200

gnu: Add elogind service.

* gnu/services/desktop.scm (elogind-configuration-file, elogind-service): 
New
  functions.
  (%desktop-services): Add elogind-service.
---
 gnu/services/desktop.scm |  172 +-
 1 files changed, 171 insertions(+), 1 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4e4b49d..764954c 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
@@ -39,6 +40,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+elogind-service
 %desktop-services))
 
 ;;; Commentary:
@@ -374,6 +376,173 @@ site} for more information."
 
 
 ;;;
+;;; Elogind login and seat management service.
+;;;
+
+(define (missing-keyword-argument name)
+  (error "missing keyword argument:" name))
+
+(define-syntax-rule (define-with-required-kwargs name (arg ...)
+  body ...)
+  (define name (lambda* (#:key (arg (missing-keyword-argument 'arg)) ...)
+ body ...)))
+
+(define-with-required-kwargs elogind-configuration-file
+  (kill-user-processes? kill-only-users kill-exclude-users
+   inhibit-delay-max-seconds
+   handle-power-key handle-suspend-key handle-hibernate-key
+   handle-lid-switch handle-lid-switch-docked
+   power-key-ignore-inhibited? suspend-key-ignore-inhibited?
+   hibernate-key-ignore-inhibited? lid-switch-ignore-inhibited?
+   holdoff-timeout-seconds
+   idle-action idle-action-seconds
+   runtime-directory-size-percent runtime-directory-size
+   remove-ipc?
+   suspend-state suspend-mode
+   hibernate-state hibernate-mode
+   hybrid-sleep-state hybrid-sleep-mode)
+  (define (yesno x)
+(match x
+  (#t "yes")
+  (#f "no")
+  (_ (error "expected #t or #f, instead got:" x
+  (define char-set:user-name
+(string->char-set "abcdefghijklmnopqrstuvwxyz0123456789_-"))
+  (define (valid-list? l pred)
+(and-map (lambda (x) (string-every pred x)) l))
+  (define (user-name-list users)
+(unless (valid-list? users char-set:user-name)
+  (error "invalid user list" users))
+(string-join users " "))
+  (define (enum val allowed)
+(unless (memq val allowed)
+  (error "invalid value" val allowed))
+(symbol->string val))
+  (define (non-negative-integer x)
+(unless (exact-integer? x) (error "not an integer" x))
+(when (negative? x) (error "negative number not allowed" x))
+(number->string x))
+  (define handle-actions
+'(ignore poweroff reboot halt kexec suspend hibernate hybrid-sleep lock))
+  (define (handle-action x)
+(enum x handle-actions))
+  (define (sleep-list tokens)
+(unless (valid-list? tokens char-set:user-name)
+  (error "invalid sleep list" tokens))
+(string-join tokens " "))
+  (text-file
+   "logind.conf"
+   (string-append
+"[Login]\n"
+"KillUserProcesses=" (yesno kill-user-processes?) "\n"
+"KillOnlyUsers=" (user-name-list kill-only-users) "\n"
+"KillExcludeUsers=" (user-name-list kill-exclude-users) "\n"
+"InhibitDelayMaxSecs=" (non-negative-integer inhibit-delay-max-seconds) 
"\n"
+"HandlePowerKey=" (handle-action handle-power-key) "\n"
+"HandleSuspendKey=" (handle-action handle-suspend-key) "\n"
+"HandleHibernateKey=" (handle-action handle-hibernate-key) "\n"
+"HandleLidSwitch=" (handle-action handle-lid-switch) "\n"
+"HandleLidSwitchDocked=" (handle-action handle-lid-switch-docked) "\n"
+"PowerKeyIgnoreInhibited=" (yesno power-key-ignore-inhibited?) "\n"
+"SuspendKeyIgnoreInhibited=" (yesno suspend-key-ignore-inhibited?) "\n"
+"HibernateKeyIgnoreInhibited=" (yesno hibernate-key-ignore-inhibited?) "\n"
+"LidSwitchIgnoreInhibited=" (yesno lid-switch-ignore-inhibited?) "\n"
+"HoldoffTimeoutSecs=" (non-negative-integer holdoff-timeout-seconds) "\n"
+"IdleAction=" (handle-action idle-action) "\n"
+"IdleActionSeconds=" (non-negative-integer idle-action-seconds) "\n"
+"RuntimeDirecto

04/07: guix: git: Support shallow git clones if a tag is available

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit c7dd700e6c50589e7e2b0fea33b8d6185983135f
Author: Andy Wingo 
Date:   Tue Aug 18 10:03:06 2015 +0200

guix: git: Support shallow git clones if a tag is available

* guix/build/git.scm (git-fetch): Instead of cloning the remote repo, use 
the
  lower-level "init" / "fetch" / "checkout" operations.  This lets us make a
  shallow checkout if we are checking out a tag.

* guix/git-download.scm (): Add tag field.
  (git-fetch): Support git references with tags but no commits.
---
 guix/build/git.scm|   58 +
 guix/git-download.scm |   10 ++-
 2 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/guix/build/git.scm b/guix/build/git.scm
index 121f07a..1af547f 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -28,32 +28,52 @@
 ;;; Code:
 
 (define* (git-fetch url commit directory
-#:key (git-command "git") recursive?)
+#:key tag (git-command "git") recursive?)
   "Fetch COMMIT from URL into DIRECTORY.  COMMIT must be a valid Git commit
 identifier.  When RECURSIVE? is true, all the sub-modules of URL are fetched,
 recursively.  Return #t on success, #f otherwise."
-
   ;; Disable TLS certificate verification.  The hash of the checkout is known
   ;; in advance anyway.
   (setenv "GIT_SSL_NO_VERIFY" "true")
 
-  (let ((args `("clone" ,@(if recursive? '("--recursive") '())
-,url ,directory)))
-(and (zero? (apply system* git-command args))
- (with-directory-excursion directory
-   (system* git-command "tag" "-l")
-   (and (zero? (system* git-command "checkout" commit))
-(begin
-  ;; The contents of '.git' vary as a function of the current
-  ;; status of the Git repo.  Since we want a fixed output, 
this
-  ;; directory needs to be taken out.
-  (delete-file-recursively ".git")
+  (mkdir directory)
+  (with-directory-excursion directory
+(and (zero? (system* git-command "init"))
+ (zero? (system* git-command "remote" "add" "origin" url))
+ (cond
+  ;; If there's a tag, do a shallow fetch.  Otherwise we do a full
+  ;; fetch.
+  (tag
+   (and (zero? (system* git-command "fetch" "--depth=1" "origin" tag))
+;; Either there is no commit specified, in which case we are
+;; good, or there is a commit and it is the same as the tag,
+;; in which case we're still good, or there's a commit and
+;; it's under the tag so we have to unshallow the checkout and
+;; try again.
+(if commit
+(or (zero? (system* git-command "checkout" commit))
+(and (zero? (system* git-command "fetch" 
"--unshallow"))
+ (zero? (system* git-command "checkout" commit
+(zero? (system* git-command "checkout" "FETCH_HEAD")
+  (else
+   ;; Fall back to a full fetch.  In that case print available tags.
+   (and (zero? (system* git-command "fetch" "origin"))
+(zero? (system* git-command "tag" "-l"))
+(zero? (system* git-command "checkout" commit)
+ (or (not recursive?)
+ (zero? (system* git-command
+ "submodule" "update" "--init" "--recursive")))
+ (begin
+   ;; The contents of '.git' vary as a function of the current
+   ;; status of the Git repo.  Since we want a fixed output, this
+   ;; directory needs to be taken out.
+   (delete-file-recursively ".git")
 
-  (when recursive?
-;; In sub-modules, '.git' is a flat file, not a directory,
-;; so we can use 'find-files' here.
-(for-each delete-file-recursively
-  (find-files directory "^\\.git$")))
-  #t))
+   (when recursive?
+ ;; In sub-modules, '.git' is a flat file, not a directory,
+ ;; so we can use 'find-files' here.
+ (for-each delete-file-recursively
+   (find-files directory "^\\.git$")))
+   #t
 
 ;;; git.scm ends here
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 0f2218c..43bc466 1

06/07: gnu: Add polkit service.

2015-08-29 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 42489a4982c0a0b001eadb5a3ea9b0cb91d6087d
Author: Andy Wingo 
Date:   Tue Aug 18 11:57:15 2015 +0200

gnu: Add polkit service.

* gnu/services/desktop.scm (polkit-service): New function.
  (%desktop-services): Add polkit service.
---
 gnu/services/desktop.scm |   48 +
 1 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 764954c..c2b8872 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
+  #:use-module (gnu packages polkit)
   #:use-module (guix monads)
   #:use-module (guix store)
   #:use-module (guix gexp)
@@ -40,6 +41,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+polkit-service
 elogind-service
 %desktop-services))
 
@@ -376,6 +378,40 @@ site} for more information."
 
 
 ;;;
+;;; Polkit privilege management service.
+;;;
+
+(define* (polkit-service #:key (polkit polkit))
+  "Return a service that runs the @command{polkit} privilege management
+service.  By querying the @command{polkit} service, a privileged system
+component can know when it should grant additional capabilities to ordinary
+users.  For example, an ordinary user can be granted the capability to suspend
+the system if the user is logged in locally."
+  (with-monad %store-monad
+(return
+ (service
+  (documentation "Run the polkit privilege management service.")
+  (provision '(polkit-daemon))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$polkit "/lib/polkit-1/polkitd"
+  (stop #~(make-kill-destructor))
+
+  (user-groups (list (user-group
+  (name "polkitd")
+  (system? #t
+  (user-accounts (list (user-account
+(name "polkitd")
+(group "polkitd")
+(system? #t)
+(comment "Polkit daemon user")
+(home-directory "/var/empty")
+(shell
+ "/run/current-system/profile/sbin/nologin"
+
+
+;;;
 ;;; Elogind login and seat management service.
 ;;;
 
@@ -552,14 +588,16 @@ when they log out."
  (avahi-service)
  (wicd-service)
  (upower-service)
- ;; FIXME: The colord and geoclue services could all be bus-activated
- ;; by default, so they don't run at program startup.  However, user
- ;; creation and /var/lib.colord creation happen at service activation
- ;; time, so we currently add them to the set of default services.
+ ;; FIXME: The colord, geoclue, and polkit services could all be
+ ;; bus-activated by default, so they don't run at program startup.
+ ;; However, user creation and /var/lib/colord creation happen at
+ ;; service activation time, so we currently add them to the set of
+ ;; default services.
  (colord-service)
  (geoclue-service)
+ (polkit-service)
  (elogind-service)
- (dbus-service (list avahi wicd upower colord geoclue elogind))
+ (dbus-service (list avahi wicd upower colord geoclue polkit elogind))
 
  (ntp-service)
 



02/07: gnu: Add elogind service.

2015-09-01 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 4f32d646cf14133a98899c448d588088c80d680d
Author: Andy Wingo 
Date:   Tue Aug 18 11:56:17 2015 +0200

gnu: Add elogind service.

* gnu/services/desktop.scm (elogind-configuration-file, elogind-service): 
New
  functions.
  (%desktop-services): Add elogind-service.
---
 gnu/services/desktop.scm |  172 +-
 1 files changed, 171 insertions(+), 1 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4e4b49d..764954c 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
@@ -39,6 +40,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+elogind-service
 %desktop-services))
 
 ;;; Commentary:
@@ -374,6 +376,173 @@ site} for more information."
 
 
 ;;;
+;;; Elogind login and seat management service.
+;;;
+
+(define (missing-keyword-argument name)
+  (error "missing keyword argument:" name))
+
+(define-syntax-rule (define-with-required-kwargs name (arg ...)
+  body ...)
+  (define name (lambda* (#:key (arg (missing-keyword-argument 'arg)) ...)
+ body ...)))
+
+(define-with-required-kwargs elogind-configuration-file
+  (kill-user-processes? kill-only-users kill-exclude-users
+   inhibit-delay-max-seconds
+   handle-power-key handle-suspend-key handle-hibernate-key
+   handle-lid-switch handle-lid-switch-docked
+   power-key-ignore-inhibited? suspend-key-ignore-inhibited?
+   hibernate-key-ignore-inhibited? lid-switch-ignore-inhibited?
+   holdoff-timeout-seconds
+   idle-action idle-action-seconds
+   runtime-directory-size-percent runtime-directory-size
+   remove-ipc?
+   suspend-state suspend-mode
+   hibernate-state hibernate-mode
+   hybrid-sleep-state hybrid-sleep-mode)
+  (define (yesno x)
+(match x
+  (#t "yes")
+  (#f "no")
+  (_ (error "expected #t or #f, instead got:" x
+  (define char-set:user-name
+(string->char-set "abcdefghijklmnopqrstuvwxyz0123456789_-"))
+  (define (valid-list? l pred)
+(and-map (lambda (x) (string-every pred x)) l))
+  (define (user-name-list users)
+(unless (valid-list? users char-set:user-name)
+  (error "invalid user list" users))
+(string-join users " "))
+  (define (enum val allowed)
+(unless (memq val allowed)
+  (error "invalid value" val allowed))
+(symbol->string val))
+  (define (non-negative-integer x)
+(unless (exact-integer? x) (error "not an integer" x))
+(when (negative? x) (error "negative number not allowed" x))
+(number->string x))
+  (define handle-actions
+'(ignore poweroff reboot halt kexec suspend hibernate hybrid-sleep lock))
+  (define (handle-action x)
+(enum x handle-actions))
+  (define (sleep-list tokens)
+(unless (valid-list? tokens char-set:user-name)
+  (error "invalid sleep list" tokens))
+(string-join tokens " "))
+  (text-file
+   "logind.conf"
+   (string-append
+"[Login]\n"
+"KillUserProcesses=" (yesno kill-user-processes?) "\n"
+"KillOnlyUsers=" (user-name-list kill-only-users) "\n"
+"KillExcludeUsers=" (user-name-list kill-exclude-users) "\n"
+"InhibitDelayMaxSecs=" (non-negative-integer inhibit-delay-max-seconds) 
"\n"
+"HandlePowerKey=" (handle-action handle-power-key) "\n"
+"HandleSuspendKey=" (handle-action handle-suspend-key) "\n"
+"HandleHibernateKey=" (handle-action handle-hibernate-key) "\n"
+"HandleLidSwitch=" (handle-action handle-lid-switch) "\n"
+"HandleLidSwitchDocked=" (handle-action handle-lid-switch-docked) "\n"
+"PowerKeyIgnoreInhibited=" (yesno power-key-ignore-inhibited?) "\n"
+"SuspendKeyIgnoreInhibited=" (yesno suspend-key-ignore-inhibited?) "\n"
+"HibernateKeyIgnoreInhibited=" (yesno hibernate-key-ignore-inhibited?) "\n"
+"LidSwitchIgnoreInhibited=" (yesno lid-switch-ignore-inhibited?) "\n"
+"HoldoffTimeoutSecs=" (non-negative-integer holdoff-timeout-seconds) "\n"
+"IdleAction=" (handle-action idle-action) "\n"
+"IdleActionSeconds=" (non-negative-integer idle-action-seconds) "\n"
+"RuntimeDirecto

branch wip-pam-elogind deleted (was 1a61bc4)

2015-09-01 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

   was  1a61bc4   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.

This change permanently discards the following revisions:

  discards  1a61bc4   PRELIMINARY: gnu: polkit: Work on making it functional in 
practice.
  discards  42489a4   gnu: Add polkit service.
  discards  3b26f6e   gnu: Allow OS configurations to add PAM session modules
  discards  c7dd700   guix: git: Support shallow git clones if a tag is 
available
  discards  c79b951   gnu: polkit: Use elogind for seat management.
  discards  36dd8f8   gnu: Add elogind service.
  discards  d0234da   gnu: elogind: Update to version 219.8.



03/07: gnu: polkit: Use elogind for seat management.

2015-09-01 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit e409449f493da3a42b9f989c819d3290fe9a523a
Author: Andy Wingo 
Date:   Tue Aug 18 11:39:22 2015 +0200

gnu: polkit: Use elogind for seat management.

* gnu/packages/polkit.scm (polkit): Depend on elogind.
---
 gnu/packages/polkit.scm |   20 +++-
 1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 172b0e1..acbc03d 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -23,6 +23,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages linux)
@@ -44,11 +45,28 @@
  (sha256
   (base32
"109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
- (patches (list (search-patch "polkit-drop-test.patch")
+ (patches (list (search-patch "polkit-drop-test.patch")))
+ (modules '((guix build utils)))
+ (snippet
+  '(begin
+ (use-modules (guix build utils))
+ (substitute* "configure"
+   ;; Replace libsystemd-login with libelogind.
+   (("libsystemd-login") "libelogind")
+   ;; Skip the sanity check that the current system runs
+   ;; systemd.
+   (("test ! -d /sys/fs/cgroup/systemd/") "false"))
+ (substitute* "src/polkit/polkitunixsession-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
   `(("expat" ,expat)
 ("glib:bin" ,glib "bin") ; for glib-mkenums
+("elogind" ,elogind)
 ("intltool" ,intltool)
 ("linux-pam" ,linux-pam)
 ("mozjs" ,mozjs)



04/07: gnu: polkit: Look for rules in /run/current-system/profile.

2015-09-01 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 11e1301553117f093642142bf50bb4462c87ba47
Author: Andy Wingo 
Date:   Tue Sep 1 13:30:31 2015 +0200

gnu: polkit: Look for rules in /run/current-system/profile.

* gnu/packages/polkit.scm (polkit): Configure to look for actions and
  rules in the system profile.  Arrange to look for the setuid helper in
  /run/setuid-programs.  Fix introspection installation.

Based on a patch by Mark H Weaver .
---
 gnu/packages/polkit.scm |   62 +++---
 1 files changed, 52 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index acbc03d..010d47a 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge 
+;;; Copyright © 2015 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,20 +62,61 @@
  (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
(("systemd") "elogind"))
  (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
-   (("systemd") "elogind"))
+   (("systemd") "elogind"))
+
+ (substitute* "src/polkitagent/polkitagentsession.c"
+   (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
+"\"/run/setuid-programs/polkit-agent-helper-1\""))
+ (substitute* 
"src/polkitbackend/polkitbackendinteractiveauthority.c"
+   (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
+"\"/run/current-system/profile/share/polkit-1/actions\""))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("PACKAGE_SYSCONF_DIR \"/polkit-1/rules.d\"")
+"\"/run/current-system/profile/etc/polkit-1/rules.d\""))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
+
"\"/run/current-system/profile/share/polkit-1/rules.d\""))
 (build-system gnu-build-system)
 (inputs
-  `(("expat" ,expat)
-("glib:bin" ,glib "bin") ; for glib-mkenums
-("elogind" ,elogind)
-("intltool" ,intltool)
-("linux-pam" ,linux-pam)
-("mozjs" ,mozjs)
-("nspr" ,nspr)))
+ `(("expat" ,expat)
+   ("linux-pam" ,linux-pam)
+   ("elogind" ,elogind)
+   ("mozjs" ,mozjs)
+   ("nspr" ,nspr)))
 (propagated-inputs
-  `(("glib" ,glib))) ; required by polkit-gobject-1.pc
+ `(("glib" ,glib))) ; required by polkit-gobject-1.pc
 (native-inputs
-  `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin") ; for glib-mkenums
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)))
+(arguments
+ `(#:configure-flags '("--sysconfdir=/etc"
+   "--enable-man-pages")
+   #:phases
+   (modify-phases %standard-phases
+ (add-after
+  'unpack 'fix-introspection-install-dir
+  (lambda* (#:key outputs #:allow-other-keys)
+(let ((out (assoc-ref outputs "out")))
+  (substitute* (find-files "." "Makefile.in")
+(("@INTROSPECTION_GIRDIR@")
+ (string-append out "/share/gir-1.0/"))
+(("@INTROSPECTION_TYPELIBDIR@")
+ (string-append out "/lib/girepository-1.0/"))
+ (replace
+  'install
+  (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
+;; Override sysconfdir during "make install", to avoid attempting
+;; to install in /etc, and to instead install the skeletons in the
+;; output directory.
+(let ((out (assoc-ref outputs "out")))
+ (zero? (apply system*
+   "make" "install"
+   (string-append "sysconfdir=" out "/etc")
+   (string-append "polkit_actiondir="
+  out "/share/polkit-1/actions")
+   make-flags
 (home-page "http://www.freedesktop.org/wiki/Software/polkit/";)
 (synopsis "Authorization API for privilege management")
 (description "Polkit is an application-level toolkit for defining and



07/07: gnu: Allow OS configurations to add PAM session modules

2015-09-01 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit cdde7f3d22286e08fff56c454d12b160979f0e9b
Author: Andy Wingo 
Date:   Tue Aug 18 10:22:16 2015 +0200

gnu: Allow OS configurations to add PAM session modules

* gnu/services/base.scm (mingetty-service):
* gnu/services/xorg.scm (slim-service):
* gnu/services/ssh.scm (lsh-service):
* gnu/system/linux.scm (unix-pam-service, base-pam-services): Add
  #:additional-session-modules keyword argument.
---
 gnu/services/base.scm |6 --
 gnu/services/ssh.scm  |6 --
 gnu/services/xorg.scm |6 --
 gnu/system/linux.scm  |   27 ---
 4 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 888e446..60dc93b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -364,7 +364,8 @@ stopped before 'kill' is called."
;; Allow empty passwords by default so that
;; first-time users can log in when the 'root'
;; account has just been created.
-   (allow-empty-passwords? #t))
+   (allow-empty-passwords? #t)
+   (additional-session-modules '()))
   "Return a service to run mingetty on @var{tty}.
 
 When @var{allow-empty-passwords?} is true, allow empty log-in password.  When
@@ -416,7 +417,8 @@ the ``message of the day''."
;; duplicates are removed.
(list (unix-pam-service "login"
#:allow-empty-passwords? allow-empty-passwords?
-   #:motd motd)))
+   #:motd motd
+   #:additional-session-modules 
additional-session-modules)))
 
 (define-record-type*  nscd-configuration
   make-nscd-configuration
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index e2f8542..15e4052 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -86,7 +86,8 @@
   (tcp/ip-forwarding? #t)
   (password-authentication? #t)
   (public-key-authentication? #t)
-  (initialize? #t))
+  (initialize? #t)
+  (additional-session-modules '()))
   "Run the @command{lshd} program from @var{lsh} to listen on port 
@var{port-number}.
 @var{host-key} must designate a file containing the host key, and readable
 only by root.
@@ -162,7 +163,8 @@ The other options should be self-descriptive."
  (pam-services
   (list (unix-pam-service
  "lshd"
- #:allow-empty-passwords? allow-empty-passwords?)))
+ #:allow-empty-passwords? allow-empty-passwords?
+ #:additional-session-modules additional-session-modules)))
  (activate #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/spool/lsh")
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 9ee8817..71bbb32 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -224,7 +224,8 @@ which should be passed to this script as the first 
argument.  If not, the
(xauth xauth) (dmd dmd) (bash bash)
(auto-login-session #~(string-append #$windowmaker
 "/bin/wmaker"))
-   startx)
+   startx
+   (additional-session-modules '()))
   "Return a service that spawns the SLiM graphical login manager, which in
 turn starts the X display server with @var{startx}, a command as returned by
 @code{xorg-start-command}.
@@ -305,6 +306,7 @@ reboot_cmd " dmd "/sbin/reboot
;; Tell PAM about 'slim'.
(list (unix-pam-service
   "slim"
-  #:allow-empty-passwords? allow-empty-passwords?)))
+  #:allow-empty-passwords? allow-empty-passwords?
+  #:additional-session-modules additional-session-modules)))
 
 ;;; xorg.scm ends here
diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm
index 7461a4a..1656862 100644
--- a/gnu/system/linux.scm
+++ b/gnu/system/linux.scm
@@ -133,7 +133,8 @@ dumped in /etc/pam.d/NAME, where NAME is the name of 
SERVICE."
   (let ((unix (pam-entry
(control "required")
(module "pam_unix.so"
-(lambda* (name #:key allow-empty-passwords? motd)
+(lambda* (name #:key allow-empty-passwords? motd
+   (additional-session-modules '()))
   "Return a standard Unix-style PAM service for NAME.  When
 ALLOW-EMPTY-PASSWORDS? is true, allow empty

05/07: gnu: Add polkit service.

2015-09-01 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit ec20ffc9bdad2d467ec0f7e76f1b7f7a92580eff
Author: Andy Wingo 
Date:   Tue Aug 18 11:57:15 2015 +0200

gnu: Add polkit service.

* gnu/services/desktop.scm (polkit-service): New function.
  (%desktop-services): Add polkit service.
---
 gnu/services/desktop.scm |   51 +
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 764954c..500933c 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -24,12 +24,14 @@
   #:use-module (gnu services xorg)
   #:use-module (gnu services networking)
   #:use-module (gnu system shadow)
+  #:use-module (gnu system linux) ; unix-pam-service
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
+  #:use-module (gnu packages polkit)
   #:use-module (guix monads)
   #:use-module (guix store)
   #:use-module (guix gexp)
@@ -40,6 +42,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+polkit-service
 elogind-service
 %desktop-services))
 
@@ -376,6 +379,42 @@ site} for more information."
 
 
 ;;;
+;;; Polkit privilege management service.
+;;;
+
+(define* (polkit-service #:key (polkit polkit))
+  "Return a service that runs the @command{polkit} privilege management
+service.  By querying the @command{polkit} service, a privileged system
+component can know when it should grant additional capabilities to ordinary
+users.  For example, an ordinary user can be granted the capability to suspend
+the system if the user is logged in locally."
+  (with-monad %store-monad
+(return
+ (service
+  (documentation "Run the polkit privilege management service.")
+  (provision '(polkit-daemon))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$polkit "/lib/polkit-1/polkitd"
+  (stop #~(make-kill-destructor))
+
+  (user-groups (list (user-group
+  (name "polkitd")
+  (system? #t
+  (user-accounts (list (user-account
+(name "polkitd")
+(group "polkitd")
+(system? #t)
+(comment "Polkit daemon user")
+(home-directory "/var/empty")
+(shell
+ "/run/current-system/profile/sbin/nologin"
+
+  (pam-services (list (unix-pam-service "polkit-1")))
+
+
+;;;
 ;;; Elogind login and seat management service.
 ;;;
 
@@ -552,14 +591,16 @@ when they log out."
  (avahi-service)
  (wicd-service)
  (upower-service)
- ;; FIXME: The colord and geoclue services could all be bus-activated
- ;; by default, so they don't run at program startup.  However, user
- ;; creation and /var/lib.colord creation happen at service activation
- ;; time, so we currently add them to the set of default services.
+ ;; FIXME: The colord, geoclue, and polkit services could all be
+ ;; bus-activated by default, so they don't run at program startup.
+ ;; However, user creation and /var/lib/colord creation happen at
+ ;; service activation time, so we currently add them to the set of
+ ;; default services.
  (colord-service)
  (geoclue-service)
+ (polkit-service)
  (elogind-service)
- (dbus-service (list avahi wicd upower colord geoclue elogind))
+ (dbus-service (list avahi wicd upower colord geoclue polkit elogind))
 
  (ntp-service)
 



branch wip-pam-elogind created (now cdde7f3)

2015-09-01 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

at  cdde7f3   gnu: Allow OS configurations to add PAM session modules

This branch includes the following new commits:

   new  fdd8893   gnu: elogind: Update to version 219.12.
   new  4f32d64   gnu: Add elogind service.
   new  e409449   gnu: polkit: Use elogind for seat management.
   new  11e1301   gnu: polkit: Look for rules in 
/run/current-system/profile.
   new  ec20ffc   gnu: Add polkit service.
   new  51edac1   guix: git: Support shallow git clones if a tag is 
available
   new  cdde7f3   gnu: Allow OS configurations to add PAM session modules

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.




01/07: gnu: elogind: Update to version 219.12.

2015-09-01 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit fdd8893f287696fb016e9e78fbcba04d03840ee6
Author: Andy Wingo 
Date:   Tue Aug 18 10:05:24 2015 +0200

gnu: elogind: Update to version 219.12.

* gnu/packages/freedesktop.scm (elogind): Update to 219.12.  Use a tarball
  instead of a git checkout.
---
 gnu/packages/freedesktop.scm |  104 +++--
 1 files changed, 48 insertions(+), 56 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d477668..c085fe5 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages doxygen)
   #:use-module (gnu packages libffi)
@@ -130,65 +131,56 @@ the freedesktop.org XDG Base Directory specification.")
 (license license:expat)))
 
 (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,
+  (package
+(name "elogind")
+(version "219.12")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://wingolog.org/pub/"; name "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7"))
+  (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 (string-append "--with-libcap="
+(assoc-ref %build-inputs "libcap"))
+ (string-append "--with-udevrulesdir="
+(assoc-ref 

06/07: guix: git: Support shallow git clones if a tag is available

2015-09-01 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 51edac18a47fa7db463fcdaa4f58f43764e3ee56
Author: Andy Wingo 
Date:   Tue Aug 18 10:03:06 2015 +0200

guix: git: Support shallow git clones if a tag is available

* guix/build/git.scm (git-fetch): Instead of cloning the remote repo, use 
the
  lower-level "init" / "fetch" / "checkout" operations.  This lets us make a
  shallow checkout if we are checking out a tag.

* guix/git-download.scm (): Add tag field.
  (git-fetch): Support git references with tags but no commits.
---
 guix/build/git.scm|   58 +
 guix/git-download.scm |   10 ++-
 2 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/guix/build/git.scm b/guix/build/git.scm
index 121f07a..1af547f 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -28,32 +28,52 @@
 ;;; Code:
 
 (define* (git-fetch url commit directory
-#:key (git-command "git") recursive?)
+#:key tag (git-command "git") recursive?)
   "Fetch COMMIT from URL into DIRECTORY.  COMMIT must be a valid Git commit
 identifier.  When RECURSIVE? is true, all the sub-modules of URL are fetched,
 recursively.  Return #t on success, #f otherwise."
-
   ;; Disable TLS certificate verification.  The hash of the checkout is known
   ;; in advance anyway.
   (setenv "GIT_SSL_NO_VERIFY" "true")
 
-  (let ((args `("clone" ,@(if recursive? '("--recursive") '())
-,url ,directory)))
-(and (zero? (apply system* git-command args))
- (with-directory-excursion directory
-   (system* git-command "tag" "-l")
-   (and (zero? (system* git-command "checkout" commit))
-(begin
-  ;; The contents of '.git' vary as a function of the current
-  ;; status of the Git repo.  Since we want a fixed output, 
this
-  ;; directory needs to be taken out.
-  (delete-file-recursively ".git")
+  (mkdir directory)
+  (with-directory-excursion directory
+(and (zero? (system* git-command "init"))
+ (zero? (system* git-command "remote" "add" "origin" url))
+ (cond
+  ;; If there's a tag, do a shallow fetch.  Otherwise we do a full
+  ;; fetch.
+  (tag
+   (and (zero? (system* git-command "fetch" "--depth=1" "origin" tag))
+;; Either there is no commit specified, in which case we are
+;; good, or there is a commit and it is the same as the tag,
+;; in which case we're still good, or there's a commit and
+;; it's under the tag so we have to unshallow the checkout and
+;; try again.
+(if commit
+(or (zero? (system* git-command "checkout" commit))
+(and (zero? (system* git-command "fetch" 
"--unshallow"))
+ (zero? (system* git-command "checkout" commit
+(zero? (system* git-command "checkout" "FETCH_HEAD")
+  (else
+   ;; Fall back to a full fetch.  In that case print available tags.
+   (and (zero? (system* git-command "fetch" "origin"))
+(zero? (system* git-command "tag" "-l"))
+(zero? (system* git-command "checkout" commit)
+ (or (not recursive?)
+ (zero? (system* git-command
+ "submodule" "update" "--init" "--recursive")))
+ (begin
+   ;; The contents of '.git' vary as a function of the current
+   ;; status of the Git repo.  Since we want a fixed output, this
+   ;; directory needs to be taken out.
+   (delete-file-recursively ".git")
 
-  (when recursive?
-;; In sub-modules, '.git' is a flat file, not a directory,
-;; so we can use 'find-files' here.
-(for-each delete-file-recursively
-  (find-files directory "^\\.git$")))
-  #t))
+   (when recursive?
+ ;; In sub-modules, '.git' is a flat file, not a directory,
+ ;; so we can use 'find-files' here.
+ (for-each delete-file-recursively
+   (find-files directory "^\\.git$")))
+   #t
 
 ;;; git.scm ends here
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 0f2218c..43bc466 1

branch wip-pam-elogind deleted (was cdde7f3)

2015-09-02 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

   was  cdde7f3   gnu: Allow OS configurations to add PAM session modules

This change permanently discards the following revisions:

  discards  cdde7f3   gnu: Allow OS configurations to add PAM session modules
  discards  51edac1   guix: git: Support shallow git clones if a tag is 
available
  discards  ec20ffc   gnu: Add polkit service.
  discards  11e1301   gnu: polkit: Look for rules in 
/run/current-system/profile.
  discards  e409449   gnu: polkit: Use elogind for seat management.
  discards  4f32d64   gnu: Add elogind service.
  discards  fdd8893   gnu: elogind: Update to version 219.12.



05/07: gnu: Add polkit service.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 4f8e6516d7f9b8974e79ed023ca93334634b6dbc
Author: Andy Wingo 
Date:   Tue Aug 18 11:57:15 2015 +0200

gnu: Add polkit service.

* gnu/services/desktop.scm (polkit-service): New function.
  (%desktop-services): Add polkit service.
---
 gnu/services/desktop.scm |   51 +
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 3447039..1bf3db0 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -24,12 +24,14 @@
   #:use-module (gnu services xorg)
   #:use-module (gnu services networking)
   #:use-module (gnu system shadow)
+  #:use-module (gnu system linux) ; unix-pam-service
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
+  #:use-module (gnu packages polkit)
   #:use-module (guix monads)
   #:use-module (guix records)
   #:use-module (guix store)
@@ -41,6 +43,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+polkit-service
 elogind-configuration
 elogind-service
 %desktop-services))
@@ -378,6 +381,42 @@ site} for more information."
 
 
 ;;;
+;;; Polkit privilege management service.
+;;;
+
+(define* (polkit-service #:key (polkit polkit))
+  "Return a service that runs the @command{polkit} privilege management
+service.  By querying the @command{polkit} service, a privileged system
+component can know when it should grant additional capabilities to ordinary
+users.  For example, an ordinary user can be granted the capability to suspend
+the system if the user is logged in locally."
+  (with-monad %store-monad
+(return
+ (service
+  (documentation "Run the polkit privilege management service.")
+  (provision '(polkit-daemon))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$polkit "/lib/polkit-1/polkitd"
+  (stop #~(make-kill-destructor))
+
+  (user-groups (list (user-group
+  (name "polkitd")
+  (system? #t
+  (user-accounts (list (user-account
+(name "polkitd")
+(group "polkitd")
+(system? #t)
+(comment "Polkit daemon user")
+(home-directory "/var/empty")
+(shell
+ "/run/current-system/profile/sbin/nologin"
+
+  (pam-services (list (unix-pam-service "polkit-1")))
+
+
+;;;
 ;;; Elogind login and seat management service.
 ;;;
 
@@ -540,14 +579,16 @@ when they log out."
  (avahi-service)
  (wicd-service)
  (upower-service)
- ;; FIXME: The colord and geoclue services could all be bus-activated
- ;; by default, so they don't run at program startup.  However, user
- ;; creation and /var/lib.colord creation happen at service activation
- ;; time, so we currently add them to the set of default services.
+ ;; FIXME: The colord, geoclue, and polkit services could all be
+ ;; bus-activated by default, so they don't run at program startup.
+ ;; However, user creation and /var/lib/colord creation happen at
+ ;; service activation time, so we currently add them to the set of
+ ;; default services.
  (colord-service)
  (geoclue-service)
+ (polkit-service)
  (elogind-service)
- (dbus-service (list avahi wicd upower colord geoclue elogind))
+ (dbus-service (list avahi wicd upower colord geoclue polkit elogind))
 
  (ntp-service)
 



03/07: gnu: polkit: Use elogind for seat management.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 8d9dc4d2c9920b24c1ecc3a00065f135c864e401
Author: Andy Wingo 
Date:   Tue Aug 18 11:39:22 2015 +0200

gnu: polkit: Use elogind for seat management.

* gnu/packages/polkit.scm (polkit): Depend on elogind.
---
 gnu/packages/polkit.scm |   20 +++-
 1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 172b0e1..acbc03d 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -23,6 +23,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages linux)
@@ -44,11 +45,28 @@
  (sha256
   (base32
"109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
- (patches (list (search-patch "polkit-drop-test.patch")
+ (patches (list (search-patch "polkit-drop-test.patch")))
+ (modules '((guix build utils)))
+ (snippet
+  '(begin
+ (use-modules (guix build utils))
+ (substitute* "configure"
+   ;; Replace libsystemd-login with libelogind.
+   (("libsystemd-login") "libelogind")
+   ;; Skip the sanity check that the current system runs
+   ;; systemd.
+   (("test ! -d /sys/fs/cgroup/systemd/") "false"))
+ (substitute* "src/polkit/polkitunixsession-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
   `(("expat" ,expat)
 ("glib:bin" ,glib "bin") ; for glib-mkenums
+("elogind" ,elogind)
 ("intltool" ,intltool)
 ("linux-pam" ,linux-pam)
 ("mozjs" ,mozjs)



02/07: gnu: Add elogind service.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 1b13da363e5810622eb743806ee8f652583e259d
Author: Andy Wingo 
Date:   Tue Aug 18 11:56:17 2015 +0200

gnu: Add elogind service.

* gnu/services/desktop.scm (): New record type.
  (elogind-configuration-file, elogind-service): New functions.
  (%desktop-services): Add elogind-service.
---
 gnu/services/desktop.scm |  160 +-
 1 files changed, 159 insertions(+), 1 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4e4b49d..3447039 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -26,10 +26,12 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
   #:use-module (guix monads)
+  #:use-module (guix records)
   #:use-module (guix store)
   #:use-module (guix gexp)
   #:use-module (ice-9 match)
@@ -39,6 +41,8 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+elogind-configuration
+elogind-service
 %desktop-services))
 
 ;;; Commentary:
@@ -374,6 +378,159 @@ site} for more information."
 
 
 ;;;
+;;; Elogind login and seat management service.
+;;;
+
+(define-record-type*  elogind-configuration
+  make-elogind-configuration
+  elogind-configuration
+  (kill-user-processes?elogind-kill-user-processes?
+   (default #f))
+  (kill-only-users elogind-kill-only-users
+   (default '()))
+  (kill-exclude-users  elogind-kill-exclude-users
+   (default '("root")))
+  (inhibit-delay-max-seconds   elogind-inhibit-delay-max-seconds
+   (default 5))
+  (handle-power-keyelogind-handle-power-key
+   (default 'poweroff))
+  (handle-suspend-key  elogind-handle-suspend-key
+   (default 'suspend))
+  (handle-hibernate-keyelogind-handle-hibernate-key
+   (default 'hibernate))
+  (handle-lid-switch   elogind-handle-lid-switch
+   (default 'suspend))
+  (handle-lid-switch-dockedelogind-handle-lid-switch-docked
+   (default 'ignore))
+  (power-key-ignore-inhibited? elogind-power-key-ignore-inhibited?
+   (default #f))
+  (suspend-key-ignore-inhibited?   elogind-suspend-key-ignore-inhibited?
+   (default #f))
+  (hibernate-key-ignore-inhibited? elogind-hibernate-key-ignore-inhibited?
+   (default #f))
+  (lid-switch-ignore-inhibited?elogind-lid-switch-ignore-inhibited?
+   (default #t))
+  (holdoff-timeout-seconds elogind-holdoff-timeout-seconds
+   (default 30))
+  (idle-action elogind-idle-action
+   (default 'ignore))
+  (idle-action-seconds elogind-idle-action-seconds
+   (default (* 30 60)))
+  (runtime-directory-size-percent  elogind-runtime-directory-size-percent
+   (default 10))
+  (runtime-directory-size  elogind-runtime-directory-size
+   (default #f))
+  (remove-ipc? elogind-remove-ipc?
+   (default #t))
+
+  (suspend-state   elogind-suspend-state
+   (default '("mem" "standby" "freeze")))
+  (suspend-modeelogind-suspend-mode
+   (default '()))
+  (hibernate-state elogind-hibernate-state
+   (default '("disk")))
+  (hibernate-mode  elogind-hibernate-mode
+   (default '("platform" "shutdown")))
+  (hybrid-sleep-state  elogind-hybrid-sleep-state
+   (default '("disk")))
+  (hybrid-sleep-mode   elogind-hybrid-sleep-mode
+   (default
+ '("suspend" "platform" "shutdown"
+
+(define (elogind-configuration-file config)
+  (define (yesno x)
+(match x
+  (#t "yes")
+  (#f "no")
+  (_ (error "expected #t or #f, instead got:"

branch wip-pam-elogind created (now 3cc78ab)

2015-09-02 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

at  3cc78ab   gnu: Allow OS configurations to add PAM session modules

This branch includes the following new commits:

   new  fdd8893   gnu: elogind: Update to version 219.12.
   new  1b13da3   gnu: Add elogind service.
   new  8d9dc4d   gnu: polkit: Use elogind for seat management.
   new  393d0f4   gnu: polkit: Look for rules in 
/run/current-system/profile.
   new  4f8e651   gnu: Add polkit service.
   new  3081f76   guix: git: Support shallow git clones if a tag is 
available
   new  3cc78ab   gnu: Allow OS configurations to add PAM session modules

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.




01/07: gnu: elogind: Update to version 219.12.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit fdd8893f287696fb016e9e78fbcba04d03840ee6
Author: Andy Wingo 
Date:   Tue Aug 18 10:05:24 2015 +0200

gnu: elogind: Update to version 219.12.

* gnu/packages/freedesktop.scm (elogind): Update to 219.12.  Use a tarball
  instead of a git checkout.
---
 gnu/packages/freedesktop.scm |  104 +++--
 1 files changed, 48 insertions(+), 56 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d477668..c085fe5 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages doxygen)
   #:use-module (gnu packages libffi)
@@ -130,65 +131,56 @@ the freedesktop.org XDG Base Directory specification.")
 (license license:expat)))
 
 (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,
+  (package
+(name "elogind")
+(version "219.12")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://wingolog.org/pub/"; name "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7"))
+  (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 (string-append "--with-libcap="
+(assoc-ref %build-inputs "libcap"))
+ (string-append "--with-udevrulesdir="
+(assoc-ref 

07/07: gnu: Allow OS configurations to add PAM session modules

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 3cc78ab90717b0c7d19a8a934e309756b3390d07
Author: Andy Wingo 
Date:   Tue Aug 18 10:22:16 2015 +0200

gnu: Allow OS configurations to add PAM session modules

* gnu/services/base.scm (mingetty-service):
* gnu/services/xorg.scm (slim-service):
* gnu/services/ssh.scm (lsh-service):
* gnu/system/linux.scm (unix-pam-service, base-pam-services): Add
  #:additional-session-modules keyword argument.
---
 gnu/services/base.scm |6 --
 gnu/services/ssh.scm  |6 --
 gnu/services/xorg.scm |6 --
 gnu/system/linux.scm  |   27 ---
 4 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 888e446..60dc93b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -364,7 +364,8 @@ stopped before 'kill' is called."
;; Allow empty passwords by default so that
;; first-time users can log in when the 'root'
;; account has just been created.
-   (allow-empty-passwords? #t))
+   (allow-empty-passwords? #t)
+   (additional-session-modules '()))
   "Return a service to run mingetty on @var{tty}.
 
 When @var{allow-empty-passwords?} is true, allow empty log-in password.  When
@@ -416,7 +417,8 @@ the ``message of the day''."
;; duplicates are removed.
(list (unix-pam-service "login"
#:allow-empty-passwords? allow-empty-passwords?
-   #:motd motd)))
+   #:motd motd
+   #:additional-session-modules 
additional-session-modules)))
 
 (define-record-type*  nscd-configuration
   make-nscd-configuration
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index e2f8542..15e4052 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -86,7 +86,8 @@
   (tcp/ip-forwarding? #t)
   (password-authentication? #t)
   (public-key-authentication? #t)
-  (initialize? #t))
+  (initialize? #t)
+  (additional-session-modules '()))
   "Run the @command{lshd} program from @var{lsh} to listen on port 
@var{port-number}.
 @var{host-key} must designate a file containing the host key, and readable
 only by root.
@@ -162,7 +163,8 @@ The other options should be self-descriptive."
  (pam-services
   (list (unix-pam-service
  "lshd"
- #:allow-empty-passwords? allow-empty-passwords?)))
+ #:allow-empty-passwords? allow-empty-passwords?
+ #:additional-session-modules additional-session-modules)))
  (activate #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/spool/lsh")
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 9ee8817..71bbb32 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -224,7 +224,8 @@ which should be passed to this script as the first 
argument.  If not, the
(xauth xauth) (dmd dmd) (bash bash)
(auto-login-session #~(string-append #$windowmaker
 "/bin/wmaker"))
-   startx)
+   startx
+   (additional-session-modules '()))
   "Return a service that spawns the SLiM graphical login manager, which in
 turn starts the X display server with @var{startx}, a command as returned by
 @code{xorg-start-command}.
@@ -305,6 +306,7 @@ reboot_cmd " dmd "/sbin/reboot
;; Tell PAM about 'slim'.
(list (unix-pam-service
   "slim"
-  #:allow-empty-passwords? allow-empty-passwords?)))
+  #:allow-empty-passwords? allow-empty-passwords?
+  #:additional-session-modules additional-session-modules)))
 
 ;;; xorg.scm ends here
diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm
index 7461a4a..1656862 100644
--- a/gnu/system/linux.scm
+++ b/gnu/system/linux.scm
@@ -133,7 +133,8 @@ dumped in /etc/pam.d/NAME, where NAME is the name of 
SERVICE."
   (let ((unix (pam-entry
(control "required")
(module "pam_unix.so"
-(lambda* (name #:key allow-empty-passwords? motd)
+(lambda* (name #:key allow-empty-passwords? motd
+   (additional-session-modules '()))
   "Return a standard Unix-style PAM service for NAME.  When
 ALLOW-EMPTY-PASSWORDS? is true, allow empty

04/07: gnu: polkit: Look for rules in /run/current-system/profile.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 393d0f4ca6fbffafd662f91da9d13fd728c32d95
Author: Andy Wingo 
Date:   Tue Sep 1 13:30:31 2015 +0200

gnu: polkit: Look for rules in /run/current-system/profile.

* gnu/packages/polkit.scm (polkit): Configure to look for actions and
  rules in the system profile.  Arrange to look for the setuid helper in
  /run/setuid-programs.  Fix introspection installation.

Based on a patch by Mark H Weaver .
---
 gnu/packages/polkit.scm |   62 +++---
 1 files changed, 52 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index acbc03d..010d47a 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge 
+;;; Copyright © 2015 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,20 +62,61 @@
  (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
(("systemd") "elogind"))
  (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
-   (("systemd") "elogind"))
+   (("systemd") "elogind"))
+
+ (substitute* "src/polkitagent/polkitagentsession.c"
+   (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
+"\"/run/setuid-programs/polkit-agent-helper-1\""))
+ (substitute* 
"src/polkitbackend/polkitbackendinteractiveauthority.c"
+   (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
+"\"/run/current-system/profile/share/polkit-1/actions\""))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("PACKAGE_SYSCONF_DIR \"/polkit-1/rules.d\"")
+"\"/run/current-system/profile/etc/polkit-1/rules.d\""))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
+
"\"/run/current-system/profile/share/polkit-1/rules.d\""))
 (build-system gnu-build-system)
 (inputs
-  `(("expat" ,expat)
-("glib:bin" ,glib "bin") ; for glib-mkenums
-("elogind" ,elogind)
-("intltool" ,intltool)
-("linux-pam" ,linux-pam)
-("mozjs" ,mozjs)
-("nspr" ,nspr)))
+ `(("expat" ,expat)
+   ("linux-pam" ,linux-pam)
+   ("elogind" ,elogind)
+   ("mozjs" ,mozjs)
+   ("nspr" ,nspr)))
 (propagated-inputs
-  `(("glib" ,glib))) ; required by polkit-gobject-1.pc
+ `(("glib" ,glib))) ; required by polkit-gobject-1.pc
 (native-inputs
-  `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin") ; for glib-mkenums
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)))
+(arguments
+ `(#:configure-flags '("--sysconfdir=/etc"
+   "--enable-man-pages")
+   #:phases
+   (modify-phases %standard-phases
+ (add-after
+  'unpack 'fix-introspection-install-dir
+  (lambda* (#:key outputs #:allow-other-keys)
+(let ((out (assoc-ref outputs "out")))
+  (substitute* (find-files "." "Makefile.in")
+(("@INTROSPECTION_GIRDIR@")
+ (string-append out "/share/gir-1.0/"))
+(("@INTROSPECTION_TYPELIBDIR@")
+ (string-append out "/lib/girepository-1.0/"))
+ (replace
+  'install
+  (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
+;; Override sysconfdir during "make install", to avoid attempting
+;; to install in /etc, and to instead install the skeletons in the
+;; output directory.
+(let ((out (assoc-ref outputs "out")))
+ (zero? (apply system*
+   "make" "install"
+   (string-append "sysconfdir=" out "/etc")
+   (string-append "polkit_actiondir="
+  out "/share/polkit-1/actions")
+   make-flags
 (home-page "http://www.freedesktop.org/wiki/Software/polkit/";)
 (synopsis "Authorization API for privilege management")
 (description "Polkit is an application-level toolkit for defining and



06/07: guix: git: Support shallow git clones if a tag is available

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 3081f763b0d480a17a86e125680fa38d81b3afd4
Author: Andy Wingo 
Date:   Tue Aug 18 10:03:06 2015 +0200

guix: git: Support shallow git clones if a tag is available

* guix/build/git.scm (git-fetch): Instead of cloning the remote repo, use 
the
  lower-level "init" / "fetch" / "checkout" operations.  This lets us make a
  shallow checkout if we are checking out a tag.

* guix/git-download.scm (): Add tag field.
  (git-fetch): Support git references with tags but no commits.
---
 guix/build/git.scm|   58 +
 guix/git-download.scm |   10 ++-
 2 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/guix/build/git.scm b/guix/build/git.scm
index 121f07a..1af547f 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -28,32 +28,52 @@
 ;;; Code:
 
 (define* (git-fetch url commit directory
-#:key (git-command "git") recursive?)
+#:key tag (git-command "git") recursive?)
   "Fetch COMMIT from URL into DIRECTORY.  COMMIT must be a valid Git commit
 identifier.  When RECURSIVE? is true, all the sub-modules of URL are fetched,
 recursively.  Return #t on success, #f otherwise."
-
   ;; Disable TLS certificate verification.  The hash of the checkout is known
   ;; in advance anyway.
   (setenv "GIT_SSL_NO_VERIFY" "true")
 
-  (let ((args `("clone" ,@(if recursive? '("--recursive") '())
-,url ,directory)))
-(and (zero? (apply system* git-command args))
- (with-directory-excursion directory
-   (system* git-command "tag" "-l")
-   (and (zero? (system* git-command "checkout" commit))
-(begin
-  ;; The contents of '.git' vary as a function of the current
-  ;; status of the Git repo.  Since we want a fixed output, 
this
-  ;; directory needs to be taken out.
-  (delete-file-recursively ".git")
+  (mkdir directory)
+  (with-directory-excursion directory
+(and (zero? (system* git-command "init"))
+ (zero? (system* git-command "remote" "add" "origin" url))
+ (cond
+  ;; If there's a tag, do a shallow fetch.  Otherwise we do a full
+  ;; fetch.
+  (tag
+   (and (zero? (system* git-command "fetch" "--depth=1" "origin" tag))
+;; Either there is no commit specified, in which case we are
+;; good, or there is a commit and it is the same as the tag,
+;; in which case we're still good, or there's a commit and
+;; it's under the tag so we have to unshallow the checkout and
+;; try again.
+(if commit
+(or (zero? (system* git-command "checkout" commit))
+(and (zero? (system* git-command "fetch" 
"--unshallow"))
+ (zero? (system* git-command "checkout" commit
+(zero? (system* git-command "checkout" "FETCH_HEAD")
+  (else
+   ;; Fall back to a full fetch.  In that case print available tags.
+   (and (zero? (system* git-command "fetch" "origin"))
+(zero? (system* git-command "tag" "-l"))
+(zero? (system* git-command "checkout" commit)
+ (or (not recursive?)
+ (zero? (system* git-command
+ "submodule" "update" "--init" "--recursive")))
+ (begin
+   ;; The contents of '.git' vary as a function of the current
+   ;; status of the Git repo.  Since we want a fixed output, this
+   ;; directory needs to be taken out.
+   (delete-file-recursively ".git")
 
-  (when recursive?
-;; In sub-modules, '.git' is a flat file, not a directory,
-;; so we can use 'find-files' here.
-(for-each delete-file-recursively
-  (find-files directory "^\\.git$")))
-  #t))
+   (when recursive?
+ ;; In sub-modules, '.git' is a flat file, not a directory,
+ ;; so we can use 'find-files' here.
+ (for-each delete-file-recursively
+   (find-files directory "^\\.git$")))
+   #t
 
 ;;; git.scm ends here
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 0f2218c..43bc466 1

01/02: gnu: elogind: Update to version 219.12.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch master
in repository guix.

commit 5c91962afe1bc765571d6a6c924eab4f60ddcea9
Author: Andy Wingo 
Date:   Tue Aug 18 10:05:24 2015 +0200

gnu: elogind: Update to version 219.12.

* gnu/packages/freedesktop.scm (elogind): Update to 219.12.  Use a tarball
  instead of a git checkout.
---
 gnu/packages/freedesktop.scm |  104 +++--
 1 files changed, 48 insertions(+), 56 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d477668..c085fe5 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -41,6 +41,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages doxygen)
   #:use-module (gnu packages libffi)
@@ -130,65 +131,56 @@ the freedesktop.org XDG Base Directory specification.")
 (license license:expat)))
 
 (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,
+  (package
+(name "elogind")
+(version "219.12")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://wingolog.org/pub/"; name "/"
+  name "-" version ".tar.xz"))
+  (sha256
+   (base32
+"13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7"))
+  (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 (string-append "--with-libcap="
+(assoc-ref %build-inputs "libcap"))
+ (string-append "--with-udevrulesdir="
+(assoc-ref %outputs "ou

02/02: gnu: Add elogind service.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch master
in repository guix.

commit 04463bb05ebcead21114b45b7c7bac7c2e4d7e07
Author: Andy Wingo 
Date:   Tue Aug 18 11:56:17 2015 +0200

gnu: Add elogind service.

* gnu/services/desktop.scm (): New record type.
  (elogind-configuration-file, elogind-service): New functions.
  (%desktop-services): Add elogind-service.
---
 gnu/services/desktop.scm |  160 +-
 1 files changed, 159 insertions(+), 1 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 4e4b49d..3447039 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -26,10 +26,12 @@
   #:use-module (gnu system shadow)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
   #:use-module (guix monads)
+  #:use-module (guix records)
   #:use-module (guix store)
   #:use-module (guix gexp)
   #:use-module (ice-9 match)
@@ -39,6 +41,8 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+elogind-configuration
+elogind-service
 %desktop-services))
 
 ;;; Commentary:
@@ -374,6 +378,159 @@ site} for more information."
 
 
 ;;;
+;;; Elogind login and seat management service.
+;;;
+
+(define-record-type*  elogind-configuration
+  make-elogind-configuration
+  elogind-configuration
+  (kill-user-processes?elogind-kill-user-processes?
+   (default #f))
+  (kill-only-users elogind-kill-only-users
+   (default '()))
+  (kill-exclude-users  elogind-kill-exclude-users
+   (default '("root")))
+  (inhibit-delay-max-seconds   elogind-inhibit-delay-max-seconds
+   (default 5))
+  (handle-power-keyelogind-handle-power-key
+   (default 'poweroff))
+  (handle-suspend-key  elogind-handle-suspend-key
+   (default 'suspend))
+  (handle-hibernate-keyelogind-handle-hibernate-key
+   (default 'hibernate))
+  (handle-lid-switch   elogind-handle-lid-switch
+   (default 'suspend))
+  (handle-lid-switch-dockedelogind-handle-lid-switch-docked
+   (default 'ignore))
+  (power-key-ignore-inhibited? elogind-power-key-ignore-inhibited?
+   (default #f))
+  (suspend-key-ignore-inhibited?   elogind-suspend-key-ignore-inhibited?
+   (default #f))
+  (hibernate-key-ignore-inhibited? elogind-hibernate-key-ignore-inhibited?
+   (default #f))
+  (lid-switch-ignore-inhibited?elogind-lid-switch-ignore-inhibited?
+   (default #t))
+  (holdoff-timeout-seconds elogind-holdoff-timeout-seconds
+   (default 30))
+  (idle-action elogind-idle-action
+   (default 'ignore))
+  (idle-action-seconds elogind-idle-action-seconds
+   (default (* 30 60)))
+  (runtime-directory-size-percent  elogind-runtime-directory-size-percent
+   (default 10))
+  (runtime-directory-size  elogind-runtime-directory-size
+   (default #f))
+  (remove-ipc? elogind-remove-ipc?
+   (default #t))
+
+  (suspend-state   elogind-suspend-state
+   (default '("mem" "standby" "freeze")))
+  (suspend-modeelogind-suspend-mode
+   (default '()))
+  (hibernate-state elogind-hibernate-state
+   (default '("disk")))
+  (hibernate-mode  elogind-hibernate-mode
+   (default '("platform" "shutdown")))
+  (hybrid-sleep-state  elogind-hybrid-sleep-state
+   (default '("disk")))
+  (hybrid-sleep-mode   elogind-hybrid-sleep-mode
+   (default
+ '("suspend" "platform" "shutdown"
+
+(define (elogind-configuration-file config)
+  (define (yesno x)
+(match x
+  (#t "yes")
+  (#f "no")
+  (_ (error "expected #t or #f, instead got:" x)))

branch master updated (0c14675 -> 04463bb)

2015-09-02 Thread Andy Wingo
wingo pushed a change to branch master
in repository guix.

  from  0c14675   gnu: Add attic.
   new  5c91962   gnu: elogind: Update to version 219.12.
   new  04463bb   gnu: Add elogind service.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/freedesktop.scm |  104 +---
 gnu/services/desktop.scm |  160 +-
 2 files changed, 207 insertions(+), 57 deletions(-)



03/06: gnu: Add polkit service.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 0071c7894e77ad95b9bac8871e0653931180d929
Author: Andy Wingo 
Date:   Tue Aug 18 11:57:15 2015 +0200

gnu: Add polkit service.

* gnu/services/desktop.scm (polkit-service): New function.
  (%desktop-services): Add polkit service.
---
 gnu/services/desktop.scm |   51 +
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 3447039..1bf3db0 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -24,12 +24,14 @@
   #:use-module (gnu services xorg)
   #:use-module (gnu services networking)
   #:use-module (gnu system shadow)
+  #:use-module (gnu system linux) ; unix-pam-service
   #:use-module (gnu packages glib)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages wicd)
+  #:use-module (gnu packages polkit)
   #:use-module (guix monads)
   #:use-module (guix records)
   #:use-module (guix store)
@@ -41,6 +43,7 @@
 geoclue-application
 %standard-geoclue-applications
 geoclue-service
+polkit-service
 elogind-configuration
 elogind-service
 %desktop-services))
@@ -378,6 +381,42 @@ site} for more information."
 
 
 ;;;
+;;; Polkit privilege management service.
+;;;
+
+(define* (polkit-service #:key (polkit polkit))
+  "Return a service that runs the @command{polkit} privilege management
+service.  By querying the @command{polkit} service, a privileged system
+component can know when it should grant additional capabilities to ordinary
+users.  For example, an ordinary user can be granted the capability to suspend
+the system if the user is logged in locally."
+  (with-monad %store-monad
+(return
+ (service
+  (documentation "Run the polkit privilege management service.")
+  (provision '(polkit-daemon))
+  (requirement '(dbus-system))
+
+  (start #~(make-forkexec-constructor
+(list (string-append #$polkit "/lib/polkit-1/polkitd"
+  (stop #~(make-kill-destructor))
+
+  (user-groups (list (user-group
+  (name "polkitd")
+  (system? #t
+  (user-accounts (list (user-account
+(name "polkitd")
+(group "polkitd")
+(system? #t)
+(comment "Polkit daemon user")
+(home-directory "/var/empty")
+(shell
+ "/run/current-system/profile/sbin/nologin"
+
+  (pam-services (list (unix-pam-service "polkit-1")))
+
+
+;;;
 ;;; Elogind login and seat management service.
 ;;;
 
@@ -540,14 +579,16 @@ when they log out."
  (avahi-service)
  (wicd-service)
  (upower-service)
- ;; FIXME: The colord and geoclue services could all be bus-activated
- ;; by default, so they don't run at program startup.  However, user
- ;; creation and /var/lib.colord creation happen at service activation
- ;; time, so we currently add them to the set of default services.
+ ;; FIXME: The colord, geoclue, and polkit services could all be
+ ;; bus-activated by default, so they don't run at program startup.
+ ;; However, user creation and /var/lib/colord creation happen at
+ ;; service activation time, so we currently add them to the set of
+ ;; default services.
  (colord-service)
  (geoclue-service)
+ (polkit-service)
  (elogind-service)
- (dbus-service (list avahi wicd upower colord geoclue elogind))
+ (dbus-service (list avahi wicd upower colord geoclue polkit elogind))
 
  (ntp-service)
 



06/06: gnu: Allow OS configurations to add PAM session modules

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit c33372a2e7453e77868130872781180ea8582921
Author: Andy Wingo 
Date:   Tue Aug 18 10:22:16 2015 +0200

gnu: Allow OS configurations to add PAM session modules

* gnu/services/base.scm (mingetty-service):
* gnu/services/xorg.scm (slim-service):
* gnu/services/ssh.scm (lsh-service):
* gnu/system/linux.scm (unix-pam-service, base-pam-services): Add
  #:additional-session-modules keyword argument.
---
 gnu/services/base.scm |6 --
 gnu/services/ssh.scm  |6 --
 gnu/services/xorg.scm |6 --
 gnu/system/linux.scm  |   27 ---
 4 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 888e446..60dc93b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -364,7 +364,8 @@ stopped before 'kill' is called."
;; Allow empty passwords by default so that
;; first-time users can log in when the 'root'
;; account has just been created.
-   (allow-empty-passwords? #t))
+   (allow-empty-passwords? #t)
+   (additional-session-modules '()))
   "Return a service to run mingetty on @var{tty}.
 
 When @var{allow-empty-passwords?} is true, allow empty log-in password.  When
@@ -416,7 +417,8 @@ the ``message of the day''."
;; duplicates are removed.
(list (unix-pam-service "login"
#:allow-empty-passwords? allow-empty-passwords?
-   #:motd motd)))
+   #:motd motd
+   #:additional-session-modules 
additional-session-modules)))
 
 (define-record-type*  nscd-configuration
   make-nscd-configuration
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index e2f8542..15e4052 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -86,7 +86,8 @@
   (tcp/ip-forwarding? #t)
   (password-authentication? #t)
   (public-key-authentication? #t)
-  (initialize? #t))
+  (initialize? #t)
+  (additional-session-modules '()))
   "Run the @command{lshd} program from @var{lsh} to listen on port 
@var{port-number}.
 @var{host-key} must designate a file containing the host key, and readable
 only by root.
@@ -162,7 +163,8 @@ The other options should be self-descriptive."
  (pam-services
   (list (unix-pam-service
  "lshd"
- #:allow-empty-passwords? allow-empty-passwords?)))
+ #:allow-empty-passwords? allow-empty-passwords?
+ #:additional-session-modules additional-session-modules)))
  (activate #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/spool/lsh")
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 9ee8817..71bbb32 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -224,7 +224,8 @@ which should be passed to this script as the first 
argument.  If not, the
(xauth xauth) (dmd dmd) (bash bash)
(auto-login-session #~(string-append #$windowmaker
 "/bin/wmaker"))
-   startx)
+   startx
+   (additional-session-modules '()))
   "Return a service that spawns the SLiM graphical login manager, which in
 turn starts the X display server with @var{startx}, a command as returned by
 @code{xorg-start-command}.
@@ -305,6 +306,7 @@ reboot_cmd " dmd "/sbin/reboot
;; Tell PAM about 'slim'.
(list (unix-pam-service
   "slim"
-  #:allow-empty-passwords? allow-empty-passwords?)))
+  #:allow-empty-passwords? allow-empty-passwords?
+  #:additional-session-modules additional-session-modules)))
 
 ;;; xorg.scm ends here
diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm
index 7461a4a..1656862 100644
--- a/gnu/system/linux.scm
+++ b/gnu/system/linux.scm
@@ -133,7 +133,8 @@ dumped in /etc/pam.d/NAME, where NAME is the name of 
SERVICE."
   (let ((unix (pam-entry
(control "required")
(module "pam_unix.so"
-(lambda* (name #:key allow-empty-passwords? motd)
+(lambda* (name #:key allow-empty-passwords? motd
+   (additional-session-modules '()))
   "Return a standard Unix-style PAM service for NAME.  When
 ALLOW-EMPTY-PASSWORDS? is true, allow empty

01/06: gnu: polkit: Use elogind for seat management.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 7b6c5c5d74fcb69b04929e7f5b2988adbeebcf2f
Author: Andy Wingo 
Date:   Tue Aug 18 11:39:22 2015 +0200

gnu: polkit: Use elogind for seat management.

* gnu/packages/polkit.scm (polkit): Depend on elogind.
---
 gnu/packages/polkit.scm |   21 -
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 172b0e1..06afdf1 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge 
+;;; Copyright © 2015 Andy Wingo 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +24,7 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages linux)
@@ -44,11 +46,28 @@
  (sha256
   (base32
"109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
- (patches (list (search-patch "polkit-drop-test.patch")
+ (patches (list (search-patch "polkit-drop-test.patch")))
+ (modules '((guix build utils)))
+ (snippet
+  '(begin
+ (use-modules (guix build utils))
+ (substitute* "configure"
+   ;; Replace libsystemd-login with libelogind.
+   (("libsystemd-login") "libelogind")
+   ;; Skip the sanity check that the current system runs
+   ;; systemd.
+   (("test ! -d /sys/fs/cgroup/systemd/") "false"))
+ (substitute* "src/polkit/polkitunixsession-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
+   (("systemd") "elogind"))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("systemd") "elogind"))
 (build-system gnu-build-system)
 (inputs
   `(("expat" ,expat)
 ("glib:bin" ,glib "bin") ; for glib-mkenums
+("elogind" ,elogind)
 ("intltool" ,intltool)
 ("linux-pam" ,linux-pam)
 ("mozjs" ,mozjs)



05/06: guix: git: Support shallow git clones if a tag is available

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 57044324ed6ad47985919748d35d084db550652c
Author: Andy Wingo 
Date:   Tue Aug 18 10:03:06 2015 +0200

guix: git: Support shallow git clones if a tag is available

* guix/build/git.scm (git-fetch): Instead of cloning the remote repo, use 
the
  lower-level "init" / "fetch" / "checkout" operations.  This lets us make a
  shallow checkout if we are checking out a tag.

* guix/git-download.scm (): Add tag field.
  (git-fetch): Support git references with tags but no commits.
---
 guix/build/git.scm|   58 +
 guix/git-download.scm |   10 ++-
 2 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/guix/build/git.scm b/guix/build/git.scm
index 121f07a..1af547f 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -28,32 +28,52 @@
 ;;; Code:
 
 (define* (git-fetch url commit directory
-#:key (git-command "git") recursive?)
+#:key tag (git-command "git") recursive?)
   "Fetch COMMIT from URL into DIRECTORY.  COMMIT must be a valid Git commit
 identifier.  When RECURSIVE? is true, all the sub-modules of URL are fetched,
 recursively.  Return #t on success, #f otherwise."
-
   ;; Disable TLS certificate verification.  The hash of the checkout is known
   ;; in advance anyway.
   (setenv "GIT_SSL_NO_VERIFY" "true")
 
-  (let ((args `("clone" ,@(if recursive? '("--recursive") '())
-,url ,directory)))
-(and (zero? (apply system* git-command args))
- (with-directory-excursion directory
-   (system* git-command "tag" "-l")
-   (and (zero? (system* git-command "checkout" commit))
-(begin
-  ;; The contents of '.git' vary as a function of the current
-  ;; status of the Git repo.  Since we want a fixed output, 
this
-  ;; directory needs to be taken out.
-  (delete-file-recursively ".git")
+  (mkdir directory)
+  (with-directory-excursion directory
+(and (zero? (system* git-command "init"))
+ (zero? (system* git-command "remote" "add" "origin" url))
+ (cond
+  ;; If there's a tag, do a shallow fetch.  Otherwise we do a full
+  ;; fetch.
+  (tag
+   (and (zero? (system* git-command "fetch" "--depth=1" "origin" tag))
+;; Either there is no commit specified, in which case we are
+;; good, or there is a commit and it is the same as the tag,
+;; in which case we're still good, or there's a commit and
+;; it's under the tag so we have to unshallow the checkout and
+;; try again.
+(if commit
+(or (zero? (system* git-command "checkout" commit))
+(and (zero? (system* git-command "fetch" 
"--unshallow"))
+ (zero? (system* git-command "checkout" commit
+(zero? (system* git-command "checkout" "FETCH_HEAD")
+  (else
+   ;; Fall back to a full fetch.  In that case print available tags.
+   (and (zero? (system* git-command "fetch" "origin"))
+(zero? (system* git-command "tag" "-l"))
+(zero? (system* git-command "checkout" commit)
+ (or (not recursive?)
+ (zero? (system* git-command
+ "submodule" "update" "--init" "--recursive")))
+ (begin
+   ;; The contents of '.git' vary as a function of the current
+   ;; status of the Git repo.  Since we want a fixed output, this
+   ;; directory needs to be taken out.
+   (delete-file-recursively ".git")
 
-  (when recursive?
-;; In sub-modules, '.git' is a flat file, not a directory,
-;; so we can use 'find-files' here.
-(for-each delete-file-recursively
-  (find-files directory "^\\.git$")))
-  #t))
+   (when recursive?
+ ;; In sub-modules, '.git' is a flat file, not a directory,
+ ;; so we can use 'find-files' here.
+ (for-each delete-file-recursively
+   (find-files directory "^\\.git$")))
+   #t
 
 ;;; git.scm ends here
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 0f2218c..43bc466 1

04/06: doc: Document polkit and elogind services.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit e31c07961df4a44969deff9724a47aceb1bf95cd
Author: Andy Wingo 
Date:   Wed Sep 2 22:53:09 2015 +0200

doc: Document polkit and elogind services.

* doc/guix.texi (Desktop Services): Add polkit-service and
  elogind-service documentation.
---
 doc/guix.texi |   82 +
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index c42aedb..46e40e0 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6049,6 +6049,7 @@ adds or adjust services for a typical ``desktop'' setup.
 In particular, it adds a graphical login manager (@pxref{X Window,
 @code{slim-service}}), a network management tool (@pxref{Networking
 Services, @code{wicd-service}}), energy and color management services,
+the @code{elogind} login and seat manager, the Polkit privilege service,
 the GeoClue location service, an NTP client (@pxref{Networking
 Services}), the Avahi daemon, and has the name service switch service
 configured to be able to use @code{nss-mdns} (@pxref{Name Service
@@ -6077,6 +6078,87 @@ and policy files.  For example, to allow avahi-daemon to 
use the system bus,
 @var{services} must be equal to @code{(list avahi)}.
 @end deffn
 
+@deffn {Monadic Procedure} elogind-service @
+ [#:elogind @var{elogind}] [#:config @var{config}]
+Return a service that runs the @code{elogind} login and
+seat management daemon.  @uref{https://github.com/andywingo/elogind,
+Elogind} exposes a D-Bus interface that can be used to know which users
+are logged in, know what kind of sessions they have open, suspend the
+system, inhibit system suspend, reboot the system, and other tasks.
+
+Elogind handles most system-level power events for a computer, for
+example suspending the system when a lid is closed, or shutting it down
+when the power button is pressed.
+
+The @var{config} keyword argument specifies the configuration for
+elogind, and should be the result of a @code{(elogind-configuration
+(@var{parameter} @var{value})...)} invocation.  Available parameters and
+their default values are:
+
+@table @code
+@item kill-user-processes?
+@code{#f}
+@item kill-only-users
+@code{()}
+@item kill-exclude-users
+@code{("root")}
+@item inhibit-delay-max-seconds
+@code{5}
+@item handle-power-key
+@code{poweroff}
+@item handle-suspend-key
+@code{suspend}
+@item handle-hibernate-key
+@code{hibernate}
+@item handle-lid-switch
+@code{suspend}
+@item handle-lid-switch-docked
+@code{ignore}
+@item power-key-ignore-inhibited?
+@code{#f}
+@item suspend-key-ignore-inhibited?
+@code{#f}
+@item hibernate-key-ignore-inhibited?
+@code{#f}
+@item lid-switch-ignore-inhibited?
+@code{#t}
+@item holdoff-timeout-seconds
+@code{30}
+@item idle-action
+@code{ignore}
+@item idle-action-seconds
+@code{(* 30 60)}
+@item runtime-directory-size-percent
+@code{10}
+@item runtime-directory-size
+@code{#f}
+@item remove-ipc?
+@code{#t}
+@item suspend-state
+@code{("mem" "standby" "freeze")}
+@item suspend-mode
+@code{()}
+@item hibernate-state
+@code{("disk")}
+@item hibernate-mode
+@code{("platform" "shutdown")}
+@item hybrid-sleep-state
+@code{("disk")}
+@item hybrid-sleep-mode
+@code{("suspend" "platform" "shutdown")}
+@end table
+@end deffn
+
+@deffn {Monadic Procedure} polkit-service @
+ [#:polkit @var{polkit}]
+Return a service that runs the Polkit privilege manager.
+@uref{http://www.freedesktop.org/wiki/Software/polkit/ Polkit} allows
+system administrators to grant access to privileged operations in a
+structured way.  For example, polkit rules can allow a logged-in user
+whose session is active to shut down the machine, if there are no other
+users active.
+@end deffn
+
 @deffn {Monadic Procedure} upower-service [#:upower @var{upower}] @
  [#:watts-up-pro? #f] @
  [#:poll-batteries? #t] @



02/06: gnu: polkit: Look for rules in /run/current-system/profile.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 3f130e42e0237451503a19293fe60daa27853af0
Author: Andy Wingo 
Date:   Tue Sep 1 13:30:31 2015 +0200

gnu: polkit: Look for rules in /run/current-system/profile.

* gnu/packages/polkit.scm (polkit): Configure to look for actions and
  rules in the system profile.  Arrange to look for the setuid helper in
  /run/setuid-programs.  Fix introspection installation.

Based on a patch by Mark H Weaver .
---
 gnu/packages/polkit.scm |   62 +++---
 1 files changed, 52 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 06afdf1..13db7b6 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Andreas Enge 
 ;;; Copyright © 2015 Andy Wingo 
+;;; Copyright © 2015 Mark H Weaver 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -62,20 +63,61 @@
  (substitute* 
"src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
(("systemd") "elogind"))
  (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
-   (("systemd") "elogind"))
+   (("systemd") "elogind"))
+
+ (substitute* "src/polkitagent/polkitagentsession.c"
+   (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
+"\"/run/setuid-programs/polkit-agent-helper-1\""))
+ (substitute* 
"src/polkitbackend/polkitbackendinteractiveauthority.c"
+   (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
+"\"/run/current-system/profile/share/polkit-1/actions\""))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("PACKAGE_SYSCONF_DIR \"/polkit-1/rules.d\"")
+"\"/run/current-system/profile/etc/polkit-1/rules.d\""))
+ (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
+   (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
+
"\"/run/current-system/profile/share/polkit-1/rules.d\""))
 (build-system gnu-build-system)
 (inputs
-  `(("expat" ,expat)
-("glib:bin" ,glib "bin") ; for glib-mkenums
-("elogind" ,elogind)
-("intltool" ,intltool)
-("linux-pam" ,linux-pam)
-("mozjs" ,mozjs)
-("nspr" ,nspr)))
+ `(("expat" ,expat)
+   ("linux-pam" ,linux-pam)
+   ("elogind" ,elogind)
+   ("mozjs" ,mozjs)
+   ("nspr" ,nspr)))
 (propagated-inputs
-  `(("glib" ,glib))) ; required by polkit-gobject-1.pc
+ `(("glib" ,glib))) ; required by polkit-gobject-1.pc
 (native-inputs
-  `(("pkg-config", pkg-config)))
+ `(("pkg-config" ,pkg-config)
+   ("glib:bin" ,glib "bin") ; for glib-mkenums
+   ("intltool" ,intltool)
+   ("gobject-introspection" ,gobject-introspection)))
+(arguments
+ `(#:configure-flags '("--sysconfdir=/etc"
+   "--enable-man-pages")
+   #:phases
+   (modify-phases %standard-phases
+ (add-after
+  'unpack 'fix-introspection-install-dir
+  (lambda* (#:key outputs #:allow-other-keys)
+(let ((out (assoc-ref outputs "out")))
+  (substitute* (find-files "." "Makefile.in")
+(("@INTROSPECTION_GIRDIR@")
+ (string-append out "/share/gir-1.0/"))
+(("@INTROSPECTION_TYPELIBDIR@")
+ (string-append out "/lib/girepository-1.0/"))
+ (replace
+  'install
+  (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
+;; Override sysconfdir during "make install", to avoid attempting
+;; to install in /etc, and to instead install the skeletons in the
+;; output directory.
+(let ((out (assoc-ref outputs "out")))
+ (zero? (apply system*
+   "make" "install"
+   (string-append "sysconfdir=" out "/etc")
+   (string-append "polkit_actiondir="
+  out "/share/polkit-1/actions")
+   make-flags
 (home-page "http://www.freedesktop.org/wiki/Software/polkit/";)
 (synopsis "Authorization API for privilege management")
 (description "Polkit is an application-level toolkit for defining and



branch wip-pam-elogind created (now c33372a)

2015-09-02 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

at  c33372a   gnu: Allow OS configurations to add PAM session modules

This branch includes the following new commits:

   new  7b6c5c5   gnu: polkit: Use elogind for seat management.
   new  3f130e4   gnu: polkit: Look for rules in 
/run/current-system/profile.
   new  0071c78   gnu: Add polkit service.
   new  e31c079   doc: Document polkit and elogind services.
   new  5704432   guix: git: Support shallow git clones if a tag is 
available
   new  c33372a   gnu: Allow OS configurations to add PAM session modules

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.




branch wip-pam-elogind deleted (was 3cc78ab)

2015-09-02 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

   was  3cc78ab   gnu: Allow OS configurations to add PAM session modules

This change permanently discards the following revisions:

  discards  3cc78ab   gnu: Allow OS configurations to add PAM session modules
  discards  3081f76   guix: git: Support shallow git clones if a tag is 
available
  discards  4f8e651   gnu: Add polkit service.
  discards  393d0f4   gnu: polkit: Look for rules in 
/run/current-system/profile.
  discards  8d9dc4d   gnu: polkit: Use elogind for seat management.
  discards  1b13da3   gnu: Add elogind service.
  discards  fdd8893   gnu: elogind: Update to version 219.12.



branch wip-pam-elogind created (now a3c2834)

2015-09-02 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

at  a3c2834   gnu: Allow OS configurations to add PAM session modules

This branch includes the following new commits:

   new  8467d85   guix: git: Support shallow git clones if a tag is 
available
   new  a3c2834   gnu: Allow OS configurations to add PAM session modules

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.




01/02: guix: git: Support shallow git clones if a tag is available

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit 8467d85cd022bda8f48b4223d349cd5956cd5f92
Author: Andy Wingo 
Date:   Tue Aug 18 10:03:06 2015 +0200

guix: git: Support shallow git clones if a tag is available

* guix/build/git.scm (git-fetch): Instead of cloning the remote repo, use 
the
  lower-level "init" / "fetch" / "checkout" operations.  This lets us make a
  shallow checkout if we are checking out a tag.

* guix/git-download.scm (): Add tag field.
  (git-fetch): Support git references with tags but no commits.
---
 guix/build/git.scm|   58 +
 guix/git-download.scm |   10 ++-
 2 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/guix/build/git.scm b/guix/build/git.scm
index 121f07a..1af547f 100644
--- a/guix/build/git.scm
+++ b/guix/build/git.scm
@@ -28,32 +28,52 @@
 ;;; Code:
 
 (define* (git-fetch url commit directory
-#:key (git-command "git") recursive?)
+#:key tag (git-command "git") recursive?)
   "Fetch COMMIT from URL into DIRECTORY.  COMMIT must be a valid Git commit
 identifier.  When RECURSIVE? is true, all the sub-modules of URL are fetched,
 recursively.  Return #t on success, #f otherwise."
-
   ;; Disable TLS certificate verification.  The hash of the checkout is known
   ;; in advance anyway.
   (setenv "GIT_SSL_NO_VERIFY" "true")
 
-  (let ((args `("clone" ,@(if recursive? '("--recursive") '())
-,url ,directory)))
-(and (zero? (apply system* git-command args))
- (with-directory-excursion directory
-   (system* git-command "tag" "-l")
-   (and (zero? (system* git-command "checkout" commit))
-(begin
-  ;; The contents of '.git' vary as a function of the current
-  ;; status of the Git repo.  Since we want a fixed output, 
this
-  ;; directory needs to be taken out.
-  (delete-file-recursively ".git")
+  (mkdir directory)
+  (with-directory-excursion directory
+(and (zero? (system* git-command "init"))
+ (zero? (system* git-command "remote" "add" "origin" url))
+ (cond
+  ;; If there's a tag, do a shallow fetch.  Otherwise we do a full
+  ;; fetch.
+  (tag
+   (and (zero? (system* git-command "fetch" "--depth=1" "origin" tag))
+;; Either there is no commit specified, in which case we are
+;; good, or there is a commit and it is the same as the tag,
+;; in which case we're still good, or there's a commit and
+;; it's under the tag so we have to unshallow the checkout and
+;; try again.
+(if commit
+(or (zero? (system* git-command "checkout" commit))
+(and (zero? (system* git-command "fetch" 
"--unshallow"))
+ (zero? (system* git-command "checkout" commit
+(zero? (system* git-command "checkout" "FETCH_HEAD")
+  (else
+   ;; Fall back to a full fetch.  In that case print available tags.
+   (and (zero? (system* git-command "fetch" "origin"))
+(zero? (system* git-command "tag" "-l"))
+(zero? (system* git-command "checkout" commit)
+ (or (not recursive?)
+ (zero? (system* git-command
+ "submodule" "update" "--init" "--recursive")))
+ (begin
+   ;; The contents of '.git' vary as a function of the current
+   ;; status of the Git repo.  Since we want a fixed output, this
+   ;; directory needs to be taken out.
+   (delete-file-recursively ".git")
 
-  (when recursive?
-;; In sub-modules, '.git' is a flat file, not a directory,
-;; so we can use 'find-files' here.
-(for-each delete-file-recursively
-  (find-files directory "^\\.git$")))
-  #t))
+   (when recursive?
+ ;; In sub-modules, '.git' is a flat file, not a directory,
+ ;; so we can use 'find-files' here.
+ (for-each delete-file-recursively
+   (find-files directory "^\\.git$")))
+   #t
 
 ;;; git.scm ends here
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 0f2218c..43bc466 1

02/02: gnu: Allow OS configurations to add PAM session modules

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch wip-pam-elogind
in repository guix.

commit a3c2834d449e02a259b0f40bf77e0401eb8ce239
Author: Andy Wingo 
Date:   Tue Aug 18 10:22:16 2015 +0200

gnu: Allow OS configurations to add PAM session modules

* gnu/services/base.scm (mingetty-service):
* gnu/services/xorg.scm (slim-service):
* gnu/services/ssh.scm (lsh-service):
* gnu/system/linux.scm (unix-pam-service, base-pam-services): Add
  #:additional-session-modules keyword argument.
---
 gnu/services/base.scm |6 --
 gnu/services/ssh.scm  |6 --
 gnu/services/xorg.scm |6 --
 gnu/system/linux.scm  |   27 ---
 4 files changed, 28 insertions(+), 17 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 888e446..60dc93b 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -364,7 +364,8 @@ stopped before 'kill' is called."
;; Allow empty passwords by default so that
;; first-time users can log in when the 'root'
;; account has just been created.
-   (allow-empty-passwords? #t))
+   (allow-empty-passwords? #t)
+   (additional-session-modules '()))
   "Return a service to run mingetty on @var{tty}.
 
 When @var{allow-empty-passwords?} is true, allow empty log-in password.  When
@@ -416,7 +417,8 @@ the ``message of the day''."
;; duplicates are removed.
(list (unix-pam-service "login"
#:allow-empty-passwords? allow-empty-passwords?
-   #:motd motd)))
+   #:motd motd
+   #:additional-session-modules 
additional-session-modules)))
 
 (define-record-type*  nscd-configuration
   make-nscd-configuration
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index e2f8542..15e4052 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -86,7 +86,8 @@
   (tcp/ip-forwarding? #t)
   (password-authentication? #t)
   (public-key-authentication? #t)
-  (initialize? #t))
+  (initialize? #t)
+  (additional-session-modules '()))
   "Run the @command{lshd} program from @var{lsh} to listen on port 
@var{port-number}.
 @var{host-key} must designate a file containing the host key, and readable
 only by root.
@@ -162,7 +163,8 @@ The other options should be self-descriptive."
  (pam-services
   (list (unix-pam-service
  "lshd"
- #:allow-empty-passwords? allow-empty-passwords?)))
+ #:allow-empty-passwords? allow-empty-passwords?
+ #:additional-session-modules additional-session-modules)))
  (activate #~(begin
(use-modules (guix build utils))
(mkdir-p "/var/spool/lsh")
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 9ee8817..71bbb32 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -224,7 +224,8 @@ which should be passed to this script as the first 
argument.  If not, the
(xauth xauth) (dmd dmd) (bash bash)
(auto-login-session #~(string-append #$windowmaker
 "/bin/wmaker"))
-   startx)
+   startx
+   (additional-session-modules '()))
   "Return a service that spawns the SLiM graphical login manager, which in
 turn starts the X display server with @var{startx}, a command as returned by
 @code{xorg-start-command}.
@@ -305,6 +306,7 @@ reboot_cmd " dmd "/sbin/reboot
;; Tell PAM about 'slim'.
(list (unix-pam-service
   "slim"
-  #:allow-empty-passwords? allow-empty-passwords?)))
+  #:allow-empty-passwords? allow-empty-passwords?
+  #:additional-session-modules additional-session-modules)))
 
 ;;; xorg.scm ends here
diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm
index 7461a4a..1656862 100644
--- a/gnu/system/linux.scm
+++ b/gnu/system/linux.scm
@@ -133,7 +133,8 @@ dumped in /etc/pam.d/NAME, where NAME is the name of 
SERVICE."
   (let ((unix (pam-entry
(control "required")
(module "pam_unix.so"
-(lambda* (name #:key allow-empty-passwords? motd)
+(lambda* (name #:key allow-empty-passwords? motd
+   (additional-session-modules '()))
   "Return a standard Unix-style PAM service for NAME.  When
 ALLOW-EMPTY-PASSWORDS? is true, allow empty

branch wip-pam-elogind deleted (was c33372a)

2015-09-02 Thread Andy Wingo
wingo pushed a change to branch wip-pam-elogind
in repository guix.

   was  c33372a   gnu: Allow OS configurations to add PAM session modules

This change permanently discards the following revisions:

  discards  c33372a   gnu: Allow OS configurations to add PAM session modules
  discards  5704432   guix: git: Support shallow git clones if a tag is 
available
  discards  e31c079   doc: Document polkit and elogind services.



branch master updated (04463bb -> 4650a77)

2015-09-02 Thread Andy Wingo
wingo pushed a change to branch master
in repository guix.

  from  04463bb   gnu: Add elogind service.
  adds  7b6c5c5   gnu: polkit: Use elogind for seat management.
  adds  3f130e4   gnu: polkit: Look for rules in 
/run/current-system/profile.
  adds  0071c78   gnu: Add polkit service.
   new  4650a77   doc: Document polkit and elogind services.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/guix.texi|   82 ++
 gnu/packages/polkit.scm  |   79 +++-
 gnu/services/desktop.scm |   51 ++---
 3 files changed, 198 insertions(+), 14 deletions(-)



01/01: doc: Document polkit and elogind services.

2015-09-02 Thread Andy Wingo
wingo pushed a commit to branch master
in repository guix.

commit 4650a77ea8b3ada17f94a4a3b2004f172d0a1498
Author: Andy Wingo 
Date:   Wed Sep 2 22:53:09 2015 +0200

doc: Document polkit and elogind services.

* doc/guix.texi (Desktop Services): Add polkit-service and
  elogind-service documentation.
---
 doc/guix.texi |   82 +
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index c42aedb..6defb0b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6049,6 +6049,7 @@ adds or adjust services for a typical ``desktop'' setup.
 In particular, it adds a graphical login manager (@pxref{X Window,
 @code{slim-service}}), a network management tool (@pxref{Networking
 Services, @code{wicd-service}}), energy and color management services,
+the @code{elogind} login and seat manager, the Polkit privilege service,
 the GeoClue location service, an NTP client (@pxref{Networking
 Services}), the Avahi daemon, and has the name service switch service
 configured to be able to use @code{nss-mdns} (@pxref{Name Service
@@ -6077,6 +6078,87 @@ and policy files.  For example, to allow avahi-daemon to 
use the system bus,
 @var{services} must be equal to @code{(list avahi)}.
 @end deffn
 
+@deffn {Monadic Procedure} elogind-service @
+ [#:elogind @var{elogind}] [#:config @var{config}]
+Return a service that runs the @code{elogind} login and
+seat management daemon.  @uref{https://github.com/andywingo/elogind,
+Elogind} exposes a D-Bus interface that can be used to know which users
+are logged in, know what kind of sessions they have open, suspend the
+system, inhibit system suspend, reboot the system, and other tasks.
+
+Elogind handles most system-level power events for a computer, for
+example suspending the system when a lid is closed, or shutting it down
+when the power button is pressed.
+
+The @var{config} keyword argument specifies the configuration for
+elogind, and should be the result of a @code{(elogind-configuration
+(@var{parameter} @var{value})...)} invocation.  Available parameters and
+their default values are:
+
+@table @code
+@item kill-user-processes?
+@code{#f}
+@item kill-only-users
+@code{()}
+@item kill-exclude-users
+@code{("root")}
+@item inhibit-delay-max-seconds
+@code{5}
+@item handle-power-key
+@code{poweroff}
+@item handle-suspend-key
+@code{suspend}
+@item handle-hibernate-key
+@code{hibernate}
+@item handle-lid-switch
+@code{suspend}
+@item handle-lid-switch-docked
+@code{ignore}
+@item power-key-ignore-inhibited?
+@code{#f}
+@item suspend-key-ignore-inhibited?
+@code{#f}
+@item hibernate-key-ignore-inhibited?
+@code{#f}
+@item lid-switch-ignore-inhibited?
+@code{#t}
+@item holdoff-timeout-seconds
+@code{30}
+@item idle-action
+@code{ignore}
+@item idle-action-seconds
+@code{(* 30 60)}
+@item runtime-directory-size-percent
+@code{10}
+@item runtime-directory-size
+@code{#f}
+@item remove-ipc?
+@code{#t}
+@item suspend-state
+@code{("mem" "standby" "freeze")}
+@item suspend-mode
+@code{()}
+@item hibernate-state
+@code{("disk")}
+@item hibernate-mode
+@code{("platform" "shutdown")}
+@item hybrid-sleep-state
+@code{("disk")}
+@item hybrid-sleep-mode
+@code{("suspend" "platform" "shutdown")}
+@end table
+@end deffn
+
+@deffn {Monadic Procedure} polkit-service @
+ [#:polkit @var{polkit}]
+Return a service that runs the Polkit privilege manager.
+@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit} allows
+system administrators to grant access to privileged operations in a
+structured way.  For example, polkit rules can allow a logged-in user
+whose session is active to shut down the machine, if there are no other
+users active.
+@end deffn
+
 @deffn {Monadic Procedure} upower-service [#:upower @var{upower}] @
  [#:watts-up-pro? #f] @
  [#:poll-batteries? #t] @



01/02: gnu: Add libesmtp.

2015-11-03 Thread Andy Wingo
wingo pushed a commit to branch master
in repository guix.

commit f5dceecb0ce704491237bd6ad4a121088b0f47c1
Author: Andy Wingo 
Date:   Tue Nov 3 15:46:33 2015 +0100

gnu: Add libesmtp.

* gnu/packages/mail.scm (libesmtp): New public variable.
---
 gnu/packages/mail.scm |   24 
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 1e3ba8f..3ba956e 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -939,4 +939,28 @@ Email::Send library.")
 format and headers.")
 (license (package-license perl
 
+(define-public libesmtp
+  (package
+(name "libesmtp")
+(version "1.0.6")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-";
+   version ".tar.bz2"))
+   (sha256
+(base32
+ "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh"
+(build-system gnu-build-system)
+(propagated-inputs
+ `(("openssl" ,openssl)))
+(home-page "http://www.stafford.uklinux.net/libesmtp/";)
+(synopsis "Library for sending mail via remote hosts using SMTP")
+(description "libESMTP is an SMTP client which manages posting (or
+submission of) electronic mail via a preconfigured Mail Transport Agent (MTA).
+It may be used as part of a Mail User Agent (MUA) or other program that must
+be able to post electronic mail where mail functionality may not be that
+program's primary purpose.")
+(license (list lgpl2.1+ gpl2+
+
 ;;; mail.scm ends here



branch master updated (6e82863 -> f8ae32a)

2015-11-03 Thread Andy Wingo
wingo pushed a change to branch master
in repository guix.

  from  6e82863   system: Rename (gnu system linux) to (gnu system pam).
   new  f5dceec   gnu: Add libesmtp.
   new  f8ae32a   gnu: Add esmtp.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/packages/mail.scm |   65 +
 1 files changed, 65 insertions(+), 0 deletions(-)



02/02: gnu: Add esmtp.

2015-11-03 Thread Andy Wingo
wingo pushed a commit to branch master
in repository guix.

commit f8ae32a26a5f41466f5c7792261fdf2e78d1d35f
Author: Andy Wingo 
Date:   Tue Nov 3 15:46:44 2015 +0100

gnu: Add esmtp.

* gnu/packages/mail.scm (esmtp): New public variable.
---
 gnu/packages/mail.scm |   41 +
 1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 3ba956e..d4f3dec 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
@@ -43,6 +44,7 @@
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
@@ -68,6 +70,7 @@
   (expat . license:expat)))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system perl)
@@ -963,4 +966,42 @@ be able to post electronic mail where mail functionality 
may not be that
 program's primary purpose.")
 (license (list lgpl2.1+ gpl2+
 
+(define-public esmtp
+  (package
+(name "esmtp")
+(version "1.2")
+(source
+ (origin
+   (method git-fetch)
+   (uri (git-reference
+ (url "https://github.com/andywingo/esmtp.git";)
+ (commit "01bf9fc")))
+   (sha256
+(base32
+ "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2"))
+   (file-name (string-append name "-" version "-checkout"
+(arguments
+ `(#:phases (modify-phases %standard-phases
+  (add-before
+   'configure 'autoconf
+   (lambda _ (zero? (system* "autoreconf" "-vfi")))
+(build-system gnu-build-system)
+(native-inputs
+ `(("bison" ,bison)
+   ("flex" ,flex)
+   ("autoconf" ,autoconf)
+   ("automake" ,automake)
+   ("libtool" ,libtool)))
+(inputs
+ `("libesmtp" ,libesmtp))
+(home-page "http://sourceforge.net/projects/esmtp/";)
+(synopsis "Relay-only mail transfer agent (MTA)")
+(description "Esmtp is a simple relay-only mail transfer agent built using
+libESMTP.  It sends e-mail via a remote SMTP server using credentials from the
+user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man
+page for more on configuration.  This package also provides minimal
+compatibility shims for the @command{sendmail}, @command{mailq}, and
+@command{newaliases} commands.")
+(license gpl2+)))
+
 ;;; mail.scm ends here



branch core-updates updated (6671ce9 -> f2ec23d)

2016-10-13 Thread Andy Wingo
wingo pushed a change to branch core-updates
in repository guix.

  from  6671ce9   gnu: ath9k-htc-firmware: Update binutils patch for 
binutils 2.27.
   new  f2ec23d   gnu: Add CUPS service.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/guix.texi |  832 +++
 gnu/local.mk  |1 +
 gnu/services/cups.scm | 1166 +
 3 files changed, 1999 insertions(+)
 create mode 100644 gnu/services/cups.scm



01/01: gnu: Add CUPS service.

2016-10-13 Thread Andy Wingo
wingo pushed a commit to branch core-updates
in repository guix.

commit f2ec23d18e50eef3e4f574a3e6498d8964e4e1a3
Author: Andy Wingo 
Date:   Wed Oct 5 19:23:48 2016 +0200

gnu: Add CUPS service.

* gnu/services/cups.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add gnu/services/cups.scm.
* doc/guix.texi (Printing Services): New section.
---
 doc/guix.texi |  832 +++
 gnu/local.mk  |1 +
 gnu/services/cups.scm | 1166 +
 3 files changed, 1999 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 57821c5..5096f18 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -7643,6 +7643,7 @@ declaration.
 * Log Rotation::The rottlog service.
 * Networking Services:: Network setup, SSH daemon, etc.
 * X Window::Graphical display.
+* Printing Services::   Local and remote printer support.
 * Desktop Services::D-Bus and desktop services.
 * Database Services::   SQL databases.
 * Mail Services::   IMAP, POP3, SMTP, and all that.
@@ -8686,6 +8687,837 @@ makes the good ol' XlockMore usable.
 @end deffn
 
 
+@node Printing Services
+@subsubsection Printing Services
+
+The @code{(gnu services cups)} module provides a Guix service definition
+for the CUPS printing service.  To add printer support to a GuixSD
+system, add a @code{cups-service} to the operating system definition:
+
+@deffn {Scheme Variable} cups-service-type
+The service type for the CUPS print server.  Its value should be a valid
+CUPS configuration (see below).  For example:
+@example
+(service cups-service-type (cups-configuration))
+@end example
+@end deffn
+
+The CUPS configuration controls the basic things about your CUPS
+installation: what interfaces it listens on, what to do if a print job
+fails, how much logging to do, and so on.  To actually add a printer,
+you have to visit the @url{http://localhost:631} URL, or use a tool such
+as GNOME's printer configuration services.  By default, configuring a
+CUPS service will generate a self-signed certificate if needed, for
+secure connections to the print server.
+
+One way you might want to customize CUPS is to enable or disable the web
+interface.  You can do that directly, like this:
+
+@example
+(service cups-service-type
+ (cups-configuration
+   (web-interface? #f)))
+@end example
+
+The available configuration parameters follow.  Each parameter
+definition is preceded by its type; for example, @samp{string-list foo}
+indicates that the @code{foo} parameter should be specified as a list of
+strings.  There is also a way to specify the configuration as a string,
+if you have an old @code{cupsd.conf} file that you want to port over
+from some other system; see the end for more details.
+
+@c The following documentation was initially generated by
+@c (generate-documentation) in (gnu services cups).  Manually maintained
+@c documentation is better, so we shouldn't hesitate to edit below as
+@c needed.  However if the change you want to make to this documentation
+@c can be done in an automated way, it's probably easier to change
+@c (generate-documentation) than to make it below and have to deal with
+@c the churn as CUPS updates.
+
+
+Available @code{cups-configuration} fields are:
+
+@deftypevr {@code{cups-configuration} parameter} package cups
+The CUPS package.
+@end deftypevr
+
+@deftypevr {@code{cups-configuration} parameter} package-list extensions
+Drivers and other extensions to the CUPS package.
+@end deftypevr
+
+@deftypevr {@code{cups-configuration} parameter} files-configuration 
files-configuration
+Configuration of where to write logs, what directories to use for print
+spools, and related privileged configuration parameters.
+
+Available @code{files-configuration} fields are:
+
+@deftypevr {@code{files-configuration} parameter} log-location access-log
+Defines the access log filename.  Specifying a blank filename disables
+access log generation.  The value @code{stderr} causes log entries to be
+sent to the standard error file when the scheduler is running in the
+foreground, or to the system log daemon when run in the background.  The
+value @code{syslog} causes log entries to be sent to the system log
+daemon.  The server name may be included in filenames using the string
+@code{%s}, as in @code{/var/log/cups/%s-access_log}.
+
+Defaults to @samp{"/var/log/cups/access_log"}.
+@end deftypevr
+
+@deftypevr {@code{files-configuration} parameter} file-name cache-dir
+Where CUPS should cache data.
+
+Defaults to @samp{"/var/cache/cups"}.
+@end deftypevr
+
+@deftypevr {@code{files-configuration} parameter} string config-file-perm
+Specifies the permissions for all configuration files that the scheduler
+writes.
+
+Note that the permissions for the printers.conf file are currently
+masked to only allow access from the schedu

branch master updated (8e9badc -> 4ce8860)

2016-12-01 Thread Andy Wingo
wingo pushed a change to branch master
in repository guix.

  from  8e9badc   gnu: nasm: Update to 2.12.02.
   new  4ce8860   services: cups: Follow symlinks when installing 
extensions.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 gnu/services/cups.scm |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



01/01: services: cups: Follow symlinks when installing extensions.

2016-12-01 Thread Andy Wingo
wingo pushed a commit to branch master
in repository guix.

commit 4ce8860df9c053e3e111f04adcbb636728954251
Author: Andy Patterson 
Date:   Wed Nov 30 16:00:13 2016 -0500

services: cups: Follow symlinks when installing extensions.

* gnu/services/cups.scm (union-directory): Use "stat" when calling
"find-files" to follow symlinks.
---
 gnu/services/cups.scm |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm
index 391046a..df1843e 100644
--- a/gnu/services/cups.scm
+++ b/gnu/services/cups.scm
@@ -894,7 +894,7 @@ IPP specifications.")
 (if (file-exists? dst)
 (format (current-error-port) "warning: ~a exists\n" 
dst)
 (symlink src dst
-(find-files (string-append package path
+(find-files (string-append package path) #:stat stat)))
  (list #$@paths)))
   (list #$@packages))
  #t



branch master updated (6a51e95 -> d8c18af)

2015-12-18 Thread Andy Wingo
wingo pushed a change to branch master
in repository guix.

  from  6a51e95   gnu: sdl-image: Add libwebp input.
   new  fd5c70f   gnu: dovecot: Add linux-pam to inputs.
   new  d8c18af   gnu: Add dovecot service

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 doc/guix.texi | 1371 +++
 gnu-system.am |1 +
 gnu/packages/mail.scm |3 +-
 gnu/services/mail.scm | 1692 +
 4 files changed, 3066 insertions(+), 1 deletions(-)
 create mode 100644 gnu/services/mail.scm



01/02: gnu: dovecot: Add linux-pam to inputs.

2015-12-18 Thread Andy Wingo
wingo pushed a commit to branch master
in repository guix.

commit fd5c70f867175155263f8bc04095a0fd1e51a764
Author: Andy Wingo 
Date:   Mon Dec 14 14:10:07 2015 +0100

gnu: dovecot: Add linux-pam to inputs.

* gnu/packages/mail.scm (dovecot): Add linux-pam to inputs, enabling the
  PAM auth driver.
---
 gnu/packages/mail.scm |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index bf28ec6..38cab27 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -696,7 +696,8 @@ facilities for checking incoming mail.")
  `(("openssl" ,openssl)
("zlib" ,zlib)
("bzip2" ,bzip2)
-   ("sqlite" ,sqlite)))
+   ("sqlite" ,sqlite)
+   ("linux-pam" ,linux-pam)))
 (arguments
  `(#:configure-flags '("--sysconfdir=/etc"
"--localstatedir=/var")



02/02: gnu: Add dovecot service

2015-12-18 Thread Andy Wingo
wingo pushed a commit to branch master
in repository guix.

commit d8c18af834c492a2066e882fed95062a5c33fbc7
Author: Andy Wingo 
Date:   Mon Dec 14 14:10:46 2015 +0100

gnu: Add dovecot service

* gnu/services/mail.scm: New file.
(&dovecot-configuration-error, dovecot-configuration-error?)
(dovecot-service, dovecot-configuration, dict-configuration)
(passdb-configuration, userdb-configuration)
(unix-listener-configuration, fifo-listener-configuration)
(inet-listener-configuration, service-configuration)
(protocol-configuration, plugin-configuration, mailbox-configuration)
(namespace-configuration, opaque-dovecot-configuration): New public
variables.

* gnu-system.am (GNU_SYSTEM_MODULES): Add (gnu services mail).

* doc/guix.texi (Mail Services): New node.
---
 doc/guix.texi | 1371 +++
 gnu-system.am |1 +
 gnu/services/mail.scm | 1692 +
 3 files changed, 3064 insertions(+), 0 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index f63e366..06d70ba 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -181,6 +181,7 @@ Services
 * X Window::Graphical display.
 * Desktop Services::D-Bus and desktop services.
 * Database Services::   SQL databases.
+* Mail Services::   IMAP, POP3, SMTP, and all that.
 * Web Services::Web servers.
 * Various Services::Other services.
 
@@ -6377,6 +6378,7 @@ declaration.
 * X Window::Graphical display.
 * Desktop Services::D-Bus and desktop services.
 * Database Services::   SQL databases.
+* Mail Services::   IMAP, POP3, SMTP, and all that.
 * Web Services::Web servers.
 * Various Services::Other services.
 @end menu
@@ -7100,6 +7102,1375 @@ The PostgreSQL daemon loads its runtime configuration 
from
 @var{data-directory}.
 @end deffn
 
+@node Mail Services
+@subsubsection Mail Services
+
+The @code{(gnu services mail)} module provides Guix service definitions
+for mail services.  Currently the only implemented service is Dovecot,
+an IMAP, POP3, and LMTP server.
+
+Guix does not yet have a mail transfer agent (MTA), although for some
+lightweight purposes the @code{esmtp} relay-only MTA may suffice.  Help
+is needed to properly integrate a full MTA, such as Postfix.  Patches
+welcome!
+
+To add an IMAP/POP3 server to a GuixSD system, add a
+@code{dovecot-service} to the operating system definition:
+
+@deffn {Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]
+Return a service that runs the Dovecot IMAP/POP3/LMTP mail server.
+@end deffn
+
+By default, Dovecot doesn't need much configuration; the default
+configuration object created by @code{(dovecot-configuration)} will
+suffice if your mail is delivered to @code{~/Maildir}.  A self-signed
+certificate will be generated for TLS-protected connections, though
+Dovecot will also listen on cleartext ports by default.  There are a
+number of options though which mail administrators might need to change,
+and as is the case with other services, Guix allows the system
+administrator to specify these parameters via a uniform Scheme interface.
+
+For example, to specify that mail is located at @code{maildir~/.mail},
+one would instantiate the Dovecot service like this:
+
+@example
+(dovecot-service #:config
+ (dovecot-configuration
+  (mail-location "maildir:~/.mail")))
+@end example
+
+The available configuration parameters follow.  Each parameter
+definition is preceded by its type; for example, @samp{string-list foo}
+indicates that the @code{foo} parameter should be specified as a list of
+strings.  There is also a way to specify the configuration as a string,
+if you have an old @code{dovecot.conf} file that you want to port over
+from some other system; see the end for more details.
+
+@c The following documentation was initially generated by
+@c (generate-documentation) in (gnu services mail).  Manually maintained
+@c documentation is better, so we shouldn't hesitate to edit below as
+@c needed.  However if the change you want to make to this documentation
+@c can be done in an automated way, it's probably easier to change
+@c (generate-documentation) than to make it below and have to deal with
+@c the churn as dovecot updates.
+
+Available @code{dovecot-configuration} fields are:
+
+@deftypevr {@code{dovecot-configuration} parameter} package dovecot
+The dovecot package.
+@end deftypevr
+
+@deftypevr {@code{dovecot-configuration} parameter} 
comma-separated-string-list listen
+A list of IPs or hosts where to listen in for connections.  @samp{*}
+listens in all IPv4 interfaces, @samp{::} listens in all IPv6
+interfaces.  If you want to specify non-default ports or anything more
+complex, customize the address and port fields of

01/64: gnu-maintenance: Add X.org updater.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 6ed739a8c7d45d7a6a4cabf493b1cbad80b48002
Author: Andy Wingo 
Date:   Thu Feb 18 20:50:02 2016 +0100

gnu-maintenance: Add X.org updater.

* guix/gnu-maintenance.scm (xorg-package?, latest-xorg-release): New
  private functions.
  (%xorg-updater): New public variable.

* guix/scripts/refresh.scm (%updaters): Add %xorg-updater.

* doc/guix.texi (Invoking guix refresh): Mention the new updater.
---
 doc/guix.texi|2 ++
 guix/gnu-maintenance.scm |   37 -
 guix/scripts/refresh.scm |3 ++-
 3 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index bac7389..ed17a63 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4612,6 +4612,8 @@ list of updaters).  Currently, @var{updater} may be one 
of:
 the updater for GNU packages;
 @item gnome
 the updater for GNOME packages;
+@item xorg
+the updater for X.org packages;
 @item elpa
 the updater for @uref{http://elpa.gnu.org/, ELPA} packages;
 @item cran
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index 96fbfb7..9d720ca 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -33,6 +33,7 @@
   #:use-module (guix records)
   #:use-module (guix upstream)
   #:use-module (guix packages)
+  #:use-module (gnu packages)
   #:export (gnu-package-name
 gnu-package-mundane-name
 gnu-package-copyright-holder
@@ -57,7 +58,8 @@
 gnu-package-name->name+version
 
 %gnu-updater
-%gnome-updater))
+%gnome-updater
+%xorg-updater))
 
 ;;; Commentary:
 ;;;
@@ -508,6 +510,32 @@ elpa.gnu.org, and all the GNOME packages."
;; checksums.
#:file->signature (const #f
 
+(define (xorg-package? package)
+  "Return true if PACKAGE is an X.org package, developed by X.org."
+  (define xorg-uri?
+(match-lambda
+  ((? string? uri)
+   (string-prefix? "mirror://xorg/" uri))
+  (_
+   #f)))
+
+  (match (package-source package)
+((? origin? origin)
+ (match (origin-uri origin)
+   ((? xorg-uri?) #t)
+   (_  #f)))
+(_ #f)))
+
+(define (latest-xorg-release package)
+  "Return the latest release of PACKAGE, the name of an X.org package."
+  (let ((uri (string->uri (origin-uri (package-source (specification->package 
package))
+(false-if-ftp-error
+ (latest-ftp-release
+  package
+  #:server "ftp.freedesktop.org"
+  #:directory
+  (string-append "/pub/xorg/" (dirname (uri-path uri)))
+
 (define %gnu-updater
   (upstream-updater
(name 'gnu)
@@ -522,4 +550,11 @@ elpa.gnu.org, and all the GNOME packages."
(pred gnome-package?)
(latest latest-gnome-release)))
 
+(define %xorg-updater
+  (upstream-updater
+   (name 'xorg)
+   (description "Updater for X.org packages")
+   (pred xorg-package?)
+   (latest latest-xorg-release)))
+
 ;;; gnu-maintenance.scm ends here
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index f9e3f31..964fdcc 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -31,7 +31,7 @@
   #:use-module (guix scripts graph)
   #:use-module (guix monads)
   #:use-module ((guix gnu-maintenance)
-#:select (%gnu-updater %gnome-updater))
+#:select (%gnu-updater %gnome-updater %xorg-updater))
   #:use-module (guix import elpa)
   #:use-module (guix import cran)
   #:use-module (guix gnupg)
@@ -193,6 +193,7 @@ unavailable optional dependencies such as Guile-JSON."
   ;; List of "updaters" used by default.  They are consulted in this order.
   (list-updaters %gnu-updater
  %gnome-updater
+ %xorg-updater
  %elpa-updater
  %cran-updater
  %bioconductor-updater



branch wip-xorg-server-1.18 created (now b58c3fe)

2016-02-18 Thread Andy Wingo
wingo pushed a change to branch wip-xorg-server-1.18
in repository guix.

at  b58c3fe   gnu: services: Start X with -configdir.

This branch includes the following new commits:

   new  6ed739a   gnu-maintenance: Add X.org updater.
   new  40908df   gnu: mesa: Update to 11.0.9.
   new  1921a38   gnu: libwacom: Propagate glib input.
   new  42efedd   gnu: libinput: Update to 1.1.902.
   new  1d8eccd   gnu: bdftopcf: Update to 1.0.5.
   new  f78c840   gnu: font-util: Update to 1.3.1.
   new  5509934   gnu: iceauth: Update to 1.0.7.
   new  e723f9a   gnu: kbproto: Update to 1.0.7.
   new  8b735cf   gnu: libxshmfence: Update to 1.2.
   new  f2e3938   gnu: libfontenc: Update to 1.1.3.
   new  44088f4   gnu: libfs: Update to 1.0.7.
   new  526ee29   gnu: libxdmcp: Update to 1.1.2.
   new  1f6e14f   gnu: libxkbfile: Update to 1.0.9.
   new  20ccacd   gnu: mkfontscale: Update to 1.1.2.
   new  398e108   gnu: randrproto: Update to 1.5.0.
   new  833d6bd   gnu: sessreg: Update to 1.1.0.
   new  837c4f1   gnu: setxkbmap: Update to 1.3.1.
   new  0247aeb   gnu: smproxy: Update to 1.0.6.
   new  80a2a8a   gnu: x11perf: Update to 1.6.0.
   new  7f39f95   gnu: xcmsdb: Update to 1.0.5.
   new  2af817f   gnu: xdpyinfo: Update to 1.3.2.
   new  b1ae5b1   gnu: xdriinfo: Update to 1.0.5.
   new  5249d0c   gnu: xev: Update to 1.2.2.
   new  1991cb1   gnu: xf86-input-evdev: Update to 2.10.1.
   new  4135c8b   gnu: xf86-input-libinput: Update to 0.16.0.
   new  00d8b05   gnu: xf86-input-keyboard: Update to 1.8.1.
   new  28969cd   gnu: xf86-input-synaptics: Update to 1.8.3.
   new  0716fcc   gnu: xf86-input-void: Update to 1.4.1.
   new  fede95e   gnu: xf86-video-ati: Update to 7.6.1.
   new  b3f2a75   gnu: xf86-video-cirrus: Update to 1.5.3.
   new  7f833ce   gnu: xf86-video-geode: Update to 2.11.18.
   new  faef708   gnu: xf86-video-intel: Update to git snapshot e41040f.
   new  fc7b84e   gnu: xf86-video-mach64: Update to 6.9.5.
   new  9facbec   gnu: xf86-video-mga: Update to 1.9.100.
   new  4f63dc8   gnu: xf86-video-neomagic: Update to 1.2.9.
   new  0e5dddc   gnu: xf86-video-nouveau: Update to 1.0.12.
   new  92e0c85   gnu: xf86-video-r128: Update to 6.10.1.
   new  a7e77e3   gnu: xf86-video-savage: Update to 2.3.8.
   new  6ad50c7   gnu: xf86-video-siliconmotion: Update to 1.7.8.
   new  42df8a9   gnu: xf86-video-sis: Update to 0.10.8.
   new  1813408   gnu: xf86-video-tdfx: Update to 1.4.6.
   new  8574735   gnu: xf86-video-trident: Update to 1.3.7.
   new  32eaff2   gnu: xf86-video-vesa: Update to 2.3.4.
   new  1353793   gnu: xf86-video-vmware: Update to 13.1.0.
   new  12bddb1   gnu: xgamma: Update to 1.0.6.
   new  3beef7e   gnu: xhost: Update to 1.0.7.
   new  a224573   gnu: xinput: Update to 1.6.2.
   new  c203d79   gnu: xkbevd: Update to 1.1.4.
   new  d363fee   gnu: xkeyboard-config: Update to 2.17.
   new  eb1116f   gnu: xlsatoms: Update to 1.1.2.
   new  e260dea   gnu: xmodmap: Update to 1.0.9.
   new  313cbf6   gnu: xvinfo: Update to 1.1.3.
   new  bffa1b7   gnu: libxp: Update to 1.0.3.
   new  0394c66   gnu: libxrender: Update to 0.9.9.
   new  2e4b1df   gnu: xproto: Update to 7.0.28.
   new  f562c73   gnu: libxi: Update to 1.7.6.
   new  7d8fe49   gnu: libxrandr: Update to 1.5.0.
   new  d4f166e   gnu: libxvmc: Update to 1.0.9.
   new  fe9c9e8   gnu: libxxf86vm: Update to 1.1.4.
   new  e346032   gnu: xorg-server: Update to 1.18.1.
   new  fe2eb1e   gnu: libx11: Update to 1.6.3.
   new  e539e4f   gnu: libxt: Update to 1.1.5.
   new  fe317b7   gnu: libxaw: Update to 1.0.13.
   new  b58c3fe   gnu: services: Start X with -configdir.

The 64 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.




02/64: gnu: mesa: Update to 11.0.9.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 40908dfb7bbe13e9fabb424f059f4207390b32f1
Author: Andy Wingo 
Date:   Thu Feb 18 20:52:58 2016 +0100

gnu: mesa: Update to 11.0.9.

* gnu/packages/gl.scm (mesa): Update to 11.0.9.
---
 gnu/packages/gl.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 33312ba..907e3bf 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -192,7 +192,7 @@ also known as DXTn or DXTC) for Mesa.")
 (define-public mesa
   (package
 (name "mesa")
-(version "11.0.3")
+(version "11.0.9")
 (source
   (origin
 (method url-fetch)
@@ -200,7 +200,7 @@ also known as DXTn or DXTC) for Mesa.")
 version "/mesa-" version ".tar.xz"))
 (sha256
  (base32
-  "1mikw0biw0wxq0fn3cp18bm6kjrkd66fy84774yc5b91rvp94adb"
+  "009b3nq8ly5nzy9cxi9cxf4qasrhggjz0v0q87rwq5kaqvqjy9m1"
 (build-system gnu-build-system)
 (propagated-inputs
   `(("glproto" ,glproto)



03/64: gnu: libwacom: Propagate glib input.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 1921a38c3a9047395cecd83b9ded6ba5c38feee8
Author: Andy Wingo 
Date:   Thu Feb 18 20:58:18 2016 +0100

gnu: libwacom: Propagate glib input.

* gnu/packages/xdisorg.scm (libwacom): Propagate glib input.
---
 gnu/packages/xdisorg.scm |   16 +---
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 5ca203e..84d1ded 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -626,19 +626,21 @@ Escape key when Left Control is pressed and released on 
its own.")
 (native-inputs
  `(("pkg-config" ,pkg-config)))
 (inputs
- `(("glib" ,glib)
-   ("gtk+" ,gtk+)
+ `(("gtk+" ,gtk+)
("libgudev" ,libgudev)
("eudev" ,eudev)
("libxml2" ,libxml2)))
+(propagated-inputs
+ ;; libwacom includes header files that include GLib, and libinput uses
+ ;; those header files.
+ `(("glib" ,glib)))
 (home-page "http://linuxwacom.sourceforge.net/";)
 (synopsis "Helper library for Wacom tablet settings")
 (description
- "Libwacom is a library to help implement Wacom tablet settings.  It
-is intended to be used by client-programs that need model identification.  It
-is already being used by the gnome-settings-daemon and the GNOME 3.4 Control
-Center Wacom tablet applet.  In the future, the xf86-input-wacom driver may
-use it as well.")
+ "Libwacom is a library to help implement Wacom tablet settings.  It is
+intended to be used by client-programs that need model identification.  It is
+already being used by the gnome-settings-daemon and the GNOME Control Center
+Wacom tablet applet.")
 (license license:x11)))
 
 (define-public xf86-input-wacom



04/64: gnu: libinput: Update to 1.1.902.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 42efedd6ee805e2b32262417d5ab814534e4fc43
Author: Andy Wingo 
Date:   Thu Feb 18 20:54:11 2016 +0100

gnu: libinput: Update to 1.1.902.

* gnu/packages/freedesktop.scm (libinput): Update to 1.1.902.
---
 gnu/packages/freedesktop.scm |7 ---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index e87b4a3..860772e 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -79,14 +79,14 @@ freedesktop.org project.")
 (define-public libinput
   (package
 (name "libinput")
-(version "0.21.0")
+(version "1.1.902")
 (source (origin
   (method url-fetch)
   (uri (string-append "http://freedesktop.org/software/libinput/";
   name "-" version ".tar.xz"))
   (sha256
(base32
-"0l7mhdr50g11hxg2pz8ihsgzbm0810syj05d3555rzhda6g7mkkw"
+"19wa5yizc3nfq3gibyqb3ygdvcs7v7bz1m5ifv0f4va3igxc3nk3"
 (build-system gnu-build-system)
 (native-inputs
  `(("pkg-config" ,pkg-config)))
@@ -94,7 +94,8 @@ freedesktop.org project.")
  `(("libudev" ,eudev))) ; required by libinput.pc
 (inputs
  `(("libevdev" ,libevdev)
-   ("mtdev" ,mtdev)))
+   ("mtdev" ,mtdev)
+   ("libwacom" ,libwacom)))
 (home-page "http://www.freedesktop.org/wiki/Software/libinput/";)
 (synopsis "Input devices handling library")
 (description



05/64: gnu: bdftopcf: Update to 1.0.5.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 1d8eccd38db6189c8cf0f948cad4c306c8603b8e
Author: Andy Wingo 
Date:   Thu Feb 18 20:59:12 2016 +0100

gnu: bdftopcf: Update to 1.0.5.

* gnu/packages/xorg.scm (bdftopcf): Update to 1.0.5.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 82a5d99..389cb70 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -132,7 +132,7 @@ autotools system.")
 (define-public bdftopcf
   (package
 (name "bdftopcf")
-(version "1.0.4")
+(version "1.0.5")
 (source
   (origin
 (method url-fetch)
@@ -142,7 +142,7 @@ autotools system.")
".tar.bz2"))
 (sha256
   (base32
-"1617zmgnx50n7vxlqyj84fl7vnk813jjqmi6jpigyz1xp9br1xga"
+"09i03sk878cmx2i40lkpsysn7zqcvlczb30j7x3lryb11jz4gx1q"
 (build-system gnu-build-system)
 (inputs
   `(("libxfont" ,libxfont)))



06/64: gnu: font-util: Update to 1.3.1.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit f78c840402898eae65671749c42f395f4fd1073a
Author: Andy Wingo 
Date:   Thu Feb 18 20:59:44 2016 +0100

gnu: font-util: Update to 1.3.1.

* gnu/packages/xorg.scm (font-util): Update to 1.3.1.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 389cb70..63beee6 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -817,7 +817,7 @@ For example: '6x10', '9x15bold', etc.")
 (define-public font-util
   (package
 (name "font-util")
-(version "1.3.0")
+(version "1.3.1")
 (source
   (origin
 (method url-fetch)
@@ -827,7 +827,7 @@ For example: '6x10', '9x15bold', etc.")
".tar.bz2"))
 (sha256
   (base32
-"15cijajwhjzpy3ydc817zz8x5z4gbkyv3fps687jbq544mbfbafz"
+"08drjb6cf84pf5ysghjpb4i7xkd2p86k3wl2a0jxs1jif6qbszma"
 (build-system gnu-build-system)
 (native-inputs `(("pkg-config" ,pkg-config)))
 (home-page "http://www.x.org/wiki/";)



07/64: gnu: iceauth: Update to 1.0.7.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 5509934127b3596be81443ff18c125eb1d9d8c82
Author: Andy Wingo 
Date:   Thu Feb 18 21:00:45 2016 +0100

gnu: iceauth: Update to 1.0.7.

* gnu/packages/xorg.scm (iceauth): Update to 1.0.7.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 63beee6..626a8f8 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -939,7 +939,7 @@ rendering commands to the X server.")
 (define-public iceauth
   (package
 (name "iceauth")
-(version "1.0.6")
+(version "1.0.7")
 (source
   (origin
 (method url-fetch)
@@ -949,7 +949,7 @@ rendering commands to the X server.")
".tar.bz2"))
 (sha256
   (base32
-"1x72y99dxf2fxnlyf0yrf9yzd8xzimxshy6l8mprwhrv6lvhi6dx"
+"02izdyzhwpgiyjd8brzilwvwnfr72ncjb6mzz3y1icwrxqnsy5hj"
 (build-system gnu-build-system)
 (inputs
   `(("libice" ,libice)))



08/64: gnu: kbproto: Update to 1.0.7.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit e723f9a96f0d8cdc5690303b1e78178fd9e758f2
Author: Andy Wingo 
Date:   Thu Feb 18 21:01:06 2016 +0100

gnu: kbproto: Update to 1.0.7.

* gnu/packages/xorg.scm (kbproto): Update to 1.0.7.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 626a8f8..b17bebe 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -992,7 +992,7 @@ devices management such as graphic tablets.")
 (define-public kbproto
   (package
 (name "kbproto")
-(version "1.0.6")
+(version "1.0.7")
 (source
   (origin
 (method url-fetch)
@@ -1002,7 +1002,7 @@ devices management such as graphic tablets.")
".tar.bz2"))
 (sha256
   (base32
-"0yal11hhpiisy3w8wmacsdzzzcnc3xwnswxz8k7zri40xc5aqz03"
+"0mxqj1pzhjpz9495vrjnpi10kv2n1s4vs7di0sh3yvipfq5j30pq"
 (build-system gnu-build-system)
 (native-inputs `(("pkg-config" ,pkg-config)))
 (home-page "http://www.x.org/wiki/";)



10/64: gnu: libfontenc: Update to 1.1.3.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit f2e393855051c911e5192e9bfe878b7b3f628aed
Author: Andy Wingo 
Date:   Thu Feb 18 21:02:08 2016 +0100

gnu: libfontenc: Update to 1.1.3.

* gnu/packages/xorg.scm (libfontenc): Update to 1.1.3.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 11e0632d..90af63f 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1074,7 +1074,7 @@ synchronization between the X server and direct-rendering 
clients.")
 (define-public libfontenc
   (package
 (name "libfontenc")
-(version "1.1.2")
+(version "1.1.3")
 (source
   (origin
 (method url-fetch)
@@ -1084,7 +1084,7 @@ synchronization between the X server and direct-rendering 
clients.")
".tar.bz2"))
 (sha256
   (base32
-"0qign0ivqk166l9yfd51gw9lbhgs718bcrmvc40yicjr6gnyz959"
+"08gxmrhgw97mv0pvkfmd46zzxrn6zdw4g27073zl55gwwqq8jn3h"
 (build-system gnu-build-system)
 (inputs
   `(("zlib" ,zlib)



11/64: gnu: libfs: Update to 1.0.7.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 44088f43b4473a8738906f0dcaef452d450bf925
Author: Andy Wingo 
Date:   Thu Feb 18 21:02:57 2016 +0100

gnu: libfs: Update to 1.0.7.

* gnu/packages/xorg.scm (libfs): Update to 1.0.7.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 90af63f..1e62e21 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1100,7 +1100,7 @@ synchronization between the X server and direct-rendering 
clients.")
 (define-public libfs
   (package
 (name "libfs")
-(version "1.0.6")
+(version "1.0.7")
 (source
   (origin
 (method url-fetch)
@@ -1110,7 +1110,7 @@ synchronization between the X server and direct-rendering 
clients.")
".tar.bz2"))
 (sha256
   (base32
-"1mxfsvj9m3pn8cdkcn4kg190zp665mf4pv0083g6xykvsgxzq1wh"
+"1wy4km3qwwajbyl8y9pka0zwizn7d9pfiyjgzba02x3a083lr79f"
 (build-system gnu-build-system)
 (inputs
   `(("xtrans" ,xtrans)



09/64: gnu: libxshmfence: Update to 1.2.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 8b735cf3d975a686cca837a02bf64362589fa68a
Author: Andy Wingo 
Date:   Thu Feb 18 21:01:24 2016 +0100

gnu: libxshmfence: Update to 1.2.

* gnu/packages/xorg.scm (libxshmfence): Update to 1.2.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index b17bebe..11e0632d 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1049,7 +1049,7 @@ of new capabilities and controls for text keyboards.")
 (define-public libxshmfence
   (package
 (name "libxshmfence")
-(version "1.1")
+(version "1.2")
 (source (origin
   (method url-fetch)
   (uri (string-append
@@ -1057,7 +1057,7 @@ of new capabilities and controls for text keyboards.")
 name "-" version ".tar.bz2"))
   (sha256
(base32
-"1gnfb1z8sbbdc3xpz1zmm94lv7yvfh4kvip9s5pj37ya4llxphnv"
+"032b0nlkdrpbimdld4gqvhqx53rzn8fawvf1ybhzn7lcswgjs6yj"
 (build-system gnu-build-system)
 (native-inputs `(("pkg-config" ,pkg-config)))
 (inputs `(("xproto" ,xproto)))



12/64: gnu: libxdmcp: Update to 1.1.2.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 526ee2900f99ced7765146c4e99e66d826f26b80
Author: Andy Wingo 
Date:   Thu Feb 18 21:03:54 2016 +0100

gnu: libxdmcp: Update to 1.1.2.

* gnu/packages/xorg.scm (libxdmcp): Update to 1.1.2.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 1e62e21..dd68c74 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1272,7 +1272,7 @@ with the Cygwin XWin server when running X11 in a 
rootless mode.")
 (define-public libxdmcp
   (package
 (name "libxdmcp")
-(version "1.1.1")
+(version "1.1.2")
 (source
   (origin
 (method url-fetch)
@@ -1282,7 +1282,7 @@ with the Cygwin XWin server when running X11 in a 
rootless mode.")
".tar.bz2"))
 (sha256
   (base32
-"13highx4xpgkiwykpcl7z2laslrjc4pzi4h617ny9p7r6116vkls"
+"1qp4yhxbfnpj34swa0fj635kkihdkwaiw7kf55cg5zqqg630kzl1"
 (build-system gnu-build-system)
 (inputs
   `(("xproto" ,xproto)))



13/64: gnu: libxkbfile: Update to 1.0.9.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 1f6e14fbdc19c4ae8986beb79a0f701ab0483e98
Author: Andy Wingo 
Date:   Thu Feb 18 21:05:03 2016 +0100

gnu: libxkbfile: Update to 1.0.9.

* gnu/packages/xorg.scm (libxkbfile): Update to 1.0.9.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index dd68c74..8d69d06 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1331,7 +1331,7 @@ configuration files.")
 (define-public libxkbfile
   (package
 (name "libxkbfile")
-(version "1.0.8")
+(version "1.0.9")
 (source
   (origin
 (method url-fetch)
@@ -1341,7 +1341,7 @@ configuration files.")
".tar.bz2"))
 (sha256
   (base32
-"0flg5arw6n3njagmsi4i4l0zl5bfx866a1h9ydc3bi1pqlclxaca"
+"0smimr14zvail7ar68n7spvpblpdnih3jxrva7cpa6cn602px0ai"
 (build-system gnu-build-system)
 (inputs
   `(("libx11" ,libx11)))



14/64: gnu: mkfontscale: Update to 1.1.2.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 20ccacdd99aa2f02991a595a4b1206c7b206111c
Author: Andy Wingo 
Date:   Thu Feb 18 21:05:29 2016 +0100

gnu: mkfontscale: Update to 1.1.2.

* gnu/packages/xorg.scm (mkfontscale): Update to 1.1.2.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 8d69d06..cdde190 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1557,7 +1557,7 @@ input from UTF-8 into the locale's encoding.")
 (define-public mkfontscale
   (package
 (name "mkfontscale")
-(version "1.1.1")
+(version "1.1.2")
 (source
   (origin
 (method url-fetch)
@@ -1567,7 +1567,7 @@ input from UTF-8 into the locale's encoding.")
".tar.bz2"))
 (sha256
   (base32
-"0cdpn1ii2iw1vg2ga4w62acrh78gzgf0vza4g8wx5kkp4jcifh14"
+"081z8lwh9c1gyrx3ad12whnpv3jpfbqsc366mswpfm48mwl54vcc"
 (build-system gnu-build-system)
 (inputs
   `(("zlib" ,zlib)



15/64: gnu: randrproto: Update to 1.5.0.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 398e108fe6ecba016ef0f6002a0a4378be77345e
Author: Andy Wingo 
Date:   Thu Feb 18 21:06:09 2016 +0100

gnu: randrproto: Update to 1.5.0.

* gnu/packages/xorg.scm (randrproto): Update to 1.5.0.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index cdde190..a46caef 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1636,7 +1636,7 @@ network-transparent printing system.")
 (define-public randrproto
   (package
 (name "randrproto")
-(version "1.4.0")
+(version "1.5.0")
 (source
   (origin
 (method url-fetch)
@@ -1646,7 +1646,7 @@ network-transparent printing system.")
".tar.bz2"))
 (sha256
   (base32
-"1kq9h93qdnniiivry8jmhlgwn9fbx9xp5r9cmzfihlx5cs62xi45"
+"0s4496z61y5q45q20gldwpf788b9nsa8hb13gnck1mrmarsc"
 (build-system gnu-build-system)
 (native-inputs `(("pkg-config" ,pkg-config)))
 (home-page "http://www.x.org/wiki/";)



16/64: gnu: sessreg: Update to 1.1.0.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 833d6bd4188ae723a1ac3a575bb101944fc2a030
Author: Andy Wingo 
Date:   Thu Feb 18 21:06:28 2016 +0100

gnu: sessreg: Update to 1.1.0.

* gnu/packages/xorg.scm (sessreg): Update to 1.1.0.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index a46caef..4f9ffe9 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1757,7 +1757,7 @@ features and to query screensaver info on specific 
windows.")
 (define-public sessreg
   (package
 (name "sessreg")
-(version "1.0.8")
+(version "1.1.0")
 (source
   (origin
 (method url-fetch)
@@ -1767,7 +1767,7 @@ features and to query screensaver info on specific 
windows.")
".tar.bz2"))
 (sha256
   (base32
-"1hy4wvgawajf4qw2k51fkcjzxw0drx60ydzpmqhj7k1g4z3cqahf"
+"0z013rskwmdadd8cdlxvh4asmgim61qijyzfbqmr1q1mg1jpf4am"
 (build-system gnu-build-system)
 (inputs
   `(("xproto" ,xproto)))



17/64: gnu: setxkbmap: Update to 1.3.1.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 837c4f154c459a35f3e0b39ad9dd19349d818592
Author: Andy Wingo 
Date:   Thu Feb 18 21:06:47 2016 +0100

gnu: setxkbmap: Update to 1.3.1.

* gnu/packages/xorg.scm (setxkbmap): Update to 1.3.1.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 4f9ffe9..ba56c51 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1785,7 +1785,7 @@ used with other display managers such as gdm or kdm.")
 (define-public setxkbmap
   (package
 (name "setxkbmap")
-(version "1.3.0")
+(version "1.3.1")
 (source
   (origin
 (method url-fetch)
@@ -1795,7 +1795,7 @@ used with other display managers such as gdm or kdm.")
".tar.bz2"))
 (sha256
   (base32
-"1inygpvlgc6vr5h9laxw9lnvafnccl3fy0g5n9ll28iq3yfmqc1x"
+"1qfk097vjysqb72pq89h0la3462kbb2dh1d11qzs2fr67ybb7pd9"
 (build-system gnu-build-system)
 (inputs
   `(("libxkbfile" ,libxkbfile)



18/64: gnu: smproxy: Update to 1.0.6.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 0247aeb28def1e5191fbd4f1dae810fc82e2b9fd
Author: Andy Wingo 
Date:   Thu Feb 18 21:07:02 2016 +0100

gnu: smproxy: Update to 1.0.6.

* gnu/packages/xorg.scm (smproxy): Update to 1.0.6.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index ba56c51..3a148e8 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1820,7 +1820,7 @@ listed on the command line.")
 (define-public smproxy
   (package
 (name "smproxy")
-(version "1.0.5")
+(version "1.0.6")
 (source
   (origin
 (method url-fetch)
@@ -1830,7 +1830,7 @@ listed on the command line.")
".tar.bz2"))
 (sha256
   (base32
-"02fn5wa1gs2jap6sr9j9yk6zsvz82j8l61pf74iyqwa99q4wnb67"
+"0rkjyzmsdqmlrkx8gy2j4q6iksk58hcc92xzdprkf8kml9ar3wbc"
 (build-system gnu-build-system)
 (inputs
   `(("libxt" ,libxt)



19/64: gnu: x11perf: Update to 1.6.0.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 80a2a8adb06b3a3ca9298ea4ed81f3446f00aa1f
Author: Andy Wingo 
Date:   Thu Feb 18 21:07:19 2016 +0100

gnu: x11perf: Update to 1.6.0.

* gnu/packages/xorg.scm (x11perf): Update to 1.6.0.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 3a148e8..845b284 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -1939,7 +1939,7 @@ server.")
 (define-public x11perf
   (package
 (name "x11perf")
-(version "1.5.4")
+(version "1.6.0")
 (source
   (origin
 (method url-fetch)
@@ -1949,7 +1949,7 @@ server.")
".tar.bz2"))
 (sha256
   (base32
-"111iwpxhnxjiq44w96zf0kszg5zpgv1g3ayx18v4nhdzl9bqivi4"
+"0lb716yfdb8f11h4cz93d1bapqdxf1xplsb21kbp4xclq7g9hw78"
 (build-system gnu-build-system)
 (inputs
   `(("libx11" ,libx11)



20/64: gnu: xcmsdb: Update to 1.0.5.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 7f39f95d2487e049cbd9283d9f47d716d3f05f51
Author: Andy Wingo 
Date:   Thu Feb 18 21:07:43 2016 +0100

gnu: xcmsdb: Update to 1.0.5.

* gnu/packages/xorg.scm (xcmsdb): Update to 1.0.5.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 845b284..27aac04 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2112,7 +2112,7 @@ to query the server for available resource IDs.")
 (define-public xcmsdb
   (package
 (name "xcmsdb")
-(version "1.0.4")
+(version "1.0.5")
 (source
   (origin
 (method url-fetch)
@@ -2122,7 +2122,7 @@ to query the server for available resource IDs.")
".tar.bz2"))
 (sha256
   (base32
-"03ms731l3kvaldq7ycbd30j6134b61i3gbll4b2gl022wyzbjq74"
+"1ik7gzlp2igz183x70883000ygp99r20x3aah6xhaslbpdhm6n75"
 (build-system gnu-build-system)
 (inputs
   `(("libx11" ,libx11)))



21/64: gnu: xdpyinfo: Update to 1.3.2.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 2af817f92d9019009aeb613bbd6960e0468d6395
Author: Andy Wingo 
Date:   Thu Feb 18 21:08:07 2016 +0100

gnu: xdpyinfo: Update to 1.3.2.

* gnu/packages/xorg.scm (xdpyinfo): Update to 1.3.2.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 27aac04..0178d8e 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2201,7 +2201,7 @@ X server: 'handhelds', 'redglass' and 'whiteglass'.")
 (define-public xdpyinfo
   (package
 (name "xdpyinfo")
-(version "1.3.1")
+(version "1.3.2")
 (source
   (origin
 (method url-fetch)
@@ -2211,7 +2211,7 @@ X server: 'handhelds', 'redglass' and 'whiteglass'.")
".tar.bz2"))
 (sha256
   (base32
-"154b29zlrq33lmni883jgwyrb2kx7z8h52jx1s3ys5x5d582iydf"
+"0ldgrj4w2fa8jng4b3f3biaj0wyn8zvya88pnk70d7k12pcqw8rh"
 (build-system gnu-build-system)
 (inputs
   `(("inputproto" ,inputproto)



22/64: gnu: xdriinfo: Update to 1.0.5.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit b1ae5b1fdb74f1aca7de5093c3dcfa7e1150619c
Author: Andy Wingo 
Date:   Thu Feb 18 21:08:24 2016 +0100

gnu: xdriinfo: Update to 1.0.5.

* gnu/packages/xorg.scm (xdriinfo): Update to 1.0.5.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 0178d8e..11b121b 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2240,7 +2240,7 @@ available.")
 (define-public xdriinfo
   (package
 (name "xdriinfo")
-(version "1.0.4")
+(version "1.0.5")
 (source
   (origin
 (method url-fetch)
@@ -2250,7 +2250,7 @@ available.")
".tar.bz2"))
 (sha256
   (base32
-"076bjix941znyjmh3j5jjsnhp2gv2iq53d0ks29mvvv87cyy9iim"
+"0681d0y8liqakkpz7mmsf689jcxrvs5291r20qi78mc9xxk3gfjc"
 (build-system gnu-build-system)
 (inputs
   `(("mesa" ,mesa)



24/64: gnu: xf86-input-evdev: Update to 2.10.1.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 1991cb136516310d26191a7ffe9903da7857ff21
Author: Andy Wingo 
Date:   Thu Feb 18 21:09:25 2016 +0100

gnu: xf86-input-evdev: Update to 2.10.1.

* gnu/packages/xorg.scm (xf86-input-evdev): Update to 2.10.1.  Add mtdev
  input.
---
 gnu/packages/xorg.scm |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index dc3b8ec..55e97d5 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2355,7 +2355,7 @@ devices, thus making direct access unnecessary.")
 (define-public xf86-input-evdev
   (package
 (name "xf86-input-evdev")
-(version "2.8.4")
+(version "2.10.1")
 (source
   (origin
 (method url-fetch)
@@ -2365,11 +2365,12 @@ devices, thus making direct access unnecessary.")
".tar.bz2"))
 (sha256
   (base32
-"030haki1h0m85h91c91812gdnk6znfamw5kpr010zxwwbsgxxyl5"
+"05z05n39v8s2b0hwhcjb1bca7j8gc62bv9jxnibawwmjym3jp75g"
 (build-system gnu-build-system)
 (inputs
   `(("udev" ,eudev)
 ("libevdev" ,libevdev)
+("mtdev" ,mtdev)
 ("xorg-server" ,xorg-server)))
 (native-inputs `(("pkg-config" ,pkg-config)))
 (arguments



25/64: gnu: xf86-input-libinput: Update to 0.16.0.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 4135c8b707557eb6d70d973c2e6d8f2c5c640763
Author: Andy Wingo 
Date:   Thu Feb 18 21:09:53 2016 +0100

gnu: xf86-input-libinput: Update to 0.16.0.

* gnu/packages/xorg.scm (xf86-input-libinput): Update to 0.16.0.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 55e97d5..1a175d0 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2389,7 +2389,7 @@ including most mice, keyboards, tablets and 
touchscreens.")
 (define-public xf86-input-libinput
   (package
 (name "xf86-input-libinput")
-(version "0.8.0")
+(version "0.16.0")
 (source (origin
   (method url-fetch)
   (uri (string-append
@@ -2397,7 +2397,7 @@ including most mice, keyboards, tablets and 
touchscreens.")
 name "-" version ".tar.bz2"))
   (sha256
(base32
-"0fm4vrkw7azipbnwvc2l18g65z77pllsznaajd8q3zpg9ycb0li1"
+"0jbgnxsbr3g4g9vkspcc6pqy7av59zx5bb78vkvaqy8yx4qybbgx"
 (build-system gnu-build-system)
 (arguments
  '(#:configure-flags



26/64: gnu: xf86-input-keyboard: Update to 1.8.1.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 00d8b051fa7c5d5fecf37eb30832bd31bea87f9c
Author: Andy Wingo 
Date:   Thu Feb 18 21:10:12 2016 +0100

gnu: xf86-input-keyboard: Update to 1.8.1.

* gnu/packages/xorg.scm (xf86-input-keyboard): Update to 1.8.1.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 1a175d0..cabf130 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2449,7 +2449,7 @@ It is used to cotrol the pointer with a joystick device.")
 (define-public xf86-input-keyboard
   (package
 (name "xf86-input-keyboard")
-(version "1.8.0")
+(version "1.8.1")
 (source
   (origin
 (method url-fetch)
@@ -2459,7 +2459,7 @@ It is used to cotrol the pointer with a joystick device.")
".tar.bz2"))
 (sha256
   (base32
-"0nyb61w30z32djrllgr2s1i13di3vsl6hg4pqjhxdal71971ria1"
+"04d27kwqq03fc26an6051hs3i0bff8albhnngzyd59wxpwwzzj0s"
 (build-system gnu-build-system)
 (inputs `(("xorg-server" ,xorg-server)))
 (native-inputs `(("pkg-config" ,pkg-config)))



28/64: gnu: xf86-input-void: Update to 1.4.1.

2016-02-18 Thread Andy Wingo
wingo pushed a commit to branch wip-xorg-server-1.18
in repository guix.

commit 0716fcc71b4257111c045cf3b06b92ba3c18c916
Author: Andy Wingo 
Date:   Thu Feb 18 21:10:53 2016 +0100

gnu: xf86-input-void: Update to 1.4.1.

* gnu/packages/xorg.scm (xf86-input-void): Update to 1.4.1.
---
 gnu/packages/xorg.scm |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index b88100f..88f4300 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2541,7 +2541,7 @@ as USB mice.")
 (define-public xf86-input-void
   (package
 (name "xf86-input-void")
-(version "1.4.0")
+(version "1.4.1")
 (source
   (origin
 (method url-fetch)
@@ -2551,7 +2551,7 @@ as USB mice.")
".tar.bz2"))
 (sha256
   (base32
-"01bmk324fq48wydvy1qrnxbw6qz0fjd0i80g0n4cqr1c4mjmif9a"
+"171k8b8s42s3w73l7ln9jqwk88w4l7r1km2blx1vy898c854yvpr"
 (build-system gnu-build-system)
 (inputs `(("xorg-server" ,xorg-server)))
 (native-inputs `(("pkg-config" ,pkg-config)))



  1   2   3   4   >