gnu: gnome-session: Update to 46.0.

* gnu/packages/gnome.scm (gnome-session): Update to 46.0.
[arguments]: Change to list of G-Expressions.
<#:configure-flags>: Move above #:phases.
Drop “-Delogind=true”, “-Dsystemd=false”, “-Dsystemd_session=disable”, and
“-Dsystemd_journal=false”.
Add “-Dsystemduserunitdir=$output/share/systemd”.
* gnu/packages/patches/gnome-session-support-elogind.patch: Adjust accordingly.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
Liliana Marie Prikler 2024-09-08 17:01:06 +02:00
parent c1accee481
commit 4332ea9012
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87
2 changed files with 34 additions and 85 deletions

View file

@ -7785,7 +7785,7 @@ such as gzip tarballs.")
(define-public gnome-session
(package
(name "gnome-session")
(version "44.0")
(version "46.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -7794,23 +7794,22 @@ such as gzip tarballs.")
(patches (search-patches "gnome-session-support-elogind.patch"))
(sha256
(base32
"1ipjvcjabifqgmrz65m3vwmhk99nbm8jcxcikyg5w4r6cnljky6c"))))
"0m4sgfzpkrhpy9bpmjiig3h8sypsmdl25zlil7hw82q9yr565qf6"))))
(arguments
`(#:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-gnome-session
(lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
;; Make sure 'gnome-session' finds the 'gsettings' program.
(wrap-program (search-input-file outputs "bin/gnome-session")
`("PATH" ":" prefix
(,(dirname (search-input-file (or native-inputs inputs)
"bin/gdbus"))))))))
#:configure-flags
'("-Delogind=true"
"-Dsystemd=false"
"-Dsystemd_session=disable"
"-Dsystemd_journal=false")))
(list
#:glib-or-gtk? #t
#:configure-flags
#~(list (string-append "-Dsystemduserunitdir="
#$output "/share/systemd"))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'wrap-gnome-session
(lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
;; Make sure 'gnome-session' finds the 'gsettings' program.
(wrap-program (search-input-file outputs "bin/gnome-session")
`("PATH" ":" prefix
(,(dirname (search-input-file (or native-inputs inputs)
"bin/gdbus"))))))))))
(build-system meson-build-system)
(native-inputs
(list docbook-xml-4.1.2

View file

@ -1,73 +1,23 @@
This patch, borrowed from Gentoo, allows configuring gnome-sesssion with
elogind support.
https://gitweb.gentoo.org/repo/gentoo.git/plain/gnome-base/gnome-session/files/gnome-session-3.38.0-meson-Support-elogind.patch?id=5f7fe88af5f888aff58fa0c069c3fe07973c7cd2
https://gitweb.gentoo.org/repo/gentoo.git/plain/gnome-base/gnome-session/files/gnome-session-46.0-meson-Support-elogind.patch?id=47aae21c1beeef930aa7e2125d93e52bf237d2b9
From 4454f2a63394b69fba2c900151165ad8b5742f31 Mon Sep 17 00:00:00 2001
From: Mart Raudsepp <leio@gentoo.org>
Date: Sun, 15 Mar 2020 14:34:39 +0200
Subject: [PATCH] meson: Support elogind
---
meson.build | 12 +++++++++---
meson_options.txt | 1 +
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index ef5132c6..7f68aaae 100644
--- a/meson.build
+++ b/meson.build
@@ -124,8 +124,10 @@ enable_systemd = get_option('systemd')
enable_systemd_session = get_option('systemd_session') != 'disable'
use_systemd_session = get_option('systemd_session') == 'default'
enable_systemd_journal = get_option('systemd_journal')
+enable_elogind = get_option('elogind')
enable_consolekit = get_option('consolekit')
-if enable_systemd or enable_consolekit
+assert(not (enable_systemd and enable_elogind), 'Can not support systemd and elogind at once')
+if enable_systemd or enable_elogind or enable_consolekit
session_bin_deps += dependency('gio-unix-2.0', version: glib_req_version)
# Check for systemd
@@ -152,6 +154,10 @@ if enable_systemd or enable_consolekit
endif
session_tracking = 'systemd'
+ elif enable_elogind
+ libelogind_dep = dependency('libelogind', version: '>= 239.4')
+ session_bin_deps += libelogind_dep
+ session_tracking = 'elogind'
endif
# Check for ConsoleKit
@@ -161,7 +167,7 @@ if enable_systemd or enable_consolekit
session_bin_deps += dbus_glib_dep
- if enable_systemd
+ if enable_systemd or enable_elogind
session_tracking += ' (with fallback to ConsoleKit)'
else
session_tracking = 'ConsoleKit'
@@ -171,7 +177,7 @@ endif
if enable_systemd_session
assert(enable_systemd, 'Systemd support must be enabled when using systemd session management')
--- a/meson.build 2024-07-29 16:43:01.812864903 +0200
+++ b/meson.build 2024-07-29 16:54:16.654741387 +0200
@@ -113,8 +113,13 @@
pkgconfig_define: ['prefix', session_prefix])
endif
-config_h.set('HAVE_SYSTEMD', enable_systemd)
+config_h.set('HAVE_SYSTEMD', enable_systemd or enable_elogind)
config_h.set('ENABLE_SYSTEMD_SESSION', enable_systemd_session)
config_h.set('ENABLE_SYSTEMD_JOURNAL', enable_systemd_journal)
config_h.set('HAVE_CONSOLEKIT', enable_consolekit)
diff --git a/meson_options.txt b/meson_options.txt
index 4c05dc6e..512d1528 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,5 @@
option('deprecation_flags', type: 'boolean', value: false, description: 'use *_DISABLE_DEPRECATED flags')
+option('elogind', type: 'boolean', value: true, description: 'Use elogind')
option('session_selector', type: 'boolean', value: false, description: 'enable building a custom session selector dialog')
option('systemd', type: 'boolean', value: true, description: 'Use systemd')
option('systemd_session', type: 'combo', choices: ['disable', 'enable', 'default'], value: 'default', description: 'Whether to include systemd session support and use it by default')
--
2.26.2
-libsystemd_dep = dependency('libsystemd', version: '>= 209', required: true)
-session_bin_deps += libsystemd_dep
+libsystemd_dep = dependency('libsystemd', version: '>= 209', required: false)
+if libsystemd_dep.found()
+ session_bin_deps += libsystemd_dep
+else
+ elogind_dep = dependency('libelogind', version: '>=209', required: true)
+ session_bin_deps += elogind_dep
+endif
configure_file(
output: 'config.h',