diff --git a/.files b/.files index c515835..7b336a3 100644 Binary files a/.files and b/.files differ diff --git a/.rev b/.rev index f86571f..bbe6075 100644 --- a/.rev +++ b/.rev @@ -1110,4 +1110,12 @@ By now, it's required for sle-15, so synchronized the updated specfile and chang dimstar_suse Revert to 0.6.65 - https://bugzilla.opensuse.org/show_bug.cgi?id=1197610 + + 4f79edda24c8ecf1f0ee50f11499deb9 + 22.08.8 + + dimstar_suse + Scripted push from GNOME:Factory + 984690 + diff --git a/.servicemark b/.servicemark deleted file mode 100644 index 28b7eb4..0000000 --- a/.servicemark +++ /dev/null @@ -1 +0,0 @@ -fd26b405e857161d19745e909d8a1e93 diff --git a/ac9b14f1c1bbca413987d0bbfeaad05804107e9a.patch b/ac9b14f1c1bbca413987d0bbfeaad05804107e9a.patch deleted file mode 100644 index ce74862..0000000 --- a/ac9b14f1c1bbca413987d0bbfeaad05804107e9a.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ac9b14f1c1bbca413987d0bbfeaad05804107e9a Mon Sep 17 00:00:00 2001 -From: Luca Boccassi -Date: Sun, 31 Oct 2021 12:29:14 +0000 -Subject: [PATCH] Fix build with meson 0.60 - -Positional parameters to merge_file() were never allowed and always -ignored, so just drop it. -See: https://github.com/mesonbuild/meson/issues/9441 - -Fixes #97 ---- - data/meson.build | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/data/meson.build b/data/meson.build -index 70edf89..9e80299 100644 ---- a/data/meson.build -+++ b/data/meson.build -@@ -33,7 +33,6 @@ configure_file( - policy = act_namespace.to_lower() + '.policy' - - i18n.merge_file( -- policy, - input: policy + '.in', - output: policy, - po_dir: po_dir, --- -GitLab - diff --git a/accountsservice-0.6.55.tar.xz b/accountsservice-0.6.55.tar.xz deleted file mode 120000 index fda42a5..0000000 --- a/accountsservice-0.6.55.tar.xz +++ /dev/null @@ -1 +0,0 @@ -/ipfs/bafkreih7fmsbtj7anpm4wm277y4ry5ajwsna6ajqxcil2vdjfi4ym2m4tm \ No newline at end of file diff --git a/accountsservice-22.08.8.tar.xz b/accountsservice-22.08.8.tar.xz new file mode 120000 index 0000000..a32c8c4 --- /dev/null +++ b/accountsservice-22.08.8.tar.xz @@ -0,0 +1 @@ +/ipfs/bafkreieqtgl2o2iz7z64cofjuaoou4f5miwvveznxsp3cmaqceychj5dse \ No newline at end of file diff --git a/accountsservice-filter-suse-accounts.patch b/accountsservice-filter-suse-accounts.patch index 95cf988..b81c42a 100644 --- a/accountsservice-filter-suse-accounts.patch +++ b/accountsservice-filter-suse-accounts.patch @@ -1,13 +1,12 @@ -Index: accountsservice-0.6.37/src/user-classify.c -=================================================================== ---- accountsservice-0.6.37.orig/src/user-classify.c -+++ accountsservice-0.6.37/src/user-classify.c -@@ -51,7 +51,13 @@ static const char *default_excludes[] = - "man", +diff -Nur accountsservice-22.08.8/src/user-classify.c new/src/user-classify.c +--- accountsservice-22.08.8/src/user-classify.c 2022-02-23 16:27:48.000000000 +0100 ++++ new/src/user-classify.c 2022-04-30 22:33:44.148344188 +0200 +@@ -52,7 +52,13 @@ "at", "gdm", -- "gnome-initial-setup" -+ "gnome-initial-setup", + "gnome-initial-setup", +- "git" ++ "git", + "beagleindex", + "fax", + "suse-ncc", diff --git a/accountsservice-fix-gdm-crash.patch b/accountsservice-fix-gdm-crash.patch deleted file mode 100644 index 617d0a5..0000000 --- a/accountsservice-fix-gdm-crash.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 323707648fdefd11502faf44c2aa41d9b9500078 Mon Sep 17 00:00:00 2001 -From: Iain Lane -Date: Tue, 28 Apr 2020 16:47:00 +0100 -Subject: [PATCH] act-user-manager: Watch for the daemon going away and coming - back - -And set is-loaded accordingly. This causes properties to be invalidated -on the client side and then get re-fetched when the daemon comes back. - -https://gitlab.freedesktop.org/accountsservice/accountsservice/issues/55 ---- - src/libaccountsservice/act-user-manager.c | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) - -diff --git a/src/libaccountsservice/act-user-manager.c b/src/libaccountsservice/act-user-manager.c -index 61a8719..a317507 100644 ---- a/src/libaccountsservice/act-user-manager.c -+++ b/src/libaccountsservice/act-user-manager.c -@@ -2298,6 +2298,23 @@ act_user_manager_queue_load (ActUserManager *manager) - } - } - -+static void -+on_name_owner_changed (GObject *object, -+ GParamSpec *pspec, -+ gpointer user_data) -+{ -+ ActUserManager *manager = ACT_USER_MANAGER (user_data); -+ GDBusProxy *accounts_proxy = G_DBUS_PROXY (object); -+ g_autofree gchar *owner = NULL; -+ -+ g_return_if_fail (ACT_IS_USER_MANAGER (manager)); -+ g_return_if_fail (accounts_proxy != NULL); -+ -+ owner = g_dbus_proxy_get_name_owner (accounts_proxy); -+ -+ set_is_loaded (manager, owner != NULL); -+} -+ - static gboolean - ensure_accounts_proxy (ActUserManager *manager) - { -@@ -2335,6 +2352,10 @@ ensure_accounts_proxy (ActUserManager *manager) - "user-deleted", - G_CALLBACK (on_user_removed_in_accounts_service), - manager); -+ g_signal_connect (priv->accounts_proxy, -+ "notify::g-name-owner", -+ G_CALLBACK (on_name_owner_changed), -+ manager); - - return TRUE; - } --- -GitLab - diff --git a/accountsservice-read-root-user-cache.patch b/accountsservice-read-root-user-cache.patch deleted file mode 100644 index 4f039a7..0000000 --- a/accountsservice-read-root-user-cache.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d8b779513474ece1f5ec2fc9b7c32afb73e32181 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Mon, 29 Apr 2019 10:14:12 -0400 -Subject: [PATCH] daemon: ensure cache files for system users are processed - -At the moment we skip cache files for system users. That -doesn't make much sense; if there's a cache file we should -be using it. - -This commit changes the code to read cache files, even for -system users, and so lets root have a non-default session. - -Closes: https://gitlab.freedesktop.org/accountsservice/accountsservice/issues/65 ---- - src/daemon.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: accountsservice-0.6.55/src/daemon.c -=================================================================== ---- accountsservice-0.6.55.orig/src/daemon.c 2019-05-30 00:12:49.993056439 +0200 -+++ accountsservice-0.6.55/src/daemon.c 2019-05-30 00:12:50.289059484 +0200 -@@ -486,7 +486,7 @@ reload_users (Daemon *daemon) - load_entries (daemon, users, TRUE, entry_generator_requested_users); - - /* Now add/update users from other sources, possibly non-local */ -- load_entries (daemon, users, FALSE, entry_generator_cachedir); -+ load_entries (daemon, users, TRUE, entry_generator_cachedir); - - wtmp_helper_update_login_frequencies (users); - diff --git a/accountsservice-sysconfig.patch b/accountsservice-sysconfig.patch index acfc934..be45681 100644 --- a/accountsservice-sysconfig.patch +++ b/accountsservice-sysconfig.patch @@ -4,19 +4,19 @@ Date: Wed Jul 20 16:48:41 2011 +0200 Use autologin configuration from sysconfig (SUSE-ism) -Index: accountsservice-0.6.55/src/daemon.c -=================================================================== ---- accountsservice-0.6.55.orig/src/daemon.c 2019-04-23 17:16:09.000000000 +0200 -+++ accountsservice-0.6.55/src/daemon.c 2019-05-30 00:12:49.993056439 +0200 -@@ -47,6 +47,7 @@ - #include "wtmp-helper.h" - #include "daemon.h" + +diff -Nur accountsservice-22.08.8/src/daemon.c new/src/daemon.c +--- accountsservice-22.08.8/src/daemon.c 2022-02-23 16:27:48.000000000 +0100 ++++ new/src/daemon.c 2022-04-30 22:23:22.228315678 +0200 +@@ -50,6 +50,7 @@ #include "util.h" + #include "user.h" + #include "accounts-user-generated.h" +#include "gdm-sysconfig.h" #define PATH_PASSWD "/etc/passwd" #define PATH_SHADOW "/etc/shadow" -@@ -582,7 +583,7 @@ reload_autologin_timeout (Daemon *daemon +@@ -581,7 +582,7 @@ priv->autologin_id = 0; if (!load_autologin (daemon, &name, &enabled, &error)) { @@ -25,7 +25,7 @@ Index: accountsservice-0.6.55/src/daemon.c return FALSE; } -@@ -1474,6 +1475,43 @@ daemon_local_check_auth (Daemon +@@ -1508,6 +1509,43 @@ g_object_unref (subject); } @@ -69,7 +69,7 @@ Index: accountsservice-0.6.55/src/daemon.c gboolean load_autologin (Daemon *daemon, gchar **name, -@@ -1484,6 +1522,8 @@ load_autologin (Daemon *daemon, +@@ -1518,6 +1556,8 @@ GError *local_error = NULL; g_autofree gchar *string = NULL; @@ -78,19 +78,18 @@ Index: accountsservice-0.6.55/src/daemon.c keyfile = g_key_file_new (); if (!g_key_file_load_from_file (keyfile, PATH_GDM_CUSTOM, -@@ -1523,6 +1563,8 @@ save_autologin (Daemon *daemon, - g_autofree gchar *data = NULL; +@@ -1558,6 +1598,8 @@ gboolean result; + g_autoptr(GError) local_error = NULL; + return save_autologin_suse (daemon, name, enabled, error); + keyfile = g_key_file_new (); if (!g_key_file_load_from_file (keyfile, PATH_GDM_CUSTOM, -Index: accountsservice-0.6.55/src/gdm-sysconfig.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ accountsservice-0.6.55/src/gdm-sysconfig.c 2019-05-30 00:12:49.993056439 +0200 +diff -Nur accountsservice-22.08.8/src/gdm-sysconfig.c new/src/gdm-sysconfig.c +--- accountsservice-22.08.8/src/gdm-sysconfig.c 1970-01-01 01:00:00.000000000 +0100 ++++ new/src/gdm-sysconfig.c 2022-04-30 22:22:54.876314424 +0200 @@ -0,0 +1,484 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -576,10 +575,9 @@ Index: accountsservice-0.6.55/src/gdm-sysconfig.c + g_strfreev (lines); + return result; +} -Index: accountsservice-0.6.55/src/gdm-sysconfig.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ accountsservice-0.6.55/src/gdm-sysconfig.h 2019-05-30 00:12:49.993056439 +0200 +diff -Nur accountsservice-22.08.8/src/gdm-sysconfig.h new/src/gdm-sysconfig.h +--- accountsservice-22.08.8/src/gdm-sysconfig.h 1970-01-01 01:00:00.000000000 +0100 ++++ new/src/gdm-sysconfig.h 2022-04-30 22:22:54.876314424 +0200 @@ -0,0 +1,43 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -624,11 +622,10 @@ Index: accountsservice-0.6.55/src/gdm-sysconfig.h +G_END_DECLS + +#endif /* __GDM_SYSCONFIG_H */ -Index: accountsservice-0.6.55/src/meson.build -=================================================================== ---- accountsservice-0.6.55.orig/src/meson.build 2019-04-23 17:16:09.000000000 +0200 -+++ accountsservice-0.6.55/src/meson.build 2019-05-30 00:12:49.993056439 +0200 -@@ -46,6 +46,8 @@ libaccounts_generated_dep = declare_depe +diff -Nur accountsservice-22.08.8/src/meson.build new/src/meson.build +--- accountsservice-22.08.8/src/meson.build 2022-02-23 16:27:48.000000000 +0100 ++++ new/src/meson.build 2022-04-30 22:22:54.876314424 +0200 +@@ -48,6 +48,8 @@ ) sources = files( diff --git a/accountsservice-wtmp-io-improvements.patch b/accountsservice-wtmp-io-improvements.patch deleted file mode 100644 index 3db2c97..0000000 --- a/accountsservice-wtmp-io-improvements.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 64b11314ea71b5e22edf4d968347489c5d5acd01 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Thu, 9 May 2019 14:58:34 -0400 -Subject: [PATCH] data: don't send change updates for login-history - -The login-history property of user objects can be quite large. -If wtmp is changed frequently, that can lead to memory fragmentation -in clients. - -Furthermore, most clients never check login-history, so it's -wasted memory and wasted cpu. - -This commit disables change notification for that property. If -a client really needs to get updates, they can manually refresh -their cache when appropriate. ---- - data/org.freedesktop.Accounts.User.xml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/data/org.freedesktop.Accounts.User.xml b/data/org.freedesktop.Accounts.User.xml -index 8d3fe1c..3b839a3 100644 ---- a/data/org.freedesktop.Accounts.User.xml -+++ b/data/org.freedesktop.Accounts.User.xml -@@ -812,6 +812,7 @@ - - - -+ - - - --- -2.16.4 - diff --git a/accountsservice.changes b/accountsservice.changes index 791934e..e2b09e5 100644 --- a/accountsservice.changes +++ b/accountsservice.changes @@ -1,4 +1,40 @@ ------------------------------------------------------------------- +Sat Apr 30 20:16:58 UTC 2022 - Ferdinand Thiessen + +- Update to version 22.08.8 + + Handle missing admin groups when changing account types + + Set PrivateTmp to false in the systemd service + + Add function to set user password expiration policy +- Update to version 22.04.62 + + Updated Swedish translation + + Updated Indonesian translation + + Updated German translation + + Updated slovak translation + + Update Ukrainian translation + + Updated Brazilian Portuguese translation + + act-user: Use stronger hashing methods in make_crypted() if available. + + act-user-manager: Watch for the daemon going away and coming back + + user-manager: Update users tables on username changes + + user: Translate property x-session property name to match the proxy one + + Check GDBusMessage for INTERACTIVE_AUTHORIZATION flag + + daemon: Fix error check in save_autologin() + + Never delete the root filesystem when removing users + + Remove user heuristics + + user-classify: Add git to username blacklist + + daemon: ensure cache files for system users are processed + + daemon: Don't try to add admin users to non existing groups + + Move D-Bus conf file to $(datadir)/dbus-1/system.d +- Rebased patches: + + accountsservice-sysconfig.patch + + accountsservice-filter-suse-accounts.patch + + as-fate318433-prevent-same-account-multi-logins.patch +- Drop upstream fixed patches: + + ac9b14f1c1bbca413987d0bbfeaad05804107e9a.patch + + accountsservice-fix-gdm-crash.patch + + accountsservice-read-root-user-cache.patch + + accountsservice-wtmp-io-improvements.patch + +------------------------------------------------------------------- Tue Feb 1 09:20:24 UTC 2022 - Bjørn Lie - Add ac9b14f1c1bbca413987d0bbfeaad05804107e9a.patch: Fix build diff --git a/accountsservice.spec b/accountsservice.spec index f131039..281ada9 100644 --- a/accountsservice.spec +++ b/accountsservice.spec @@ -18,7 +18,7 @@ #!BuildIgnore: rpmlint-mini Name: accountsservice -Version: 0.6.55 +Version: 22.08.8 Release: 0 Summary: D-Bus Service to Manipulate User Account Information License: GPL-3.0-or-later @@ -31,16 +31,8 @@ Source0: https://www.freedesktop.org/software/accountsservice/%{name}-%{v Patch0: accountsservice-sysconfig.patch # PATCH-FIX-OPENSUSE accountsservice-filter-suse-accounts.patch vuntz@opensuse.org -- Filter out some system users that are specific to openSUSE Patch1: accountsservice-filter-suse-accounts.patch -# PATCH-FIX-UPSTREAM accountsservice-read-root-user-cache.patch bsc#1114292 glfo#accountsservice/accountsservice#65 xwang@suse.com-- read root user cache file WAS PATCH-FIX-UPSTREAM -Patch2: accountsservice-read-root-user-cache.patch -# PATCH-FIX-UPSTREAM accountsservice-wtmp-io-improvements.patch boo#1139487 fezhang@suse.com -- Backports that improve wtmp io performance. -Patch3: accountsservice-wtmp-io-improvements.patch -# PATCH-FIX-UPSTREAM accountsservice-fix-gdm-crash.patch glfo#accountsservice/accountsservice#55 antoine.belvire@opensuse.org -- Prevent gdm crash upon service restart when autologin is enabled -Patch4: accountsservice-fix-gdm-crash.patch # PATCH-FIX-OPENSUSE harden_accounts-daemon.service.patch jsegitz@suse.com -- For details please see https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort -Patch5: harden_accounts-daemon.service.patch -# PATCH-FIX-UPSTREAM ac9b14f1c1bbca413987d0bbfeaad05804107e9a.patch -- Fix build with meson 0.61.0 -Patch6: https://gitlab.freedesktop.org/accountsservice/accountsservice/-/commit/ac9b14f1c1bbca413987d0bbfeaad05804107e9a.patch +Patch2: harden_accounts-daemon.service.patch ## SLE and Leap 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. @@ -49,10 +41,11 @@ Patch1000: as-fate318433-prevent-same-account-multi-logins.patch BuildRequires: gtk-doc BuildRequires: meson BuildRequires: pkgconfig +BuildRequires: vala BuildRequires: pkgconfig(dbus-1) -BuildRequires: pkgconfig(gio-2.0) >= 2.37.3 +BuildRequires: pkgconfig(gio-2.0) >= 2.63.5 BuildRequires: pkgconfig(gio-unix-2.0) -BuildRequires: pkgconfig(glib-2.0) >= 2.44 +BuildRequires: pkgconfig(glib-2.0) >= 2.63.5 BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(libsystemd) >= 186 BuildRequires: pkgconfig(polkit-gobject-1) @@ -99,6 +92,18 @@ Requires: typelib-1_0-AccountsService-1_0 = %{version} The accountsservice server provides a set of D-Bus interfaces for querying and manipulating user account information. +%package vala +Summary: Vala bindings for accountsservice +Group: Development/Libraries/C and C++ +Requires: libaccountsservice0 = %{version} +Requires: typelib-1_0-AccountsService-1_0 = %{version} + +%description vala +The accountsservice server provides a set of D-Bus interfaces for +querying and manipulating user account information. + +This package contains the Vala bindings for accountservice. + %lang_package %prep @@ -106,10 +111,6 @@ querying and manipulating user account information. %patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 # SLE and Leap patches start at 1000 %if 0%{?sle_version} @@ -118,7 +119,6 @@ querying and manipulating user account information. %build %meson \ - -Dsystemd=true \ -Dintrospection=true \ -Dgtk_doc=true \ %{nil} @@ -145,14 +145,17 @@ querying and manipulating user account information. %files %license COPYING -%doc NEWS README.md +%doc README.md %{_unitdir}/accounts-daemon.service -%{_sysconfdir}/dbus-1/system.d/org.freedesktop.Accounts.conf %{_libexecdir}/accounts-daemon +%{_datadir}/dbus-1/system.d/org.freedesktop.Accounts.conf %{_datadir}/dbus-1/interfaces/org.freedesktop.Accounts.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.Accounts.User.xml %{_datadir}/dbus-1/system-services/org.freedesktop.Accounts.service %{_datadir}/polkit-1/actions/org.freedesktop.accounts.policy +# User templates +%dir %{_datadir}/accountsservice +%{_datadir}/accountsservice/user-templates # Directories where the server stores user data %dir %{_localstatedir}/lib/AccountsService %dir %{_localstatedir}/lib/AccountsService/users @@ -172,6 +175,11 @@ querying and manipulating user account information. %{_includedir}/accountsservice-1.0/ %{_datadir}/gir-1.0/AccountsService-1.0.gir +%files vala +%dir %{_datadir}/vala/vapi +%{_datadir}/vala/vapi/accountsservice.deps +%{_datadir}/vala/vapi/accountsservice.vapi + %files lang -f accounts-service.lang %changelog diff --git a/as-fate318433-prevent-same-account-multi-logins.patch b/as-fate318433-prevent-same-account-multi-logins.patch index 756213f..2c12a1e 100644 --- a/as-fate318433-prevent-same-account-multi-logins.patch +++ b/as-fate318433-prevent-same-account-multi-logins.patch @@ -1,36 +1,7 @@ -Index: b/src/libaccountsservice/act-user-manager.c -=================================================================== ---- a/src/libaccountsservice/act-user-manager.c 2019-09-11 17:40:53.726949739 +0800 -+++ b/src/libaccountsservice/act-user-manager.c 2019-09-11 17:41:00.547007450 +0800 -@@ -1752,12 +1752,22 @@ maybe_add_new_session (ActUserManagerNew - if (new_session->x11_display == NULL) { - g_debug ("AcUserManager: (mostly) ignoring session '%s' since it's not graphical", - new_session->id); -- is_ours = FALSE; -+ /* SLE: ignore non-graphical session completely */ -+ /* see `act_user_is_logged_in_anywhere` */ -+ unload_new_session (new_session); -+ return; - } else if (session_is_login_window (manager, new_session->id)) { - new_session->state = ACT_USER_MANAGER_NEW_SESSION_STATE_LOADED; - unload_new_session (new_session); - return; - } else if (!session_is_on_our_seat (manager, new_session->id)) { -+ /** -+ * NOTE: if `manager->priv->seat.id` or `new_session->id` is -+ * either NULL, it's not on our seat: this is reasonable, as -+ * non-seat session is not switchable and thus no need to be -+ * ours. However, this nondiscrimination for all non-seated -+ * sessions is possibly a source for bugs. -+ */ - is_ours = FALSE; - } - -Index: b/src/libaccountsservice/act-user.c -=================================================================== ---- a/src/libaccountsservice/act-user.c 2019-09-11 17:40:53.726949739 +0800 -+++ b/src/libaccountsservice/act-user.c 2019-09-11 17:41:00.547007450 +0800 -@@ -868,6 +868,8 @@ act_user_is_logged_in (ActUser *user) +diff -Nur accountsservice-22.08.8/src/libaccountsservice/act-user.c new/src/libaccountsservice/act-user.c +--- accountsservice-22.08.8/src/libaccountsservice/act-user.c 2022-02-23 16:27:48.000000000 +0100 ++++ new/src/libaccountsservice/act-user.c 2022-04-30 22:34:42.160346848 +0200 +@@ -878,6 +878,8 @@ * (Currently, this function is only implemented for systemd-logind. * For ConsoleKit, it is equivalent to act_user_is_logged_in.) * @@ -39,7 +10,7 @@ Index: b/src/libaccountsservice/act-user.c * Returns: %TRUE or %FALSE */ gboolean -@@ -896,6 +898,24 @@ act_user_get_saved (ActUser *user) +@@ -906,6 +908,24 @@ } /** @@ -64,11 +35,10 @@ Index: b/src/libaccountsservice/act-user.c * act_user_get_locked: * @user: a #ActUser * -Index: b/src/libaccountsservice/act-user.h -=================================================================== ---- a/src/libaccountsservice/act-user.h 2019-09-11 17:40:53.726949739 +0800 -+++ b/src/libaccountsservice/act-user.h 2019-09-11 17:41:00.547007450 +0800 -@@ -67,6 +67,7 @@ guint act_user_get_num_sessions +diff -Nur accountsservice-22.08.8/src/libaccountsservice/act-user.h new/src/libaccountsservice/act-user.h +--- accountsservice-22.08.8/src/libaccountsservice/act-user.h 2022-02-23 16:27:48.000000000 +0100 ++++ new/src/libaccountsservice/act-user.h 2022-04-30 22:34:42.164346848 +0200 +@@ -61,6 +61,7 @@ guint act_user_get_num_sessions_anywhere (ActUser *user); gboolean act_user_is_logged_in (ActUser *user); gboolean act_user_is_logged_in_anywhere (ActUser *user); @@ -76,3 +46,30 @@ Index: b/src/libaccountsservice/act-user.h int act_user_get_login_frequency (ActUser *user); gint64 act_user_get_login_time (ActUser *user); const GVariant*act_user_get_login_history (ActUser *user); +diff -Nur accountsservice-22.08.8/src/libaccountsservice/act-user-manager.c new/src/libaccountsservice/act-user-manager.c +--- accountsservice-22.08.8/src/libaccountsservice/act-user-manager.c 2022-02-23 16:27:48.000000000 +0100 ++++ new/src/libaccountsservice/act-user-manager.c 2022-04-30 22:34:42.160346848 +0200 +@@ -1366,12 +1366,22 @@ + if (new_session->x11_display == NULL) { + g_debug ("AcUserManager: (mostly) ignoring session '%s' since it's not graphical", + new_session->id); +- is_ours = FALSE; ++ /* SLE: ignore non-graphical session completely */ ++ /* see `act_user_is_logged_in_anywhere` */ ++ unload_new_session (new_session); ++ return; + } else if (session_is_login_window (manager, new_session->id)) { + new_session->state = ACT_USER_MANAGER_NEW_SESSION_STATE_LOADED; + unload_new_session (new_session); + return; + } else if (!session_is_on_our_seat (manager, new_session->id)) { ++ /** ++ * NOTE: if `manager->priv->seat.id` or `new_session->id` is ++ * either NULL, it's not on our seat: this is reasonable, as ++ * non-seat session is not switchable and thus no need to be ++ * ours. However, this nondiscrimination for all non-seated ++ * sessions is possibly a source for bugs. ++ */ + is_ours = FALSE; + } +