Hello community, here is the log from the commit of package accountsservice for openSUSE:Leap:15.2 checked in at 2020-01-30 14:48:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/accountsservice (Old) and /work/SRC/openSUSE:Leap:15.2/.accountsservice.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "accountsservice" Thu Jan 30 14:48:32 2020 rev:17 rq:751804 version:0.6.55 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/accountsservice/accountsservice.changes 2020-01-15 14:46:23.509251102 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.accountsservice.new.26092/accountsservice.changes 2020-01-30 14:49:07.994862025 +0100 @@ -5,0 +6 @@ +- Refresh as-fate318433-prevent-same-account-multi-logins.patch. @@ -8 +9 @@ -Wed May 8 01:46:01 UTC 2019 - xw...@suse.com +Wed May 29 21:28:30 UTC 2019 - Bjørn Lie <bjorn....@gmail.com> @@ -10,2 +11,16 @@ -- Update accountsservice-read-root-user-cache.patch: amended by - upstream developers and merged as commit d8b77951 +- Update to version 0.6.55: + + Memory leak fix. + + Improved heuristics for identifying user session. + + Export interfaces directory to pkgconfig. + + Lock down state directory from prying eyes to be more friendly to + accountsservice extensions that require privacy. + + Misc fixes. + + Updated translations. +- Drop accountsservice-upstream-fixes.patch: Fixed upstream. +- Refresh patches with refresh_patches osc service. + +------------------------------------------------------------------- +Wed May 8 01:25:32 UTC 2019 - xw...@suse.com + +- Update accountsservice-read-root-user-cache.patch. + upstream commit d8b77951 @@ -14,0 +30,45 @@ +Wed Apr 3 02:54:51 UTC 2019 - xw...@suse.com + +- Drop upstream fixed patches: + + accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch +- Update patches: + + accountsservice-read-root-user-cache.patch + + accountsservice-sysconfig.patch + +------------------------------------------------------------------- +Sun Mar 17 10:52:44 UTC 2019 - Jan Engelhardt <jeng...@inai.de> + +- Redo summaries without em dashes. +- Reduce %systemd_requires to %systemd_ordering: + %service_* can handle the absence. + +------------------------------------------------------------------- +Thu Feb 21 22:45:14 UTC 2019 - bjorn....@gmail.com + +- Update to version 0.6.54: + + Fix user state dirs. +- Changes from version 0.6.53: + + Fix introspection. +- Changes from version 0.6.52: + + Migrate to meson and gettext (instead of autogoo and intltool). + + Add code of conduct. + + Add new session and session type properties (to replace + XSession). + + Try to handle misbehaving logind a little better. + + Misc mixes and code modernization. + + Add new "Saved" property to say whether a cached user is stored + on disk. +- Add accountsservice-upstream-fixes.patch: Add upstream bug fixes + commits, fix build. +- Switch to meson build system, add meson BuildRequires and macros. +- Drop obsolete intltool, gnome-common, vala, xmlto and xsltproc + BuildRequires: No longer needed. +- Replace gobject-introspection-devel with + pkgconfig(gobject-introspection-1.0) and add pkgconfig(dbus-1): + New depdendency. +- Disable the following patches that needs rebase: + + accountsservice-sysconfig.patch. + + accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch. + + accountsservice-read-root-user-cache.patch + +------------------------------------------------------------------- @@ -21 +81 @@ -Tue Sep 25 09:56:31 UTC 2018 - qzh...@suse.com +Sun Jul 22 20:39:59 UTC 2018 - bjorn....@gmail.com @@ -23,2 +83,18 @@ -- Add CVE-2018-14036.patch to canonicalize the input path for the - prefix comparison (CVE-2018-14036, bsc#1099699). +- Update to version 0.6.50: + + Fix insufficient path check on user icon files. (bsc#1099699 + CVE-2018-14036) + + Fix is-logged-in status for wayland sessions. + + Fix user enumeration when system accounts are mixed in. +- Drop upstream fixed patches: + + accountsservice-missing-users-on-gdm-login.patch. + + accountsservice-lib-treat-session-type-wayland-as-graphical-session.patch + +------------------------------------------------------------------- +Fri Jul 20 02:51:49 UTC 2018 - qk...@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) @@ -33,0 +110,5 @@ +Wed Jul 11 07:33:21 UTC 2018 - mli...@suse.cz + +- Make build verbose to see full command lines. + +------------------------------------------------------------------- @@ -38,0 +120,44 @@ + +------------------------------------------------------------------- +Sun May 13 23:59:22 UTC 2018 - luc1...@linuxmail.org + +- Update to version 0.6.49: + + Fix crash on startup from previous compiler warning fix. +- Changes from version 0.6.48: + + Fix crashes when adding admin user and when user is removed. + + Performance improvements handling really large wtmp files. +- Changes from version 0.6.47: + + Fix problem where libaccountsservice users weren't getting + property change updates. + + Reduce memory usage of cached users in daemon process. + + Drop premature user-added/user-removed signals that erroneously + get emitted before ListCachedUsers call finishes. + +------------------------------------------------------------------- +Fri Apr 6 02:43:51 UTC 2018 - luc1...@linuxmail.org + +- Update to version 0.6.46: + + Fix systemd unit file to use default standard output; + + Performance improvements; + + Leak fixes; + + Crash fixes; + + Support extra groups for admin users; + + Add policy that allows admins to allow users to change their + own password; + + Introspection fixes; + + Elogind support; + + Decruftification of username blacklist; + + Updated translations. +- Add: + + gio-2.0 and gio-unix-2.0 pkgconfig modules BuildRequires to + avoid implicit dependencies. + + xmlto and xsltproc BuildRequires to enable documentation. +- Drop remove-no-longer-used-system-accounts.patch: fixed upstream. +- Rebase patches: + + accountsservice-sysconfig.patch and + + accountsservice-filter-suse-accounts.patch. + +------------------------------------------------------------------- +Wed Feb 28 16:22:37 UTC 2018 - dims...@opensuse.org + +- Modernize spec-file by calling spec-cleaner Old: ---- CVE-2018-14036.patch accountsservice-0.6.45.tar.xz accountsservice-lib-treat-session-type-wayland-as-graphical-session.patch accountsservice-missing-users-on-gdm-login.patch remove-no-longer-used-system-accounts.patch New: ---- accountsservice-0.6.55.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ accountsservice.spec ++++++ --- /var/tmp/diff_new_pack.4qmMee/_old 2020-01-30 14:49:08.490862290 +0100 +++ /var/tmp/diff_new_pack.4qmMee/_new 2020-01-30 14:49:08.494862292 +0100 @@ -1,7 +1,7 @@ # # spec file for package accountsservice # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,50 +12,46 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: accountsservice -Version: 0.6.45 +Version: 0.6.55 Release: 0 Summary: D-Bus Service to Manipulate User Account Information -License: GPL-3.0+ +License: GPL-3.0-or-later Group: System/Daemons -Url: http://www.freedesktop.org/wiki/Software/AccountsService/ -Source: http://www.freedesktop.org/software/accountsservice/%{name}-%{version}.tar.xz +URL: https://www.freedesktop.org/wiki/Software/AccountsService/ +Source0: https://www.freedesktop.org/software/accountsservice/%{name}-%{version}.tar.xz + # WARNING: do not remove/significantly change patch0 without updating the relevant patch in gdm too -# PATCH-FIX-OPENSUSE accountsservice-sysconfig.patch bnc#688071 vu...@opensuse.org -- Read/write autologin configuration from sysconfig, like gdm (see gdm-sysconfig-settings.patch) +# PATCH-FIX-OPENSUSE accountsservice-sysconfig.patch bnc#688071 vu...@opensuse.org -- Read/write autologin configuration from sysconfig, like gdm (see gdm-sysconfig-settings.patch) WAS PATCH-FIX-OPENSUSE Patch0: accountsservice-sysconfig.patch # PATCH-FIX-OPENSUSE accountsservice-filter-suse-accounts.patch vu...@opensuse.org -- Filter out some system users that are specific to openSUSE Patch1: accountsservice-filter-suse-accounts.patch -# PATCH-FEATURE-SLE as-fate318433-prevent-same-account-multi-logins.patch fate#318433 cxi...@suse.com -- prevent multiple simultaneous login. -Patch2: as-fate318433-prevent-same-account-multi-logins.patch -# PATCH-FIX-UPSTREAM remove-no-longer-used-system-accounts.patch bsc#1063794 fdo#103879 qzh...@suse.com -- drop operator, nobody4 and noaccess from the blacklist. -Patch3: remove-no-longer-used-system-accounts.patch -# PATCH-FIX-UPSTREAM accountsservice-missing-users-on-gdm-login.patch boo#1090003 fdo#106904 fezh...@suse.com -- Don't abort loading users when an /etc/shadow entry found missing -Patch4: accountsservice-missing-users-on-gdm-login.patch -# PATCH-FIX-UPSTREAM accountsservice-lib-treat-session-type-wayland-as-graphical-session.patch boo#1095918 fdo#106855 xw...@suse.com -- Treat session type wayland as graphical mode -Patch5: accountsservice-lib-treat-session-type-wayland-as-graphical-session.patch -# PATCH-FIX-UPSTREAM CVE-2018-14036.patch bsc#1099699 CVE-2018-14036 qzh...@suse.com -- To fix this situation this patch canonicalized the input path for the prefix comparison. -Patch6: CVE-2018-14036.patch -# PATCH-FIX-UPSTREAM accountsservice-read-root-user-cache.patch bsc#1114292 glfo#accountsservice/accountsservice#65 xw...@suse.com-- read root user cache file. -Patch7: accountsservice-read-root-user-cache.patch +# PATCH-FIX-UPSTREAM accountsservice-read-root-user-cache.patch bsc#1114292 glfo#accountsservice/accountsservice#65 xw...@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 fezh...@suse.com -- Backports that improve wtmp io performance. -Patch8: accountsservice-wtmp-io-improvements.patch -# needed for patch0 -BuildRequires: gnome-common -BuildRequires: gobject-introspection-devel -BuildRequires: intltool -# needed for patch0 -BuildRequires: vala -BuildRequires: pkgconfig(glib-2.0) +Patch3: accountsservice-wtmp-io-improvements.patch + +## SLE-only patches start at 1000 +# PATCH-FEATURE-SLE as-fate318433-prevent-same-account-multi-logins.patch fate#318433 cxi...@suse.com -- prevent multiple simultaneous login. +Patch1000: as-fate318433-prevent-same-account-multi-logins.patch + +BuildRequires: gtk-doc +BuildRequires: meson +BuildRequires: pkgconfig +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(gio-2.0) >= 2.37.3 +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(glib-2.0) >= 2.44 +BuildRequires: pkgconfig(gobject-introspection-1.0) BuildRequires: pkgconfig(libsystemd) >= 186 BuildRequires: pkgconfig(polkit-gobject-1) BuildRequires: pkgconfig(systemd) Recommends: %{name}-lang -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{?systemd_requires} +%{?systemd_ordering} %description The accountsservice server provides a set of D-Bus interfaces for @@ -65,7 +61,7 @@ commands. %package -n libaccountsservice0 -Summary: D-Bus Service to Manipulate User Account Information -- Client Library +Summary: Client library for the user account information manipulation D-Bus service # Clients do need the server to do something useful Group: System/Libraries Requires: %{name} @@ -77,7 +73,7 @@ This package provides a client library for the service. %package -n typelib-1_0-AccountsService-1_0 -Summary: D-Bus Service to Manipulate User Account Information -- Introspection bindings +Summary: Introspection bindings for the user account information manipulation service Group: System/Libraries %description -n typelib-1_0-AccountsService-1_0 @@ -88,7 +84,7 @@ client library. %package devel -Summary: D-Bus Service to Manipulate User Account Information -- Development Files +Summary: Header files for the user account information manipulation service Group: Development/Libraries/C and C++ Requires: libaccountsservice0 = %{version} Requires: typelib-1_0-AccountsService-1_0 = %{version} @@ -98,32 +94,31 @@ querying and manipulating user account information. %lang_package + %prep %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 + +# Sle-only patches start at 1000 %if !0%{?is_opensuse} -%patch2 -p1 +%patch1000 -p1 %endif %build -# needed for patch0 -NOCONFIGURE=1 gnome-autogen.sh -%configure \ - --disable-static \ - --enable-user-heuristics -make %{?_smp_mflags} +%meson \ + -Duser-heuristics=true \ + -Dsystemd=true \ + -Dintrospection=true \ + -Dgtk_doc=true \ + %{nil} +%meson_build %install -%make_install +%meson_install %find_lang accounts-service -rm -f %{buildroot}%{_libdir}/*.la %pre %service_add_pre accounts-daemon.service @@ -138,12 +133,11 @@ %service_del_postun accounts-daemon.service %post -n libaccountsservice0 -p /sbin/ldconfig - %postun -n libaccountsservice0 -p /sbin/ldconfig %files -%defattr(-,root,root,-) -%doc AUTHORS COPYING NEWS README +%license COPYING +%doc NEWS README.md %{_unitdir}/accounts-daemon.service %{_sysconfdir}/dbus-1/system.d/org.freedesktop.Accounts.conf %{_libexecdir}/accounts-daemon @@ -157,15 +151,13 @@ %dir %{_localstatedir}/lib/AccountsService/icons %files -n libaccountsservice0 -%defattr(-,root,root,-) %{_libdir}/*.so.0* %files -n typelib-1_0-AccountsService-1_0 -%defattr(-,root,root) %{_libdir}/girepository-1.0/AccountsService-1.0.typelib %files devel -%defattr(-,root,root,-) +%doc AUTHORS TODO %doc %{_datadir}/gtk-doc/html/lib%{name}/ %{_libdir}/*.so %{_libdir}/pkgconfig/accountsservice.pc ++++++ accountsservice-0.6.45.tar.xz -> accountsservice-0.6.55.tar.xz ++++++ ++++ 97995 lines of diff (skipped) ++++++ accountsservice-filter-suse-accounts.patch ++++++ --- /var/tmp/diff_new_pack.4qmMee/_old 2020-01-30 14:49:08.662862381 +0100 +++ /var/tmp/diff_new_pack.4qmMee/_new 2020-01-30 14:49:08.666862383 +0100 @@ -2,7 +2,7 @@ =================================================================== --- accountsservice-0.6.37.orig/src/user-classify.c +++ accountsservice-0.6.37/src/user-classify.c -@@ -53,7 +53,13 @@ static const char *default_excludes[] = +@@ -51,7 +51,13 @@ static const char *default_excludes[] = "man", "at", "gdm", ++++++ accountsservice-read-root-user-cache.patch ++++++ --- /var/tmp/diff_new_pack.4qmMee/_old 2020-01-30 14:49:08.674862388 +0100 +++ /var/tmp/diff_new_pack.4qmMee/_new 2020-01-30 14:49:08.674862388 +0100 @@ -15,11 +15,11 @@ src/daemon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/daemon.c b/src/daemon.c -index c52bda3..d7c4437 100644 ---- a/src/daemon.c -+++ b/src/daemon.c -@@ -485,7 +485,7 @@ reload_users (Daemon *daemon) +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 */ @@ -28,6 +28,3 @@ wtmp_helper_update_login_frequencies (users); --- -2.16.4 - ++++++ accountsservice-sysconfig.patch ++++++ --- /var/tmp/diff_new_pack.4qmMee/_old 2020-01-30 14:49:08.682862392 +0100 +++ /var/tmp/diff_new_pack.4qmMee/_new 2020-01-30 14:49:08.682862392 +0100 @@ -4,24 +4,11 @@ Use autologin configuration from sysconfig (SUSE-ism) -Index: accountsservice-0.6.37/src/Makefile.am +Index: accountsservice-0.6.55/src/daemon.c =================================================================== ---- accountsservice-0.6.37.orig/src/Makefile.am -+++ accountsservice-0.6.37/src/Makefile.am -@@ -31,6 +31,8 @@ libexec_PROGRAMS = accounts-daemon - - accounts_daemon_SOURCES = \ - $(enums_h_sources) \ -+ gdm-sysconfig.c \ -+ gdm-sysconfig.h \ - types.h \ - daemon.h \ - daemon.c \ -Index: accountsservice-0.6.37/src/daemon.c -=================================================================== ---- accountsservice-0.6.37.orig/src/daemon.c -+++ accountsservice-0.6.37/src/daemon.c -@@ -44,6 +44,7 @@ +--- 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" #include "util.h" @@ -29,16 +16,16 @@ #define PATH_PASSWD "/etc/passwd" #define PATH_SHADOW "/etc/shadow" -@@ -376,7 +377,7 @@ reload_autologin_timeout (Daemon *daemon - daemon->priv->autologin_id = 0; +@@ -582,7 +583,7 @@ reload_autologin_timeout (Daemon *daemon + priv->autologin_id = 0; if (!load_autologin (daemon, &name, &enabled, &error)) { - g_debug ("failed to load gdms custom.conf: %s", error->message); + g_debug ("failed to load autologin config: %s", error->message); - g_error_free (error); - g_free (name); + return FALSE; + } -@@ -1272,6 +1273,43 @@ daemon_local_check_auth (Daemon +@@ -1474,6 +1475,43 @@ daemon_local_check_auth (Daemon g_object_unref (subject); } @@ -82,17 +69,17 @@ gboolean load_autologin (Daemon *daemon, gchar **name, -@@ -1282,6 +1320,8 @@ load_autologin (Daemon *daemon, - GError *local_error; - gchar *string; +@@ -1484,6 +1522,8 @@ load_autologin (Daemon *daemon, + GError *local_error = NULL; + g_autofree gchar *string = NULL; + return load_autologin_suse (daemon, name, enabled, error); + keyfile = g_key_file_new (); if (!g_key_file_load_from_file (keyfile, PATH_GDM_CUSTOM, -@@ -1329,6 +1369,8 @@ save_autologin (Daemon *daemon, - gchar *data; +@@ -1523,6 +1563,8 @@ save_autologin (Daemon *daemon, + g_autofree gchar *data = NULL; gboolean result; + return save_autologin_suse (daemon, name, enabled, error); @@ -100,10 +87,10 @@ keyfile = g_key_file_new (); if (!g_key_file_load_from_file (keyfile, PATH_GDM_CUSTOM, -Index: accountsservice-0.6.37/src/gdm-sysconfig.c +Index: accountsservice-0.6.55/src/gdm-sysconfig.c =================================================================== ---- /dev/null -+++ accountsservice-0.6.37/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 @@ -0,0 +1,484 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -589,10 +576,10 @@ + g_strfreev (lines); + return result; +} -Index: accountsservice-0.6.37/src/gdm-sysconfig.h +Index: accountsservice-0.6.55/src/gdm-sysconfig.h =================================================================== ---- /dev/null -+++ accountsservice-0.6.37/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 @@ -0,0 +1,43 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -637,3 +624,16 @@ +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 + ) + + sources = files( ++ 'gdm-sysconfig.c', ++ 'gdm-sysconfig.h', + 'daemon.c', + 'extensions.c', + 'main.c', ++++++ accountsservice-wtmp-io-improvements.patch ++++++ --- /var/tmp/diff_new_pack.4qmMee/_old 2020-01-30 14:49:08.690862396 +0100 +++ /var/tmp/diff_new_pack.4qmMee/_new 2020-01-30 14:49:08.690862396 +0100 @@ -1,120 +1,3 @@ -From ce3f71c806334e0a64222779a128e38c45ec90a6 Mon Sep 17 00:00:00 2001 -From: Ray Strode <rstr...@redhat.com> -Date: Wed, 27 Sep 2017 11:01:28 -0400 -Subject: [PATCH] daemon: don't send spurious change signals when wtmp changes - -Right now, we unintentionally send out a changed signal for -every tracked user anytime wtmp changes. - -This commit fixes that. - -https://bugs.freedesktop.org/show_bug.cgi?id=103488 ---- - src/wtmp-helper.c | 22 +++++++++++++++++++--- - 1 file changed, 19 insertions(+), 3 deletions(-) - -diff --git a/src/wtmp-helper.c b/src/wtmp-helper.c -index 787480b..a1edffe 100644 ---- a/src/wtmp-helper.c -+++ b/src/wtmp-helper.c -@@ -165,6 +165,9 @@ wtmp_helper_update_login_frequencies (GHashTable *users) - while (g_hash_table_iter_next (&iter, &key, &value)) { - UserAccounting *accounting = (UserAccounting *) value; - UserPreviousLogin *previous_login; -+ gboolean changed = FALSE; -+ guint64 old_login_frequency; -+ guint64 old_login_time; - - user = g_hash_table_lookup (users, key); - if (user == NULL) { -@@ -172,8 +175,20 @@ wtmp_helper_update_login_frequencies (GHashTable *users) - continue; - } - -- g_object_set (user, "login-frequency", accounting->frequency, NULL); -- g_object_set (user, "login-time", accounting->time, NULL); -+ g_object_get (user, -+ "login-frequency", &old_login_frequency, -+ "login-time", &old_login_time, -+ NULL); -+ -+ if (old_login_frequency != accounting->frequency) { -+ g_object_set (user, "login-frequency", accounting->frequency, NULL); -+ changed = TRUE; -+ } -+ -+ if (old_login_time != accounting->time) { -+ g_object_set (user, "login-time", accounting->time, NULL); -+ changed = TRUE; -+ } - - builder = g_variant_builder_new (G_VARIANT_TYPE ("a(xxa{sv})")); - for (l = g_list_last (accounting->previous_logins); l != NULL; l = l->prev) { -@@ -188,7 +203,8 @@ wtmp_helper_update_login_frequencies (GHashTable *users) - g_variant_builder_unref (builder); - g_list_free_full (accounting->previous_logins, (GDestroyNotify) user_previous_login_free); - -- user_changed (user); -+ if (changed) -+ user_changed (user); - } - - g_hash_table_unref (login_hash); --- -2.16.4 - -From 081a2b74712233f2515920a85315e6e0d4e73960 Mon Sep 17 00:00:00 2001 -From: Ray Strode <rstr...@redhat.com> -Date: Wed, 25 Apr 2018 11:16:36 -0400 -Subject: [PATCH] wtmp-helper: don't call getpwnam() - -The wtmp helper code examines /var/log/wtmp to determine which -users log in the most frequently. - -That code calls getpwnam() once for every entry in /var/log/wtmp. -This is very inefficient, since getpwnam() can be quite slow, and -/var/log/wtmp will often have the same users repeated over and -over again. - -Also, we don't actually use the result for anything other than verifying -the existence of the user! And we already verify the existence of -the user later later in the code in a more efficient way (by finding -the user in the users hashtable). - -This commit just drops the unnecessary getpwnam() call. - -https://bugs.freedesktop.org/show_bug.cgi?id=106240 ---- - src/wtmp-helper.c | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/src/wtmp-helper.c b/src/wtmp-helper.c -index a1edffe..01caa2e 100644 ---- a/src/wtmp-helper.c -+++ b/src/wtmp-helper.c -@@ -75,7 +75,6 @@ wtmp_helper_update_login_frequencies (GHashTable *users) - struct utmpx *wtmp_entry; - GHashTableIter iter; - gpointer key, value; -- struct passwd *pwent; - User *user; - GVariantBuilder *builder, *builder2; - GList *l; -@@ -128,11 +127,6 @@ wtmp_helper_update_login_frequencies (GHashTable *users) - continue; - } - -- pwent = getpwnam (wtmp_entry->ut_user); -- if (pwent == NULL) { -- continue; -- } -- - if (!g_hash_table_lookup_extended (login_hash, - wtmp_entry->ut_user, - &key, &value)) { --- -2.16.4 - From 64b11314ea71b5e22edf4d968347489c5d5acd01 Mon Sep 17 00:00:00 2001 From: Ray Strode <rstr...@redhat.com> Date: Thu, 9 May 2019 14:58:34 -0400 ++++++ as-fate318433-prevent-same-account-multi-logins.patch ++++++ --- /var/tmp/diff_new_pack.4qmMee/_old 2020-01-30 14:49:08.702862402 +0100 +++ /var/tmp/diff_new_pack.4qmMee/_new 2020-01-30 14:49:08.702862402 +0100 @@ -1,28 +1,8 @@ -Index: accountsservice-0.6.40/src/libaccountsservice/act-user-manager.c +Index: b/src/libaccountsservice/act-user-manager.c =================================================================== ---- accountsservice-0.6.40.orig/src/libaccountsservice/act-user-manager.c -+++ accountsservice-0.6.40/src/libaccountsservice/act-user-manager.c -@@ -751,8 +751,17 @@ _get_systemd_seat_id (ActUserManager *ma - char *seat_id; - - res = sd_session_get_seat (NULL, &seat_id); -- -- if (res == -ENOENT) { -+ /** -+ * NOTE: There is no -ENOENT errnum for `sd_session_get_seat`. This -+ * possibly an upstream bug. There are also other dubious occurrences of -+ * -ENOENT within the source. -+ * -+ * Change to -ENODATA as this is the normal return for non-seated -+ * session like VNC ones and should not report errors. O/w no user -+ * sessions will be analyzed. -+ */ -+ /* see https://www.freedesktop.org/software/systemd/man/sd_session_is_active.html */ -+ if (res == -ENODATA) { - seat_id = NULL; - } else if (res < 0) { - g_warning ("Could not get current seat: %s", -@@ -1700,12 +1709,22 @@ maybe_add_new_session (ActUserManagerNew +--- 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); @@ -46,11 +26,11 @@ is_ours = FALSE; } -Index: accountsservice-0.6.40/src/libaccountsservice/act-user.c +Index: b/src/libaccountsservice/act-user.c =================================================================== ---- accountsservice-0.6.40.orig/src/libaccountsservice/act-user.c -+++ accountsservice-0.6.40/src/libaccountsservice/act-user.c -@@ -936,6 +936,8 @@ act_user_is_logged_in (ActUser *user) +--- 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) * (Currently, this function is only implemented for systemd-logind. * For ConsoleKit, it is equivalent to act_user_is_logged_in.) * @@ -59,7 +39,7 @@ * Returns: %TRUE or %FALSE */ gboolean -@@ -945,6 +947,24 @@ act_user_is_logged_in_anywhere (ActUser +@@ -896,6 +898,24 @@ act_user_get_saved (ActUser *user) } /** @@ -84,10 +64,10 @@ * act_user_get_locked: * @user: a #ActUser * -Index: accountsservice-0.6.40/src/libaccountsservice/act-user.h +Index: b/src/libaccountsservice/act-user.h =================================================================== ---- accountsservice-0.6.40.orig/src/libaccountsservice/act-user.h -+++ accountsservice-0.6.40/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 guint act_user_get_num_sessions_anywhere (ActUser *user); gboolean act_user_is_logged_in (ActUser *user);