summaryrefslogtreecommitdiff
path: root/gnu/packages/freedesktop.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/freedesktop.scm')
-rw-r--r--gnu/packages/freedesktop.scm73
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