commit:     d641dc2f7e8e4431278e3d3e03227727961713b7
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 23 11:42:14 2018 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Sep 23 11:42:28 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d641dc2f

sys-apps/accountsservice: Fix switch user (#664228 by Alexander Tsoy)

Package-Manager: Portage-2.3.49, Repoman-2.3.10

 .../accountsservice-0.6.50-r1.ebuild               | 61 ++++++++++++++++++++++
 .../accountsservice-0.6.50-loaded-state.patch      | 36 +++++++++++++
 2 files changed, 97 insertions(+)

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 00000000000..3036d2bed67
--- /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 00000000000..901704bc601
--- /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 <rstr...@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
+

Reply via email to