From 2002767acb35541647029b8cfc513f97031e4a20 Mon Sep 17 00:00:00 2001 From: Dirk Meyer Date: Sat, 30 Mar 2002 10:14:36 +0000 Subject: [PATCH] Updated with new Option, some cleanups. >Number: 30849 news/nntpcache fails compiling authinfo_pam.c, add radius & ldap auth mechanisms. The fix is to place a #ifndef __FreeBSD__ .. #endif arround in authinfo_pam.c. The attached patch corrects this problem, and adds additional authentication functionality to the nntpcache port (RADIUS, LDAP[v1,v2]). files/patch-src-authinfo_pam.ext removed due to a post-configure target is added to the Makefile that recreates the authinfo_[pam,radius,ldap].ext files. PR: 30849 Submitted by: hetzels@westbend.net --- news/nntpcache/Makefile | 36 +++++++++++++++++++ .../nntpcache/files/patch-src-authinfo_ldap.c | 19 ++++++++++ news/nntpcache/files/patch-src-authinfo_pam.c | 12 +++++++ .../files/patch-src-authinfo_pam.ext | 11 ------ .../nntpcache/files/patch-src::authinfo_pam.c | 13 ------- 5 files changed, 67 insertions(+), 24 deletions(-) create mode 100644 news/nntpcache/files/patch-src-authinfo_ldap.c create mode 100644 news/nntpcache/files/patch-src-authinfo_pam.c delete mode 100644 news/nntpcache/files/patch-src-authinfo_pam.ext delete mode 100644 news/nntpcache/files/patch-src::authinfo_pam.c diff --git a/news/nntpcache/Makefile b/news/nntpcache/Makefile index b636af08735d..9eacbb09878e 100644 --- a/news/nntpcache/Makefile +++ b/news/nntpcache/Makefile @@ -16,6 +16,16 @@ MAINTAINER= ports@FreeBSD.org BUILD_DEPENDS= automake14:${PORTSDIR}/devel/automake14 +.if defined(WITH_LDAP) && !defined(WITH_LDAP2) +LIB_DEPENDS+= ldap.1:${PORTSDIR}/net/openldap +LIB_DEPENDS+= lber.1:${PORTSDIR}/net/openldap +.endif + +.if defined(WITH_LDAP2) +LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap2 +LIB_DEPENDS+= lber.2:${PORTSDIR}/net/openldap2 +.endif + # This may be set interactively at install-time. NNTPCache will # cache news articles and related data in ${SPOOLDIR}/nntpcache. SPOOLDIR?= /var/spool @@ -24,6 +34,20 @@ NO_CDROM= Free for individuals and non-military, non-profit organisations only USE_GMAKE= yes GNU_CONFIGURE= yes CONFIGURE_ARGS= --localstatedir=${SPOOLDIR} + +AUTHINFO_EXT= authinfo_pam.ext +.if !defined(WITHOUT_RADIUS) +CONFIGURE_ARGS+= --with-authinfo-radius +AUTHINFO_EXT+= authinfo_radius.ext +.endif +.if defined(WITH_LDAP) || defined(WITH_LDAP2) +CONFIGURE_ARGS+= --with-authinfo-ldap +CPPFLAGS+= -I${PREFIX}/include -I${LOCALBASE}/include +LDFLAGS+= -L${PREFIX}/lib -L${LOCALBASE}/lib +AUTHINFO_EXT+= authinfo_ldap.ext +CONFIGURE_ENV+= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" +.endif + NNTPSPOOLDIR?= ${SPOOLDIR}/${PORTNAME} PLIST_SUB+= SPOOLDIR=${NNTPSPOOLDIR} CPIO= cpio --quiet -pdum -R @@ -31,6 +55,18 @@ MAN8= nntpcached.8 newshound.8 DOCS= AUTHORS ChangeLog FAQ FAQ.html HACKING HTML \ INSTALL LICENSING NEWS README README.INN VERSION +.if !defined(BATCH) +post-fetch: + @${ECHO} "To enable LDAP support use either:" + @${ECHO} " WITH_LDAP - LDAP v1 support" + @${ECHO} " WITH_LDAP2 - LDAP v2 support" + @${ECHO} + @${ECHO} "To disable radius support use WITHOUT_RADIUS" +.endif + +post-configure: + @cd ${WRKSRC}/src && ${GMAKE} ${AUTHINFO_EXT} + post-patch: @${PERL} -pi -e 's,AUTOMAKE=automake,AUTOMAKE=automake14,' \ ${WRKSRC}/configure diff --git a/news/nntpcache/files/patch-src-authinfo_ldap.c b/news/nntpcache/files/patch-src-authinfo_ldap.c new file mode 100644 index 000000000000..99b4a551cfd1 --- /dev/null +++ b/news/nntpcache/files/patch-src-authinfo_ldap.c @@ -0,0 +1,19 @@ +--- src/authinfo_ldap.c.orig Sat Dec 18 12:08:30 1999 ++++ src/authinfo_ldap.c Wed Sep 26 10:55:27 2001 +@@ -78,7 +78,16 @@ + + lderr = ldap_bind_s(ld, dnbuf, pass, LDAP_AUTH_SIMPLE); + if (lderr != LDAP_SUCCESS && lderr != LDAP_INVALID_CREDENTIALS && lderr != LDAP_INAPPROPRIATE_AUTH) ++#if LDAP_API_VERSION >= 2004 ++ { ++ int ld_errno = 0; ++ ldap_get_option(ld, LDAP_OPT_ERROR_NUMBER, &ld_errno); ++ logen(("LDAP ERROR: ldap user bind failed (%d): %s", lderr, ldap_err2string(ld_errno))); ++ } ++#else ++ + logen(("LDAP ERROR: ldap user bind failed (%d): %s", lderr, ldap_err2string(GET_LDERROR(ld)))); ++#endif + ldap_unbind(ld); + memset(pass, strlen(pass), 0); + if (lderr == LDAP_SUCCESS) { diff --git a/news/nntpcache/files/patch-src-authinfo_pam.c b/news/nntpcache/files/patch-src-authinfo_pam.c new file mode 100644 index 000000000000..0c71400c31f8 --- /dev/null +++ b/news/nntpcache/files/patch-src-authinfo_pam.c @@ -0,0 +1,12 @@ +--- src/authinfo_pam.c.orig Sun Jun 11 14:32:55 2000 ++++ src/authinfo_pam.c Wed Sep 26 11:27:09 2001 +@@ -15,7 +15,9 @@ + #include "authinfo_pam.h" + + #include ++#ifndef __FreeBSD__ + #include ++#endif + + /* + * pam authenticator. diff --git a/news/nntpcache/files/patch-src-authinfo_pam.ext b/news/nntpcache/files/patch-src-authinfo_pam.ext deleted file mode 100644 index f0d7d72256f5..000000000000 --- a/news/nntpcache/files/patch-src-authinfo_pam.ext +++ /dev/null @@ -1,11 +0,0 @@ ---- src/authinfo_pam.ext.orig Sun Jun 11 22:01:43 2000 -+++ src/authinfo_pam.ext Fri Sep 14 10:55:25 2001 -@@ -19,6 +19,8 @@ - #else - # define EXP_(x) - #endif -+extern authenticator pam_authenticator; -+extern int pam_got_pass(char *pass); - #ifdef __cplusplus - } - #endif diff --git a/news/nntpcache/files/patch-src::authinfo_pam.c b/news/nntpcache/files/patch-src::authinfo_pam.c deleted file mode 100644 index 6a645026e42f..000000000000 --- a/news/nntpcache/files/patch-src::authinfo_pam.c +++ /dev/null @@ -1,13 +0,0 @@ -$FreeBSD$ - ---- src/authinfo_pam.c.orig Sat Nov 10 05:52:17 2001 -+++ src/authinfo_pam.c Sat Nov 10 05:51:29 2001 -@@ -15,7 +15,7 @@ - #include "authinfo_pam.h" - - #include --#include -+/* #include */ - - /* - * pam authenticator.