09/09: PRELIMINARY: gnu: polkit: Work on making it functional in practice.
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.
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.
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.
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.
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
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)
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.
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
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
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)
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.
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.
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.
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
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.
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.
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)
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
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)
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.
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
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.
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)
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.
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.
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
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.
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.
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)
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.
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.
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
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.
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)
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.
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
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)
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.
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.
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.
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)
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.
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
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.
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
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.
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.
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)
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.
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
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.
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
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.
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.
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)
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)
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)
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
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
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)
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)
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.
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.
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)
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.
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)
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.
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)
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.
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)
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.
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
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.
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)))