Index: head/net/openldap24-server/Makefile =================================================================== --- head/net/openldap24-server/Makefile (revision 453155) +++ head/net/openldap24-server/Makefile (revision 453156) @@ -1,641 +1,641 @@ # Created by: Xin LI # $FreeBSD$ PORTNAME= openldap DISTVERSION= 2.4.45 PORTREVISION= ${OPENLDAP_PORTREVISION} CATEGORIES= net databases MASTER_SITES= ftp://ftp.OpenLDAP.org/pub/OpenLDAP/%SUBDIR%/ \ ftp://gd.tuwien.ac.at/infosys/network/OpenLDAP/%SUBDIR%/ \ ftp://ftp.ntua.gr/mirror/OpenLDAP/%SUBDIR%/ \ ftp://ftp.u-aizu.ac.jp/pub/net/openldap/%SUBDIR%/ \ ftp://ftp.nl.uu.net/pub/unix/db/openldap/%SUBDIR%/ \ ftp://sunsite.cnlab-switch.ch/mirror/OpenLDAP/%SUBDIR%/ \ http://www.openldap.org/software/download/OpenLDAP/%SUBDIR%/ MASTER_SITE_SUBDIR= openldap-release .if defined(CLIENT_ONLY) .if ${CLIENT_ONLY} == sasl PKGNAMESUFFIX= -sasl-client .else PKGNAMESUFFIX= -client .endif .else PKGNAMESUFFIX?= -server .endif MAINTAINER= delphij@FreeBSD.org .if defined(CLIENT_ONLY) .if ${CLIENT_ONLY} == sasl COMMENT= Open source LDAP client implementation with SASL2 support .else COMMENT= Open source LDAP client implementation .endif .else COMMENT= Open source LDAP server implementation .endif LICENSE= OPENLDAP LICENSE_NAME= OpenLDAP Public License LICENSE_FILE= ${WRKSRC}/LICENSE LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept .if defined(CLIENT_ONLY) .if ${CLIENT_ONLY} == sasl CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}-client-2.* \ ${PKGNAMEPREFIX}${PORTNAME}-sasl-client-2.[0-3].* .else CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}-client-2.[0-3].* \ ${PKGNAMEPREFIX}${PORTNAME}-sasl-client-2.* .endif .endif GNU_CONFIGURE= yes # :keepla because port uses lt_dlopen USES= cpe libtool:keepla ssl tar:tgz .if !defined(CLIENT_ONLY) USERS= ldap GROUPS= ldap LDAP_USER?= ldap LDAP_GROUP?= ldap .endif WANT_OPENLDAP_VER?= 24 .if ${WANT_OPENLDAP_VER} != 24 BROKEN= incompatible OpenLDAP version: ${WANT_OPENLDAP_VER} .endif PORTREVISION_CLIENT= 0 -PORTREVISION_SERVER= 2 +PORTREVISION_SERVER= 3 OPENLDAP_SHLIB_MAJOR= 2 OPENLDAP_SHLIB_MINOR= 10.8 OPENLDAP_MAJOR= ${DISTVERSION:R} OPTIONS_DEFINE= DEBUG FETCH GSSAPI FETCH_DESC= Enable fetch(3) support GSSAPI_DESC= With GSSAPI support (implies SASL support) .if !defined(CLIENT_ONLY) OPTIONS_DEFINE+= DYNACL ACI BDB MDB DNSSRV PASSWD PERL RELAY SHELL OPTIONS_DEFINE+= SOCK ODBC RLOOKUPS SLP SLAPI TCP_WRAPPERS OPTIONS_DEFINE+= ACCESSLOG AUDITLOG COLLECT CONSTRAINT DDS OPTIONS_DEFINE+= DEREF DYNGROUP DYNLIST MEMBEROF PPOLICY PROXYCACHE OPTIONS_DEFINE+= REFINT RETCODE RWM SEQMOD SSSVLV SYNCPROV TRANSLUCENT OPTIONS_DEFINE+= UNIQUE VALSORT SMBPWD SHA2 DYNAMIC_BACKENDS SASL OPTIONS_DEFINE+= LMPASSWD OPTIONS_DEFINE+= OUTLOOK OPTIONS_DEFINE+= LASTBIND OPTIONS_DEFINE+= KQUEUE OPTIONS_DEFAULT= MDB SYNCPROV DYNAMIC_BACKENDS DYNACL_DESC= Run-time loadable ACL (experimental) ACI_DESC= Per-object ACI (experimental) BDB_DESC= With BerkeleyDB backend (DEPRECATED) MDB_DESC= With Memory-Mapped DB backend DNSSRV_DESC= With Dnssrv backend PASSWD_DESC= With Passwd backend PERL_DESC= With Perl backend RELAY_DESC= With Relay backend SHELL_DESC= With Shell backend (disables threading) SOCK_DESC= With Sock backend ODBC_DESC= With SQL backend RLOOKUPS_DESC= With reverse lookups of client hostnames SLP_DESC= With SLPv2 (RFC 2608) support SLAPI_DESC= With Netscape SLAPI plugin API (experimental) TCP_WRAPPERS_DESC= With tcp wrapper support ACCESSLOG_DESC= With In-Directory Access Logging overlay AUDITLOG_DESC= With Audit Logging overlay COLLECT_DESC= With Collect overy Services overlay CONSTRAINT_DESC= With Attribute Constraint overlay DDS_DESC= With Dynamic Directory Services overlay DEREF_DESC= With Dereference overlay DYNGROUP_DESC= With Dynamic Group overlay DYNLIST_DESC= With Dynamic List overlay MEMBEROF_DESC= With Reverse Group Membership overlay PPOLICY_DESC= With Password Policy overlay PROXYCACHE_DESC= With Proxy Cache overlay REFINT_DESC= With Referential Integrity overlay RETCODE_DESC= With Return Code testing overlay RWM_DESC= With Rewrite/Remap overlay SASL_DESC= With (Cyrus) SASL2 support SEQMOD_DESC= With Sequential Modify overlay SSSVLV_DESC= With ServerSideSort/VLV overlay SYNCPROV_DESC= With Syncrepl Provider overlay TRANSLUCENT_DESC= With Translucent Proxy overlay UNIQUE_DESC= With attribute Uniqueness overlay VALSORT_DESC= With Value Sorting overlay SMBPWD_DESC= With Samba Password hashes overlay SHA2_DESC= With SHA2 Password hashes overlay LMPASSWD_DESC= With LM hash password support (DEPRECATED) DYNAMIC_BACKENDS_DESC= Build dynamic backends OUTLOOK_DESC= Force caseIgnoreOrderingMatch on name attribute (experimental) LASTBIND_DESC= With lastbind overlay KQUEUE_DESC= With kqueue support (experimental) .endif .if defined(CLIENT_ONLY) OPENLDAP_PORTREVISION= ${PORTREVISION_CLIENT} OPENLDAP_PKGFILESUFX= .client .else OPENLDAP_PORTREVISION= ${PORTREVISION_SERVER} OPENLDAP_PKGFILESUFX= .endif CONFIGURE_SED= -e 's,uuid/uuid.h,xxuuid/uuid.h,g' .include .if defined(CLIENT_ONLY) PORTDOCS= CHANGES drafts rfc .if ${CLIENT_ONLY} == sasl PORT_OPTIONS+= SASL .endif .if defined(USE_OPENLDAP) BROKEN= you have USE_OPENLDAP variable defined either in environment or in make(1) arguments; please undefine and try again .endif .else USE_OPENLDAP= yes WANT_OPENLDAP_VER= 24 LIB_DEPENDS+= libicudata.so:devel/icu .if ${PORT_OPTIONS:MGSSAPI} && empty(PORT_OPTIONS:MSASL) PORT_OPTIONS+= SASL .endif .if ${PORT_OPTIONS:MSASL} WANT_OPENLDAP_SASL= yes CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}-client-2.* PKGNAMESUFFIX= -sasl-server .if ${PORT_OPTIONS:MGSSAPI} RUN_DEPENDS+= cyrus-sasl-gssapi>0:security/cyrus-sasl2-gssapi .endif .else CONFLICTS= ${PKGNAMEPREFIX}${PORTNAME}-sasl-client-2.* .endif .endif DESCR= ${PKGDIR}/pkg-descr${OPENLDAP_PKGFILESUFX} PLIST= ${PKGDIR}/pkg-plist${OPENLDAP_PKGFILESUFX} SCHEMATA= collective corba core cosine duaconf dyngroup \ inetorgperson java misc \ nis openldap pmi ppolicy LDAP_RUN_DIR?= /var/run/openldap LOCALSTATEDIR?= /var/db DATABASEDIR?= ${LOCALSTATEDIR}/openldap-data SUB_LIST+= LDAP_RUN_DIR=${LDAP_RUN_DIR} \ LDAP_USER=${LDAP_USER} \ LDAP_GROUP=${LDAP_GROUP} \ DATABASEDIR=${DATABASEDIR} \ PKGNAME=${PKGNAME} CONFIGURE_ARGS= --with-threads=posix \ --with-tls=openssl \ --disable-dependency-tracking \ --enable-dynamic .if ${OSVERSION} < 1101000 CFLAGS+= -DMDB_DSYNC=O_SYNC -Dfdatasync=fsync .endif .if ${PORT_OPTIONS:MSASL} LIB_DEPENDS+= libsasl2.so:security/cyrus-sasl2 CONFIGURE_ARGS+= --with-cyrus-sasl .else CONFIGURE_ARGS+= --without-cyrus-sasl .endif .if defined(CLIENT_ONLY) # client specific configuration CONFIGURE_ARGS+= --disable-slapd \ --disable-monitor \ --disable-bdb \ --disable-relay \ --disable-syncprov SUB_FILES+= pkg-message.client PKGMESSAGE= ${WRKSRC}/pkg-message.client USE_LDCONFIG= yes .else # server specific configuration USE_LDCONFIG= ${PREFIX}/libexec/openldap SUB_FILES+= pkg-message pkg-deinstall USE_RC_SUBR= slapd EXTRA_PATCHES+= ${FILESDIR}/extrapatch-Makefile.in .if ${PORT_OPTIONS:MDYNAMIC_BACKENDS} || ${PORT_OPTIONS:MSLAPI} LIB_DEPENDS+= libltdl.so:devel/libltdl CONFIGURE_ARGS+= --enable-modules PLIST_SUB+= MODULES="" .else PLIST_SUB+= MODULES="@comment " .endif SED_MODULES= -e 's/\(moduleload[ ]*back_[a-z]*\)\.la/\1/' .if ${PORT_OPTIONS:MDYNAMIC_BACKENDS} BACKEND_ENABLE= "mod" BACKEND_PLIST= "" SED_MODULES+= -e 's/\# *\(modulepath\)/\1/' \ -e 's/\# *\(moduleload[ ]*back_bdb\)/\1/' .else BACKEND_ENABLE= "yes" BACKEND_PLIST= "@comment " .endif OVERLAY_ENABLE= yes CONFIGURE_ARGS+= --localstatedir=${LOCALSTATEDIR} \ --enable-crypt \ --enable-ldap=${BACKEND_ENABLE} \ --enable-meta=${BACKEND_ENABLE} \ --enable-rewrite \ --enable-null=${BACKEND_ENABLE} \ --enable-monitor=${BACKEND_ENABLE} PLIST_SUB+= BACKEND=${BACKEND_PLIST} .if ${PORT_OPTIONS:MACCESSLOG} CONFIGURE_ARGS+= --enable-accesslog=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MAUDITLOG} CONFIGURE_ARGS+= --enable-auditlog=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MCOLLECT} CONFIGURE_ARGS+= --enable-collect=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MCONSTRAINT} CONFIGURE_ARGS+= --enable-constraint=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MDDS} CONFIGURE_ARGS+= --enable-dds=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MDEBUG} CONFIGURE_ARGS+= --enable-debug=yes .endif MAKE_ENV+= STRIP=${STRIP} .if ${PORT_OPTIONS:MDEREF} CONFIGURE_ARGS+= --enable-deref=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MDYNGROUP} CONFIGURE_ARGS+= --enable-dyngroup=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MDYNLIST} CONFIGURE_ARGS+= --enable-dynlist=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MLMPASSWD} CONFIGURE_ARGS+= --enable-lmpasswd .endif .if ${PORT_OPTIONS:MMEMBEROF} CONFIGURE_ARGS+= --enable-memberof=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MPPOLICY} CONFIGURE_ARGS+= --enable-ppolicy=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MPROXYCACHE} CONFIGURE_ARGS+= --enable-proxycache=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MREFINT} CONFIGURE_ARGS+= --enable-refint=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MRETCODE} CONFIGURE_ARGS+= --enable-retcode=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MRWM} CONFIGURE_ARGS+= --enable-rwm=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MSEQMOD} CONFIGURE_ARGS+= --enable-seqmod=${OVERLAY_ENABLE} .else CONFIGURE_ARGS+= --disable-seqmod .endif .if ${PORT_OPTIONS:MSSSVLV} CONFIGURE_ARGS+= --enable-sssvlv=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MSYNCPROV} CONFIGURE_ARGS+= --enable-syncprov=${OVERLAY_ENABLE} .else CONFIGURE_ARGS+= --disable-syncprov .endif .if ${PORT_OPTIONS:MTRANSLUCENT} CONFIGURE_ARGS+= --enable-translucent=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MUNIQUE} CONFIGURE_ARGS+= --enable-unique=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MVALSORT} CONFIGURE_ARGS+= --enable-valsort=${OVERLAY_ENABLE} .endif .if ${PORT_OPTIONS:MACI} CONFIGURE_ARGS+= --enable-aci .endif .if ${PORT_OPTIONS:MDYNACL} CONFIGURE_ARGS+= --enable-dynacl .endif .if ${PORT_OPTIONS:MLASTBIND} CONFIGURE_ARGS+= --enable-lastbind .endif .if !${PORT_OPTIONS:MBDB} CONFIGURE_ARGS+= --disable-bdb \ --disable-hdb PLIST_SUB+= BACK_BDB="@comment " \ BACK_HDB="@comment " .else USES+= bdb INVALID_BDB_VER= 6 CONFIGURE_ARGS+= --enable-bdb=${BACKEND_ENABLE} \ --enable-hdb=${BACKEND_ENABLE} PLIST_SUB+= BACK_BDB=${BACKEND_PLIST} \ BACK_HDB=${BACKEND_PLIST} CPPFLAGS+= -I${BDB_INCLUDE_DIR} LDFLAGS+= -L${BDB_LIB_DIR} CONFIGURE_SED+= -e 's,ol_DB_LIB=$$,&-l${BDB_LIB_NAME:R},' \ -e 's,(ol_cv_lib_db=)yes$$,\1-l${BDB_LIB_NAME:R},' .endif .if ${PORT_OPTIONS:MDNSSRV} CONFIGURE_ARGS+= --enable-dnssrv=${BACKEND_ENABLE} PLIST_SUB+= BACK_DNSSRV=${BACKEND_PLIST} .else PLIST_SUB+= BACK_DNSSRV="@comment " .endif .if ${PORT_OPTIONS:MMDB} CONFIGURE_ARGS+= --enable-mdb=${BACKEND_ENABLE} PLIST_SUB+= BACK_MDB=${BACKEND_PLIST} .else PLIST_SUB+= BACK_MDB="@comment " .endif .if ${PORT_OPTIONS:MPASSWD} CONFIGURE_ARGS+= --enable-passwd=${BACKEND_ENABLE} PLIST_SUB+= BACK_PASSWD=${BACKEND_PLIST} .else PLIST_SUB+= BACK_PASSWD="@comment " .endif .if ${PORT_OPTIONS:MRELAY} CONFIGURE_ARGS+= --enable-relay=${BACKEND_ENABLE} PLIST_SUB+= BACK_RELAY=${BACKEND_PLIST} .else PLIST_SUB+= BACK_RELAY="@comment " .endif .if ${PORT_OPTIONS:MSHELL} CONFIGURE_ARGS+= --without-threads --enable-shell=${BACKEND_ENABLE} PLIST_SUB+= BACK_SHELL=${BACKEND_PLIST} .else PLIST_SUB+= BACK_SHELL="@comment " WANT_OPENLDAP_THREADS= yes .endif .if ${PORT_OPTIONS:MSOCK} CONFIGURE_ARGS+= --enable-sock=${BACKEND_ENABLE} PLIST_SUB+= BACK_SOCK=${BACKEND_PLIST} .else PLIST_SUB+= BACK_SOCK="@comment " .endif .if ${PORT_OPTIONS:MPERL} USES+= perl5 CONFIGURE_ARGS+= --enable-perl=${BACKEND_ENABLE} CONFIGURE_ENV+= PERLBIN="${PERL}" PLIST_SUB+= BACK_PERL=${BACKEND_PLIST} .else PLIST_SUB+= BACK_PERL="@comment " .endif .if ${PORT_OPTIONS:MSASL} CONFIGURE_ARGS+= --enable-spasswd .endif .if ${PORT_OPTIONS:MODBC} CONFIGURE_ARGS+= --enable-sql=${BACKEND_ENABLE} PLIST_SUB+= BACK_SQL=${BACKEND_PLIST} LIB_DEPENDS+= libodbc.so:databases/unixODBC LDFLAGS+= -L${LOCALBASE}/lib .else PLIST_SUB+= BACK_SQL="@comment " .endif .if ${PORT_OPTIONS:MSMBPWD} PLIST_SUB+= SMBPWD="" .else PLIST_SUB+= SMBPWD="@comment " .endif .if ${PORT_OPTIONS:MSHA2} PLIST_SUB+= SHA2="" .else PLIST_SUB+= SHA2="@comment " .endif .if ${PORT_OPTIONS:MLASTBIND} PLIST_SUB+= LASTBIND="" .else PLIST_SUB+= LASTBIND="@comment " .endif .if ${PORT_OPTIONS:MRLOOKUPS} CONFIGURE_ARGS+= --enable-rlookups PLIST_SUB+= RLOOKUPS="" .else PLIST_SUB+= RLOOKUPS="@comment " .endif .if ${PORT_OPTIONS:MSLAPI} CONFIGURE_ARGS+= --enable-slapi PLIST_SUB+= SLAPI="" USE_LDCONFIG= yes .else PLIST_SUB+= SLAPI="@comment " .endif .if ${PORT_OPTIONS:MSLP} CONFIGURE_ARGS+= --enable-slp LIB_DEPENDS+= libslp.so:net/openslp .endif # Include tcp-wrapper support .if ${PORT_OPTIONS:MTCP_WRAPPERS} CONFIGURE_ARGS+= --enable-wrappers .endif # Force using caseIgnoreOrderingMatch on 'name' attribute. # This may be a violation of RFC 4519 2.18 definition. # See http://www.openldap.org/lists/openldap-technical/201211/msg00175.html .if ${PORT_OPTIONS:MOUTLOOK} EXTRA_PATCHES+= ${FILESDIR}/extrapatch-outlook-servers__slapd__schema_prep.c .endif .if ${PORT_OPTIONS:MKQUEUE} EXTRA_PATCHES+= ${FILESDIR}/extrapatch-ITS6300 USE_AUTOTOOLS= autoconf .endif # end of client/server specific configuration .endif .if defined(WITH_CLDAP) CPPFLAGS+= -DLDAP_CONNECTIONLESS .endif CPPFLAGS+= -I${LOCALBASE}/include LIBS+= -L${LOCALBASE}/lib .if defined(CLIENT_ONLY) .else SUB_LIST+= RC_DIR=${PREFIX} \ LDAP_RUN_DIR=${LDAP_RUN_DIR} \ DATABASEDIR=${DATABASEDIR} .endif PLIST_SUB+= ${SUB_LIST} PLIST_SUB+= SHLIB_MAJOR=${OPENLDAP_SHLIB_MAJOR} PLIST_SUB+= SHLIB_MINOR=${OPENLDAP_SHLIB_MINOR} PLIST_SUB+= OPENLDAP_MAJOR=${OPENLDAP_MAJOR} .include .if ${SSL_DEFAULT:Mopenssl-devel} BROKEN= Does not build with openssl-devel .endif .if !${PORT_OPTIONS:MFETCH} CONFIGURE_ARGS+= --without-fetch .else . if defined(OPENSSL_INSTALLED) && ${OPENSSL_INSTALLED} != "" || ${SSL_DEFAULT} != base BROKEN= using OpenSSL from ports and OPTION FETCH together is not supported . endif .endif post-patch: @${REINPLACE_CMD} -e 's|%LOCALSTATEDIR%/run/|${LDAP_RUN_DIR}/|g' \ ${SED_MODULES} ${WRKSRC}/servers/slapd/slapd.conf @${REINPLACE_CMD} -e 's|^OPT =.*|OPT = ${CFLAGS}|g' \ -e 's|^CC =.*|CC = ${CC}|g' \ ${SED_MODULES} ${WRKSRC}/contrib/slapd-modules/*/Makefile \ ${WRKSRC}/contrib/slapd-modules/*/*/Makefile .if defined(CONFIGURE_SED) @${REINPLACE_CMD} -E ${CONFIGURE_SED} \ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT} .endif pre-configure: @if [ -n "`${PKG_INFO} -xI '^bind\(84\)\{0,1\}-base-8\.' 2>/dev/null`" ]; then \ ${ECHO_CMD} "${PKGNAME}: bind installed with PORT_REPLACES_BASE_BIND causes build problems."; \ ${FALSE}; \ fi .if !defined(CLIENT_ONLY) test: build @(cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} test) post-build: @${DO_NADA} .if ${PORT_OPTIONS:MSMBPWD} @(cd ${BUILD_WRKSRC}/contrib/slapd-modules/smbk5pwd && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \ ${MAKE_ARGS} DEFS="-DDO_SAMBA" prefix="${PREFIX}" all) .endif .if ${PORT_OPTIONS:MSHA2} @(cd ${BUILD_WRKSRC}/contrib/slapd-modules/passwd/sha2 && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \ ${MAKE_ARGS} prefix="${PREFIX}" all) .endif .if ${PORT_OPTIONS:MLASTBIND} @(cd ${BUILD_WRKSRC}/contrib/slapd-modules/lastbind && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \ ${MAKE_ARGS} prefix="${PREFIX}" all) .endif .endif pre-install: .if !defined(CLIENT_ONLY) ${MKDIR} ${STAGEDIR}${DATABASEDIR} .endif post-install: .if defined(CLIENT_ONLY) ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/CHANGES ${STAGEDIR}${DOCSDIR} for dir in drafts rfc; do \ ${MKDIR} ${STAGEDIR}${DOCSDIR}/$${dir}; \ ${INSTALL_DATA} ${WRKSRC}/doc/$${dir}/* ${STAGEDIR}${DOCSDIR}/$${dir}; \ done for prog in ldapcompare ldapdelete ldapexop ldapmodify ldapmodrdn ldappasswd ldapsearch ldapurl ldapwhoami; do\ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/$${prog}; \ done for library in lber ldap ldap_r; do \ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib$${library}-${OPENLDAP_MAJOR}.so.${OPENLDAP_SHLIB_MAJOR}; \ done .else ${MKDIR} ${STAGEDIR}${LDAP_RUN_DIR} .if ${PORT_OPTIONS:MSMBPWD} (cd ${WRKSRC}/contrib/slapd-modules/smbk5pwd && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \ ${MAKE_ARGS} prefix="${PREFIX}" install) ${RM} ${STAGEDIR}${PREFIX}/libexec/openldap/smbk5pwd.a .endif .if ${PORT_OPTIONS:MSHA2} (cd ${WRKSRC}/contrib/slapd-modules/passwd/sha2 && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \ ${MAKE_ARGS} prefix="${PREFIX}" install) ${RM} ${STAGEDIR}${PREFIX}/libexec/openldap/pw-sha2.a .endif .if ${PORT_OPTIONS:MLASTBIND} (cd ${WRKSRC}/contrib/slapd-modules/lastbind && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} \ ${MAKE_ARGS} prefix="${PREFIX}" install) ${RM} ${STAGEDIR}${PREFIX}/libexec/openldap/lastbind.a .endif .if ${PORT_OPTIONS:MDYNAMIC_BACKENDS} || ${PORT_OPTIONS:MSMBPWD} || ${PORT_OPTIONS:MSHA2} ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/openldap/*.so .endif .if ${PORT_OPTIONS:MDYNAMIC_BACKENDS} || ${PORT_OPTIONS:MSLAPI} ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/openldap .endif .endif # defined(CLIENT_ONLY) .include Index: head/net/openldap24-server/files/extrapatch-ITS6300 =================================================================== --- head/net/openldap24-server/files/extrapatch-ITS6300 (revision 453155) +++ head/net/openldap24-server/files/extrapatch-ITS6300 (revision 453156) @@ -1,406 +1,434 @@ --- configure.in.orig 2017-06-01 20:01:07 UTC +++ configure.in @@ -978,6 +978,18 @@ if test "${ac_cv_header_sys_epoll_h}" = yes; then fi dnl ---------------------------------------------------------------- +AC_CHECK_HEADERS( sys/event.h ) +if test "${ac_cv_header_sys_event_h}" = yes; then +AC_MSG_CHECKING(for kqueue system call) +AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv) +{ + int kqfd = kqueue(); + exit (kqfd == -1 ? 1 : 0); +}]])],[AC_MSG_RESULT(yes) +AC_DEFINE(HAVE_KQUEUE,1, [define if your system supports kqueue])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)]) +fi + +dnl ---------------------------------------------------------------- AC_CHECK_HEADERS( sys/devpoll.h ) dnl "/dev/poll" needs as well... if test "${ac_cv_header_sys_devpoll_h}" = yes \ --- include/portable.hin.orig 2017-06-01 20:01:07 UTC +++ include/portable.hin @@ -280,6 +280,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_IO_H +/* define if your system supports kqueue */ +#undef HAVE_KQUEUE + /* Define to 1 if you have the `gen' library (-lgen). */ #undef HAVE_LIBGEN @@ -664,6 +667,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_ERRNO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_EVENT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_FILE_H --- servers/slapd/daemon.c.orig 2017-06-01 20:01:07 UTC +++ servers/slapd/daemon.c @@ -41,14 +41,18 @@ #include "ldap_rq.h" -#if defined(HAVE_SYS_EPOLL_H) && defined(HAVE_EPOLL) +#ifdef HAVE_KQUEUE +# include +# include +# include +#elif defined(HAVE_SYS_EPOLL_H) && defined(HAVE_EPOLL) # include #elif defined(SLAP_X_DEVPOLL) && defined(HAVE_SYS_DEVPOLL_H) && defined(HAVE_DEVPOLL) # include # include # include # include -#endif /* ! epoll && ! /dev/poll */ +#endif /* ! kqueue && ! epoll && ! /dev/poll */ #ifdef HAVE_TCPD int allow_severity = LOG_INFO; @@ -89,7 +93,7 @@ static volatile sig_atomic_t listening = 1; /* 0 when static ldap_pvt_thread_t *listener_tid; #ifndef SLAPD_LISTEN_BACKLOG -#define SLAPD_LISTEN_BACKLOG 1024 +#define SLAPD_LISTEN_BACKLOG 2048 #endif /* ! SLAPD_LISTEN_BACKLOG */ #define DAEMON_ID(fd) (fd & slapd_daemon_mask) @@ -138,7 +142,21 @@ typedef struct slap_daemon_st { int sd_nwriters; int sd_nfds; -#if defined(HAVE_EPOLL) +#if defined(HAVE_KQUEUE) + uint8_t* sd_fdmodes; /* indexed by fd */ + Listener** sd_l; /* indexed by fd */ + /* Double buffer the kqueue changes to avoid holding the sd_mutex \ + * during a kevent() call. \ + */ + struct kq_change { + struct kevent* sd_changes; + int sd_nchanges; + int sd_maxchanges; + } sd_kqc[2]; + int sd_changeidx; /* index to current change buffer */ + int sd_kq; +#elif defined(HAVE_EPOLL) + struct epoll_event *sd_epolls; int *sd_index; int sd_epfd; @@ -148,7 +166,7 @@ typedef struct slap_daemon_st { int *sd_index; Listener **sd_l; int sd_dpfd; -#else /* ! epoll && ! /dev/poll */ +#else /* ! kqueue && ! epoll && ! /dev/poll */ #ifdef HAVE_WINSOCK char *sd_flags; char *sd_rflags; @@ -157,7 +175,7 @@ typedef struct slap_daemon_st { fd_set sd_readers; fd_set sd_writers; #endif /* ! HAVE_WINSOCK */ -#endif /* ! epoll && ! /dev/poll */ +#endif /* ! kqueue && ! epoll && ! /dev/poll */ } slap_daemon_st; static slap_daemon_st slap_daemon[SLAPD_MAX_DAEMON_THREADS]; @@ -169,11 +187,220 @@ static slap_daemon_st slap_daemon[SLAPD_MAX_DAEMON_THR * with file descriptors and events respectively * * - SLAP__* for private interface; type by now is one of - * EPOLL, DEVPOLL, SELECT + * EPOLL, DEVPOLL, SELECT, KQUEUE * * private interface should not be used in the code. */ -#if defined(HAVE_EPOLL) +#ifdef HAVE_KQUEUE +# define SLAP_EVENT_FNAME "kqueue" +# define SLAP_EVENTS_ARE_INDEXED 0 +# define SLAP_EVENT_MAX(t) (2 * dtblsize) /* each fd can have a read & a write event */ + +# define SLAP_EVENT_DECL \ + static struct kevent* events = NULL + +# define SLAP_EVENT_INIT(t) do {\ + if (!events) { \ + events = ch_malloc(sizeof(*events) * SLAP_EVENT_MAX(t)); \ + if (!events) { \ + Debug(LDAP_DEBUG_ANY, \ + "daemon: SLAP_EVENT_INIT: ch_malloc of events failed, wanted %d bytes\n", \ + sizeof(*events) * SLAP_EVENT_MAX(t), 0, 0); \ + slapd_shutdown = 2; \ + } \ + } \ +} while (0) + +# define SLAP_SOCK_INIT(t) do { \ + int kq_i; \ + size_t kq_nbytes; \ + Debug(LDAP_DEBUG_ANY, "daemon: SLAP_SOCK_INIT: dtblsize=%d\n", dtblsize, 0, 0); \ + slap_daemon[t].sd_nfds = 0; \ + slap_daemon[t].sd_changeidx = 0; \ + for (kq_i = 0; kq_i < 2; kq_i++) { \ + struct kq_change* kqc = &slap_daemon[t].sd_kqc[kq_i]; \ + kqc->sd_nchanges = 0; \ + kqc->sd_maxchanges = 256; /* will grow as needed */ \ + kq_nbytes = sizeof(*kqc->sd_changes) * kqc->sd_maxchanges; \ + kqc->sd_changes = ch_calloc(1, kq_nbytes); \ + if (!kqc->sd_changes) { \ + Debug(LDAP_DEBUG_ANY, \ + "daemon: SLAP_SOCK_INIT: ch_calloc of slap_daemon.sd_changes[%d] failed, wanted %d bytes, shutting down\n", \ + kq_i, kq_nbytes, 0); \ + slapd_shutdown = 2; \ + } \ + } \ + kq_nbytes = sizeof(*slap_daemon[t].sd_fdmodes) * dtblsize; \ + slap_daemon[t].sd_fdmodes = ch_calloc(1, kq_nbytes); \ + if (!slap_daemon[t].sd_fdmodes) { \ + Debug(LDAP_DEBUG_ANY, \ + "daemon: SLAP_SOCK_INIT: ch_calloc of slap_daemon.sd_fdmodes failed, wanted %d bytes, shutting down\n", \ + kq_nbytes, 0, 0); \ + slapd_shutdown = 2; \ + } \ + kq_nbytes = sizeof(*slap_daemon[t].sd_l) * dtblsize; \ + slap_daemon[t].sd_l = ch_calloc(1, kq_nbytes); \ + if (!slap_daemon[t].sd_l) { \ + Debug(LDAP_DEBUG_ANY, \ + "daemon: SLAP_SOCK_INIT: ch_calloc of slap_daemon.sd_l failed, wanted %d bytes, shutting down\n", \ + kq_nbytes, 0, 0); \ + slapd_shutdown = 2; \ + } \ + slap_daemon[t].sd_kq = kqueue(); \ + if (slap_daemon[t].sd_kq < 0) { \ + Debug(LDAP_DEBUG_ANY, "daemon: SLAP_SOCK_INIT: kqueue() failed, errno=%d, shutting down\n", errno, 0, 0); \ + slapd_shutdown = 2; \ + } \ +} while (0) + +# define SLAP_SOCK_DESTROY(t) do { \ + int kq_i; \ + if (slap_daemon[t].sd_kq > 0) { \ + close(slap_daemon[t].sd_kq); \ + slap_daemon[t].sd_kq = -1; \ + } \ + for (kq_i = 0; kq_i < 2; kq_i++) { \ + if (slap_daemon[t].sd_kqc[kq_i].sd_changes != NULL) { \ + ch_free(slap_daemon[t].sd_kqc[kq_i].sd_changes); \ + slap_daemon[t].sd_kqc[kq_i].sd_changes = NULL; \ + } \ + slap_daemon[t].sd_kqc[kq_i].sd_nchanges = 0; \ + slap_daemon[t].sd_kqc[kq_i].sd_maxchanges = 0; \ + } \ + if (slap_daemon[t].sd_l != NULL) { \ + ch_free(slap_daemon[t].sd_l); \ + slap_daemon[t].sd_l = NULL; \ + } \ + if (slap_daemon[t].sd_fdmodes != NULL) { \ + ch_free(slap_daemon[t].sd_fdmodes); \ + slap_daemon[t].sd_fdmodes = NULL; \ + } \ + slap_daemon[t].sd_nfds = 0; \ +} while (0) + +# define SLAP_KQUEUE_SOCK_ACTIVE 0x01 +# define SLAP_KQUEUE_SOCK_READ_ENABLED 0x02 +# define SLAP_KQUEUE_SOCK_WRITE_ENABLED 0x04 + +# define SLAP_SOCK_IS_ACTIVE(t,s) (slap_daemon[t].sd_fdmodes[(s)] != 0) +# define SLAP_SOCK_NOT_ACTIVE(t,s) (slap_daemon[t].sd_fdmodes[(s)] == 0) +# define SLAP_SOCK_IS_READ(t,s) (slap_daemon[t].sd_fdmodes[(s)] & SLAP_KQUEUE_SOCK_READ_ENABLED) +# define SLAP_SOCK_IS_WRITE(t,s) (slap_daemon[t].sd_fdmodes[(s)] & SLAP_KQUEUE_SOCK_WRITE_ENABLED) + +/* + * SLAP_SOCK_SET_* & SLAP_SOCK_CLR_* get called a _lot_. Since kevent() + * processes changes before it looks for events, batch up the changes which + * will get submitted the next time kevent() is called for events. + */ + +# define SLAP_KQUEUE_CHANGE(t, s, filter, flag) do { \ + /* If maxchanges is reached, have to realloc to make room for more. \ + * Ideally we'd call kevent(), but the daemon thread could be sitting \ + * in kevent() waiting for events. \ + */ \ + struct kq_change* kqc = &slap_daemon[t].sd_kqc[slap_daemon[t].sd_changeidx]; \ + if (kqc->sd_nchanges == kqc->sd_maxchanges) { \ + /* Don't want to do this very often. Double the size. */ \ + size_t kq_nbytes; \ + Debug(LDAP_DEBUG_CONNS, \ + "daemon: SLAP_KQUEUE_CHANGE: increasing slap_daemon.sd_kqc[%d].maxchanges from %d to %d\n", \ + slap_daemon[t].sd_changeidx, kqc->sd_maxchanges, 2*kqc->sd_maxchanges); \ + kqc->sd_maxchanges += kqc->sd_maxchanges; \ + kq_nbytes = sizeof(*kqc->sd_changes) * kqc->sd_maxchanges; \ + kqc->sd_changes = ch_realloc(kqc->sd_changes, kq_nbytes); \ + if (!kqc->sd_changes) { \ + Debug(LDAP_DEBUG_ANY, \ + "daemon: SLAP_KQUEUE_CHANGE: ch_realloc of slap_daemon.sd_kqc[%d].sd_changes failed, wanted %d bytes, shutting down\n", \ + slap_daemon[t].sd_changeidx, kq_nbytes, 0); \ + slapd_shutdown = 2; \ + break; /* Don't want to do the EV_SET if sd_changes is NULL */ \ + } \ + } \ + EV_SET(&kqc->sd_changes[kqc->sd_nchanges++], \ + (s), (filter), (flag), 0, 0, slap_daemon[t].sd_l[(s)]); \ +} while (0) + +# define SLAP_KQUEUE_SOCK_SET(t, s, filter, mode) do { \ + if ((slap_daemon[t].sd_fdmodes[(s)] & (mode)) != (mode)) { \ + slap_daemon[t].sd_fdmodes[(s)] |= (mode); \ + SLAP_KQUEUE_CHANGE(t, (s), (filter), EV_ENABLE); \ + } \ +} while (0) + +# define SLAP_KQUEUE_SOCK_CLR(t, s, filter, mode) do { \ + if (slap_daemon[t].sd_fdmodes[(s)] & (mode)) { \ + slap_daemon[t].sd_fdmodes[(s)] &= ~(mode); \ + SLAP_KQUEUE_CHANGE(t, (s), (filter), EV_DISABLE); \ + } \ +} while (0) + +# define SLAP_SOCK_SET_READ(t, s) SLAP_KQUEUE_SOCK_SET(t, (s), EVFILT_READ, SLAP_KQUEUE_SOCK_READ_ENABLED) +# define SLAP_SOCK_SET_WRITE(t, s) SLAP_KQUEUE_SOCK_SET(t, (s), EVFILT_WRITE, SLAP_KQUEUE_SOCK_WRITE_ENABLED) +# define SLAP_SOCK_CLR_READ(t, s) SLAP_KQUEUE_SOCK_CLR(t, (s), EVFILT_READ, SLAP_KQUEUE_SOCK_READ_ENABLED) +# define SLAP_SOCK_CLR_WRITE(t, s) SLAP_KQUEUE_SOCK_CLR(t, (s), EVFILT_WRITE, SLAP_KQUEUE_SOCK_WRITE_ENABLED) + +/* kqueue doesn't need to do anything to clear the event. */ +# define SLAP_EVENT_CLR_READ(i) do {} while (0) +# define SLAP_EVENT_CLR_WRITE(i) do {} while (0) + +# define SLAP_SOCK_ADD(t, s, l) do { \ + assert( s < dtblsize ); \ + slap_daemon[t].sd_l[(s)] = (l); \ + slap_daemon[t].sd_fdmodes[(s)] = SLAP_KQUEUE_SOCK_ACTIVE | SLAP_KQUEUE_SOCK_READ_ENABLED; \ + ++slap_daemon[t].sd_nfds; \ + SLAP_KQUEUE_CHANGE(t, (s), EVFILT_READ, EV_ADD); \ + SLAP_KQUEUE_CHANGE(t, (s), EVFILT_WRITE, EV_ADD | EV_DISABLE); \ +} while (0) + +# define SLAP_SOCK_DEL(t, s) do { \ + SLAP_KQUEUE_CHANGE(t, (s), EVFILT_READ, EV_DELETE); \ + SLAP_KQUEUE_CHANGE(t, (s), EVFILT_WRITE, EV_DELETE); \ + slap_daemon[t].sd_l[(s)] = NULL; \ + slap_daemon[t].sd_fdmodes[(s)] = 0; \ + --slap_daemon[t].sd_nfds; \ +} while (0) + +# define SLAP_EVENT_FD(t, i) (events[(i)].ident) + +# define SLAP_EVENT_IS_READ(t, i) \ + (events[(i)].filter == EVFILT_READ && SLAP_SOCK_IS_READ(t, SLAP_EVENT_FD(0, i))) + +# define SLAP_EVENT_IS_WRITE(t, i) \ + (events[(i)].filter == EVFILT_WRITE && SLAP_SOCK_IS_WRITE(t, SLAP_EVENT_FD(0, i))) + +# define SLAP_EVENT_IS_LISTENER(t, i) \ + (events[(i)].udata && SLAP_SOCK_IS_READ(t, SLAP_EVENT_FD(t, i))) + +# define SLAP_EVENT_LISTENER(t, i) ((Listener*)(events[(i)].udata)) + +# define SLAP_EVENT_WAIT(t, tvp, nsp) do { \ + struct timespec kq_ts; \ + struct timespec* kq_tsp; \ + int kq_idx; \ + if (tvp) { \ + TIMEVAL_TO_TIMESPEC((tvp), &kq_ts); \ + kq_tsp = &kq_ts; \ + } else { \ + kq_tsp = NULL; \ + } \ + /* Save the change buffer index for use when the mutex is unlocked, \ + * then switch the index so new changes go to the other buffer. \ + */ \ + ldap_pvt_thread_mutex_lock( &slap_daemon[t].sd_mutex ); \ + kq_idx = slap_daemon[t].sd_changeidx; \ + slap_daemon[t].sd_changeidx ^= 1; \ + ldap_pvt_thread_mutex_unlock( &slap_daemon[t].sd_mutex ); \ + *(nsp) = kevent(slap_daemon[t].sd_kq, \ + slap_daemon[t].sd_kqc[kq_idx].sd_nchanges \ + ? slap_daemon[t].sd_kqc[kq_idx].sd_changes : NULL, \ + slap_daemon[t].sd_kqc[kq_idx].sd_nchanges, \ + events, SLAP_EVENT_MAX(t), kq_tsp); \ + slap_daemon[t].sd_kqc[kq_idx].sd_nchanges = 0; \ +} while(0) + +/*-------------------------------------------------------------------------------*/ + +#elif defined(HAVE_EPOLL) /*************************************** * Use epoll infrastructure - epoll(4) * ***************************************/ @@ -486,7 +713,7 @@ static slap_daemon_st slap_daemon[SLAPD_MAX_DAEMON_THR *(nsp) = ioctl( slap_daemon[t].sd_dpfd, DP_POLL, &sd_dvpoll ); \ } while (0) -#else /* ! epoll && ! /dev/poll */ +#else /* ! kqueue && ! epoll && ! /dev/poll */ # ifdef HAVE_WINSOCK # define SLAP_EVENT_FNAME "WSselect" /* Winsock provides a "select" function but its fd_sets are @@ -674,7 +901,7 @@ static slap_daemon_st slap_daemon[SLAPD_MAX_DAEMON_THR nwriters > 0 ? &writefds : NULL, NULL, (tvp) ); \ } while (0) # endif /* !HAVE_WINSOCK */ -#endif /* ! epoll && ! /dev/poll */ +#endif /* ! kqueue && ! epoll && ! /dev/poll */ #ifdef HAVE_SLP /* @@ -2733,8 +2960,13 @@ loop: /* Don't log internal wake events */ if ( fd == wake_sds[tid][0] ) continue; +#ifdef HAVE_KQUEUE + r = SLAP_EVENT_IS_READ( tid, i ); + w = SLAP_EVENT_IS_WRITE( tid, i ); +#else r = SLAP_EVENT_IS_READ( i ); w = SLAP_EVENT_IS_WRITE( i ); +#endif /* HAVE_KQUEUE */ if ( r || w ) { Debug( LDAP_DEBUG_CONNS, " %d%s%s", fd, r ? "r" : "", w ? "w" : "" ); @@ -2765,7 +2997,11 @@ loop: continue; } +#ifdef HAVE_KQUEUE + if ( SLAP_EVENT_IS_WRITE( tid, i ) ) { +#else if ( SLAP_EVENT_IS_WRITE( i ) ) { +#endif /* HAVE_KQUEUE */ Debug( LDAP_DEBUG_CONNS, "daemon: write active on %d\n", fd, 0, 0 ); @@ -2784,7 +3020,11 @@ loop: } } /* If event is a read */ +#ifdef HAVE_KQUEUE + if ( SLAP_EVENT_IS_READ( tid, i )) { +#else if ( SLAP_EVENT_IS_READ( i )) { +#endif /* HAVE_KQUEUE */ r = 1; Debug( LDAP_DEBUG_CONNS, "daemon: read active on %d\n", @@ -2841,6 +3081,10 @@ loop: slapd_abrupt_shutdown = 1; connections_shutdown(); } + +#ifdef HAVE_KQUEUE + close( slap_daemon[tid].sd_kq ); +#endif if ( LogTest( LDAP_DEBUG_ANY )) { int t = ldap_pvt_thread_pool_backload( &connection_pool ); +--- libraries/liblutil/detach.c.orig 2017-06-01 20:01:07 UTC ++++ libraries/liblutil/detach.c +@@ -73,7 +73,7 @@ lutil_detach( int debug, int do_close ) + #ifdef HAVE_THR + pid = fork1(); + #else +- pid = fork(); ++ pid = rfork(RFPROC); + #endif + switch ( pid ) + { +--- servers/slapd/main.c.orig 2017-06-01 20:01:07 UTC ++++ servers/slapd/main.c +@@ -923,12 +923,11 @@ unhandled_option:; + if ( pid ) { + char buf[4]; + rc = EXIT_SUCCESS; +- close( waitfds[1] ); + if ( read( waitfds[0], buf, 1 ) != 1 ) + rc = EXIT_FAILURE; +- _exit( rc ); +- } else { ++ close( waitfds[1] ); + close( waitfds[0] ); ++ _exit( rc ); + } + } + #endif /* HAVE_WINSOCK */ Index: head/net/openldap24-server/pkg-plist =================================================================== --- head/net/openldap24-server/pkg-plist (revision 453155) +++ head/net/openldap24-server/pkg-plist (revision 453156) @@ -1,172 +1,171 @@ -@preunexec %%RC_DIR%%/etc/rc.d/slapd stop 2>&1 >/dev/null || true %%ETCDIR%%/schema/README %%ETCDIR%%/schema/collective.ldif @sample %%ETCDIR%%/schema/collective.schema.sample %%ETCDIR%%/schema/corba.ldif @sample %%ETCDIR%%/schema/corba.schema.sample %%ETCDIR%%/schema/core.ldif @sample %%ETCDIR%%/schema/core.schema.sample %%ETCDIR%%/schema/cosine.ldif @sample %%ETCDIR%%/schema/cosine.schema.sample %%ETCDIR%%/schema/duaconf.ldif @sample %%ETCDIR%%/schema/duaconf.schema.sample %%ETCDIR%%/schema/dyngroup.ldif @sample %%ETCDIR%%/schema/dyngroup.schema.sample %%ETCDIR%%/schema/inetorgperson.ldif @sample %%ETCDIR%%/schema/inetorgperson.schema.sample %%ETCDIR%%/schema/java.ldif @sample %%ETCDIR%%/schema/java.schema.sample %%ETCDIR%%/schema/misc.ldif @sample %%ETCDIR%%/schema/misc.schema.sample %%ETCDIR%%/schema/nis.ldif @sample %%ETCDIR%%/schema/nis.schema.sample %%ETCDIR%%/schema/openldap.ldif @sample %%ETCDIR%%/schema/openldap.schema.sample %%ETCDIR%%/schema/pmi.ldif @sample %%ETCDIR%%/schema/pmi.schema.sample %%ETCDIR%%/schema/ppolicy.ldif @sample %%ETCDIR%%/schema/ppolicy.schema.sample @sample %%ETCDIR%%/slapd.conf.sample @sample %%ETCDIR%%/slapd.ldif.sample %%BACK_BDB%%%%ETCDIR%%/DB_CONFIG.example %%SLAPI%%lib/libslapi-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%SLAPI%%lib/libslapi-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%SLAPI%%lib/libslapi.a %%SLAPI%%lib/libslapi.la %%SLAPI%%lib/libslapi.so %%BACK_BDB%%libexec/openldap/back_bdb-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_BDB%%libexec/openldap/back_bdb-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_BDB%%libexec/openldap/back_bdb.la %%BACK_BDB%%libexec/openldap/back_bdb.so %%BACK_HDB%%libexec/openldap/back_hdb-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_HDB%%libexec/openldap/back_hdb-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_HDB%%libexec/openldap/back_hdb.la %%BACK_HDB%%libexec/openldap/back_hdb.so %%BACKEND%%libexec/openldap/back_ldap-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACKEND%%libexec/openldap/back_ldap-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACKEND%%libexec/openldap/back_ldap.la %%BACKEND%%libexec/openldap/back_ldap.so %%BACKEND%%libexec/openldap/back_meta-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACKEND%%libexec/openldap/back_meta-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACKEND%%libexec/openldap/back_meta.la %%BACKEND%%libexec/openldap/back_meta.so %%BACKEND%%libexec/openldap/back_monitor-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACKEND%%libexec/openldap/back_monitor-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACKEND%%libexec/openldap/back_monitor.la %%BACKEND%%libexec/openldap/back_monitor.so %%BACKEND%%libexec/openldap/back_null-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACKEND%%libexec/openldap/back_null-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACKEND%%libexec/openldap/back_null.la %%BACKEND%%libexec/openldap/back_null.so %%BACK_DNSSRV%%libexec/openldap/back_dnssrv-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_DNSSRV%%libexec/openldap/back_dnssrv-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_DNSSRV%%libexec/openldap/back_dnssrv.la %%BACK_DNSSRV%%libexec/openldap/back_dnssrv.so %%BACK_MDB%%libexec/openldap/back_mdb-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_MDB%%libexec/openldap/back_mdb-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_MDB%%libexec/openldap/back_mdb.la %%BACK_MDB%%libexec/openldap/back_mdb.so %%BACK_PASSWD%%libexec/openldap/back_passwd-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_PASSWD%%libexec/openldap/back_passwd-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_PASSWD%%libexec/openldap/back_passwd.la %%BACK_PASSWD%%libexec/openldap/back_passwd.so %%BACK_PERL%%libexec/openldap/back_perl-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_PERL%%libexec/openldap/back_perl-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_PERL%%libexec/openldap/back_perl.la %%BACK_PERL%%libexec/openldap/back_perl.so %%BACK_RELAY%%libexec/openldap/back_relay-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_RELAY%%libexec/openldap/back_relay-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_RELAY%%libexec/openldap/back_relay.la %%BACK_RELAY%%libexec/openldap/back_relay.so %%BACK_SHELL%%libexec/openldap/back_shell-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_SHELL%%libexec/openldap/back_shell-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_SHELL%%libexec/openldap/back_shell.la %%BACK_SHELL%%libexec/openldap/back_shell.so %%BACK_SOCK%%libexec/openldap/back_sock-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_SOCK%%libexec/openldap/back_sock-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_SOCK%%libexec/openldap/back_sock.la %%BACK_SOCK%%libexec/openldap/back_sock.so %%BACK_SQL%%libexec/openldap/back_sql-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%% %%BACK_SQL%%libexec/openldap/back_sql-%%OPENLDAP_MAJOR%%.so.%%SHLIB_MAJOR%%.%%SHLIB_MINOR%% %%BACK_SQL%%libexec/openldap/back_sql.la %%BACK_SQL%%libexec/openldap/back_sql.so %%SHA2%%libexec/openldap/pw-sha2.la %%SHA2%%libexec/openldap/pw-sha2.so %%SHA2%%libexec/openldap/pw-sha2.so.0 %%SHA2%%libexec/openldap/pw-sha2.so.0.0.0 %%SMBPWD%%libexec/openldap/smbk5pwd.la %%SMBPWD%%libexec/openldap/smbk5pwd.so %%SMBPWD%%libexec/openldap/smbk5pwd.so.0 %%SMBPWD%%libexec/openldap/smbk5pwd.so.0.0.0 %%LASTBIND%%libexec/openldap/lastbind.la %%LASTBIND%%libexec/openldap/lastbind.so %%LASTBIND%%libexec/openldap/lastbind.so.0 %%LASTBIND%%libexec/openldap/lastbind.so.0.0.0 libexec/slapd man/man5/slapd-bdb.5.gz man/man5/slapd-config.5.gz man/man5/slapd-dnssrv.5.gz man/man5/slapd-hdb.5.gz man/man5/slapd-ldap.5.gz man/man5/slapd-ldbm.5.gz man/man5/slapd-ldif.5.gz man/man5/slapd-mdb.5.gz man/man5/slapd-meta.5.gz man/man5/slapd-monitor.5.gz man/man5/slapd-ndb.5.gz man/man5/slapd-null.5.gz man/man5/slapd-passwd.5.gz man/man5/slapd-perl.5.gz man/man5/slapd-relay.5.gz man/man5/slapd-shell.5.gz man/man5/slapd-sock.5.gz man/man5/slapd-sql.5.gz man/man5/slapd.access.5.gz man/man5/slapd.backends.5.gz man/man5/slapd.conf.5.gz man/man5/slapd.overlays.5.gz man/man5/slapd.plugin.5.gz man/man5/slapo-accesslog.5.gz man/man5/slapo-auditlog.5.gz man/man5/slapo-chain.5.gz man/man5/slapo-collect.5.gz man/man5/slapo-constraint.5.gz man/man5/slapo-dds.5.gz man/man5/slapo-dyngroup.5.gz man/man5/slapo-dynlist.5.gz man/man5/slapo-memberof.5.gz man/man5/slapo-pbind.5.gz man/man5/slapo-pcache.5.gz man/man5/slapo-ppolicy.5.gz man/man5/slapo-refint.5.gz man/man5/slapo-retcode.5.gz man/man5/slapo-rwm.5.gz man/man5/slapo-sock.5.gz man/man5/slapo-sssvlv.5.gz man/man5/slapo-syncprov.5.gz man/man5/slapo-translucent.5.gz man/man5/slapo-unique.5.gz man/man5/slapo-valsort.5.gz man/man8/slapacl.8.gz man/man8/slapadd.8.gz man/man8/slapauth.8.gz man/man8/slapcat.8.gz man/man8/slapd.8.gz man/man8/slapdn.8.gz man/man8/slapindex.8.gz man/man8/slappasswd.8.gz man/man8/slapschema.8.gz man/man8/slaptest.8.gz sbin/slapacl sbin/slapadd sbin/slapauth sbin/slapcat sbin/slapdn sbin/slapindex sbin/slappasswd sbin/slapschema sbin/slaptest @dir %%ETCDIR%%/schema %%MODULES%%@dir libexec/openldap @dir(%%LDAP_USER%%,%%LDAP_GROUP%%,775) %%LDAP_RUN_DIR%% @dir(%%LDAP_USER%%,%%LDAP_GROUP%%,775) %%DATABASEDIR%%