Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports-kde
Path: blob/main/net/nss-pam-ldapd/Makefile
19257 views
PORTNAME=		nss-pam-ldapd
DISTVERSION=		0.9.13
CATEGORIES=		net
MASTER_SITES=		http://arthurdejong.org/nss-pam-ldapd/ \
			ZI

MAINTAINER?=		[email protected]
COMMENT?=		Advanced fork of nss_ldap
WWW=			https://arthurdejong.org/nss-pam-ldapd/

LICENSE=		LGPL21 LGPL3
LICENSE_COMB=		dual

USES=			cpe ldap

CPE_VENDOR=		arthurdejong
GNU_CONFIGURE=		yes
GNU_CONFIGURE_MANPREFIX=	${PREFIX}/share
USE_RC_SUBR=		nslcd
PAM_LDAP_SHMAJOR=	1
NSS_LDAP_SHMAJOR=	1
SUB_FILES+=		pkg-message

NSLCD_PIDFILE?=		/var/run/nslcd.pid
NSLCD_VARDIR?=		/var/run/nslcd
NSLCD_SOCKET?=		${NSLCD_VARDIR}/nslcd.ctl

OPTIONS_DEFINE=		KERBEROS LCLASS
OPTIONS_DEFAULT=	KERBEROS

LCLASS_EXTRA_PATCHES=	${PATCHDIR}/lclass-patches
LCLASS_DESC=		Build with loginClass support

.if defined(SLAVE_PORT)
OPTIONS_DEFINE+=	SASL
OPTIONS_MULTI=		MG1
OPTIONS_MULTI_MG1=	PAM NSS
PAM_DESC=		Build pam_ldap
NSS_DESC=		Build nss support
SASL_DESC=		Build sasl support
OPTIONS_DEFAULT+=	PAM NSS
CONFLICTS+=		nss-pam-ldapd-[0-9]*
.else
OPTIONS_MULTI=		MG1
OPTIONS_MULTI_MG1=	PAM NSS
PAM_DESC=		Build pam_ldap
NSS_DESC=		Build nss support
OPTIONS_DEFAULT+=	PAM NSS
CONFLICTS+=		nss-pam-ldapd-sasl
.endif

USERS=			nslcd
GROUPS=			nslcd

.include <bsd.port.options.mk>

CPPFLAGS+=		-I${LOCALBASE}/include
LDFLAGS+=		-L${LOCALBASE}/lib

CONFIGURE_ARGS+=	--with-nslcd-pidfile=${NSLCD_PIDFILE} \
			--with-nslcd-socket=${NSLCD_SOCKET} \
			--with-ldap-lib=openldap \
			--with-nss-ldap-soname=nss_ldap.so.${NSS_LDAP_SHMAJOR}

CONFIG_FILE=		"nslcd.conf"
CONFIGURE_ARGS+=	--with-ldap-conf-file=${PREFIX}/etc/${CONFIG_FILE}
PLIST_SUB+=		CONFIG="${CONFIG_FILE}" \
			PAM_LDAP_SHMAJOR="${PAM_LDAP_SHMAJOR}" \
			NSS_LDAP_SHMAJOR="${NSS_LDAP_SHMAJOR}"
SUB_LIST+=		CONFIG_FILE="${PREFIX}/etc/${CONFIG_FILE}" \
			NSLCD_PIDFILE="${NSLCD_PIDFILE}" \
			NSLCD_VARDIR="${NSLCD_VARDIR}" \
			USERS="${USERS}" GROUPS="${GROUPS}"

.if empty(PORT_OPTIONS:MKERBEROS)
CONFIGURE_ARGS+=	--disable-kerberos
.endif

.if ${PORT_OPTIONS:MSASL}
CONFIGURE_ARGS+=	--enable-sasl
.else
CONFIGURE_ARGS+=	--disable-sasl
.endif

.if ${PORT_OPTIONS:MPAM}
CONFIGURE_ARGS+=	--enable-pam \
			--with-pam-seclib-dir=${PREFIX}/lib \
			--with-pam-ldap-soname=pam_ldap.so.${PAM_LDAP_SHMAJOR}
CONFLICTS+=		pam_ldap-1.*
PLIST_SUB+=		PAM=""
.else
CONFIGURE_ARGS+=	--disable-pam
PLIST_SUB+=		PAM="@comment "
.endif

.if ${PORT_OPTIONS:MNSS}
CONFIGURE_ARGS+=	--enable-nss
CONFLICTS+=		nss_ldap-1.*
PLIST_SUB+=		NSS=""
SUB_LIST+=		NSS_MESSAGE="WARNING: Be sure to set uid and gid configuration parameters to make nslcd run under unprivileged user."
.else
CONFIGURE_ARGS+=	--disable-nss
PLIST_SUB+=		NSS="@comment "
SUB_LIST+=		NSS_MESSAGE=""
.endif

# Won't hook this in to OPTIONS until PADL ports are at least DEPRECATED.
# It doesn't do the software any good to run as replacement for the PADL ports
# without running the daemon.
.if defined(WITHOUT_NSLCD)
CONFIGURE_ARGS+=	--disable-nslcd
PLIST_SUB+=		NSLCD="@comment "
.else
CONFIGURE_ARGS+=	--enable-nslcd
PLIST_SUB+=		NSLCD=""
.endif

post-extract:
	@${REINPLACE_CMD} -e 's/\(INSTALL_\)\(.*\)) -D /\1\2) /' ${WRKSRC}/Makefile.in ${WRKSRC}/nss/Makefile.in

post-configure:
	${REINPLACE_CMD} -e 's/^\(CFLAGS.*\) \-O2 \(.*\)$$/\1 -O0 \2/' ${WRKSRC}/nss/Makefile

post-install:
.if ${PORT_OPTIONS:MNSS}
	@${LN} -fs nss_ldap.so.${NSS_LDAP_SHMAJOR} ${STAGEDIR}${PREFIX}/lib/nss_ldap.so
.endif
.if ${PORT_OPTIONS:MPAM}
	@${LN} -fs pam_ldap.so.${PAM_LDAP_SHMAJOR} ${STAGEDIR}${PREFIX}/lib/pam_ldap.so
.endif

.include <bsd.port.mk>