diff --git a/accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch b/accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch new file mode 100644 index 0000000..de571c5 --- /dev/null +++ b/accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch @@ -0,0 +1,35 @@ +From c7fa612023a163e8b2352e1170c6df3fceb19b27 Mon Sep 17 00:00:00 2001 +From: Ray Strode +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 diff --git a/accountsservice.changes b/accountsservice.changes index 03fecb2..4996d6f 100644 --- a/accountsservice.changes +++ b/accountsservice.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Jul 20 02:51:49 UTC 2018 - qkzhu@suse.com + +- Add accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch: + 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. + (boo#1100041 fdo#107298) + ------------------------------------------------------------------- Tue Jul 17 01:41:41 UTC 2018 - xwang@suse.com diff --git a/accountsservice.spec b/accountsservice.spec index b994d35..b60a09a 100644 --- a/accountsservice.spec +++ b/accountsservice.spec @@ -34,6 +34,8 @@ Patch1: accountsservice-filter-suse-accounts.patch Patch2: accountsservice-missing-users-on-gdm-login.patch # PATCH-FIX-UPSTREAM accountsservice-lib-treat-session-type-wayland-as-graphical-session.patch boo#1095918 fdo#106855 xwang@suse.com -- Treat session type wayland as graphical mode Patch3: accountsservice-lib-treat-session-type-wayland-as-graphical-session.patch +# PATCH-FIX-UPSTREAM accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch boo#1100041 fdo#107298 -- lib: don't set loaded state until seat is fetched +Patch4: accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch ## SLE-only patches start at 1000 # PATCH-FEATURE-SLE as-fate318433-prevent-same-account-multi-logins.patch fate#318433 cxiong@suse.com -- prevent multiple simultaneous login. Patch1000: as-fate318433-prevent-same-account-multi-logins.patch @@ -104,6 +106,7 @@ querying and manipulating user account information. %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 # Sle-only patches start at 1000 %if !0%{?is_opensuse} %patch1000 -p1