commit: 1884b78144b57878b7e7497e6f7c62d5b4562b6a Author: Mart Raudsepp <leio <AT> gentoo <DOT> org> AuthorDate: Tue Mar 19 09:53:29 2019 +0000 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org> CommitDate: Tue Mar 19 09:53:50 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1884b781
gnome-base/gnome-session: add elogind support Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org> .../files/3.30.1-elogind-support.patch | 67 ++++++++++++++++++++++ ....30.1.ebuild => gnome-session-3.30.1-r1.ebuild} | 15 ++++- gnome-base/gnome-session/metadata.xml | 1 + 3 files changed, 80 insertions(+), 3 deletions(-) diff --git a/gnome-base/gnome-session/files/3.30.1-elogind-support.patch b/gnome-base/gnome-session/files/3.30.1-elogind-support.patch new file mode 100644 index 00000000000..4f1c5dab9dd --- /dev/null +++ b/gnome-base/gnome-session/files/3.30.1-elogind-support.patch @@ -0,0 +1,67 @@ +From 92072c73ab74ebe0654ac5bd4f9fd2182181ee9d Mon Sep 17 00:00:00 2001 +From: Mart Raudsepp <l...@gentoo.org> +Date: Tue, 19 Mar 2019 11:00:21 +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 afc97457..7c32e3b9 100644 +--- a/meson.build ++++ b/meson.build +@@ -121,8 +121,10 @@ session_tracking = 'null backend' + + enable_systemd = get_option('systemd') + 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 +@@ -145,6 +147,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 +@@ -154,14 +160,14 @@ 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' + endif + endif + endif +-config_h.set('HAVE_SYSTEMD', enable_systemd) ++config_h.set('HAVE_SYSTEMD', enable_systemd or enable_elogind) + 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 05174fec..cd85eae8 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_journal', type: 'boolean', value:'true', description: 'Send log to systemd-journal') +-- +2.17.0 + diff --git a/gnome-base/gnome-session/gnome-session-3.30.1.ebuild b/gnome-base/gnome-session/gnome-session-3.30.1-r1.ebuild similarity index 87% rename from gnome-base/gnome-session/gnome-session-3.30.1.ebuild rename to gnome-base/gnome-session/gnome-session-3.30.1-r1.ebuild index 8674fec66da..f62cbf2858f 100644 --- a/gnome-base/gnome-session/gnome-session-3.30.1.ebuild +++ b/gnome-base/gnome-session/gnome-session-3.30.1-r1.ebuild @@ -10,7 +10,10 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-session" LICENSE="GPL-2+" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x86-solaris" -IUSE="consolekit doc systemd" +IUSE="consolekit doc elogind systemd" +# There is a null backend available, thus ?? not ^^ +# consolekit can be enabled alone, or together with a logind provider; in latter case CK is used as fallback +REQUIRED_USE="?? ( elogind systemd )" COMMON_DEPEND=" >=dev-libs/glib-2.46.0:2 @@ -25,6 +28,7 @@ COMMON_DEPEND=" x11-libs/libXcomposite systemd? ( >=sys-apps/systemd-183:0= ) + elogind? ( >=sys-auth/elogind-239.4 ) consolekit? ( >=dev-libs/dbus-glib-0.76 ) " @@ -57,6 +61,10 @@ DEPEND="${COMMON_DEPEND} app-text/docbook-xml-dtd:4.1.2 ) " +PATCHES=( + "${FILESDIR}"/${PV}-elogind-support.patch +) + src_prepare() { xdg_src_prepare # Install USE=doc in $PF if enabled @@ -66,6 +74,7 @@ src_prepare() { src_configure() { local emesonargs=( -Ddeprecation_flags=false + $(meson_use elogind) -Dsession_selector=true # gnome-custom-session $(meson_use systemd) $(meson_use systemd systemd_journal) @@ -108,8 +117,8 @@ pkg_postinst() { ewarn "make sure that the commands in the xinitrc.d scripts are run." fi - if ! use systemd && ! use consolekit; then - ewarn "You are building without systemd and/or consolekit support." + if ! use systemd && ! use elogind && ! use consolekit; then + ewarn "You are building without systemd, elogind and/or consolekit support." ewarn "gnome-session won't be able to correctly track and manage your session." fi } diff --git a/gnome-base/gnome-session/metadata.xml b/gnome-base/gnome-session/metadata.xml index 506e4f9e5c5..0a5d0e69d17 100644 --- a/gnome-base/gnome-session/metadata.xml +++ b/gnome-base/gnome-session/metadata.xml @@ -7,5 +7,6 @@ </maintainer> <use> <flag name="consolekit">Support <pkg>sys-auth/consolekit</pkg> for session tracking</flag> + <flag name="elogind">Support <pkg>sys-auth/elogind</pkg> for session tracking</flag> </use> </pkgmetadata>