summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillermo Joandet <gjoandet@gmail.com>2024-08-04 19:37:03 -0300
committerPacho Ramos <pacho@gentoo.org>2024-08-07 12:48:40 +0200
commitd10ec547b9c45bf708142de86ff9c9c357f5e50d (patch)
tree11ae863e660b49f91218027cacc98d8c32a349ac /gnome-base
parentnet-libs/glib-networking: Fix VariableOrderWrong warning (diff)
downloadgentoo-d10ec547b9c45bf708142de86ff9c9c357f5e50d.tar.gz
gentoo-d10ec547b9c45bf708142de86ff9c9c357f5e50d.tar.bz2
gentoo-d10ec547b9c45bf708142de86ff9c9c357f5e50d.zip
gnome-base/gnome-settings-daemon: Fix elogind support
Closes: https://bugs.gentoo.org/937244 Signed-off-by: Guillermo Joandet <gjoandet@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/37960 Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'gnome-base')
-rw-r--r--gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-46.0-add-elogind-support.patch98
-rw-r--r--gnome-base/gnome-settings-daemon/gnome-settings-daemon-46.0-r1.ebuild143
2 files changed, 241 insertions, 0 deletions
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 <naterussell83@gmail.com>
+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
+}