From 1884b78144b57878b7e7497e6f7c62d5b4562b6a Mon Sep 17 00:00:00 2001 From: Mart Raudsepp Date: Tue, 19 Mar 2019 11:53:29 +0200 Subject: gnome-base/gnome-session: add elogind support Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Mart Raudsepp --- .../files/3.30.1-elogind-support.patch | 67 +++++++++++ .../gnome-session/gnome-session-3.30.1-r1.ebuild | 129 +++++++++++++++++++++ .../gnome-session/gnome-session-3.30.1.ebuild | 120 ------------------- gnome-base/gnome-session/metadata.xml | 1 + 4 files changed, 197 insertions(+), 120 deletions(-) create mode 100644 gnome-base/gnome-session/files/3.30.1-elogind-support.patch create mode 100644 gnome-base/gnome-session/gnome-session-3.30.1-r1.ebuild delete mode 100644 gnome-base/gnome-session/gnome-session-3.30.1.ebuild (limited to 'gnome-base') 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 000000000000..4f1c5dab9dda --- /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 +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-r1.ebuild b/gnome-base/gnome-session/gnome-session-3.30.1-r1.ebuild new file mode 100644 index 000000000000..f62cbf2858fd --- /dev/null +++ b/gnome-base/gnome-session/gnome-session-3.30.1-r1.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit gnome.org gnome2-utils meson xdg + +DESCRIPTION="Gnome session manager" +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 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 + >=x11-libs/gtk+-3.18.0:3 + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + >=gnome-base/gnome-desktop-3.18:3= + >=dev-libs/json-glib-0.10 + media-libs/mesa[egl,gles2] + media-libs/libepoxy + x11-libs/libXcomposite + + systemd? ( >=sys-apps/systemd-183:0= ) + elogind? ( >=sys-auth/elogind-239.4 ) + consolekit? ( >=dev-libs/dbus-glib-0.76 ) +" + +# Pure-runtime deps from the session files should *NOT* be added here +# Otherwise, things like gdm pull in gnome-shell. +# gnome-settings-daemon is assumed to be >=3.27.90, but this is about +# removed components, so no need to strictly require it (older just +# won't have those daemons loaded by gnome-session). +# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and +# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_* +# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below). +# sys-apps/dbus[X] is needed for session management. +# Our 90-xcursor-theme-gnome reads a setting from gsettings-desktop-schemas. +RDEPEND="${COMMON_DEPEND} + >=gnome-base/gnome-settings-daemon-3.23.2 + >=gnome-base/gsettings-desktop-schemas-0.1.7 + sys-apps/dbus[X] + consolekit? ( sys-auth/consolekit ) + + x11-misc/xdg-user-dirs + x11-misc/xdg-user-dirs-gtk +" +DEPEND="${COMMON_DEPEND} + dev-libs/libxslt + dev-util/gdbus-codegen + >=sys-devel/gettext-0.19.8 + x11-libs/xtrans + virtual/pkgconfig + doc? ( app-text/xmlto + 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 + sed -i -e "s:meson\.project_name(), 'dbus':'${PF}', 'dbus':" doc/dbus/meson.build || die +} + +src_configure() { + local emesonargs=( + -Ddeprecation_flags=false + $(meson_use elogind) + -Dsession_selector=true # gnome-custom-session + $(meson_use systemd) + $(meson_use systemd systemd_journal) + $(meson_use consolekit) + $(meson_use doc docbook) + -Dman=true + ) + meson_src_configure +} + +src_install() { + meson_src_install + + dodir /etc/X11/Sessions + exeinto /etc/X11/Sessions + doexe "${FILESDIR}/Gnome" + + insinto /usr/share/applications + newins "${FILESDIR}/defaults.list-r4" gnome-mimeapps.list + + dodir /etc/X11/xinit/xinitrc.d/ + exeinto /etc/X11/xinit/xinitrc.d/ + newexe "${FILESDIR}/15-xdg-data-gnome-r1" 15-xdg-data-gnome + + # This should be done here as discussed in bug #270852 + newexe "${FILESDIR}/10-user-dirs-update-gnome-r1" 10-user-dirs-update-gnome + + # Set XCURSOR_THEME from current dconf setting instead of installing + # default cursor symlink globally and affecting other DEs (bug #543488) + # https://bugzilla.gnome.org/show_bug.cgi?id=711703 + newexe "${FILESDIR}/90-xcursor-theme-gnome" 90-xcursor-theme-gnome +} + +pkg_postinst() { + xdg_pkg_postinst + gnome2_schemas_update + + if ! has_version gnome-base/gdm && ! has_version x11-misc/sddm; then + ewarn "If you use a custom .xinitrc for your X session," + ewarn "make sure that the commands in the xinitrc.d scripts are run." + fi + + 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 +} + +pkg_postrm() { + xdg_pkg_postinst + gnome2_schemas_update +} diff --git a/gnome-base/gnome-session/gnome-session-3.30.1.ebuild b/gnome-base/gnome-session/gnome-session-3.30.1.ebuild deleted file mode 100644 index 8674fec66da3..000000000000 --- a/gnome-base/gnome-session/gnome-session-3.30.1.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -inherit gnome.org gnome2-utils meson xdg - -DESCRIPTION="Gnome session manager" -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" - -COMMON_DEPEND=" - >=dev-libs/glib-2.46.0:2 - >=x11-libs/gtk+-3.18.0:3 - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - >=gnome-base/gnome-desktop-3.18:3= - >=dev-libs/json-glib-0.10 - media-libs/mesa[egl,gles2] - media-libs/libepoxy - x11-libs/libXcomposite - - systemd? ( >=sys-apps/systemd-183:0= ) - consolekit? ( >=dev-libs/dbus-glib-0.76 ) -" - -# Pure-runtime deps from the session files should *NOT* be added here -# Otherwise, things like gdm pull in gnome-shell. -# gnome-settings-daemon is assumed to be >=3.27.90, but this is about -# removed components, so no need to strictly require it (older just -# won't have those daemons loaded by gnome-session). -# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and -# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_* -# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below). -# sys-apps/dbus[X] is needed for session management. -# Our 90-xcursor-theme-gnome reads a setting from gsettings-desktop-schemas. -RDEPEND="${COMMON_DEPEND} - >=gnome-base/gnome-settings-daemon-3.23.2 - >=gnome-base/gsettings-desktop-schemas-0.1.7 - sys-apps/dbus[X] - consolekit? ( sys-auth/consolekit ) - - x11-misc/xdg-user-dirs - x11-misc/xdg-user-dirs-gtk -" -DEPEND="${COMMON_DEPEND} - dev-libs/libxslt - dev-util/gdbus-codegen - >=sys-devel/gettext-0.19.8 - x11-libs/xtrans - virtual/pkgconfig - doc? ( app-text/xmlto - app-text/docbook-xml-dtd:4.1.2 ) -" - -src_prepare() { - xdg_src_prepare - # Install USE=doc in $PF if enabled - sed -i -e "s:meson\.project_name(), 'dbus':'${PF}', 'dbus':" doc/dbus/meson.build || die -} - -src_configure() { - local emesonargs=( - -Ddeprecation_flags=false - -Dsession_selector=true # gnome-custom-session - $(meson_use systemd) - $(meson_use systemd systemd_journal) - $(meson_use consolekit) - $(meson_use doc docbook) - -Dman=true - ) - meson_src_configure -} - -src_install() { - meson_src_install - - dodir /etc/X11/Sessions - exeinto /etc/X11/Sessions - doexe "${FILESDIR}/Gnome" - - insinto /usr/share/applications - newins "${FILESDIR}/defaults.list-r4" gnome-mimeapps.list - - dodir /etc/X11/xinit/xinitrc.d/ - exeinto /etc/X11/xinit/xinitrc.d/ - newexe "${FILESDIR}/15-xdg-data-gnome-r1" 15-xdg-data-gnome - - # This should be done here as discussed in bug #270852 - newexe "${FILESDIR}/10-user-dirs-update-gnome-r1" 10-user-dirs-update-gnome - - # Set XCURSOR_THEME from current dconf setting instead of installing - # default cursor symlink globally and affecting other DEs (bug #543488) - # https://bugzilla.gnome.org/show_bug.cgi?id=711703 - newexe "${FILESDIR}/90-xcursor-theme-gnome" 90-xcursor-theme-gnome -} - -pkg_postinst() { - xdg_pkg_postinst - gnome2_schemas_update - - if ! has_version gnome-base/gdm && ! has_version x11-misc/sddm; then - ewarn "If you use a custom .xinitrc for your X session," - 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." - ewarn "gnome-session won't be able to correctly track and manage your session." - fi -} - -pkg_postrm() { - xdg_pkg_postinst - gnome2_schemas_update -} diff --git a/gnome-base/gnome-session/metadata.xml b/gnome-base/gnome-session/metadata.xml index 506e4f9e5c55..0a5d0e69d176 100644 --- a/gnome-base/gnome-session/metadata.xml +++ b/gnome-base/gnome-session/metadata.xml @@ -7,5 +7,6 @@ Support sys-auth/consolekit for session tracking + Support sys-auth/elogind for session tracking -- cgit v1.2.3-18-g5258