Toggle diff (237 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 5091f93eb8..d3fd9ecfa5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1202,7 +1202,6 @@ dist_patch_DATA = \
%D%/packages/patches/elm-ghc9.2.patch \
%D%/packages/patches/elm-offline-package-registry.patch \
%D%/packages/patches/elm-reactor-static-files.patch \
- %D%/packages/patches/elogind-fix-rpath.patch \
%D%/packages/patches/emacs-all-the-icons-remove-duplicate-rs.patch \
%D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \
%D%/packages/patches/emacs-elpy-dup-test-name.patch \
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index c6f18e9949..380464801d 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -27,7 +27,7 @@
;;; Copyright © 2021 Robby Zambito <contact@robbyzambito.me>
;;; Copyright © 2021, 2022, 2023 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2021, 2022, 2024 John Kehayias <john.kehayias@protonmail.com>
-;;; Copyright © 2021-2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
@@ -823,7 +823,7 @@ (define-public libxdg-basedir
(define-public elogind
(package
(name "elogind")
- (version "252.9")
+ (version "255.17")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -832,8 +832,7 @@ (define-public elogind
(file-name (git-file-name name version))
(sha256
(base32
- "049cfv97975x700s7lx4p9i22nv6v7j046iwkspxba7kr5qq7akw"))
- (patches (search-patches "elogind-fix-rpath.patch"))))
+ "0cb6p559281dzh24is91v6d4v4kz45yhyizibi4sfql9nign865h"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -842,11 +841,8 @@ (define-public elogind
(libexec (string-append out "/libexec/elogind"))
(dbus-data (string-append out "/share/dbus-1"))
(dbuspolicy (string-append dbus-data "/system.d"))
- (dbussessionservice (string-append dbus-data "/services"))
(dbussystemservice (string-append dbus-data
"/system-services"))
- (dbusinterfaces (string-append dbus-data "/interfaces"))
-
#$@(if (not (target-riscv64?))
#~((kexec-tools #$(this-package-input "kexec-tools")))
#~())
@@ -860,13 +856,11 @@ (define-public elogind
(poweroff-path (string-append shepherd "/sbin/shutdown"))
(reboot-path (string-append shepherd "/sbin/reboot")))
(list
- (string-append "-Drootprefix=" out)
+ "-Dmode=release"
+ (string-append "-Dlibexecdir=" libexec)
(string-append "-Dsysconfdir=" sysconf)
- (string-append "-Drootlibexecdir=" libexec)
(string-append "-Ddbuspolicydir=" dbuspolicy)
- (string-append "-Ddbussessionservicedir=" dbussessionservice)
(string-append "-Ddbussystemservicedir=" dbussystemservice)
- (string-append "-Ddbus-interfaces-dir=" dbusinterfaces)
(string-append "-Dc_link_args=-Wl,-rpath=" libexec)
(string-append "-Dcpp_link_args=-Wl,-rpath=" libexec)
(string-append "-Dhalt-path=" halt-path)
@@ -877,7 +871,7 @@ (define-public elogind
(string-append "-Dreboot-path=" reboot-path)
(string-append "-Dnologin-path=" nologin-path)
"-Dcgroup-controller=elogind"
- "-Dman=true"
+ "-Dman=enabled"
;; Disable some tests.
"-Dslow-tests=false"
;; Adjust the default user shell to /bin/sh (otherwise it is set
@@ -885,6 +879,18 @@ (define-public elogind
"-Ddefault-user-shell=/bin/sh"))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'patch-tzdata
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (substitute* "src/basic/time-util.c"
+ (("/usr/share/zoneinfo")
+ (search-input-directory (or native-inputs inputs)
+ "share/zoneinfo")))))
+ (add-after 'unpack 'do-not-install-empty-/var/log/elogind-dir
+ (lambda _
+ ;; This is the elogind state directory, which is not writable in
+ ;; the build environment.
+ (substitute* "meson.build"
+ (("install_emptydir\\(elogindstatedir)") ""))))
(add-after 'unpack 'fix-pkttyagent-path
(lambda _
(substitute* "meson.build"
@@ -901,18 +907,46 @@ (define-public elogind
(("PKGSYSCONFDIR") "\"/etc/elogind\""))))
(add-after 'unpack 'adjust-tests
(lambda _
+ ;; A few tests expect /var/tmp to exists, but it doesn't in the
+ ;; container.
+ (substitute* '("src/test/test-xattr-util.c"
+ "src/test/test-copy.c"
+ "src/test/test-fs-util.c")
+ (("/var/tmp/")
+ "/tmp/"))
+ (substitute* "src/test/test-xattr-util.c"
+ ;; The xattr-util test depends on /usr; patch it to use /tmp
+ ;; instead.
+ (("fd, \"usr\", \"user.idontexist\"")
+ "fd, \"/tmp\", \"user.idontexist\""))
+ (substitute* '("src/test/test-chase.c"
+ "src/test/test-fd-util.c")
+ ;; Many checks use /usr, which doesn't exist in our
+ ;; environment.
+ (("/usr")
+ "/tmp")
+ (("\"usr\"")
+ "\"tmp\""))
(substitute* "src/test/meson.build"
- ((".*'test-cgroup.c'.*") "")) ;no cgroup in container
+ ;; Requires cgroup support.
+ ((".*'test-cgroup-util\\.c'.*") "")
+ ;; Requires privilege to create mount namespaces.
+ ((".*'test-mountpoint-util\\.c'.*") ""))
+ (substitute* "src/libelogind/meson.build"
+ ;; The bus-creds test fails due to requiring cgroups.
+ ((".*'sd-bus/test-bus-creds.c'.*") "")
+ ;; The login test fails due to 'sd_pid_get_slice' returning
+ ;; NULL.
+ ((".*'sd-login/test-login.c'.*") "")
+ ;; The sd-device test fails due to 'devname_from_devnum'
+ ;; returning NULL.
+ ((".*'sd-device/test-sd-device.c'.*") ""))
;; This test tries to copy some bytes from /usr/lib/os-release,
;; which does not exist in the build container. Choose something
;; more likely to be available.
(substitute* "src/test/test-copy.c"
(("/usr/lib/os-release")
- "/etc/passwd")
- ;; Skip the copy_holes test, which fails for unknown reasons
- ;; (see: https://github.com/elogind/elogind/issues/261).
- (("TEST_RET\\(copy_holes).*" all)
- (string-append all " return 77;\n")))
+ "/etc/passwd"))
;; Use a shebang that works in the build container.
(substitute* "src/test/test-exec-util.c"
(("#!/bin/sh")
@@ -948,11 +982,11 @@ (define-public elogind
docbook-xsl
gettext-minimal
gperf
- m4
pkg-config
python
python-jinja2
- libxslt))
+ libxslt
+ tzdata))
(inputs
(append
(if (not (target-riscv64?))
diff --git a/gnu/packages/patches/elogind-fix-rpath.patch b/gnu/packages/patches/elogind-fix-rpath.patch
deleted file mode 100644
index 2a76cc467f..0000000000
--- a/gnu/packages/patches/elogind-fix-rpath.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Retrieved from https://github.com/elogind/elogind/issues/258
-
-From: Mark Hindley <mark@hindley.org.uk>
-Date: Wed, 24 May 2023 10:39:41 +0100
-Subject: Fixup_executable_rpath
-
-./meson.build sets
-
- install_rpath : rootlibexecdir
-
-however src/shared/meson.build sets
-
-libshared = shared_library(
- [snip]
- install_dir : rootpkglibdir
- )
----
- meson.build | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 694a2fd..a575f69 100644
---- a/meson.build
-+++ b/meson.build
-@@ -2903,7 +2903,7 @@ executable('elogind',
- dependencies : [threads,
- libacl,
- libudev],
-- install_rpath : rootlibexecdir,
-+ install_rpath : rootpkglibdir,
- install : true,
- install_dir : rootlibexecdir)
-
-@@ -2913,7 +2913,7 @@ exe = executable('loginctl',
- link_with : [libshared],
- dependencies : [threads,
- libudev],
-- install_rpath : rootlibexecdir,
-+ install_rpath : rootpkglibdir,
- install : true,
- install_dir : rootbindir)
- public_programs += [exe]
-@@ -2923,7 +2923,7 @@ exe = executable('elogind-inhibit',
- include_directories : includes,
- link_with : [libshared],
- dependencies : [threads],
-- install_rpath : rootlibexecdir,
-+ install_rpath : rootpkglibdir,
- install : true,
- install_dir : rootbindir)
- public_programs += [exe]
-@@ -4283,7 +4283,7 @@ executable('elogind-uaccess-command',
- libshared],
- dependencies: [libacl,
- libudev],
-- install_rpath : rootlibexecdir,
-+ install_rpath : rootpkglibdir,
- install : true,
- install_dir : rootlibexecdir)
- #endif // 0
base-commit: a1074ecbcb147abe9ffbb1774f11be7704a41c8a
--
2.47.1