We need to always use mozldap ldap headers for slapi plugins, untill
389 ds moves to openldap libs.
But at the same time we want to move to openldap libs for anything else.

Fix configure/makefile to always check for openldap libs and always use
them in anything but slapi plugins.

(fixes bz#464564/trac#221)

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York
>From d6425215c92dba5af4dd108a492620b53c649702 Mon Sep 17 00:00:00 2001
From: Simo Sorce <sso...@redhat.com>
Date: Tue, 5 Oct 2010 17:35:16 -0400
Subject: [PATCH] Always detect openldap and mozldap at the same time

Slapi plugins must use mozldap because 389 ds is compiled against that.
ipa_kpasswd, instead, should be linked against openldap.
So always make sure both are available.
---
 daemons/configure.ac            |   72 +++++++++++++++++----------------------
 daemons/ipa-kpasswd/Makefile.am |    4 +-
 2 files changed, 33 insertions(+), 43 deletions(-)

diff --git a/daemons/configure.ac b/daemons/configure.ac
index 65b79cb..7353c45 100644
--- a/daemons/configure.ac
+++ b/daemons/configure.ac
@@ -135,11 +135,9 @@ fi
 AC_SUBST(KRB5_LIBS)
 
 dnl ---------------------------------------------------------------------------
-dnl - Check for Mozilla LDAP or OpenLDAP SDK
+dnl - Check for Mozilla LDAP *and* OpenLDAP SDK
 dnl ---------------------------------------------------------------------------
 
-AC_ARG_WITH(openldap, [  --with-openldap            Use OpenLDAP])
-
 dnl The mozldap libraries are always needed because ipa-slapi-plugins/dna/ 
 dnl will not build against OpenLDAP.
 SAVE_CPPFLAGS=$CPPFLAGS
@@ -160,47 +158,39 @@ if test "x$ac_cv_header_mozldap_ldap_h" = "xno" ; then
 fi
 PKG_CHECK_MODULES(MOZLDAP, mozldap > 6)
 
-if test x$with_openldap = xyes; then
-	AC_CHECK_LIB(ldap, ldap_search, with_ldap=yes)
-	dnl Check for other libraries we need to link with to get the main routines.
-	test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes], , -llber) }
-	test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes], , -llber -lkrb) }
-	test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes with_ldap_des=yes], , -llber -lkrb -ldes) }
-	dnl Recently, we need -lber even though the main routines are elsewhere,
-	dnl because otherwise be get link errors w.r.t. ber_pvt_opt_on.  So just
-	dnl check for that (it's a variable not a fun but that doesn't seem to
-	dnl matter in these checks)  and stick in -lber if so.  Can't hurt (even to
-	dnl stick it in always shouldn't hurt, I don't think) ... #### Someone who
-	dnl #### understands LDAP needs to fix this properly.
-	test "$with_ldap_lber" != "yes" && { AC_CHECK_LIB(lber, ber_pvt_opt_on, with_ldap_lber=yes) }
-	
-	if test "$with_ldap" = "yes"; then
-	  if test "$with_ldap_des" = "yes" ; then
-	    LDAP_LIBS="${LDAP_LIBS} -ldes"
-	  fi
-	  if test "$with_ldap_krb" = "yes" ; then
-	    LDAP_LIBS="${LDAP_LIBS} -lkrb"
-	  fi
-	  if test "$with_ldap_lber" = "yes" ; then
-	    LDAP_LIBS="${LDAP_LIBS} -llber"
-	  fi
-	  LDAP_LIBS="${LDAP_LIBS} -lldap"
-	else
-	  AC_MSG_ERROR([OpenLDAP not found])
-	fi
-	
-	AC_SUBST(LDAP_LIBS)
+AC_CHECK_LIB(ldap, ldap_search, with_ldap=yes)
+dnl Check for other libraries we need to link with to get the main routines.
+test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes], , -llber) }
+test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes], , -llber -lkrb) }
+test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes with_ldap_des=yes], , -llber -lkrb -ldes) }
+dnl Recently, we need -lber even though the main routines are elsewhere,
+dnl because otherwise be get link errors w.r.t. ber_pvt_opt_on.  So just
+dnl check for that (it's a variable not a fun but that doesn't seem to
+dnl matter in these checks)  and stick in -lber if so.  Can't hurt (even to
+dnl stick it in always shouldn't hurt, I don't think) ... #### Someone who
+dnl #### understands LDAP needs to fix this properly.
+test "$with_ldap_lber" != "yes" && { AC_CHECK_LIB(lber, ber_pvt_opt_on, with_ldap_lber=yes) }
 
