From 8682adb6c9df83355834a90b546dc96f818e567837670215e92a6bffe68f3899 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 11 Apr 2019 14:48:47 +0000 Subject: [PATCH] Accepting request 692039 from GNOME:Next - 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 - Redo summaries without em dashes. - Reduce %systemd_requires to %systemd_ordering: %service_* can handle the absence. - 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 - Add accountsservice-read-root-user-cache.patch: Read root user cache file (bsc#1114292 glfo#accountsservice/accountsservice#65). - Update to version 0.6.50: + Fix insufficient path check on user icon files. + 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 - 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) - Add accountsservice-lib-treat-session-type-wayland-as-graphical-session.patch: When user session type is wayland, act_user_is_logged_in can return TRUE if the user is logged in (boo#1095918 fdo#106855). - Make build verbose to see full command lines. - Add accountsservice-missing-users-on-gdm-login.patch: Don't abort loading users when an /etc/shadow entry found missing (boo#1090003 fdo#106904). - 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. - 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. - Modernize spec-file by calling spec-cleaner - Add remove-no-longer-used-system-accounts.patch: Drop operator, nobody4 and noaccess from the blacklist (bsc#1063794, fdo#103879). - Update specfile to build as-fate318433-prevent-same-account-multi-logins.patch on SLE15. - Remove redundant %clean section; use %_smp_mflags for build. - Update to version 0.6.45: + Wrap password expiration info in libaccountsservice api. - Changes from version 0.6.44: + Export password expiration info from shadow file. + Fix user classification logic. + Don't lose track of users when /etc/passwd is reloaded. - Drop accountsservice-933083-load-root-setting.patch: fixed upstream (177509 edac45). - Rebase accountsservice-933083-load-root-setting.patch. - Update to version 0.6.43: + Fix logout times in login-history. + Increase performance in large deployments. + Memory leak fix. + Exclude nologin users from user list. - Update accountsservice-sysconfig.patch: Flush the buffer before shut down the GIOChannel, otherwise we get a truncated setting file. The problem has caused the switching autologin in gnome-control-center breaking /etc/sysconfig/displaymanager (bsc#998107). - Enable as-fate318433-prevent-same-account-multi-logins.patch for Leap as requested by the Leap Release Manager (boo#994876). - Remove pkgconfig(libsystemd-daemon). Nowadays pkgconfig(libsystemd) is enough and replaces all libsystemd-* libs which are obsolete. - Update to version 0.6.42: + Wtmp fixes on solaris. + Allow a user to change his own data even if he's remote. + Add way to set password hint independent of password. + Conform to modern systemd library naming scheme. + Disable GVFS support in service, since it's not needed and has bad side effects. - Replace pkgconfig(libsystemd-login) for pkgconfig(libsystemd) BuildRequires following upstream changes. - Add as-fate318433-prevent-same-account-multi-logins.patch (fate#318433): Prevent multiple simultaneous logins. - Update to GNOME 3.20 Fate#318572 - Rebased accountsservice-933083-load-root-setting.patch. - Updated Url. - Add accountsservice-933083-load-root-setting.patch (bnc#933083) Load settings of an account which is not 'human' but can still be able to login to the system. (like 'root') - Update to version 0.6.40: + Support large UIDs better. + Don't require X11 display to fetch user with X11 session. + Ensure accountsservice doesn't start before NSS works. - Update to version 0.6.39: + Fix ListCachedUsers race at startup. + Add new api for uncaching user. + Fix memory corruption bug. + Build goo changes. - Pass --enable-user-heuristics to configure to ensure that legacy users are still shown in GDM facebrowser. - Update to version 0.6.38: + Fix polkit policy for non-desktop cases. + Fix for a race when new user appears. + Some clearer log and debug messages. - Update to version 0.6.37: + BSD fixes. - Changes from version 0.6.36: + Fixes for deleting users. + Leak fix. + Change user classification logic. + BSD fixes. - Rebase accountsservice-sysconfig.patch and accountsservice-filter-suse-accounts.patch. - Update to version 0.6.35: + Handle non-existent users better. + Misc bug fixes. + Misc clean ups. + Emit "changed" signal when account type changes for user. + Stop shipping vapi files. + Avoid connecting to ConsoleKit on logind systems. + Add extension interface. + Add --enable-coverage option for gcov support. - Rebase accountsservice-sysconfig.patch and accountsservice-filter-suse-accounts.patch. - Drop accountsservice-remotePW-verification.patch: fixed upstream. - Add accountsservice-remotePW-verification.patch: treat NULL shadow entry as "password handled remotely" (bnc#844933, bgo#708997, fdo#70005). - Update to version 0.6.34: + Try to sanitize automatic login setting when user account is deleted or disabled (fdo#54506). + Fix build. - Changes from version 0.6.33: + Keep track of non-graphical sessions (fdo#65160). + Forget obsolete sessions (fdo#65159). + Monitor wtmp for changes (fdo#63159). + Ignore non-user sessions (fdo#701514). + Rework system account handling (fdo#64769). - Never treat cached users as system accounts. - Add gdm, gnome-initial-setup users to blacklist. - Store system-account bit in key file. - Cache newly-created users explicitly. - Rebase accountsservice-filter-suse-accounts.patch. - Update to version 0.6.32: + Don't treat remote users as system accounts (fdo#64186). + Clean up spawn_with_login_uid error handling (fdo#55067). + Quit on SIGINT/SIGTERM (fdo#63869). + Make --debug work as expected (fdo#63870). + Remove newlines from debug output (fdo#63871). + Fix mismatched function signature (fdo#63873). + Fix gir/vapi warnings (fdo#63875). + Fix documentation warnings (fdo#63880). - Update to version 0.6.31: + Check for logind, not systemd (bgo#62586). + Add --enable-admin-group configure option (bgo#62235). + Be more aggressive at excluding system accounts (bgo#48178). + Fix xsession property notification (bgo#58493). + Fix login history variant handling (bgo#58466). - Rebase accountsservice-sysconfig.patch. - Update to version 0.6.30: + Minor source clean ups. + Crasher fix on 32bit systems. + Add get_user_by_id. + Don't lose sessions list for users at startup. + Add API for detecting when accountsservice is unavailable. - Update to version 0.6.29: + Translate D-Bus errors to local errors in libaccountsservice. + Fix a wrong property name in the login history support. - Update to version 0.6.28: + Fix act_user_manager_delete_user_finish. + Fix handling of LoginTime and LoginHistory properties. - Changes from version 0.6.27: + Fix warnings when the singleton user manager object is finalized. + Generated docs for libaccountsservice. + Initialize local_acount to TRUE. + Add async api for user creation, caching and deletion. - Update to version 0.6.26: + Require libsystemd-login 186. + Protect against deleting root user. + Add LoginTime and LoginHistory properties. + Fix crash consolekit code. + Fix has_multiple_user property after removing user. - Update to version 0.6.25: + Uninitialized variable fix + Typo fix + Create data dirs just-in-time + Ignore closing sessions for is_logged_in test + Disable NULL user for delete_user call + Updated translations. - Update to version 0.6.24: + add User.Local property for identifying local users. - Update to version 0.6.23: + Fix up some debug output. + add new CacheUser and UncacheUser apis. + uncache user before deleting user. - Add the user 'fax' to the exception list (bnc#771177). - Update to version 0.6.22: + Correct CVE-2012-2737, local file disclosure + small memory leak fix + exclude system accounts from ListCachedUsers + make has-multiple-users properly only check non-system users + remove icon when deleting user + Revert usage of getpwent() as fallback for fgetpwent + support consolekit call cancellation to prevent crashes caused by shortlived sessions + ignore built files in .gitignore + quiet down build goo nagging - Drop accountsservice-CVE-2012-2737.patch: fixed upstream. - Add accountsservice-CVE-2012-2737.patch: fix local file disclosure flaw. Fix bnc#768807, CVE-2012-2737. - Add users cyrus, ldap and mailman to the openSUSE specific users to be excluded (accountsservice-filter-suse-accounts.patch). Fixes bnc#765487. - Update to version 0.6.21: + Detect old versions of systemd and fall back to ConsoleKit + Exclude users without a valid shell + Fix log spew - Update to version 0.6.20: + Fix user listing which broke in previous release - Changes from version 0.6.19: + Fix spurious warnings in logs + Make userdel succeed even if user is already logged in + Exclude users with no shell + Exclude "at" user - Drop accountsservice-filter-more-accounts.patch and accountsservice-filter-no-shell.patch: fixed upstream. - Add back accountsservice-filter-more-accounts.patch to filter the at user. - Add accountsservice-filter-no-shell.patch to filter users with no shell, which happens when NIS is setup. - This should fix bnc#757662. - Rebase accountsservice-filter-suse-accounts.patch. - Update to version 0.6.18: + Fix systemd configure check + Add a few more common system accounts to the blacklist + Fix some issues in systemd session handling - Drop accountsservice-filter-more-accounts.patch: fixed upstream. - Drop accountsservice-fix-systemd-test-always-evaluating-true.patch: fixed upstream. - Add accountsservice-filter-more-accounts.patch: filter out ftp, games, man and mysql system users too, taken from git. - Add accountsservice-filter-suse-accounts.patch: filter out some openSUSE-specific accounts (beagleindex, suse-ncc). - Add accountsservice-fix-systemd-test-always-evaluating-true.patch Make it possible to build accountsservice without systemd (fdo#48190). - Update to version 0.6.17: + Fix user filtering which was broken in 0.6.16 + Fix double free in user code - Update to version 0.6.16: + Don't filter out users below UID_MIN in login.defs + Filter out users with invalid shells + Use infinite timeout for ListCachedUsers calls + Port to GDBus + Add systemd support + Build fixes for srcdir != builddir + Vala support and introspection fixes + PPC32 fixes + Updated translations. - Drop pkgconfig(dbus-glib-1) BuildRequires: dependency is gone upstream. - Enable support for systemd session tracking: + Note that it will fall back to ConsoleKit at runtime, so it's fine to build it. + Add pkgconfig() BuildRequires: libsystemd-login, libsystemd-daemon. - Rebase accountsservice-sysconfig.patch. - Add vala BuildRequires, which is now needed because of the gnome-autogen.sh call. - Fix systemd-related packaging: + Use %{?systemd_requires}. + Call %service_{add,del}_* macros in scriptlets for accounts-daemon.service. - Remove xz BuildRequires now that it comes for free in the build system. - Split typelib file into typelib-1_0-AccountsService-1_0 subpackage. - Add typelib-1_0-AccountsService-1_0 Requires to devel subpackage. - Update to version 0.6.15: + Only accept regular files as icons + Don't track non-graphical sessions + Fix wtmp handling + Fix build on FreeBSD and OpenBSD - Drop accountsservice-regular-file-for-icon.patch: fixed upstream. - Add accountsservice-regular-file-for-icon.patch: only use regular files when setting user icon. Part of bnc#676638. - Update to version 0.6.14: + Ignore extraneous SetAutomaticLogin(false) calls for a user + Monitor /etc/gdm/custom.conf for changes in autologin config + Fix fast user switching + Fix docs to build + Updated translations. - Rebase accountsservice-sysconfig.patch, and add gnome-common BuildRequires and call to gnome-autogen.sh since it's easier to rebase the patch without Makefile.in. - Add gobject-introspection-devel BuildRequires to build introspection data. - Add accountsservice-sysconfig.patch: read and write autologin configuration from sysconfig, as done in gdm. Fix bnc#688071. - Update to version 0.6.13: + Honor aclocal flags environment variable + Set log domain so it can be hushed + Use wtmp instead of consolekit for determining login frequency + Leak and warning fixes + Clean up polkit deprecation warnings + Add '--' before username to account helper programs - Add xz BuildRequires because we can't build a package for a xz-compressed tarball without explicitly specifying that... See bnc#697467 for more details. - Update to version 0.6.12: + The usual pile of race fixes - Changes from version 0.6.11: + Add API for adding users to the library. - Drop rpmlintrc as the necessary changes have now been done in both rpmlint (for suse-dbus-unauthorized-service) and in polkit-default-privs (for polkit-unauthorized-privilege). - Update to version 0.6.10: + An assortment of race fixes + Updated translations - Changes from version 0.6.9: + Add a 'system-account' property to users - Update download url for tarball. - Add pkgconfig(systemd) to BuildRequires and package systemd configuration file for accountsservice. - Update to version 0.6.8: + use same rules for parsing booleans from gdm config as gdm. - Update to version 0.6.7: + Fix call to useradd for normal users + Correct free array of groups + Updated translations - Changes from version 0.6.6: + Make it possible to disable user icon + Drop Supervised user role + Use "wheel" instead of "desktop_admin_r" as admin group since that's what everyone uses for this purpose anyway. + Crasher fixes + Misc distro integration fixes + Updated translations - Changes from version 0.6.5: + No longer return excluded users from cached listings + Add a --debug command line option + Use proper dbus proxy for settings api in client lib + Expose XSession property over bus - Enforce dependency on main package in library package by changing Recommends to Requires. - Add a rpmlintrc to ignore security-related rpmlint warnings that make the build fail on Factory. This needs to get removed when entering Factory, though. - Cleanup for inclusion in Factory. - Update to version 0.6.4: - fix typo in HomeDirectory property - fix bug in asynchronous loading code - drop some random g_print's - Changes from version 0.6.3: + Add more getters to client library + Add an initial cut at a setter api + Add XSession property type - Changes from version 0.6.2: + Remove the unused UserChanged signal + Add a small client library, based on code from gdm + Don't use gnome-common + Use the user-administration privilege for autologin changes - Changes from version 0.6.1: + Always emit the changed signal when setting user photo + Install systemd unit files + Translation updates - Changes from version 0.6: + Always require user-administration privilege when setting a password or changing a username + Allow changing password mode and password even when the account is locked, and unlock it as a side-effect + Use /etc/shadow to store account locking and 'set password at next login' information and monitor /etc/shadow for changes + Set loginuid when runing commands on behalf of a user to generate proper audit records + Drop SetIconData and make SetIconFile copy the file when appropriate. As a consequence, the service no longer links against image libraries. + Various other robustness and error-handling fixes - Changes from version 0.5: + Make initial user list call work + Avoid extraneous commandline parsing - Package directories used by daemon to store user data: /var/lib/AccountsService and subdirectories. - New package (version 0.4). OBS-URL: https://build.opensuse.org/request/show/692039 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/accountsservice?expand=0&rev=128 --- accountsservice-0.6.50.tar.xz | 3 - accountsservice-0.6.54.tar.xz | 3 + ...-set-loaded-state-until-seat-fetched.patch | 35 ---- accountsservice-read-root-user-cache.patch | 12 +- accountsservice-sysconfig.patch | 50 ++--- accountsservice-upstream-fixes.patch | 196 ++++++++++++++++++ accountsservice.changes | 38 ++++ accountsservice.spec | 50 +++-- 8 files changed, 292 insertions(+), 95 deletions(-) delete mode 100644 accountsservice-0.6.50.tar.xz create mode 100644 accountsservice-0.6.54.tar.xz delete mode 100644 accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch create mode 100644 accountsservice-upstream-fixes.patch diff --git a/accountsservice-0.6.50.tar.xz b/accountsservice-0.6.50.tar.xz deleted file mode 100644 index 620ee99..0000000 --- a/accountsservice-0.6.50.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:035928f5dea46f2220657e0bd669bc7fac45165b700c0a81b2b66ff2c3dbc74a -size 384484 diff --git a/accountsservice-0.6.54.tar.xz b/accountsservice-0.6.54.tar.xz new file mode 100644 index 0000000..2bfea75 --- /dev/null +++ b/accountsservice-0.6.54.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26e9062c84797e9604182d0efdb2231cb01c98c3c9b0fea601ca79a2802d21ac +size 93048 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 deleted file mode 100644 index de571c5..0000000 --- a/accountsservice-lib-don-not-set-loaded-state-until-seat-fetched.patch +++ /dev/null @@ -1,35 +0,0 @@ -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-read-root-user-cache.patch b/accountsservice-read-root-user-cache.patch index ff24587..1c32eaa 100644 --- a/accountsservice-read-root-user-cache.patch +++ b/accountsservice-read-root-user-cache.patch @@ -1,10 +1,10 @@ -Index: accountsservice-0.6.50/src/daemon.c +Index: accountsservice-0.6.54/src/daemon.c =================================================================== ---- accountsservice-0.6.50.orig/src/daemon.c -+++ accountsservice-0.6.50/src/daemon.c -@@ -813,9 +813,19 @@ add_new_user_for_pwent (Daemon *d - struct spwd *spent) +--- accountsservice-0.6.54.orig/src/daemon.c ++++ accountsservice-0.6.54/src/daemon.c +@@ -829,9 +829,19 @@ add_new_user_for_pwent (Daemon *d { + DaemonPrivate *priv = daemon_get_instance_private (daemon); User *user; + g_autofree gchar *filename = NULL; + g_autoptr(GKeyFile) key_file = NULL; @@ -21,4 +21,4 @@ Index: accountsservice-0.6.50/src/daemon.c + user_register (user); - g_hash_table_insert (daemon->priv->users, + g_hash_table_insert (priv->users, diff --git a/accountsservice-sysconfig.patch b/accountsservice-sysconfig.patch index a31648f..6ebe3b3 100644 --- a/accountsservice-sysconfig.patch +++ b/accountsservice-sysconfig.patch @@ -4,23 +4,10 @@ Date: Wed Jul 20 16:48:41 2011 +0200 Use autologin configuration from sysconfig (SUSE-ism) -Index: accountsservice-0.6.37/src/Makefile.am +Index: accountsservice-0.6.54/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 +--- accountsservice-0.6.54.orig/src/daemon.c ++++ accountsservice-0.6.54/src/daemon.c @@ -47,6 +47,7 @@ #include "wtmp-helper.h" #include "daemon.h" @@ -29,8 +16,8 @@ Index: accountsservice-0.6.37/src/daemon.c #define PATH_PASSWD "/etc/passwd" #define PATH_SHADOW "/etc/shadow" -@@ -560,7 +561,7 @@ reload_autologin_timeout (Daemon *daemon - daemon->priv->autologin_id = 0; +@@ -567,7 +568,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); @@ -38,7 +25,7 @@ Index: accountsservice-0.6.37/src/daemon.c return FALSE; } -@@ -1434,6 +1435,43 @@ daemon_local_check_auth (Daemon +@@ -1463,6 +1464,43 @@ daemon_local_check_auth (Daemon g_object_unref (subject); } @@ -82,7 +69,7 @@ Index: accountsservice-0.6.37/src/daemon.c gboolean load_autologin (Daemon *daemon, gchar **name, -@@ -1444,6 +1482,8 @@ load_autologin (Daemon *daemon, +@@ -1473,6 +1511,8 @@ load_autologin (Daemon *daemon, GError *local_error = NULL; g_autofree gchar *string = NULL; @@ -91,7 +78,7 @@ Index: accountsservice-0.6.37/src/daemon.c keyfile = g_key_file_new (); if (!g_key_file_load_from_file (keyfile, PATH_GDM_CUSTOM, -@@ -1483,6 +1523,8 @@ save_autologin (Daemon *daemon, +@@ -1512,6 +1552,8 @@ save_autologin (Daemon *daemon, g_autofree gchar *data = NULL; gboolean result; @@ -100,10 +87,10 @@ Index: accountsservice-0.6.37/src/daemon.c 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.54/src/gdm-sysconfig.c =================================================================== --- /dev/null -+++ accountsservice-0.6.37/src/gdm-sysconfig.c ++++ accountsservice-0.6.54/src/gdm-sysconfig.c @@ -0,0 +1,484 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -589,10 +576,10 @@ Index: accountsservice-0.6.37/src/gdm-sysconfig.c + g_strfreev (lines); + return result; +} -Index: accountsservice-0.6.37/src/gdm-sysconfig.h +Index: accountsservice-0.6.54/src/gdm-sysconfig.h =================================================================== --- /dev/null -+++ accountsservice-0.6.37/src/gdm-sysconfig.h ++++ accountsservice-0.6.54/src/gdm-sysconfig.h @@ -0,0 +1,43 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * @@ -637,3 +624,16 @@ Index: accountsservice-0.6.37/src/gdm-sysconfig.h +G_END_DECLS + +#endif /* __GDM_SYSCONFIG_H */ +Index: accountsservice-0.6.54/src/meson.build +=================================================================== +--- accountsservice-0.6.54.orig/src/meson.build ++++ accountsservice-0.6.54/src/meson.build +@@ -46,6 +46,8 @@ libaccounts_generated_dep = declare_depe + ) + + sources = files( ++ 'gdm-sysconfig.c', ++ 'gdm-sysconfig.h', + 'daemon.c', + 'extensions.c', + 'main.c', diff --git a/accountsservice-upstream-fixes.patch b/accountsservice-upstream-fixes.patch new file mode 100644 index 0000000..634b891 --- /dev/null +++ b/accountsservice-upstream-fixes.patch @@ -0,0 +1,196 @@ +From a8f368c34e826f76d1244fed5095a1615c986b59 Mon Sep 17 00:00:00 2001 +From: Alexey Shabalin +Date: Mon, 1 Oct 2018 18:46:26 +0300 +Subject: fix option type for minimum uid + +--- + meson.build | 2 +- + meson_options.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/meson.build b/meson.build +index 1f75a5b..57f30a5 100644 +--- a/meson.build ++++ b/meson.build +@@ -161,7 +161,7 @@ config_h.set_quoted('ADMIN_GROUP', admin_group) + config_h.set_quoted('EXTRA_ADMIN_GROUPS', extra_admin_groups) + + config_h.set('ENABLE_USER_HEURISTICS', get_option('user_heuristics')) +-config_h.set_quoted('MINIMUM_UID', get_option('minimum_uid')) ++config_h.set('MINIMUM_UID', get_option('minimum_uid')) + + # GDM + gdm_conf_file = get_option('gdmconffile') +diff --git a/meson_options.txt b/meson_options.txt +index 878bdd7..12e2f6b 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -4,7 +4,7 @@ option('gdmconffile', type: 'string', value: '/etc/gdm/custom.conf', description + option('admin_group', type: 'string', value: '', description: 'Set group for administrative accounts') + option('user_heuristics', type: 'boolean', value: true, description: 'Enable heuristics for guessing system vs. human users in the range 500-minimum-uid') + option('extra_admin_groups', type: 'array', value: [], description: 'Comma-separated list of extra groups that administrator users are part of') +-option('minimum_uid', type: 'string', value: '1000', description: 'Set minimum uid for human users') ++option('minimum_uid', type: 'integer', value: 1000, description: 'Set minimum uid for human users') + + option('systemd', type: 'boolean', value: false, description: 'Use systemd') + option('elogind', type: 'boolean', value: false, description: 'Use elogind') +-- +cgit v1.1 + + +From 204a4abe68eefac52ca05dda2096db0e0fde0bb7 Mon Sep 17 00:00:00 2001 +From: Philip Withnall +Date: Tue, 2 Oct 2018 15:36:29 +0100 +Subject: libaccountsservice: Expose interfaces directory in pkg-config file + +Just like the D-Bus interfaces directory is exposed in dbus-1.pc for the +use of any package which needs to install a D-Bus interface file; the +accounts-service interfaces directory should be exposed in its +pkg-config file. + +Signed-off-by: Philip Withnall +--- + src/libaccountsservice/meson.build | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/libaccountsservice/meson.build b/src/libaccountsservice/meson.build +index 0b611d2..4e134db 100644 +--- a/src/libaccountsservice/meson.build ++++ b/src/libaccountsservice/meson.build +@@ -87,7 +87,11 @@ pkg.generate( + description: 'Client Library for communicating with accounts service', + filebase: act_name, + subdirs: act_api_name, +- variables: 'exec_prefix=${prefix}', ++ variables: [ ++ 'exec_prefix=${prefix}', ++ 'datadir=${prefix}/' + get_option('datadir'), ++ 'interfacesdir=${datadir}/accountsservice/interfaces', ++ ], + ) + + if get_option('introspection') +-- +cgit v1.1 + + +From 11c9bd6226cda64cfb8e48193be1ff2e7fb92cc1 Mon Sep 17 00:00:00 2001 +From: Akira Nakajima +Date: Wed, 19 Dec 2018 22:12:43 +0000 +Subject: forgot to add g_autoptr(GError) in + _act_user_update_from_object_path() + +--- + src/libaccountsservice/act-user.c | 2 +- + src/user.c | 60 ++++++++++++++++++++++++++++++++++++++- + 2 files changed, 60 insertions(+), 2 deletions(-) + +diff --git a/src/libaccountsservice/act-user.c b/src/libaccountsservice/act-user.c +index 540ffe7..e66acb1 100644 +--- a/src/libaccountsservice/act-user.c ++++ b/src/libaccountsservice/act-user.c +@@ -1167,7 +1167,7 @@ _act_user_update_from_object_path (ActUser *user, + const char *object_path) + { + AccountsUser *accounts_proxy; +- GError *error = NULL; ++ g_autoptr(GError) error = NULL; + + g_return_if_fail (ACT_IS_USER (user)); + g_return_if_fail (object_path != NULL); +diff --git a/src/user.c b/src/user.c +index 93afadc..2672436 100644 +--- a/src/user.c ++++ b/src/user.c +@@ -48,6 +48,33 @@ + #include "accounts-user-generated.h" + #include "util.h" + ++enum { ++ PROP_0, ++ PROP_UID, ++ PROP_USER_NAME, ++ PROP_REAL_NAME, ++ PROP_ACCOUNT_TYPE, ++ PROP_HOME_DIR, ++ PROP_SHELL, ++ PROP_EMAIL, ++ PROP_LANGUAGE, ++ PROP_SESSION, ++ PROP_SESSION_TYPE, ++ PROP_X_SESSION, ++ PROP_LOCATION, ++ PROP_LOGIN_FREQUENCY, ++ PROP_LOGIN_TIME, ++ PROP_LOGIN_HISTORY, ++ PROP_ICON_FILE, ++ PROP_SAVED, ++ PROP_LOCKED, ++ PROP_PASSWORD_MODE, ++ PROP_PASSWORD_HINT, ++ PROP_AUTOMATIC_LOGIN, ++ PROP_SYSTEM_ACCOUNT, ++ PROP_LOCAL_ACCOUNT, ++}; ++ + struct User { + AccountsUserSkeleton parent; + +@@ -2075,6 +2102,32 @@ user_set_automatic_login (AccountsUser *auser, + } + + static void ++user_set_property (GObject *object, ++ guint param_id, ++ const GValue *value, ++ GParamSpec *pspec) ++{ ++ User *user = USER (object); ++ ++ if (param_id == PROP_LOGIN_HISTORY) { ++ g_clear_pointer (&user->login_history, g_variant_unref); ++ user->login_history = g_variant_ref (g_value_get_variant (value)); ++ } ++} ++ ++static void ++user_get_property (GObject *object, ++ guint param_id, ++ GValue *value, ++ GParamSpec *pspec) ++{ ++ User *user = USER (object); ++ ++ if (param_id == PROP_LOGIN_HISTORY) ++ g_value_set_variant (value, user->login_history); ++} ++ ++static void + user_finalize (GObject *object) + { + User *user; +@@ -2088,7 +2141,7 @@ user_finalize (GObject *object) + + g_free (user->default_icon_file); + +- g_clear_pointer (&user->login_history, g_variant_unref); ++ g_clear_pointer (&user->login_history, g_variant_unref); + + if (G_OBJECT_CLASS (user_parent_class)->finalize) + (*G_OBJECT_CLASS (user_parent_class)->finalize) (object); +@@ -2101,7 +2154,12 @@ user_class_init (UserClass *class) + + gobject_class = G_OBJECT_CLASS (class); + ++ gobject_class->get_property = user_get_property; ++ gobject_class->set_property = user_set_property; ++ + gobject_class->finalize = user_finalize; ++ ++ g_object_class_override_property (gobject_class, PROP_LOGIN_HISTORY, "login-history"); + } + + static void +-- +cgit v1.1 + diff --git a/accountsservice.changes b/accountsservice.changes index 8ad4cde..94b5a73 100644 --- a/accountsservice.changes +++ b/accountsservice.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Wed Apr 3 02:54:51 UTC 2019 - xwang@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 @@ -5,6 +14,35 @@ Sun Mar 17 10:52:44 UTC 2019 - Jan Engelhardt - Reduce %systemd_requires to %systemd_ordering: %service_* can handle the absence. +------------------------------------------------------------------- +Thu Feb 21 22:45:14 UTC 2019 - bjorn.lie@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 + ------------------------------------------------------------------- Mon Dec 10 05:48:13 UTC 2018 - xwang@suse.com diff --git a/accountsservice.spec b/accountsservice.spec index f5481c7..4953f7b 100644 --- a/accountsservice.spec +++ b/accountsservice.spec @@ -17,39 +17,37 @@ Name: accountsservice -Version: 0.6.50 +Version: 0.6.54 Release: 0 Summary: D-Bus Service to Manipulate User Account Information 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 vuntz@opensuse.org -- Read/write autologin configuration from sysconfig, like gdm (see gdm-sysconfig-settings.patch) +# PATCH-FIX-OPENSUSE accountsservice-sysconfig.patch bnc#688071 vuntz@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 vuntz@opensuse.org -- Filter out some system users that are specific to openSUSE Patch1: accountsservice-filter-suse-accounts.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 -# PATCH-FIX-UPSTREAM accountsservice-read-root-user-cache.patch bsc#1114292 glfo#accountsservice/accountsservice#65 xwang@suse.com-- read root user cache file. -Patch5: accountsservice-read-root-user-cache.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-upstream-fixes.patch -- Add 3 upstream commits to fix build +Patch3: accountsservice-upstream-fixes.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 # needed for patch0 -BuildRequires: gnome-common -BuildRequires: gobject-introspection-devel >= 0.40.0 -BuildRequires: intltool +BuildRequires: gtk-doc +BuildRequires: meson BuildRequires: pkgconfig -# needed for patch0 -BuildRequires: vala -BuildRequires: xmlto -BuildRequires: xsltproc +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) @@ -102,25 +100,25 @@ querying and manipulating user account information. %setup -q %patch0 -p1 %patch1 -p1 -%patch4 -p1 -%patch5 -p1 +%patch2 -p1 +%patch3 -p1 # Sle-only patches start at 1000 %if !0%{?is_opensuse} %patch1000 -p1 %endif %build -# needed for patch0 -NOCONFIGURE=1 gnome-autogen.sh -%configure \ - --disable-static \ - --enable-user-heuristics -make %{?_smp_mflags} V=1 +%meson \ + -Duser-heuristics=true \ + -Dsystemd=true \ + -Dintrospection=true \ + -Dgtk_doc=true \ + %{nil} +%meson_build %install -%make_install +%meson_install %find_lang accounts-service -find %{buildroot} -type f -name "*.la" -delete -print %pre %service_add_pre accounts-daemon.service @@ -139,7 +137,7 @@ find %{buildroot} -type f -name "*.la" -delete -print %files %license COPYING -%doc NEWS README +%doc NEWS README.md %{_unitdir}/accounts-daemon.service %{_sysconfdir}/dbus-1/system.d/org.freedesktop.Accounts.conf %{_libexecdir}/accounts-daemon