From b6390dc246da0f37913499821112c4d2c2449158 Mon Sep 17 00:00:00 2001 From: drochner Date: Tue, 30 Aug 2005 12:47:52 +0000 Subject: -cleanup: honor PKG_SYSCONFDIR, use USE_PKGINSTALL -support the "getgroupmembership" nsswitch invocation bump PKGREVISION --- databases/nss_ldap/Makefile | 16 +++++++++++---- databases/nss_ldap/PLIST | 6 ++++-- databases/nss_ldap/distinfo | 5 +++-- databases/nss_ldap/files/netbsd.c | 40 ++++++++++++++++++++++++++++++++++++- databases/nss_ldap/patches/patch-af | 15 +++++++++++++- databases/nss_ldap/patches/patch-ah | 13 ++++++++++++ 6 files changed, 85 insertions(+), 10 deletions(-) create mode 100644 databases/nss_ldap/patches/patch-ah (limited to 'databases/nss_ldap') 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 #include @@ -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, -- cgit v1.2.3