From 062fda667aec4e9a4edaf942219c49d14d95ac1a Mon Sep 17 00:00:00 2001 From: ajacoutot Date: Sun, 22 May 2011 10:57:32 +0000 Subject: [PATCH] Import accountsservice-0.6.12. The AccountsService project provides: * A set of D-Bus interfaces for querying and manipulating user account information. * An implementation of these interfaces based on the usermod(8), useradd(8) and userdel(8) commands ok jasper@ ("though I'm surprised they didn't name it 'accountskit'") --- sysutils/accountsservice/Makefile | 49 ++++++++ sysutils/accountsservice/distinfo | 5 + .../patches/patch-src_Makefile_in | 12 ++ .../patches/patch-src_daemon_c | 108 ++++++++++++++++++ .../patch-src_libaccountsservice_Makefile_in | 12 ++ .../accountsservice/patches/patch-src_user_c | 87 ++++++++++++++ .../accountsservice/patches/patch-src_util_c | 12 ++ sysutils/accountsservice/pkg/DESCR | 5 + sysutils/accountsservice/pkg/PFRAG.shared | 2 + sysutils/accountsservice/pkg/PLIST | 87 ++++++++++++++ 10 files changed, 379 insertions(+) create mode 100644 sysutils/accountsservice/Makefile create mode 100644 sysutils/accountsservice/distinfo create mode 100644 sysutils/accountsservice/patches/patch-src_Makefile_in create mode 100644 sysutils/accountsservice/patches/patch-src_daemon_c create mode 100644 sysutils/accountsservice/patches/patch-src_libaccountsservice_Makefile_in create mode 100644 sysutils/accountsservice/patches/patch-src_user_c create mode 100644 sysutils/accountsservice/patches/patch-src_util_c create mode 100644 sysutils/accountsservice/pkg/DESCR create mode 100644 sysutils/accountsservice/pkg/PFRAG.shared create mode 100644 sysutils/accountsservice/pkg/PLIST diff --git a/sysutils/accountsservice/Makefile b/sysutils/accountsservice/Makefile new file mode 100644 index 00000000000..6aa0d34a377 --- /dev/null +++ b/sysutils/accountsservice/Makefile @@ -0,0 +1,49 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2011/05/22 10:57:32 ajacoutot Exp $ + +COMMENT= D-Bus interface for user account query and manipulation + +DISTNAME= accountsservice-0.6.12 +EXTRACT_SUFX= .tar.bz2 + +SHARED_LIBS += accountsservice 0.0 # 0.0 + +CATEGORIES= sysutils + +HOMEPAGE= http://cgit.freedesktop.org/accountsservice/ + +MAINTAINER= Antoine Jacoutot + +# GPLv3 +PERMIT_PACKAGE_CDROM= Yes +PERMIT_PACKAGE_FTP= Yes +PERMIT_DISTFILES_CDROM= Yes +PERMIT_DISTFILES_FTP= Yes + +WANTLIB += c crypto dbus-1 dbus-glib-1 gio-2.0 glib-2.0 gmodule-2.0 +WANTLIB += gobject-2.0 gthread-2.0 pcre polkit-gobject-1 pthread +WANTLIB += z + +MASTER_SITES= http://www.freedesktop.org/software/accountsservice/ + +MODULES= devel/gettext + +BUILD_DEPENDS= devel/gobject-introspection + +LIB_DEPENDS= sysutils/polkit \ + x11/dbus-glib + +USE_GMAKE= Yes + +CONFIGURE_STYLE=gnu +CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ + LDFLAGS="-L${LOCALBASE}/lib" +CONFIGURE_ARGS= ${CONFIGURE_SHARED} \ + --enable-introspection \ + --disable-docbook-docs + +FAKE_FLAGS= sysconfdir=${PREFIX}/share/examples/accountsservice + +pre-configure: + ${SUBST_CMD} ${WRKSRC}/src/daemon.c + +.include diff --git a/sysutils/accountsservice/distinfo b/sysutils/accountsservice/distinfo new file mode 100644 index 00000000000..fdf2d44f52f --- /dev/null +++ b/sysutils/accountsservice/distinfo @@ -0,0 +1,5 @@ +MD5 (accountsservice-0.6.12.tar.bz2) = dOLaz0QQv6to2zD8wtqIGQ== +RMD160 (accountsservice-0.6.12.tar.bz2) = r9Keilvke6secVx710ekAjZYH7c= +SHA1 (accountsservice-0.6.12.tar.bz2) = i99BNFBad8cIjo39S/+LRK/zUDE= +SHA256 (accountsservice-0.6.12.tar.bz2) = H12YPQ4bZD9whekJkUVcWSDQZwluESKtF4T7luIuLGI= +SIZE (accountsservice-0.6.12.tar.bz2) = 344686 diff --git a/sysutils/accountsservice/patches/patch-src_Makefile_in b/sysutils/accountsservice/patches/patch-src_Makefile_in new file mode 100644 index 00000000000..14be73b92b7 --- /dev/null +++ b/sysutils/accountsservice/patches/patch-src_Makefile_in @@ -0,0 +1,12 @@ +$OpenBSD: patch-src_Makefile_in,v 1.1.1.1 2011/05/22 10:57:32 ajacoutot Exp $ +--- src/Makefile.in.orig Sun May 22 12:34:45 2011 ++++ src/Makefile.in Sun May 22 12:35:03 2011 +@@ -782,8 +782,6 @@ user-glue.h: $(top_srcdir)/data/org.freedesktop.Accoun + dbus-binding-tool --prefix=user --mode=glib-server --output=user-glue.h $(top_srcdir)/data/org.freedesktop.Accounts.User.xml + + install-data-hook: +- $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/AccountsService/users" +- $(MKDIR_P) "$(DESTDIR)$(localstatedir)/lib/AccountsService/icons" + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/sysutils/accountsservice/patches/patch-src_daemon_c b/sysutils/accountsservice/patches/patch-src_daemon_c new file mode 100644 index 00000000000..b842dd60fe2 --- /dev/null +++ b/sysutils/accountsservice/patches/patch-src_daemon_c @@ -0,0 +1,108 @@ +$OpenBSD: patch-src_daemon_c,v 1.1.1.1 2011/05/22 10:57:32 ajacoutot Exp $ +--- src/daemon.c.orig Thu May 19 05:39:12 2011 ++++ src/daemon.c Sun May 22 12:36:56 2011 +@@ -50,11 +50,14 @@ + #define PATH_SHADOW "/etc/shadow" + #define PATH_LOGIN_DEFS "/etc/login.defs" + ++#if defined(__FreeBSD__) || defined(__OpenBSD__) ++#define FALLBACK_MINIMAL_UID 1000 ++#endif + #ifndef FALLBACK_MINIMAL_UID + #define FALLBACK_MINIMAL_UID 500 + #endif + +-#define USERDIR LOCALSTATEDIR "/lib/AccountsService/users" ++#define USERDIR LOCALSTATEDIR "/db/AccountsService/users" + + static const char *default_excludes[] = { + "bin", +@@ -494,16 +497,24 @@ reload_passwd (Daemon *daemon) + old_users = NULL; + new_users = NULL; + ++#if defined(__FreeBSD__) || defined(__OpenBSD__) ++ setpwent(); ++#else + errno = 0; + fp = fopen (PATH_PASSWD, "r"); + if (fp == NULL) { + g_warning ("Unable to open %s: %s", PATH_PASSWD, g_strerror (errno)); + goto out; + } ++#endif + g_hash_table_foreach (daemon->priv->users, listify_hash_values_hfunc, &old_users); + g_slist_foreach (old_users, (GFunc) g_object_ref, NULL); + ++#if defined(__FreeBSD__) || defined(__OpenBSD__) ++ for (pwent = getpwent (); pwent != NULL; pwent = getpwent ()) { ++#else + for (pwent = fgetpwent (fp); pwent != NULL; pwent = fgetpwent (fp)) { ++#endif + /* Skip users below MINIMAL_UID... */ + if (daemon_local_user_is_excluded (daemon, pwent->pw_name, pwent->pw_uid)) { + g_debug ("skipping user: %s", pwent->pw_name); +@@ -556,7 +567,11 @@ reload_passwd (Daemon *daemon) + out: + /* Cleanup */ + ++#if defined(__FreeBSD__) || defined(__OpenBSD__) ++ endpwent (); ++#else + fclose (fp); ++#endif + + g_slist_foreach (new_users, (GFunc) g_object_thaw_notify, NULL); + g_slist_foreach (new_users, (GFunc) g_object_unref, NULL); +@@ -676,9 +691,16 @@ on_passwd_monitor_changed (GFileMonitor *monitor, + reload_users (daemon); + } + ++#if defined(__FreeBSD__) || defined(__OpenBSD__) + static uid_t + get_minimal_uid (void) + { ++ return FALLBACK_MINIMAL_UID; ++} ++#else ++static uid_t ++get_minimal_uid (void) ++{ + GError *error; + char *contents; + gboolean contents_loaded; +@@ -728,6 +750,7 @@ out: + g_free (contents); + return uid; + } ++#endif + + static void + daemon_init (Daemon *daemon) +@@ -1042,7 +1065,7 @@ finish_list_cached_users (gpointer user_data) + while (g_hash_table_iter_next (&iter, (gpointer *)&name, (gpointer *)&user)) { + uid = user_local_get_uid (user); + if (!daemon_local_user_is_excluded (data->daemon, name, uid)) { +- g_debug ("user %s %ld not excluded\n", name, uid); ++ g_debug ("user %s %ld not excluded\n", name, (long int)uid); + g_ptr_array_add (object_paths, g_strdup (user_local_get_object_path (user))); + } + } +@@ -1381,7 +1404,7 @@ load_autologin (Daemon *daemon, + GError *local_error; + gchar *string; + +- filename = "/etc/gdm/custom.conf"; ++ filename = "${SYSCONFDIR}/gdm/custom.conf"; + + keyfile = g_key_file_new (); + if (!g_key_file_load_from_file (keyfile, +@@ -1431,7 +1454,7 @@ save_autologin (Daemon *daemon, + gchar *data; + gboolean result; + +- filename = "/etc/gdm/custom.conf"; ++ filename = "${SYSCONFDIR}/gdm/custom.conf"; + + keyfile = g_key_file_new (); + if (!g_key_file_load_from_file (keyfile, diff --git a/sysutils/accountsservice/patches/patch-src_libaccountsservice_Makefile_in b/sysutils/accountsservice/patches/patch-src_libaccountsservice_Makefile_in new file mode 100644 index 00000000000..1a54816b224 --- /dev/null +++ b/sysutils/accountsservice/patches/patch-src_libaccountsservice_Makefile_in @@ -0,0 +1,12 @@ +$OpenBSD: patch-src_libaccountsservice_Makefile_in,v 1.1.1.1 2011/05/22 10:57:32 ajacoutot Exp $ +--- src/libaccountsservice/Makefile.in.orig Sun May 22 12:29:39 2011 ++++ src/libaccountsservice/Makefile.in Sun May 22 12:29:47 2011 +@@ -323,7 +323,7 @@ libaccountsservice_la_LDFLAGS = \ + + libaccountsservice_la_LIBADD = \ + $(LIBACCOUNTSSERVICE_LIBS) \ +- -lcrypt \ ++ -lcrypto \ + $(END_OF_LIST) + + libaccountsservice_la_SOURCES = \ diff --git a/sysutils/accountsservice/patches/patch-src_user_c b/sysutils/accountsservice/patches/patch-src_user_c new file mode 100644 index 00000000000..0dadac98b73 --- /dev/null +++ b/sysutils/accountsservice/patches/patch-src_user_c @@ -0,0 +1,87 @@ +$OpenBSD: patch-src_user_c,v 1.1.1.1 2011/05/22 10:57:32 ajacoutot Exp $ +--- src/user.c.orig Thu May 19 05:38:50 2011 ++++ src/user.c Sun May 22 12:34:15 2011 +@@ -29,7 +29,11 @@ + #include + #include + #include ++#if defined(__FreeBSD__) || defined(__OpenBSD__) ++#include ++#else + #include ++#endif + + #include + #include +@@ -46,7 +50,7 @@ + #include "user-glue.h" + #include "util.h" + +-#define ICONDIR LOCALSTATEDIR "/lib/AccountsService/icons" ++#define ICONDIR LOCALSTATEDIR "/db/AccountsService/icons" + + enum { + PROP_0, +@@ -464,7 +468,11 @@ void + user_local_update_from_pwent (User *user, + struct passwd *pwent) + { ++#if defined(__FreeBSD__) || defined(__OpenBSD__) ++ struct passwd *spent; ++#else + struct spwd *spent; ++#endif + gchar *real_name; + gboolean changed; + const gchar *passwd; +@@ -555,9 +563,15 @@ user_local_update_from_pwent (User *user, + } + + passwd = pwent->pw_passwd; ++#if defined(__FreeBSD__) || defined(__OpenBSD__) ++ spent = getpwnam (pwent->pw_name); ++ if (spent) ++ passwd = spent->pw_passwd; ++#else + spent = getspnam (pwent->pw_name); + if (spent) + passwd = spent->sp_pwdp; ++#endif + + if (passwd && passwd[0] == '!') { + locked = TRUE; +@@ -579,11 +593,13 @@ user_local_update_from_pwent (User *user, + mode = PASSWORD_MODE_REGULAR; + } + ++#if !defined(__FreeBSD__) && !defined(__OpenBSD__) + if (spent) { + if (spent->sp_lstchg == 0) { + mode = PASSWORD_MODE_SET_AT_LOGIN; + } + } ++#endif + + if (user->password_mode != mode) { + user->password_mode = mode; +@@ -686,7 +702,7 @@ save_extra_data (User *user) + error = NULL; + data = g_key_file_to_data (keyfile, NULL, &error); + if (error == NULL) { +- filename = g_build_filename ("/var/lib/AccountsService/users", ++ filename = g_build_filename ("/var/db/AccountsService/users", + user->user_name, + NULL); + g_file_set_contents (filename, data, -1, &error); +@@ -707,9 +723,9 @@ move_extra_data (const gchar *old_name, + gchar *old_filename; + gchar *new_filename; + +- old_filename = g_build_filename ("/var/lib/AccountsService/users", ++ old_filename = g_build_filename ("/var/db/AccountsService/users", + old_name, NULL); +- new_filename = g_build_filename ("/var/lib/AccountsService/users", ++ new_filename = g_build_filename ("/var/db/AccountsService/users", + new_name, NULL); + + g_rename (old_filename, new_filename); diff --git a/sysutils/accountsservice/patches/patch-src_util_c b/sysutils/accountsservice/patches/patch-src_util_c new file mode 100644 index 00000000000..f1aa14c91db --- /dev/null +++ b/sysutils/accountsservice/patches/patch-src_util_c @@ -0,0 +1,12 @@ +$OpenBSD: patch-src_util_c,v 1.1.1.1 2011/05/22 10:57:32 ajacoutot Exp $ +--- src/util.c.orig Sun May 22 12:26:39 2011 ++++ src/util.c Sun May 22 12:26:45 2011 +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + + #include diff --git a/sysutils/accountsservice/pkg/DESCR b/sysutils/accountsservice/pkg/DESCR new file mode 100644 index 00000000000..eedde6a3d22 --- /dev/null +++ b/sysutils/accountsservice/pkg/DESCR @@ -0,0 +1,5 @@ +The AccountsService project provides: + * A set of D-Bus interfaces for querying and manipulating user + account information. + * An implementation of these interfaces based on the usermod(8), + useradd(8) and userdel(8) commands. diff --git a/sysutils/accountsservice/pkg/PFRAG.shared b/sysutils/accountsservice/pkg/PFRAG.shared new file mode 100644 index 00000000000..ad5667102dc --- /dev/null +++ b/sysutils/accountsservice/pkg/PFRAG.shared @@ -0,0 +1,2 @@ +@comment $OpenBSD: PFRAG.shared,v 1.1.1.1 2011/05/22 10:57:32 ajacoutot Exp $ +@lib lib/libaccountsservice.so.${LIBaccountsservice_VERSION} diff --git a/sysutils/accountsservice/pkg/PLIST b/sysutils/accountsservice/pkg/PLIST new file mode 100644 index 00000000000..8ec867bd79c --- /dev/null +++ b/sysutils/accountsservice/pkg/PLIST @@ -0,0 +1,87 @@ +@comment $OpenBSD: PLIST,v 1.1.1.1 2011/05/22 10:57:32 ajacoutot Exp $ +@unexec-delete rm -rf /var/db/AccountsService/icons/* +@unexec-delete rm -rf /var/db/AccountsService/users/* +%%SHARED%% +include/accountsservice-1.0/ +include/accountsservice-1.0/act/ +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 +lib/girepository-1.0/ +lib/girepository-1.0/AccountsService-1.0.typelib +lib/libaccountsservice.a +lib/libaccountsservice.la +lib/pkgconfig/ +lib/pkgconfig/accountsservice.pc +@bin libexec/accounts-daemon +share/dbus-1/ +share/dbus-1/interfaces/ +share/dbus-1/interfaces/org.freedesktop.Accounts.User.xml +share/dbus-1/interfaces/org.freedesktop.Accounts.xml +share/dbus-1/system-services/ +share/dbus-1/system-services/org.freedesktop.Accounts.service +share/examples/accountsservice/ +share/examples/accountsservice/dbus-1/ +@sample ${SYSCONFDIR}/dbus-1/ +share/examples/accountsservice/dbus-1/system.d/ +@sample ${SYSCONFDIR}/dbus-1/system.d/ +share/examples/accountsservice/dbus-1/system.d/org.freedesktop.Accounts.conf +@sample ${SYSCONFDIR}/dbus-1/system.d/org.freedesktop.Accounts.conf +share/gir-1.0/ +share/gir-1.0/AccountsService-1.0.gir +share/locale/ar/ +share/locale/ar/LC_MESSAGES/ +share/locale/ar/LC_MESSAGES/accounts-service.mo +share/locale/bg_BG/ +share/locale/bg_BG/LC_MESSAGES/ +share/locale/bg_BG/LC_MESSAGES/accounts-service.mo +share/locale/bn_IN/ +share/locale/bn_IN/LC_MESSAGES/ +share/locale/bn_IN/LC_MESSAGES/accounts-service.mo +share/locale/ca/LC_MESSAGES/accounts-service.mo +share/locale/ca@valencia/ +share/locale/ca@valencia/LC_MESSAGES/ +share/locale/ca@valencia/LC_MESSAGES/accounts-service.mo +share/locale/cs/LC_MESSAGES/accounts-service.mo +share/locale/de/LC_MESSAGES/accounts-service.mo +share/locale/el/LC_MESSAGES/accounts-service.mo +share/locale/fa_IR/ +share/locale/fa_IR/LC_MESSAGES/ +share/locale/fa_IR/LC_MESSAGES/accounts-service.mo +share/locale/fr/LC_MESSAGES/accounts-service.mo +share/locale/ga/LC_MESSAGES/accounts-service.mo +share/locale/hi/ +share/locale/hi/LC_MESSAGES/ +share/locale/hi/LC_MESSAGES/accounts-service.mo +share/locale/hu/LC_MESSAGES/accounts-service.mo +share/locale/id/LC_MESSAGES/accounts-service.mo +share/locale/it/LC_MESSAGES/accounts-service.mo +share/locale/kk/ +share/locale/kk/LC_MESSAGES/ +share/locale/kk/LC_MESSAGES/accounts-service.mo +share/locale/ko/LC_MESSAGES/accounts-service.mo +share/locale/pa/ +share/locale/pa/LC_MESSAGES/ +share/locale/pa/LC_MESSAGES/accounts-service.mo +share/locale/pl/LC_MESSAGES/accounts-service.mo +share/locale/ru/LC_MESSAGES/accounts-service.mo +share/locale/sk/LC_MESSAGES/accounts-service.mo +share/locale/sl/LC_MESSAGES/accounts-service.mo +share/locale/sr/LC_MESSAGES/accounts-service.mo +share/locale/sr@latin/ +share/locale/sr@latin/LC_MESSAGES/ +share/locale/sr@latin/LC_MESSAGES/accounts-service.mo +share/locale/sv/LC_MESSAGES/accounts-service.mo +share/locale/tr/LC_MESSAGES/accounts-service.mo +share/locale/uk/LC_MESSAGES/accounts-service.mo +share/locale/wa/ +share/locale/wa/LC_MESSAGES/ +share/locale/wa/LC_MESSAGES/accounts-service.mo +share/locale/zh_CN/LC_MESSAGES/accounts-service.mo +share/locale/zh_TW/LC_MESSAGES/accounts-service.mo +share/polkit-1/ +share/polkit-1/actions/ +share/polkit-1/actions/org.freedesktop.accounts.policy +@sample /var/db/AccountsService/ +@sample /var/db/AccountsService/icons/ +@sample /var/db/AccountsService/users/