summaryrefslogtreecommitdiff
path: root/databases/nss_ldap
diff options
context:
space:
mode:
authordrochner <drochner>2005-08-30 12:47:52 +0000
committerdrochner <drochner>2005-08-30 12:47:52 +0000
commitb6390dc246da0f37913499821112c4d2c2449158 (patch)
treeb690c99a6808a3c7b5524fdf2cb0e062d63f8f0f /databases/nss_ldap
parent22fc124ef657aff0351f380314c31acd3fd7f94e (diff)
downloadpkgsrc-b6390dc246da0f37913499821112c4d2c2449158.tar.gz
-cleanup: honor PKG_SYSCONFDIR, use USE_PKGINSTALL
-support the "getgroupmembership" nsswitch invocation bump PKGREVISION
Diffstat (limited to 'databases/nss_ldap')
-rw-r--r--databases/nss_ldap/Makefile16
-rw-r--r--databases/nss_ldap/PLIST6
-rw-r--r--databases/nss_ldap/distinfo5
-rw-r--r--databases/nss_ldap/files/netbsd.c40
-rw-r--r--databases/nss_ldap/patches/patch-af15
-rw-r--r--databases/nss_ldap/patches/patch-ah13
6 files changed, 85 insertions, 10 deletions
diff --git a/databases/nss_ldap/Makefile b/databases/nss_ldap/Makefile
index aae98e6b00d..f93a71c3f27 100644
--- a/databases/nss_ldap/Makefile
+++ b/databases/nss_ldap/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.1.1.1 2005/08/08 09:47:42 drochner Exp $
+# $NetBSD: Makefile,v 1.2 2005/08/30 12:47:52 drochner Exp $
#
DISTNAME= nss_ldap-239
+PKGREVISION= 1
CATEGORIES= databases
MASTER_SITES= http://www.padl.com/download/
@@ -12,12 +13,19 @@ COMMENT= LDAP client for nsswitch
GNU_CONFIGURE= yes
USE_TOOLS+= gmake
-CONFIGURE_ARGS+= --with-ldap-conf-file=/etc/nss_ldap.conf
-CONFIGURE_ARGS+= --with-ldap-secret-file=/etc/nss_ldap.secret
+CONFIGURE_ARGS+= --with-ldap-conf-file=${PKG_SYSCONFDIR}/nss_ldap.conf
+CONFIGURE_ARGS+= --with-ldap-secret-file=${PKG_SYSCONFDIR}/nss_ldap.secret
+CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
+
+EGDIR= ${PREFIX}/share/examples/${PKGBASE}
+INSTALL_MAKE_FLAGS= ${MAKE_FLAGS} sysconfdir=${EGDIR}
+
+USE_PKGINSTALL= yes
+CONF_FILES= ${EGDIR}/nss_ldap.conf ${PKG_SYSCONFDIR}/nss_ldap.conf
pre-build:
${CP} ${FILESDIR}/netbsd.c ${FILESDIR}/netbsd.h ${WRKSRC}
- ${LN} -s /usr/include/nsswitch.h ${BUILDLINK_DIR}/include/nss.h
+ ${LN} -fs /usr/include/nsswitch.h ${BUILDLINK_DIR}/include/nss.h
.include "../../databases/openldap/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/databases/nss_ldap/PLIST b/databases/nss_ldap/PLIST
index 73aa0439ed8..5184efd79c9 100644
--- a/databases/nss_ldap/PLIST
+++ b/databases/nss_ldap/PLIST
@@ -1,5 +1,7 @@
-@comment $NetBSD: PLIST,v 1.1.1.1 2005/08/08 09:47:42 drochner Exp $
-etc/nsswitch.ldap
+@comment $NetBSD: PLIST,v 1.2 2005/08/30 12:47:52 drochner Exp $
lib/nss_ldap.so
lib/nss_ldap.so.1
man/man5/nss_ldap.5
+share/examples/nss_ldap/nss_ldap.conf
+share/examples/nss_ldap/nsswitch.ldap
+@dirrm share/examples/nss_ldap
diff --git a/databases/nss_ldap/distinfo b/databases/nss_ldap/distinfo
index f51fef534d0..deb4bb5e769 100644
--- a/databases/nss_ldap/distinfo
+++ b/databases/nss_ldap/distinfo
@@ -1,8 +1,9 @@
-$NetBSD: distinfo,v 1.1.1.1 2005/08/08 09:47:42 drochner Exp $
+$NetBSD: distinfo,v 1.2 2005/08/30 12:47:52 drochner Exp $
SHA1 (nss_ldap-239.tar.gz) = beee30b433a01dccd863e7a0cdb7fe87cefda7fd
RMD160 (nss_ldap-239.tar.gz) = 525ed402ef5959a2740a7539c309c478a4765381
Size (nss_ldap-239.tar.gz) = 222276 bytes
SHA1 (patch-ab) = 01493e92ffff0125dd3267810ee33cdeaab32ab2
-SHA1 (patch-af) = 54251bd1798ce4137760b8a84997cbe23e5f1fa0
+SHA1 (patch-af) = e69bdf7ae84f207e690f664bb5d5f4e5b6894604
SHA1 (patch-ag) = 95741f39fb03195b3238d4f9c24360049fdd3698
+SHA1 (patch-ah) = 8646360203dc0fbeccc76eda989323eb13605421
diff --git a/databases/nss_ldap/files/netbsd.c b/databases/nss_ldap/files/netbsd.c
index f7b7110299e..2e3de3f9f01 100644
--- a/databases/nss_ldap/files/netbsd.c
+++ b/databases/nss_ldap/files/netbsd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd.c,v 1.1.1.1 2005/08/08 09:47:42 drochner Exp $ */
+/* $NetBSD: netbsd.c,v 1.2 2005/08/30 12:47:52 drochner Exp $ */
#include <sys/param.h>
#include <pwd.h>
@@ -45,6 +45,9 @@ extern NSS_STATUS _nss_ldap_getgrgid_r(gid_t, struct group *,
char *, size_t, int *);
static int netbsd_getgrgid(void *, void *, va_list);
static int netbsd_getgrgid_r(void *, void *, va_list);
+extern NSS_STATUS _nss_ldap_initgroups(const char *, gid_t, long int *,
+ long int *, gid_t *, long int, int *);
+static int netbsd_getgroupmembership(void *, void *, va_list);
static int nss2netbsderr[] = {
NS_SUCCESS, NS_NOTFOUND, NS_UNAVAIL, NS_TRYAGAIN, NS_RETURN
@@ -73,6 +76,7 @@ static ns_mtab methods[] = {
{ NSDB_GROUP, "getgrnam_r", netbsd_getgrnam_r, 0 },
{ NSDB_GROUP, "getgrgid", netbsd_getgrgid, 0 },
{ NSDB_GROUP, "getgrgid_r", netbsd_getgrgid_r, 0 },
+ { NSDB_GROUP, "getgroupmembership", netbsd_getgroupmembership, 0 },
};
static int
@@ -436,6 +440,40 @@ netbsd_getgrgid_r(void *rv, void *cb_data, va_list ap)
return nss2netbsderr[s];
}
+static int
+netbsd_getgroupmembership(void *rv, void *cb_data, va_list ap)
+{
+ int err;
+ NSS_STATUS s;
+ int *retval = va_arg(ap, int *);
+ const char *user = va_arg(ap, const char *);
+ gid_t group = va_arg(ap, gid_t);
+ gid_t *groups = va_arg(ap, gid_t *);
+ int limit = va_arg(ap, int);
+ int *size = va_arg(ap, int*);
+ long int lstart, lsize;
+
+ /* insert primary membership */
+ if (*size < limit) {
+ groups[0] = group;
+ (*size)++;
+ }
+ lstart = *size;
+ lsize = limit;
+ s = _nss_ldap_initgroups(user, group, &lstart, &lsize,
+ groups, limit, &err);
+ *size = lstart;
+ if (s == NSS_STATUS_TRYAGAIN) {
+ /* array too short */
+ *retval = -1;
+ } else {
+ if (s == NSS_STATUS_SUCCESS)
+ s = NSS_STATUS_NOTFOUND;
+ *retval = 0;
+ }
+
+ return nss2netbsderr[s];
+}
ns_mtab *
nss_module_register(const char *source, unsigned int *mtabsize,
diff --git a/databases/nss_ldap/patches/patch-af b/databases/nss_ldap/patches/patch-af
index 2cf5b2226fa..45d4c45e336 100644
--- a/databases/nss_ldap/patches/patch-af
+++ b/databases/nss_ldap/patches/patch-af
@@ -1,4 +1,4 @@
-$NetBSD: patch-af,v 1.1.1.1 2005/08/08 09:47:42 drochner Exp $
+$NetBSD: patch-af,v 1.2 2005/08/30 12:47:52 drochner Exp $
--- Makefile.in.orig 2005-05-24 02:53:19.000000000 +0200
+++ Makefile.in
@@ -28,3 +28,16 @@ $NetBSD: patch-af,v 1.1.1.1 2005/08/08 09:47:42 drochner Exp $
nss_ldap_so_LDADD = $(LDADD)
nss_ldap_so_DEPENDENCIES =
NSS_LDAP_OBJECTS = ldap-nss.o ldap-grp.o ldap-pwd.o ldap-netgrp.o \
+@@ -496,10 +496,8 @@ maintainer-clean-generic clean mostlycle
+
+ install-data-local:
+ @$(NORMAL_INSTALL)
+- @if test ! -f $(DESTDIR)$(NSS_LDAP_PATH_CONF); then \
+- $(mkinstalldirs) $(DESTDIR)$(dir $(NSS_LDAP_PATH_CONF)); \
+- $(INSTALL_DATA) -o $(INST_UID) -g $(INST_GID) $(srcdir)/ldap.conf $(DESTDIR)$(NSS_LDAP_PATH_CONF); \
+- fi
++ $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
++ $(INSTALL_DATA) -o $(INST_UID) -g $(INST_GID) $(srcdir)/ldap.conf $(DESTDIR)$(sysconfdir)/nss_ldap.conf
+ $(INSTALL_DATA) -o $(INST_UID) -g $(INST_GID) $(srcdir)/nsswitch.ldap $(DESTDIR)$(sysconfdir)/nsswitch.ldap;
+
+ uninstall-local:
diff --git a/databases/nss_ldap/patches/patch-ah b/databases/nss_ldap/patches/patch-ah
new file mode 100644
index 00000000000..d06d5c78a21
--- /dev/null
+++ b/databases/nss_ldap/patches/patch-ah
@@ -0,0 +1,13 @@
+$NetBSD: patch-ah,v 1.1 2005/08/30 12:47:52 drochner Exp $
+
+--- ldap-grp.c.orig 2005-08-30 13:51:39.000000000 +0200
++++ ldap-grp.c
+@@ -1115,6 +1115,8 @@ char *_nss_ldap_getgrset (char *user)
+ }
+ #else
+ filter = _nss_ldap_filt_getgroupsbymember;
++ gidnumber_attrs[0] = ATM (group, gidNumber);
++ gidnumber_attrs[1] = NULL;
+ #endif /* RFC2307BIS */
+
+ stat = _nss_ldap_getent_ex (&a, &ctx, (void *) &lia, NULL, 0,