From dce7c84bbbee09a7d97c60af6aa11eb90e4c0aaa Mon Sep 17 00:00:00 2001 From: Gleb Popov Date: Sat, 12 Aug 2023 21:19:00 +0300 Subject: [PATCH] sysutils/accountsservice: Switch to my fork and update to 23.13.9 My fork incorporates adapted patches from Olivier Duchateau. PR: 270881 Sponsored by: Serenity Cybersecurity, LLC --- sysutils/accountsservice/Makefile | 26 +- sysutils/accountsservice/distinfo | 8 +- .../files/patch-generate-version.sh | 11 + .../accountsservice/files/patch-meson.build | 16 +- .../files/patch-meson__post__install.py | 6 +- .../accountsservice/files/patch-src_daemon.c | 294 ------------------ ...-src_libaccountsservice_act-user-manager.c | 24 -- .../patch-src_libaccountsservice_act-user.c | 11 - .../files/patch-src_meson.build | 6 +- .../files/patch-src_user-classify.c | 18 -- .../accountsservice/files/patch-src_user.c | 248 --------------- .../accountsservice/files/patch-src_user.h | 27 -- .../accountsservice/files/patch-src_util.c | 11 - .../files/patch-src_wtmp-helper.h | 10 - sysutils/accountsservice/pkg-plist | 4 +- 15 files changed, 44 insertions(+), 676 deletions(-) create mode 100644 sysutils/accountsservice/files/patch-generate-version.sh delete mode 100644 sysutils/accountsservice/files/patch-src_daemon.c delete mode 100644 sysutils/accountsservice/files/patch-src_libaccountsservice_act-user-manager.c delete mode 100644 sysutils/accountsservice/files/patch-src_libaccountsservice_act-user.c delete mode 100644 sysutils/accountsservice/files/patch-src_user-classify.c delete mode 100644 sysutils/accountsservice/files/patch-src_user.c delete mode 100644 sysutils/accountsservice/files/patch-src_user.h delete mode 100644 sysutils/accountsservice/files/patch-src_util.c delete mode 100644 sysutils/accountsservice/files/patch-src_wtmp-helper.h diff --git a/sysutils/accountsservice/Makefile b/sysutils/accountsservice/Makefile index 6078b9d809839..e4b92dbde119a 100644 --- a/sysutils/accountsservice/Makefile +++ b/sysutils/accountsservice/Makefile @@ -1,13 +1,9 @@ PORTNAME= accountsservice -PORTVERSION= 0.6.55 -PORTREVISION= 5 +PORTVERSION= 23.13.9 CATEGORIES= sysutils devel -MASTER_SITES= http://www.freedesktop.org/software/${PORTNAME}/ +MASTER_SITES= https://www.freedesktop.org/software/${PORTNAME}/ -PATCH_SITES= https://gitlab.freedesktop.org/${PORTNAME}/${PORTNAME}/-/commit/ -PATCHFILES+= ac9b14f1c1bb.patch:-p1 # https://gitlab.freedesktop.org/accountsservice/accountsservice/-/merge_requests/82 - -MAINTAINER= kwm@FreeBSD.org +MAINTAINER= desktop@FreeBSD.org COMMENT= D-Bus interface for user account query and manipulation WWW= https://gitlab.freedesktop.org/accountsservice/accountsservice @@ -15,16 +11,24 @@ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= dbus>0:devel/dbus -LIB_DEPENDS= libpolkit-gobject-1.so:sysutils/polkit +LIB_DEPENDS= libpolkit-gobject-1.so:sysutils/polkit \ + libconsolekit.so:sysutils/consolekit2 USES= cpe gettext gnome localbase:ldflags meson pkgconfig tar:xz CPE_VENDOR= freedesktop USE_GNOME= glib20 intltool libxslt introspection:build USE_LDCONFIG= yes -MESON_ARGS= -Delogind=false \ +MESON_ARGS= -Dconsolekit=true \ -Dgdmconffile=${LOCALBASE}/etc/gdm/custom.conf \ + -Dlightdmconffile=${LOCALBASE}/etc/lightdm/lightdm.conf \ -Dlocalstatedir=/var \ - -Dsystemd=false \ - -Dsystemdsystemunitdir=no + -Dsystemdsystemunitdir=no \ + -Dvapi=false \ + -Dtests=false + +USE_GITLAB= yes +GL_SITE= https://gitlab.freedesktop.org +GL_ACCOUNT= arrowd +GL_TAGNAME= 1ad459450480baa3e2024db4edee0a30ca0edc20 .include diff --git a/sysutils/accountsservice/distinfo b/sysutils/accountsservice/distinfo index 85de866bdfc4b..04b2d57f9efa9 100644 --- a/sysutils/accountsservice/distinfo +++ b/sysutils/accountsservice/distinfo @@ -1,5 +1,3 @@ -TIMESTAMP = 1600462353 -SHA256 (accountsservice-0.6.55.tar.xz) = ff2b2419a7e06bd9cb335ffe391c7409b49a0f0130b890bd54692a3986699c9b -SIZE (accountsservice-0.6.55.tar.xz) = 97972 -SHA256 (ac9b14f1c1bb.patch) = 2a369203c0f9d091ab1d6ff46c3b9ab88c345ed27e314f04a867ccc4b33e2be2 -SIZE (ac9b14f1c1bb.patch) = 723 +TIMESTAMP = 1691866961 +SHA256 (arrowd-accountsservice-1ad459450480baa3e2024db4edee0a30ca0edc20_GL0.tar.gz) = 0e6c21e99c117f1e233d91863c89fb71f97b10602145003ac8a50a48d34cfc16 +SIZE (arrowd-accountsservice-1ad459450480baa3e2024db4edee0a30ca0edc20_GL0.tar.gz) = 669339 diff --git a/sysutils/accountsservice/files/patch-generate-version.sh b/sysutils/accountsservice/files/patch-generate-version.sh new file mode 100644 index 0000000000000..f979a4b00b78c --- /dev/null +++ b/sysutils/accountsservice/files/patch-generate-version.sh @@ -0,0 +1,11 @@ +--- generate-version.sh.orig 2023-08-12 19:01:30 UTC ++++ generate-version.sh +@@ -7,7 +7,7 @@ exec 2>&3 + exec 2>&3 + + # If it's not from a git checkout, assume it's from a tarball +-if ! git rev-parse --is-inside-git-dir > /dev/null 2>&1; then ++if ! false > /dev/null 2>&1; then + VERSION_FROM_DIR_NAME=$(basename "$CWD" | sed -n 's/^accountsservice-\([^-]*\)$/\1/p') + + if [ -n "$VERSION_FROM_DIR_NAME" ]; then diff --git a/sysutils/accountsservice/files/patch-meson.build b/sysutils/accountsservice/files/patch-meson.build index 13ecb2d1e7127..0c44fe80183b8 100644 --- a/sysutils/accountsservice/files/patch-meson.build +++ b/sysutils/accountsservice/files/patch-meson.build @@ -1,16 +1,10 @@ ---- meson.build.orig 2018-09-29 12:54:53 UTC +--- meson.build.orig 2023-08-12 19:01:30 UTC +++ meson.build -@@ -82,8 +82,11 @@ if cc.has_header_symbol('utmpx.h', 'WTMPX_FILENAME', p - elif cc.has_header_symbol('paths.h', '_PATH_WTMPX') +@@ -105,7 +105,6 @@ else config_h.set('PATH_WTMP', '_PATH_WTMPX') else -- assert(run_command('test', '-e', '/var/log/utx.log').returncode() == 0, 'Do not know which filename to watch for wtmp changes') -- config_h.set_quoted('PATH_WTMP', '/var/log/utx.log') -+ # Ugly hack for jails builders! -+ _system = host_machine.system().to_lower() -+ if _system.contains('freebsd') -+ config_h.set_quoted('PATH_WTMP', '/var/log/utx.log') -+ endif + path_wtmp = '/var/log/utx.log' +- assert(run_command('test', '-e', path_wtmp, check: false).returncode() == 0, 'Do not know which filename to watch for wtmp changes') + config_h.set_quoted('PATH_WTMP', path_wtmp) endif - # compiler flags diff --git a/sysutils/accountsservice/files/patch-meson__post__install.py b/sysutils/accountsservice/files/patch-meson__post__install.py index e0d71f5e7c414..26da68052247a 100644 --- a/sysutils/accountsservice/files/patch-meson__post__install.py +++ b/sysutils/accountsservice/files/patch-meson__post__install.py @@ -1,11 +1,13 @@ ---- meson_post_install.py.orig 2019-04-23 15:16:09 UTC +--- meson_post_install.py.orig 2022-02-15 21:53:55 UTC +++ meson_post_install.py -@@ -9,8 +9,8 @@ localstatedir = os.path.normpath(destdir + os.sep + sy +@@ -9,9 +9,9 @@ localstatedir = os.path.normpath(destdir + os.sep + sy # FIXME: meson will not track the creation of these directories # https://github.com/mesonbuild/meson/blob/master/mesonbuild/scripts/uninstall.py#L39 dst_dirs = [ +- (os.path.join(localstatedir, 'lib'), 0o755), - (os.path.join(localstatedir, 'lib', 'AccountsService', 'icons'), 0o775), - (os.path.join(localstatedir, 'lib', 'AccountsService', 'users'), 0o700), ++ (os.path.join(localstatedir, 'db'), 0o755), + (os.path.join(localstatedir, 'db', 'AccountsService', 'icons'), 0o775), + (os.path.join(localstatedir, 'db', 'AccountsService', 'users'), 0o700), ] diff --git a/sysutils/accountsservice/files/patch-src_daemon.c b/sysutils/accountsservice/files/patch-src_daemon.c deleted file mode 100644 index 3a7131000a898..0000000000000 --- a/sysutils/accountsservice/files/patch-src_daemon.c +++ /dev/null @@ -1,294 +0,0 @@ ---- src/daemon.c.orig 2018-09-26 13:20:49 UTC -+++ src/daemon.c -@@ -79,7 +79,11 @@ typedef struct { - GHashTable *extension_ifaces; - } DaemonPrivate; - -+#ifdef HAVE_SHADOW_H - typedef struct passwd * (* EntryGeneratorFunc) (Daemon *, GHashTable *, gpointer *, struct spwd **shadow_entry); -+#else -+typedef struct passwd * (* EntryGeneratorFunc) (Daemon *, GHashTable *, gpointer *); -+#endif - - static void daemon_accounts_accounts_iface_init (AccountsAccountsIface *iface); - -@@ -154,17 +158,25 @@ remove_cache_files (const gchar *user_name) - } - - static struct passwd * -+#ifdef HAVE_SHADOW_H - entry_generator_fgetpwent (Daemon *daemon, - GHashTable *users, - gpointer *state, - struct spwd **spent) -+#else -+entry_generator_fgetpwent (Daemon *daemon, -+ GHashTable *users, -+ gpointer *state) -+#endif - { - struct passwd *pwent; - -+#ifdef HAVE_SHADOW_H - struct { - struct spwd spbuf; - char buf[1024]; - } *shadow_entry_buffers; -+#endif - - struct { - FILE *fp; -@@ -175,6 +187,7 @@ entry_generator_fgetpwent (Daemon *daemon, - if (*state == NULL) { - GHashTable *shadow_users = NULL; - FILE *fp; -+#ifdef HAVE_SHADOW_H - struct spwd *shadow_entry; - - fp = fopen (PATH_SHADOW, "r"); -@@ -208,6 +221,7 @@ entry_generator_fgetpwent (Daemon *daemon, - g_clear_pointer (&shadow_users, g_hash_table_unref); - return NULL; - } -+#endif - - fp = fopen (PATH_PASSWD, "r"); - if (fp == NULL) { -@@ -229,12 +243,17 @@ entry_generator_fgetpwent (Daemon *daemon, - if (g_hash_table_size (users) < MAX_LOCAL_USERS) { - pwent = fgetpwent (generator_state->fp); - if (pwent != NULL) { -+#ifdef HAVE_SHADOW_H - shadow_entry_buffers = g_hash_table_lookup (generator_state->users, pwent->pw_name); - - if (shadow_entry_buffers != NULL) { - *spent = &shadow_entry_buffers->spbuf; - } - return pwent; -+#else -+ if (!generator_state->users || g_hash_table_lookup (generator_state->users, pwent->pw_name)) -+ return pwent; -+#endif - } - } - -@@ -248,10 +267,16 @@ entry_generator_fgetpwent (Daemon *daemon, - } - - static struct passwd * -+#ifdef HAVE_SHADOW_H - entry_generator_cachedir (Daemon *daemon, - GHashTable *users, - gpointer *state, - struct spwd **shadow_entry) -+#else -+entry_generator_cachedir (Daemon *daemon, -+ GHashTable *users, -+ gpointer *state) -+#endif - { - struct passwd *pwent; - g_autoptr(GError) error = NULL; -@@ -293,7 +318,9 @@ entry_generator_cachedir (Daemon *daemon, - errno = 0; - pwent = getpwnam (name); - if (pwent != NULL) { -+#ifdef HAVE_SHADOW_H - *shadow_entry = getspnam (pwent->pw_name); -+#endif - - return pwent; - } else if (errno == 0) { -@@ -329,10 +356,16 @@ entry_generator_cachedir (Daemon *daemon, - } - - static struct passwd * -+#ifdef HAVE_SHADOW_H - entry_generator_requested_users (Daemon *daemon, - GHashTable *users, - gpointer *state, - struct spwd **shadow_entry) -+#else -+entry_generator_requested_users (Daemon *daemon, -+ GHashTable *users, -+ gpointer *state) -+#endif - { - DaemonPrivate *priv = daemon_get_instance_private (daemon); - struct passwd *pwent; -@@ -360,7 +393,9 @@ entry_generator_requested_users (Daemon *daemon, - if (pwent == NULL) { - g_debug ("user '%s' requested previously but not present on system", name); - } else { -+#ifdef HAVE_SHADOW_H - *shadow_entry = getspnam (pwent->pw_name); -+#endif - - return pwent; - } -@@ -383,19 +418,29 @@ load_entries (Daemon *daemon, - DaemonPrivate *priv = daemon_get_instance_private (daemon); - gpointer generator_state = NULL; - struct passwd *pwent; -+#ifdef HAVE_SHADOW_H - struct spwd *spent = NULL; -+#endif - User *user = NULL; - - g_assert (entry_generator != NULL); - - for (;;) { -+#ifdef HAVE_SHADOW_H - spent = NULL; - pwent = entry_generator (daemon, users, &generator_state, &spent); -+#else -+ pwent = entry_generator (daemon, users, &generator_state); -+#endif - if (pwent == NULL) - break; - - /* Skip system users... */ -+#ifdef HAVE_SHADOW_H - if (!explicitly_requested && !user_classify_is_human (pwent->pw_uid, pwent->pw_name, pwent->pw_shell, spent? spent->sp_pwdp : NULL)) { -+#else -+ if (!explicitly_requested && !user_classify_is_human (pwent->pw_uid, pwent->pw_name, pwent->pw_shell, NULL)) { -+#endif - g_debug ("skipping user: %s", pwent->pw_name); - continue; - } -@@ -417,7 +462,11 @@ load_entries (Daemon *daemon, - - /* freeze & update users not already in the new list */ - g_object_freeze_notify (G_OBJECT (user)); -+#ifdef HAVE_SHADOW_H - user_update_from_pwent (user, pwent, spent); -+#else -+ user_update_from_pwent (user, pwent); -+#endif - - g_hash_table_insert (users, g_strdup (user_get_user_name (user)), user); - g_debug ("loaded user: %s", user_get_user_name (user)); -@@ -823,15 +872,24 @@ throw_error (GDBusMethodInvocation *context, - } - - static User * -+#ifdef HAVE_SHADOW_H - add_new_user_for_pwent (Daemon *daemon, - struct passwd *pwent, - struct spwd *spent) -+#else -+add_new_user_for_pwent (Daemon *daemon, -+ struct passwd *pwent) -+#endif - { - DaemonPrivate *priv = daemon_get_instance_private (daemon); - User *user; - - user = user_new (daemon, pwent->pw_uid); -+#ifdef HAVE_SHADOW_H - user_update_from_pwent (user, pwent, spent); -+#else -+ user_update_from_pwent (user, pwent); -+#endif - user_register (user); - - g_hash_table_insert (priv->users, -@@ -860,9 +918,13 @@ daemon_local_find_user_by_id (Daemon *daemon, - user = g_hash_table_lookup (priv->users, pwent->pw_name); - - if (user == NULL) { -+#ifdef HAVE_SHADOW_H - struct spwd *spent; - spent = getspnam (pwent->pw_name); - user = add_new_user_for_pwent (daemon, pwent, spent); -+#else -+ user = add_new_user_for_pwent (daemon, pwent); -+#endif - - priv->explicitly_requested_users = g_list_append (priv->explicitly_requested_users, - g_strdup (pwent->pw_name)); -@@ -888,9 +950,13 @@ daemon_local_find_user_by_name (Daemon *daemon, - user = g_hash_table_lookup (priv->users, pwent->pw_name); - - if (user == NULL) { -+#ifdef HAVE_SHADOW_H - struct spwd *spent; - spent = getspnam (pwent->pw_name); - user = add_new_user_for_pwent (daemon, pwent, spent); -+#else -+ user = add_new_user_for_pwent (daemon, pwent); -+#endif - - priv->explicitly_requested_users = g_list_append (priv->explicitly_requested_users, - g_strdup (pwent->pw_name)); -@@ -1095,10 +1161,12 @@ daemon_create_user_authorized_cb (Daemon - - sys_log (context, "create user '%s'", cd->user_name); - -- argv[0] = "/usr/sbin/useradd"; -- argv[1] = "-m"; -- argv[2] = "-c"; -- argv[3] = cd->real_name; -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = "useradd"; -+ argv[2] = cd->user_name; -+ argv[3] = "-m"; -+ argv[4] = "-c"; -+ argv[5] = cd->real_name; - if (cd->account_type == ACCOUNT_TYPE_ADMINISTRATOR) { - if (EXTRA_ADMIN_GROUPS != NULL && EXTRA_ADMIN_GROUPS[0] != '\0') - admin_groups = g_strconcat (ADMIN_GROUP, ",", -@@ -1106,15 +1174,11 @@ daemon_create_user_authorized_cb (Daemon - else - admin_groups = g_strdup (ADMIN_GROUP); - -- argv[4] = "-G"; -- argv[5] = admin_groups; -- argv[6] = "--"; -- argv[7] = cd->user_name; -+ argv[6] = "-G"; -+ argv[7] = admin_groups; - argv[8] = NULL; - } - else if (cd->account_type == ACCOUNT_TYPE_STANDARD) { -- argv[4] = "--"; -- argv[5] = cd->user_name; - argv[6] = NULL; - } - else { -@@ -1281,7 +1345,7 @@ daemon_delete_user_authorized_cb (Daemon - DeleteUserData *ud = data; - g_autoptr(GError) error = NULL; - struct passwd *pwent; -- const gchar *argv[6]; -+ const gchar *argv[5]; - User *user; - - pwent = getpwuid (ud->uid); -@@ -1307,19 +1371,16 @@ daemon_delete_user_authorized_cb (Daemon - - user_set_saved (user, FALSE); - -- argv[0] = "/usr/sbin/userdel"; -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = "userdel"; - if (ud->remove_files) { -- argv[1] = "-f"; -- argv[2] = "-r"; -- argv[3] = "--"; -- argv[4] = pwent->pw_name; -- argv[5] = NULL; -+ argv[2] = pwent->pw_name; -+ argv[3] = "-r"; -+ argv[4] = NULL; - } - else { -- argv[1] = "-f"; -- argv[2] = "--"; -- argv[3] = pwent->pw_name; -- argv[4] = NULL; -+ argv[2] = pwent->pw_name; -+ argv[3] = NULL; - } - - if (!spawn_with_login_uid (context, argv, &error)) { diff --git a/sysutils/accountsservice/files/patch-src_libaccountsservice_act-user-manager.c b/sysutils/accountsservice/files/patch-src_libaccountsservice_act-user-manager.c deleted file mode 100644 index 9026883f2cc62..0000000000000 --- a/sysutils/accountsservice/files/patch-src_libaccountsservice_act-user-manager.c +++ /dev/null @@ -1,24 +0,0 @@ -Obtained from: - https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/sysutils/accountsservice/patches/patch-src_libaccountsservice_act-user-manager_c - -$OpenBSD: patch-src_libaccountsservice_act-user-manager_c,v 1.2 2021/08/30 19:15:24 ajacoutot Exp $ - -REVERT: (breaks listing users in gdm and gnome-cc and unlocking screenshield) -From c7fa612023a163e8b2352e1170c6df3fceb19b27 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Thu, 19 Jul 2018 13:14:09 -0400 -Subject: [PATCH] lib: don't set loaded state until seat is fetched - -Index: src/libaccountsservice/act-user-manager.c ---- src/libaccountsservice/act-user-manager.c.orig -+++ src/libaccountsservice/act-user-manager.c -@@ -2547,7 +2547,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 (priv->seat.state > ACT_USER_MANAGER_SEAT_STATE_GET_ID) { -+ if (priv->seat.state >= ACT_USER_MANAGER_SEAT_STATE_GET_ID) { - g_debug ("ActUserManager: Seat loaded, so now setting loaded property"); - } else if (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"); - diff --git a/sysutils/accountsservice/files/patch-src_libaccountsservice_act-user.c b/sysutils/accountsservice/files/patch-src_libaccountsservice_act-user.c deleted file mode 100644 index f8b4dfae0ce7f..0000000000000 --- a/sysutils/accountsservice/files/patch-src_libaccountsservice_act-user.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/libaccountsservice/act-user.c.orig 2018-04-04 13:59:42 UTC -+++ src/libaccountsservice/act-user.c -@@ -26,8 +26,6 @@ - #include - #include - --#include -- - #include - #include - #include diff --git a/sysutils/accountsservice/files/patch-src_meson.build b/sysutils/accountsservice/files/patch-src_meson.build index 9687666febae6..6370fd7be6dfc 100644 --- a/sysutils/accountsservice/files/patch-src_meson.build +++ b/sysutils/accountsservice/files/patch-src_meson.build @@ -1,9 +1,9 @@ ---- src/meson.build.orig 2018-09-29 12:54:53 UTC +--- src/meson.build.orig 2022-01-28 20:47:34 UTC +++ src/meson.build -@@ -26,8 +26,8 @@ deps = [ - cflags = [ +@@ -28,8 +28,8 @@ cflags = [ '-DLOCALSTATEDIR="@0@"'.format(act_localstatedir), '-DDATADIR="@0@"'.format(act_datadir), + '-DSYSCONFDIR="@0@"'.format(act_sysconfdir), - '-DICONDIR="@0@"'.format(join_paths(act_localstatedir, 'lib', 'AccountsService', 'icons')), - '-DUSERDIR="@0@"'.format(join_paths(act_localstatedir, 'lib', 'AccountsService', 'users')), + '-DICONDIR="@0@"'.format(join_paths(act_localstatedir, 'db', 'AccountsService', 'icons')), diff --git a/sysutils/accountsservice/files/patch-src_user-classify.c b/sysutils/accountsservice/files/patch-src_user-classify.c deleted file mode 100644 index ae8aae3d31295..0000000000000 --- a/sysutils/accountsservice/files/patch-src_user-classify.c +++ /dev/null @@ -1,18 +0,0 @@ ---- src/user-classify.c.orig 2014-03-15 15:09:59.000000000 +0100 -+++ src/user-classify.c 2014-03-15 15:11:06.000000000 +0100 -@@ -44,6 +44,7 @@ - "nobody4", - "noaccess", - "postgres", -+ "pgsql", - "pvm", - "rpm", - "nfsnobody", -@@ -53,6 +54,7 @@ - "games", - "man", - "at", -+ "saned", - "gdm", - "gnome-initial-setup" - }; diff --git a/sysutils/accountsservice/files/patch-src_user.c b/sysutils/accountsservice/files/patch-src_user.c deleted file mode 100644 index 97de2d32f798e..0000000000000 --- a/sysutils/accountsservice/files/patch-src_user.c +++ /dev/null @@ -1,248 +0,0 @@ ---- src/user.c.orig 2018-04-20 20:52:07 UTC -+++ src/user.c -@@ -138,9 +138,14 @@ user_reset_icon_file (User *user) - } - - void -+#ifdef HAVE_SHADOW_H - user_update_from_pwent (User *user, - struct passwd *pwent, - struct spwd *spent) -+#else -+user_update_from_pwent (User *user, -+ struct passwd *pwent) -+#endif - { - g_autofree gchar *real_name = NULL; - gboolean is_system_account; -@@ -199,8 +204,10 @@ user_update_from_pwent (User *user, - accounts_user_set_shell (ACCOUNTS_USER (user), pwent->pw_shell); - - passwd = NULL; -+#ifdef HAVE_SHADOW_H - if (spent) - passwd = spent->sp_pwdp; -+#endif - - if (passwd && passwd[0] == '!') { - locked = TRUE; -@@ -218,6 +225,7 @@ user_update_from_pwent (User *user, - mode = PASSWORD_MODE_NONE; - } - -+#ifdef HAVE_SHADOW_H - if (spent) { - if (spent->sp_lstchg == 0) { - mode = PASSWORD_MODE_SET_AT_LOGIN; -@@ -231,6 +239,9 @@ user_update_from_pwent (User *user, - user->days_after_expiration_until_lock = spent->sp_inact; - user->account_expiration_policy_known = TRUE; - } -+#else -+ user->expiration_time = pwent->pw_expire; -+#endif - - accounts_user_set_password_mode (ACCOUNTS_USER (user), mode); - is_system_account = !user_classify_is_human (accounts_user_get_uid (ACCOUNTS_USER (user)), -@@ -813,11 +824,11 @@ user_change_real_name_authorized_cb (Daemon - accounts_user_get_uid (ACCOUNTS_USER (user)), - name); - -- argv[0] = "/usr/sbin/usermod"; -- argv[1] = "-c"; -- argv[2] = name; -- argv[3] = "--"; -- argv[4] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = "usermod"; -+ argv[2] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[3] = "-c"; -+ argv[4] = name; - argv[5] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { -@@ -882,11 +893,11 @@ user_change_user_name_authorized_cb (Daemon - accounts_user_get_uid (ACCOUNTS_USER (user)), - name); - -- argv[0] = "/usr/sbin/usermod"; -- argv[1] = "-l"; -- argv[2] = name; -- argv[3] = "--"; -- argv[4] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = "usermod"; -+ argv[2] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[3] = "-n"; -+ argv[4] = name; - argv[5] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { -@@ -1183,7 +1194,7 @@ user_change_home_dir_authorized_cb (Daemon - { - gchar *home_dir = data; - g_autoptr(GError) error = NULL; -- const gchar *argv[7]; -+ const gchar *argv[6]; - - if (g_strcmp0 (accounts_user_get_home_directory (ACCOUNTS_USER (user)), home_dir) != 0) { - sys_log (context, -@@ -1192,13 +1203,12 @@ user_change_home_dir_authorized_cb (Daemon - accounts_user_get_uid (ACCOUNTS_USER (user)), - home_dir); - -- argv[0] = "/usr/sbin/usermod"; -- argv[1] = "-m"; -- argv[2] = "-d"; -- argv[3] = home_dir; -- argv[4] = "--"; -- argv[5] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -- argv[6] = NULL; -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = "-d"; -+ argv[2] = home_dir; -+ argv[3] = "-n"; -+ argv[4] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[5] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { - throw_error (context, ERROR_FAILED, "running '%s' failed: %s", argv[0], error->message); -@@ -1249,11 +1259,11 @@ user_change_shell_authorized_cb (Daemon - accounts_user_get_uid (ACCOUNTS_USER (user)), - shell); - -- argv[0] = "/usr/sbin/usermod"; -- argv[1] = "-s"; -- argv[2] = shell; -- argv[3] = "--"; -- argv[4] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = "usermod"; -+ argv[2] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[3] = "-s"; -+ argv[4] = shell; - argv[5] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { -@@ -1456,7 +1466,7 @@ user_change_locked_authorized_cb (Daemon - { - gboolean locked = GPOINTER_TO_INT (data); - g_autoptr(GError) error = NULL; -- const gchar *argv[5]; -+ const gchar *argv[4]; - - if (accounts_user_get_locked (ACCOUNTS_USER (user)) != locked) { - sys_log (context, -@@ -1464,11 +1474,10 @@ user_change_locked_authorized_cb (Daemon - locked ? "locking" : "unlocking", - accounts_user_get_user_name (ACCOUNTS_USER (user)), - accounts_user_get_uid (ACCOUNTS_USER (user))); -- argv[0] = "/usr/sbin/usermod"; -- argv[1] = locked ? "-L" : "-U"; -- argv[2] = "--"; -- argv[3] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -- argv[4] = NULL; -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = locked ? "lock" : "unlock"; -+ argv[2] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[3] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { - throw_error (context, ERROR_FAILED, "running '%s' failed: %s", argv[0], error->message); -@@ -1589,11 +1598,11 @@ user_change_account_type_authorized_cb (Daemon - - g_free (groups); - -- argv[0] = "/usr/sbin/usermod"; -- argv[1] = "-G"; -- argv[2] = str->str; -- argv[3] = "--"; -- argv[4] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = "usermod"; -+ argv[2] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[3] = "-G"; -+ argv[4] = str->str; - argv[5] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { -@@ -1643,7 +1652,7 @@ user_change_password_mode_authorized_cb (Daemon - { - PasswordMode mode = GPOINTER_TO_INT (data); - g_autoptr(GError) error = NULL; -- const gchar *argv[6]; -+ const gchar *argv[5]; - - if (((PasswordMode) accounts_user_get_password_mode (ACCOUNTS_USER (user))) != mode) { - sys_log (context, -@@ -1658,10 +1667,8 @@ user_change_password_mode_authorized_cb (Daemon - mode == PASSWORD_MODE_NONE) { - - argv[0] = "/usr/bin/passwd"; -- argv[1] = "-d"; -- argv[2] = "--"; -- argv[3] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -- argv[4] = NULL; -+ argv[1] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[2] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { - throw_error (context, ERROR_FAILED, "running '%s' failed: %s", argv[0], error->message); -@@ -1669,12 +1676,11 @@ user_change_password_mode_authorized_cb (Daemon - } - - if (mode == PASSWORD_MODE_SET_AT_LOGIN) { -- argv[0] = "/usr/bin/chage"; -- argv[1] = "-d"; -+ argv[0] = "/usr/bin/chpass"; -+ argv[1] = "-e"; - argv[2] = "0"; -- argv[3] = "--"; -- argv[4] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -- argv[5] = NULL; -+ argv[3] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[4] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { - throw_error (context, ERROR_FAILED, "running '%s' failed: %s", argv[0], error->message); -@@ -1690,11 +1696,10 @@ user_change_password_mode_authorized_cb (Daemon - accounts_user_set_locked (ACCOUNTS_USER (user), FALSE); - } - else if (accounts_user_get_locked (ACCOUNTS_USER (user))) { -- argv[0] = "/usr/sbin/usermod"; -- argv[1] = "-U"; -- argv[2] = "--"; -- argv[3] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -- argv[4] = NULL; -+ argv[0] = "/usr/sbin/pw"; -+ argv[1] = "unlock"; -+ argv[2] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[3] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { - throw_error (context, ERROR_FAILED, "running '%s' failed: %s", argv[0], error->message); -@@ -1759,7 +1764,7 @@ user_change_password_authorized_cb (Daemon - { - gchar **strings = data; - g_autoptr(GError) error = NULL; -- const gchar *argv[6]; -+ const gchar *argv[5]; - - sys_log (context, - "set password and hint of user '%s' (%d)", -@@ -1768,12 +1773,11 @@ user_change_password_authorized_cb (Daemon - - g_object_freeze_notify (G_OBJECT (user)); - -- argv[0] = "/usr/sbin/usermod"; -+ argv[0] = "/usr/bin/chpass"; - argv[1] = "-p"; - argv[2] = strings[0]; -- argv[3] = "--"; -- argv[4] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -- argv[5] = NULL; -+ argv[3] = accounts_user_get_user_name (ACCOUNTS_USER (user)); -+ argv[4] = NULL; - - if (!spawn_with_login_uid (context, argv, &error)) { - throw_error (context, ERROR_FAILED, "running '%s' failed: %s", argv[0], error->message); diff --git a/sysutils/accountsservice/files/patch-src_user.h b/sysutils/accountsservice/files/patch-src_user.h deleted file mode 100644 index fa8454f7518c9..0000000000000 --- a/sysutils/accountsservice/files/patch-src_user.h +++ /dev/null @@ -1,27 +0,0 @@ ---- src/user.h.orig 2016-09-06 17:31:50 UTC -+++ src/user.h -@@ -22,7 +22,9 @@ - - #include - #include -+#ifdef HAVE_SHADOW_H - #include -+#endif - - #include - #include -@@ -54,9 +56,14 @@ GType user_get_type (void) G_G - User * user_new (Daemon *daemon, - uid_t uid); - -+#ifdef HAVE_SHADOW_H - void user_update_from_pwent (User *user, - struct passwd *pwent, - struct spwd *spent); -+#else -+void user_update_from_pwent (User *user, -+ struct passwd *pwent); -+#endif - void user_update_from_keyfile (User *user, - GKeyFile *keyfile); - void user_update_local_account_property (User *user, diff --git a/sysutils/accountsservice/files/patch-src_util.c b/sysutils/accountsservice/files/patch-src_util.c deleted file mode 100644 index 079b7ba75b4b0..0000000000000 --- a/sysutils/accountsservice/files/patch-src_util.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/util.c.orig 2019-04-23 15:16:09 UTC -+++ src/util.c -@@ -254,7 +254,7 @@ get_user_groups (const gchar *user, - *groups = g_new (gid_t, ngroups); - res = getgrouplist (user, group, *groups, &ngroups); - -- return res; -+ return res == 0 ? ngroups : res; - } - - diff --git a/sysutils/accountsservice/files/patch-src_wtmp-helper.h b/sysutils/accountsservice/files/patch-src_wtmp-helper.h deleted file mode 100644 index ab14253510ac2..0000000000000 --- a/sysutils/accountsservice/files/patch-src_wtmp-helper.h +++ /dev/null @@ -1,10 +0,0 @@ ---- src/wtmp-helper.h.orig 2016-09-06 19:48:50 UTC -+++ src/wtmp-helper.h -@@ -23,7 +23,6 @@ - - #include - #include --#include - - const gchar * wtmp_helper_get_path_for_monitor (void); - void wtmp_helper_update_login_frequencies (GHashTable *users); diff --git a/sysutils/accountsservice/pkg-plist b/sysutils/accountsservice/pkg-plist index c9b64a57e9426..fd029358fc1b3 100644 --- a/sysutils/accountsservice/pkg-plist +++ b/sysutils/accountsservice/pkg-plist @@ -1,4 +1,3 @@ -etc/dbus-1/system.d/org.freedesktop.Accounts.conf include/accountsservice-1.0/act/act-user-enum-types.h include/accountsservice-1.0/act/act-user-manager.h include/accountsservice-1.0/act/act-user.h @@ -9,9 +8,12 @@ lib/libaccountsservice.so.0 lib/libaccountsservice.so.0.0.0 libdata/pkgconfig/accountsservice.pc libexec/accounts-daemon +%%DATADIR%%/user-templates/administrator +%%DATADIR%%/user-templates/standard share/dbus-1/interfaces/org.freedesktop.Accounts.User.xml share/dbus-1/interfaces/org.freedesktop.Accounts.xml share/dbus-1/system-services/org.freedesktop.Accounts.service +share/dbus-1/system.d/org.freedesktop.Accounts.conf share/gir-1.0/AccountsService-1.0.gir share/locale/af/LC_MESSAGES/accounts-service.mo share/locale/ar/LC_MESSAGES/accounts-service.mo