-	LDAP_CFLAGS="${LDAP_CFLAGS} -DWITH_OPENLDAP"
-	AC_SUBST(LDAP_CFLAGS)
+if test "$with_ldap" = "yes"; then
+  if test "$with_ldap_des" = "yes" ; then
+    OPENLDAP_LIBS="${OPENLDAP_LIBS} -ldes"
+  fi
+  if test "$with_ldap_krb" = "yes" ; then
+    OPENLDAP_LIBS="${OPENLDAP_LIBS} -lkrb"
+  fi
+  if test "$with_ldap_lber" = "yes" ; then
+    OPENLDAP_LIBS="${OPENLDAP_LIBS} -llber"
+  fi
+  OPENLDAP_LIBS="${OPENLDAP_LIBS} -lldap"
 else
-	LDAP_LIBS="${MOZLDAP_LIBS}"
-	AC_SUBST(LDAP_LIBS)
-
-	LDAP_CFLAGS="${LDAP_CFLAGS} -DWITH_MOZLDAP"
-	AC_SUBST(LDAP_CFLAGS)
+  AC_MSG_ERROR([OpenLDAP not found])
 fi
 
+AC_SUBST(OPENLDAP_LIBS)
+
+OPENLDAP_CFLAGS="${OPENLDAP_CFLAGS} -DWITH_OPENLDAP"
+AC_SUBST(OPENLDAP_CFLAGS)
+
 dnl ---------------------------------------------------------------------------
 dnl - Check for OpenSSL Crypto library
 dnl ---------------------------------------------------------------------------
@@ -310,7 +300,7 @@ echo "
 	source code location:	  ${srcdir}
 	compiler:		  ${CC}
 	cflags:		          ${CFLAGS}
-        LDAP libs:                ${LDAP_LIBS}
+        LDAP libs:                ${OPENLDAP_LIBS}
         KRB5 libs:                ${KRB5_LIBS}
         OpenSSL libs:             ${SSL_LIBS}
         Maintainer mode:          ${USE_MAINTAINER_MODE}
diff --git a/daemons/ipa-kpasswd/Makefile.am b/daemons/ipa-kpasswd/Makefile.am
index 5f95fde..ce241ca 100644
--- a/daemons/ipa-kpasswd/Makefile.am
+++ b/daemons/ipa-kpasswd/Makefile.am
@@ -8,7 +8,7 @@ INCLUDES =							\
 	-DLIBDIR=\""$(libdir)"\" 				\
 	-DLIBEXECDIR=\""$(libexecdir)"\"			\
 	-DDATADIR=\""$(datadir)"\"				\
-	$(LDAP_CFLAGS)						\
+	$(OPENLDAP_CFLAGS)						\
 	$(KRB5_CFLAGS)						\
 	$(WARN_CFLAGS)						\
 	$(NULL)
@@ -22,7 +22,7 @@ ipa_kpasswd_SOURCES = 		\
 	$(NULL)
 
 ipa_kpasswd_LDADD =		\
-	$(LDAP_LIBS)		\
+	$(OPENLDAP_LIBS)		\
 	$(KRB5_LIBS)		\
 	$(NULL)
 
-- 
1.7.2.3

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to