diff options
Diffstat (limited to 'gnu/packages/freedesktop.scm')
-rw-r--r-- | gnu/packages/freedesktop.scm | 73 |
1 files changed, 53 insertions, 20 deletions
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index a304c15334..84fa104038 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -204,14 +204,14 @@ the freedesktop.org XDG Base Directory specification.") (define-public elogind (package (name "elogind") - (version "219.14") + (version "232.4") (source (origin (method url-fetch) - (uri (string-append "https://wingolog.org/pub/" name "/" - name "-" version ".tar.xz")) + (uri (string-append "https://github.com/elogind/elogind/" + "archive/v" version ".tar.gz")) (sha256 (base32 - "1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx")) + "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931")) (modules '((guix build utils))) (snippet '(begin @@ -222,25 +222,58 @@ the freedesktop.org XDG Base Directory specification.") (("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=" + `(#:tests? #f ;FIXME: "make check" in the "po" directory fails. + #:configure-flags + (list (string-append "--with-udevrulesdir=" + (assoc-ref %outputs "out") + "/lib/udev/rules.d") + + ;; Let elogind be its own cgroup controller, rather than relying + ;; on systemd or OpenRC. By default, 'configure' makes an + ;; incorrect guess. + "--with-cgroup-controller=elogind" + + (string-append "--with-rootprefix=" + (assoc-ref %outputs "out")) + (string-append "--with-rootlibexecdir=" (assoc-ref %outputs "out") - "/lib/udev/rules.d")) + "/libexec/elogind") + ;; These are needed to ensure that lto linking works. + "RANLIB=gcc-ranlib" + "AR=gcc-ar" + "NM=gcc-nm") #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent") - #:phases (modify-phases %standard-phases - (add-before 'build 'fix-service-file - (lambda* (#:key outputs #:allow-other-keys) - ;; Fix the file name of the 'elogind' binary in the D-Bus - ;; '.service' file. - (substitute* "src/login/org.freedesktop.login1.service" - (("^Exec=.*") - (string-append "Exec=" (assoc-ref %outputs "out") - "/libexec/elogind/elogind\n")))))))) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'autogen + (lambda _ + (and (zero? (system* "intltoolize" "--force" "--automake")) + (zero? (system* "autoreconf" "-vif"))))) + (add-before 'build 'fix-service-file + (lambda* (#:key outputs #:allow-other-keys) + ;; Fix the file name of the 'elogind' binary in the D-Bus + ;; '.service' file. + (substitute* "src/login/org.freedesktop.login1.service" + (("^Exec=.*") + (string-append "Exec=" (assoc-ref %outputs "out") + "/libexec/elogind/elogind\n"))))) + (add-after 'install 'add-libcap-to-search-path + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Add a missing '-L' for libcap in libelogind.la. See + ;; <https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00084.html>. + (let ((libcap (assoc-ref inputs "libcap")) + (out (assoc-ref outputs "out"))) + (substitute* (string-append out "/lib/libelogind.la") + (("-lcap") + (string-append "-L" libcap "/lib -lcap"))) + #t)))))) (native-inputs - `(("intltool" ,intltool) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("intltool" ,intltool) ("gettext" ,gettext-minimal) + ("python" ,python) ("docbook-xsl" ,docbook-xsl) ("docbook-xml" ,docbook-xml) ("xsltproc" ,libxslt) @@ -260,7 +293,7 @@ the freedesktop.org XDG Base Directory specification.") ("dbus" ,dbus) ("eudev" ,eudev) ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes - (home-page "https://github.com/wingo/elogind") + (home-page "https://github.com/elogind/elogind") (synopsis "User, seat, and session management service") (description "Elogind is the systemd project's \"logind\" service, extracted out as a separate project. Elogind integrates with PAM to provide |