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;
+ }
+