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'")
This commit is contained in:
ajacoutot 2011-05-22 10:57:32 +00:00
parent 98b4eede9d
commit 062fda667a
10 changed files with 379 additions and 0 deletions

View File

@ -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 <ajacoutot@openbsd.org>
# 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 <bsd.port.mk>

View File

@ -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

View File

@ -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.

View File

@ -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,

View File

@ -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 = \

View File

@ -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 <sys/wait.h>
#include <unistd.h>
#include <grp.h>
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
+#include <pwd.h>
+#else
#include <shadow.h>
+#endif
#include <glib.h>
#include <glib/gi18n.h>
@@ -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);

View File

@ -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 <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <wait.h>
+#include <sys/wait.h>
#include <grp.h>
#include <syslog.h>

View File

@ -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.

View File

@ -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}

View File

@ -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/