summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2018-09-23 13:42:14 +0200
committerPacho Ramos <pacho@gentoo.org>2018-09-23 13:42:28 +0200
commitd641dc2f7e8e4431278e3d3e03227727961713b7 (patch)
treeb71b28a741eb782be1cc8ee2c394f42dadb013fa /sys-apps/accountsservice
parentwww-client/firefox: add information about TERM to output (build.log) (diff)
downloadgentoo-d641dc2f7e8e4431278e3d3e03227727961713b7.tar.gz
gentoo-d641dc2f7e8e4431278e3d3e03227727961713b7.tar.bz2
gentoo-d641dc2f7e8e4431278e3d3e03227727961713b7.zip
sys-apps/accountsservice: Fix switch user (#664228 by Alexander Tsoy)
Package-Manager: Portage-2.3.49, Repoman-2.3.10
Diffstat (limited to 'sys-apps/accountsservice')
-rw-r--r--sys-apps/accountsservice/accountsservice-0.6.50-r1.ebuild61
-rw-r--r--sys-apps/accountsservice/files/accountsservice-0.6.50-loaded-state.patch36
2 files changed, 97 insertions, 0 deletions
diff --git a/sys-apps/accountsservice/accountsservice-0.6.50-r1.ebuild b/sys-apps/accountsservice/accountsservice-0.6.50-r1.ebuild
new file mode 100644
index 000000000000..3036d2bed673
--- /dev/null
+++ b/sys-apps/accountsservice/accountsservice-0.6.50-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_EAUTORECONF="yes"
+
+inherit gnome2 systemd
+
+DESCRIPTION="D-Bus interfaces for querying and manipulating user account information"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/AccountsService/"
+SRC_URI="https://www.freedesktop.org/software/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+IUSE="doc elogind +introspection selinux systemd"
+REQUIRED_USE="?? ( elogind systemd )"
+
+CDEPEND="
+ >=dev-libs/glib-2.44:2
+ sys-auth/polkit
+ elogind? ( >=sys-auth/elogind-229.4 )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.12:= )
+ systemd? ( >=sys-apps/systemd-186:0= )
+ !systemd? ( !elogind? ( sys-auth/consolekit ) )
+"
+DEPEND="${CDEPEND}
+ dev-libs/libxslt
+ dev-util/gdbus-codegen
+ >=dev-util/gtk-doc-am-1.15
+ >=dev-util/intltool-0.40
+ sys-devel/gettext
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-xml-dtd:4.1.2
+ app-text/xmlto )
+"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-accountsd )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.6.35-gentoo-system-users.patch
+
+ # lib: don't set loaded state until seat is fetched (from 'master')
+ "${FILESDIR}"/${P}-loaded-state.patch
+)
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-static \
+ --disable-more-warnings \
+ --localstatedir="${EPREFIX}"/var \
+ --enable-admin-group="wheel" \
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
+ $(use_enable doc docbook-docs) \
+ $(use_enable elogind) \
+ $(use_enable introspection) \
+ $(use_enable systemd)
+}
diff --git a/sys-apps/accountsservice/files/accountsservice-0.6.50-loaded-state.patch b/sys-apps/accountsservice/files/accountsservice-0.6.50-loaded-state.patch
new file mode 100644
index 000000000000..901704bc601f
--- /dev/null
+++ b/sys-apps/accountsservice/files/accountsservice-0.6.50-loaded-state.patch
@@ -0,0 +1,36 @@
+From c7fa612023a163e8b2352e1170c6df3fceb19b27 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Thu, 19 Jul 2018 13:14:09 -0400
+Subject: lib: don't set loaded state until seat is fetched
+
+At the moment we set is-loaded on the user-manager
+object as soon as we start fetching the seat, but
+we should waiting until the seat is fetched, so
+that can_switch() will return the correct value
+if the caller waited until the loaded signal
+to use it.
+
+This commit changes the >= to > which I believe
+was the original intention anyway.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=107298
+---
+ src/libaccountsservice/act-user-manager.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libaccountsservice/act-user-manager.c b/src/libaccountsservice/act-user-manager.c
+index 325421b..e7e26b1 100644
+--- a/src/libaccountsservice/act-user-manager.c
++++ b/src/libaccountsservice/act-user-manager.c
+@@ -2382,7 +2382,7 @@ maybe_set_is_loaded (ActUserManager *manager)
+ /* Don't set is_loaded yet unless the seat is already loaded enough
+ * or failed to load.
+ */
+- if (manager->priv->seat.state >= ACT_USER_MANAGER_SEAT_STATE_GET_ID) {
++ if (manager->priv->seat.state > ACT_USER_MANAGER_SEAT_STATE_GET_ID) {
+ g_debug ("ActUserManager: Seat loaded, so now setting loaded property");
+ } else if (manager->priv->seat.state == ACT_USER_MANAGER_SEAT_STATE_UNLOADED) {
+ g_debug ("ActUserManager: Seat wouldn't load, so giving up on it and setting loaded property");
+--
+cgit v1.1
+