1# $OpenBSD: Makefile,v 1.10 2020/01/11 11:40:46 espie Exp $ 2 3OUT=${.CURDIR}/out 4DIT=dc=example,dc=com 5DIT2=dc=bar,dc=quux 6NLV=0.65 7CLEANFILES=ldapd.pid log ldapd1.conf ${DIT}_indx.db ${DIT}_data.db ${DIT2}_indx.db ${DIT2}_data.db 8 9# Needs p5-ldap and openldap (client) 10 11PERL_REQUIRE != perl -Mstrict -Mwarnings -e ' \ 12 eval { require Net::LDAP } or print $@; \ 13' 14.if ! empty (PERL_REQUIRE) 15regress: 16 @echo "${PERL_REQUIRE}" 17 @echo install package p5-ldap 18 @echo SKIPPED 19.endif 20 21.if ! (make(clean) || make(cleandir) || make(obj)) 22LDAP_DEP != ldapsearch -VV 2>/dev/null ; echo $? 23.endif 24.if ("${LDAP_DEP}" != 0) 25regress: 26 @echo openldap-client must be installed 27 @echo SKIPPED 28.endif 29 30REGRESS_TARGETS = connect import perl purge #cpan 31 32bootstrap: 33 @[ -z "${SUDO}" ] || ${SUDO} true 34 @${SUDO} install -m 600 -o root ${.CURDIR}/ldapd.conf ${.OBJDIR}/ldapd1.conf 35 @${SUDO} ldapd -n -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf 36 @${SUDO} ldapd -dvv -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf > ${.OBJDIR}/log 2>&1 & \ 37 echo $$! > ${.OBJDIR}/ldapd.pid 38 @sleep 1 39 40.if ! (make(clean) || make(cleandir) || make(obj)) 41.END: 42 @if [ -f ${.OBJDIR}/ldapd.pid ]; then \ 43 ${SUDO} kill $$(cat ${.OBJDIR}/ldapd.pid) &&\ 44 rm ${.OBJDIR}/ldapd.pid; \ 45 fi 46.endif 47 48connect: bootstrap 49 -ldapsearch -x -H ldapi://%2ftmp%2fldapi | diff - ${OUT}/empty.log 50 -ldapsearch -x -p 6639 -h localhost 2>&1 | diff - ${OUT}/empty.log 51 -ldapsearch -x -p 6636 -h localhost 2>&1 | diff - ${OUT}/empty.log 52 53import: bootstrap 54 ldapadd -f ${.CURDIR}/dit-example.ldif -Dcn=admin,${DIT} -x -w secret -h localhost -p 6639 | diff - ${OUT}/adding.log 55 ldapsearch -x -b ${DIT} -h localhost -p 6639 | diff - ${OUT}/example.log 56 ldapsearch -x -D cn=admin,${DIT} -w secret -b ${DIT} -h localhost -p 6639 | diff - ${OUT}/example.log 57 58purge: bootstrap 59 ldapdelete -Dcn=admin,${DIT} -x -w secret -h localhost -p 6639 -r ${DIT} 60 -ldapsearch -x -p 6639 -h localhost 2>&1 | diff - ${OUT}/empty.log 61 62perl: bootstrap 63 @-perl ${.CURDIR}/run-tests.pl 64 65# run tests from Net::LDAP 66# requires all of databases/p5-ldap RUN_DEPENDS 67# tests above 41 fail because ldapd doesnt handle uppercase namespaces 68cpan: bootstrap 69 tar -C ${.OBJDIR} -xzf /usr/ports/distfiles/perl-ldap-${NLV}.tar.gz 70 @${SUDO} install -m 600 -o root ${.CURDIR}/nldapd.conf ${.OBJDIR}/perl-ldap-${NLV} 71 cp common.pl ${.OBJDIR}/perl-ldap-${NLV}/t 72 cd ${.OBJDIR}/perl-ldap-${NLV} && perl Makefile.PL --skipdeps 73 sed -i -e 's/OpenLDAPperson/inetOrgPerson/' ${.OBJDIR}/perl-ldap-${NLV}/data/*.ldif 74 @-${SUDO} ${MAKE} -C ${.OBJDIR}/perl-ldap-${NLV} test 75 76.include <bsd.regress.mk> 77