Date: Thu, 29 May 2008 22:38:59 GMT From: Jens Rehsack <rehsack@web.de> To: freebsd-gnats-submit@FreeBSD.org Subject: misc/124115: Auto-Detect OpenLDAP version and modify knobs according to common names Message-ID: <200805292238.m4TMcxPI041346@www.freebsd.org> Resent-Message-ID: <200805292250.m4TMo26P057153@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 124115 >Category: misc >Synopsis: Auto-Detect OpenLDAP version and modify knobs according to common names >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu May 29 22:50:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Jens Rehsack >Release: 6.3-STABLE, 7.0-STABLE >Organization: >Environment: FreeBSD waldorf.muppets.liwing.de 6.3-STABLE FreeBSD 6.3-STABLE #0: Sat May 24 10:41:49 UTC 2008 root@waldorf.muppets.liwing.de:/usr/obj/usr/src/sys/WALDORF amd64 FreeBSD statler.muppets.liwing.de 7.0-STABLE FreeBSD 7.0-STABLE #0: Tue May 13 00:57:06 CEST 2008 root@statler.muppets.liwing.de:/usr/obj/usr/src/sys/STATLER i386 >Description: It seems, bsd.port.mk have problems with USE_OPENLDAP=yes when openldap 2.4 is installed ;-) Because of many USE_XXX auto-detect installed version and the associated port, USE_OPENLDAP with this patch is one of them ;) >How-To-Repeat: Install openldap-client-2.4 Install Samba or PHP with LDAP >Fix: Patch attached with submission follows: Index: Mk/bsd.port.mk =================================================================== diff -u Mk/bsd.port.mk.orig Mk/bsd.port.mk --- Mk/bsd.port.mk.orig 2008-05-24 13:06:07.000000000 +0000 +++ Mk/bsd.port.mk 2008-05-24 13:27:02.000000000 +0000 @@ -401,7 +401,7 @@ # USE_OPENLDAP - If set, this port uses the OpenLDAP libraries. # Implies: WANT_OPENLDAP_VER?=23 # WANT_OPENLDAP_VER -# - Legal values are: 22, 23, 24 +# - Legal values are: 23, 24 # If set to an unkown value, the port is marked BROKEN. # WANT_OPENLDAP_SASL # - If set, the system should use OpenLDAP libraries @@ -1531,8 +1531,6 @@ # Location of mounted CDROM(s) to search for files CD_MOUNTPTS?= /cdrom ${CD_MOUNTPT} -WANT_OPENLDAP_VER?= 23 - # Owner and group of the WWW user WWWOWN?= www WWWGRP?= www @@ -1676,26 +1674,8 @@ .include "${PORTSDIR}/Mk/bsd.gcc.mk" .endif -.if defined(USE_OPENLDAP_VER) -USE_OPENLDAP?= yes -WANT_OPENLDAP_VER= ${USE_OPENLDAP_VER} -.endif - -.if defined(USE_OPENLDAP) -.if defined(WANT_OPENLDAP_SASL) -_OPENLDAP_FLAVOUR= -sasl -.else -_OPENLDAP_FLAVOUR= -.endif -.if ${WANT_OPENLDAP_VER} == 22 -LIB_DEPENDS+= ldap-2.2.7:${PORTSDIR}/net/openldap22${_OPENLDAP_FLAVOUR}-client -.elif ${WANT_OPENLDAP_VER} == 23 -LIB_DEPENDS+= ldap-2.3.2:${PORTSDIR}/net/openldap23${_OPENLDAP_FLAVOUR}-client -.elif ${WANT_OPENLDAP_VER} == 24 -LIB_DEPENDS+= ldap-2.4.2:${PORTSDIR}/net/openldap24${_OPENLDAP_FLAVOUR}-client -.else -IGNORE= cannot be built with unknown OpenLDAP version: ${WANT_OPENLDAP_VER} -.endif +.if defined(USE_OPENLDAP) || defined(WANT_OPENLDAP_VER) +.include "${PORTSDIR}/Mk/bsd.ldap.mk" .endif .if defined(USE_FAM) Index: Mk/bsd.ldap.mk =================================================================== diff -u Mk/bsd.ldap.mk.orig Mk/bsd.ldap.mk --- Mk/bsd.ldap.mk.orig 2008-05-24 13:25:18.000000000 +0000 +++ Mk/bsd.ldap.mk 2008-05-24 16:03:20.000000000 +0000 @@ -0,0 +1,93 @@ +# -*- mode: Makefile; tab-width: 4; -*- +# ex: ts=4 +# +# $FreeBSD$ +# + +.if defined(_POSTMKINCLUDED) && !defined(Ldap_Post_Include) + +Ldap_Post_Include= bsd.ldap.mk +Database_Include_MAINTAINER= ports@FreeBSD.org + +# This file contains some routines to interact with different databases, such +# as mysql, postgresql and berkley DB. For including this file define macro +# USE_[LDAP], for example USE_OPENLDAP. Defining macro like USE_[LDAP]_VER or +# WANT_[LDAP]_VER will include this file too. +# +## +# USE_OPENLDAP - Add OpenLDAP client dependency. +# If no version is given (by the maintainer via the port or +# by the user via defined variable), try to find the +# currently installed version. Fall back to default if +# necessary (OpenLDAP 2.3 = 23). +# DEFAULT_OPENLDAP_VER +# - OpenLDAP default version. Can be overriden within a port. +# Default: 23. +# WANT_OPENLDAP_VER +# - Maintainer can set an arbitrary version of OpenLDAP by using it. +# IGNORE_OPENLDAP_OPENLDAP +# - This variable can be defined if the ports doesn't support +# one or more version of OpenLDAP. +# WITH_OPENLDAP_VER +# - User defined variable to set OpenLDAP version. +# OPENLDAP_VER +# - Detected OpenLDAP version. + +.if defined(USE_OPENLDAP) +DEFAULT_OPENLDPAP_VER?= 23 +# OpenLDAP client versions currently supported +OPENLDAP23_LIBVER= 2.3.2 +OPENLDAP24_LIBVER= 2.4.2 + +.if exists(${LOCALBASE}/bin/ldapwhoami) +_OPENLDAP_VER!= ${LOCALBASE}/bin/ldapwhoami -VV 2>&1 | ${GREP} ldapwhoami | ${SED} -E 's/.*OpenLDAP: ldapwhoami (2)\.(3|4).*/\1\2/' +.endif + +.if defined(WANT_OPENLDAP_VER) +.if defined(WITH_OPENLDAP_VER) && ${WITH_OPENLDAP_VER} != ${WANT_OPENLDAP_VER} +IGNORE= cannot install: the port wants openldap${WANT_OPENLDAP_VER}-client and you try to install openldap${WITH_OPENLDAP_VER}-client. +.endif +OPENLDAP_VER= ${WANT_OPENLDAP_VER} +.elif defined(WITH_OPENLDAP_VER) +OPENLDAP_VER= ${WITH_OPENLDAP_VER} +.else +.if defined(_OPENLDAP_VER) +OPENLDAP_VER= ${_OPENLDAP_VER} +.else +OPENLDAP_VER= ${DEFAULT_OPENLDAP_VER} +.endif +.endif # WANT_OPENLDAP_VER + +.if defined(_OPENLDAP_VER) +.if ${_OPENLDAP_VER} != ${OPENLDAP_VER} +IGNORE= cannot install: OpenLDAP versions mismatch: openldap${_OPENLDAP_VER}-client is installed and wanted version is openldap${OPENLDAP_VER}-client +.endif +.endif + +.if defined(WANT_OPENLDAP_SASL) +_OPENLDAP_FLAVOUR= -sasl +.else +_OPENLDAP_FLAVOUR= +.endif + +# And now we are checking if we can use it +.if defined(OPENLDAP${OPENLDAP_VER}_LIBVER) +# compatability shim +.if defined(BROKEN_WITH_OPENLDAP) +IGNORE_WITH_OPENLDAP=${BROKEN_WITH_OPENLDAP} +.endif +.if defined(IGNORE_WITH_OPENLDAP) +. for VER in ${IGNORE_WITH_OPENLDAP} +. if (${OPENLDAP_VER} == "${VER}") +IGNORE= cannot install: doesn't work with OpenLDAP version: ${OPENLDAP_VER} (Doesn't support OpenLDAP ${IGNORE_WITH_OPENLDAP}) +. endif +. endfor +.endif # IGNORE_WITH_OPENLDAP +LIB_DEPENDS+= ldap-${OPENLDAP${OPENLDAP_VER}_LIBVER}:${PORTSDIR}/net/openldap${OPENLDAP_VER}${_OPENLDAP_FLAVOUR}-client +.else +IGNORE= cannot install: unknown OpenLDAP version: ${OPENLDAP_VER} +.endif # Check for correct libs + +.endif # defined(USE_OPENLDAP) + +.endif # defined(_POSTMKINCLUDED) && !defined(Ldap_Post_Include) Index: mail/postfix1/Makefile =================================================================== diff -u mail/postfix1/Makefile.orig mail/postfix1/Makefile --- mail/postfix1/Makefile.orig 2008-05-24 13:38:05.000000000 +0000 +++ mail/postfix1/Makefile 2008-05-24 13:38:49.000000000 +0000 @@ -116,9 +116,6 @@ .if defined(WITH_OPENLDAP) BROKEN= does not support OPENLDAP USE_OPENLDAP= yes -.if defined(WITH_OPENLDAP_VER) -USE_OPENLDAP_VER= ${WITH_OPENLDAP_VER} -.endif POSTFIX_CCARGS+= -DHAS_LDAP -I${LOCALBASE}/include POSTFIX_AUXLIBS+= -L${LOCALBASE}/lib -lldap -llber _REQUIRE+= slapd Index: dns/bind9-dlz/Makefile =================================================================== diff -u dns/bind9-dlz/Makefile.orig dns/bind9-dlz/Makefile --- dns/bind9-dlz/Makefile.orig 2008-05-24 13:39:08.000000000 +0000 +++ dns/bind9-dlz/Makefile 2008-05-24 13:40:01.000000000 +0000 @@ -87,7 +87,7 @@ .if defined(WITH_LDAP) LDAP_SUFFIX= +ldap -USE_OPENLDAP_VER?= 23 +WITH_OPENLDAP_VER?= 23 CONFIGURE_ARGS+= --with-dlz-ldap .endif >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805292238.m4TMcxPI041346>