commit:     d10ec547b9c45bf708142de86ff9c9c357f5e50d
Author:     Guillermo Joandet <gjoandet <AT> gmail <DOT> com>
AuthorDate: Sun Aug  4 22:37:03 2024 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Wed Aug  7 10:48:40 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d10ec547

gnome-base/gnome-settings-daemon: Fix elogind support

Closes: https://bugs.gentoo.org/937244
Signed-off-by: Guillermo Joandet <gjoandet <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/37960
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 ...-settings-daemon-46.0-add-elogind-support.patch |  98 ++++++++++++++
 .../gnome-settings-daemon-46.0-r1.ebuild           | 143 +++++++++++++++++++++
 2 files changed, 241 insertions(+)

diff --git 
a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-46.0-add-elogind-support.patch
 
b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-46.0-add-elogind-support.patch
new file mode 100644
index 000000000000..6f6270234b9e
--- /dev/null
+++ 
b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-46.0-add-elogind-support.patch
@@ -0,0 +1,98 @@
+From 46f998d7308cb18832666bc34ee54b1d9c27739f Mon Sep 17 00:00:00 2001
+From: Nathaniel Russell <[email protected]>
+Date: Sat, 13 Jan 2024 00:29:49 +0000
+Subject: [PATCH] build: Add elogind support
+
+---
+ meson.build                           | 17 ++++++++++++-----
+ meson_options.txt                     |  2 +-
+ plugins/sharing/gsd-sharing-manager.c |  5 ++++-
+ plugins/sharing/meson.build           |  7 ++++++-
+ 4 files changed, 23 insertions(+), 8 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index deecd3f1e..e07fa841b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -111,13 +111,20 @@ x11_dep = dependency('x11')
+ xfixes_dep = dependency('xfixes', version: '>= 6.0')
+ 
+ enable_systemd = get_option('systemd')
+-systemd_dep = dependency('systemd', version: '>= 243', required: 
enable_systemd)
+-if systemd_dep.found()
+-  systemd_userunitdir = systemd_dep.get_variable(pkgconfig: 
'systemduserunitdir',
+-                                                 pkgconfig_define: ['prefix', 
gsd_prefix])
++enable_elogind = get_option('elogind')
++
++if enable_systemd and enable_elogind
++  error('Only systemd or elogind support should be activated')
++elif enable_systemd
++  systemd_dep = dependency('systemd', version: '>= 243', required: true)
++  libsystemd_dep = dependency('libsystemd', version: '>= 243', required: true)
++  systemd_userunitdir = 
systemd_dep.get_pkgconfig_variable('systemduserunitdir',
++                                                           define_variable: 
['prefix', gsd_prefix])
++elif enable_elogind
++  elogind_dep = dependency('libelogind', version: '>= 209', required: true)
+ endif
+-libsystemd_dep = dependency('libsystemd', version: '>= 243', required: 
enable_systemd)
+ 
++config_h.set10('HAVE_SYSTEMD_LIB', enable_systemd or enable_elogind)
+ 
+ m_dep = cc.find_library('m')
+ 
+diff --git a/meson_options.txt b/meson_options.txt
+index 1d913b4d2..5e2cccab6 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,6 +1,6 @@
+ option('udev_dir', type: 'string', value: '', description: 'Absolute path of 
the udev base directory')
+ option('systemd', type: 'boolean', value: true, description: 'Enable systemd 
integration')
+-
++option('elogind', type: 'boolean', value: false, description: 'Use elogind')
+ option('alsa', type: 'boolean', value: true, description: 'build with ALSA 
support (not optional on Linux platforms)')
+ option('gudev', type: 'boolean', value: true, description: 'build with gudev 
device support (not optional on Linux platforms)')
+ option('cups', type: 'boolean', value: true, description: 'build with CUPS 
support')
+diff --git a/plugins/sharing/gsd-sharing-manager.c 
b/plugins/sharing/gsd-sharing-manager.c
+index 2ab2cb054..c669e7bde 100644
+--- a/plugins/sharing/gsd-sharing-manager.c
++++ b/plugins/sharing/gsd-sharing-manager.c
+@@ -20,12 +20,15 @@
+ #include "config.h"
+ 
+ #include <locale.h>
+-#include <systemd/sd-login.h>
+ #include <glib.h>
+ #include <gio/gio.h>
+ #include <gio/gdesktopappinfo.h>
+ #include <glib/gstdio.h>
+ 
++#if HAVE_SYSTEMD_LIB
++#include <systemd/sd-login.h>
++#endif
++
+ #if HAVE_NETWORK_MANAGER
+ #include <NetworkManager.h>
+ #endif /* HAVE_NETWORK_MANAGER */
+diff --git a/plugins/sharing/meson.build b/plugins/sharing/meson.build
+index bda21608a..c65c4f9a5 100644
+--- a/plugins/sharing/meson.build
++++ b/plugins/sharing/meson.build
+@@ -6,9 +6,14 @@ sources = files(
+ deps = plugins_deps + [
+   gio_unix_dep,
+   libnotify_dep,
+-  libsystemd_dep
+ ]
+ 
++if enable_systemd
++  deps += libsystemd_dep
++elif enable_elogind
++  deps += elogind_dep
++endif
++
+ if enable_network_manager
+   deps += libnm_dep
+ endif
+-- 
+GitLab
+

diff --git 
a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-46.0-r1.ebuild 
b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-46.0-r1.ebuild
new file mode 100644
index 000000000000..91938d6297ed
--- /dev/null
+++ b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-46.0-r1.ebuild
@@ -0,0 +1,143 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit gnome.org gnome2-utils python-any-r1 meson udev virtualx xdg
+
+DESCRIPTION="Gnome Settings Daemon"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-settings-daemon";
+
+LICENSE="GPL-2+ LGPL-2+"
+SLOT="0"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc 
~x86 ~amd64-linux ~x86-linux"
+
+IUSE="+colord +cups debug elogind input_devices_wacom modemmanager 
networkmanager smartcard systemd test wayland"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="^^ ( elogind systemd )"
+
+COMMON_DEPEND="
+       >=sci-geosciences/geocode-glib-3.10:2
+       >=dev-libs/glib-2.70:2
+       >=gnome-base/gnome-desktop-3.37.1:3=
+       >=gnome-base/gsettings-desktop-schemas-46.0
+       >=x11-libs/gtk+-3.15.3:3[X,wayland?]
+       >=dev-libs/libgweather-4.2.0:4=
+       colord? ( >=x11-misc/colord-1.4.5:= )
+       media-libs/libcanberra[gtk3]
+       >=app-misc/geoclue-2.3.1:2.0
+       >=x11-libs/libnotify-0.7.3
+       >=media-libs/libpulse-16.1[glib]
+       >=sys-auth/polkit-0.114
+       >=sys-power/upower-0.99.12:=
+       x11-libs/libX11
+       >=x11-libs/libXfixes-6.0.0
+       dev-libs/libgudev:=
+       wayland? ( dev-libs/wayland )
+       input_devices_wacom? (
+               >=dev-libs/libwacom-0.7:=
+               >=x11-libs/pango-1.20.0
+               x11-libs/gdk-pixbuf:2
+       )
+       smartcard? ( app-crypt/gcr:4= )
+       cups? ( >=net-print/cups-1.4[dbus] )
+       modemmanager? (
+               >=app-crypt/gcr-3.90.0:4=
+               >=net-misc/modemmanager-1.0:=
+       )
+       networkmanager? ( >=net-misc/networkmanager-1.0 )
+       media-libs/alsa-lib
+       x11-libs/libXi
+       x11-libs/libXext
+       media-libs/fontconfig
+       elogind? ( >=sys-auth/elogind-209 )
+       systemd? ( >=sys-apps/systemd-243 )
+"
+DEPEND="${COMMON_DEPEND}
+       x11-base/xorg-proto
+"
+# logind needed for power and session management, bug #464944
+RDEPEND="${COMMON_DEPEND}
+       gnome-base/dconf
+"
+# rfkill requires linux/rfkill.h, thus linux-headers dep, not os-headers.
+# If this package wants to work on other kernels, we need to make rfkill 
conditional instead
+BDEPEND="
+       sys-kernel/linux-headers
+       dev-util/glib-utils
+       dev-util/gdbus-codegen
+       ${PYTHON_DEPS}
+       test? (
+               dev-util/umockdev
+               $(python_gen_any_dep '
+                       dev-python/pygobject:3[${PYTHON_USEDEP}]
+                       dev-python/python-dbusmock[${PYTHON_USEDEP}]
+               ')
+               gnome-base/gnome-session
+       )
+       >=sys-devel/gettext-0.19.8
+       virtual/pkgconfig
+"
+
+PATCHES=(
+       
"${FILESDIR}"/42.1-build-Make-wacom-optional-and-controllable-via-meson.patch
+       "${FILESDIR}"/${PN}-3.38.1-build-Allow-NM-optional-on-Linux.patch
+       # https://bugs.gentoo.org/937244 , is merged so it should not be needed 
since 46.1
+       "${FILESDIR}"/${P}-add-elogind-support.patch
+)
+
+python_check_deps() {
+       if use test; then
+               python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]" &&
+               python_has_version 
"dev-python/python-dbusmock[${PYTHON_USEDEP}]"
+       fi
+}
+
+pkg_setup() {
+       python-any-r1_pkg_setup
+}
+
+src_configure() {
+       local emesonargs=(
+               -Dudev_dir="$(get_udevdir)"
+               $(meson_use systemd)
+               $(meson_use elogind)
+               -Dalsa=true
+               -Dgudev=true
+               -Dgcr3=false
+               $(meson_use colord)
+               $(meson_use cups)
+               $(meson_use networkmanager network_manager)
+               -Drfkill=true
+               $(meson_use smartcard)
+               $(meson_use input_devices_wacom wacom)
+               $(meson_use wayland)
+               $(meson_use modemmanager wwan)
+       )
+       meson_src_configure
+}
+
+src_install() {
+       meson_src_install
+       # Don't auto-suspend by default on AC power
+       insinto /usr/share/glib-2.0/schemas
+       doins 
"${FILESDIR}"/org.gnome.settings-daemon.plugins.power.gschema.override
+}
+
+src_test() {
+       virtx meson_src_test
+}
+
+pkg_postinst() {
+       udev_reload
+       xdg_pkg_postinst
+       gnome2_schemas_update
+}
+
+pkg_postrm() {
+       udev_reload
+       xdg_pkg_postrm
+       gnome2_schemas_update
+}

Reply via email to