From 89b50562cc7d6b378cd780f34c9fa19923d7a6a6 Mon Sep 17 00:00:00 2001 From: Matthieu Patou Date: Wed, 21 Nov 2012 12:07:42 -0800 Subject: [PATCH] Fix MD5 detection in the autoconf build This is a front port of patches made in 3.6.x branch for bugs: * 9037 * 9086 * 9094 * 9418 It checks if there is a library for md5 related functions (libmd or libmd5) and if so it checks for the presence of md5.h headers it also respect the need for osX build to not use samba's md5 implementation as it's already present in the system libs. Signed-off-by: Matthieu Patou Reviewed-by: Stefan Metzmacher Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Fri Nov 23 10:05:34 CET 2012 on sn-devel-104 (cherry picked from commit 8f4b871e9776245f599a302f569594aaba9d25c9) --- source3/configure.in | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/source3/configure.in b/source3/configure.in index b97dba8..93c3d1b 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -602,18 +602,45 @@ AC_CHECK_HEADERS(netgroup.h) AC_CHECK_HEADERS(linux/falloc.h) AC_CHECK_HEADERS(CommonCrypto/CommonDigest.h) +dnl check for OS implementation of md5 conformant to rfc1321 +samba_cv_md5lib=none + +AC_CHECK_LIB(c, MD5Update, [samba_cv_md5lib=""]) + +if test x"$samba_cv_md5lib" = x"none" ; then + AC_CHECK_LIB(md, MD5Update, [samba_cv_md5lib=md]) +fi + +if test x"$samba_cv_md5lib" = x"none" ; then + AC_CHECK_LIB(md5, MD5Update, [samba_cv_md5lib=md5]) +fi + +if test x"$samba_cv_md5lib" != x"none" ; then + AC_CHECK_HEADERS(md5.h) +fi + +CRYPTO_MD5_OBJ="../lib/crypto/md5.o" +if test x"$ac_cv_header_md5_h" = x"yes" -a \ + x"$samba_cv_md5lib" != x"none" ; then + if test x"$samba_cv_md5lib" != x ; then + LIBS="${LIBS} -l${samba_cv_md5lib}" + AC_DEFINE(HAVE_LIBMD5, 1, + [Whether libmd5 conformant to rfc1321 is available.]) + fi + CRYPTO_MD5_OBJ= +fi + +if test "x$ac_cv_header_CommonCrypto_CommonDigest_h" == "xyes"; then + CRYPTO_MD5_OBJ= +fi + +AC_SUBST(CRYPTO_MD5_OBJ) + AC_CHECK_HEADERS(rpcsvc/yp_prot.h,,,[[ #if HAVE_RPC_RPC_H #include #endif ]]) -CRYPTO_MD5_OBJ= -if test "x$ac_cv_header_CommonCrypto_CommonDigest_h" != "xyes" -then - CRYPTO_MD5_OBJ="../lib/crypto/md5.o" -fi -AC_SUBST(CRYPTO_MD5_OBJ) - ## These fail to compile on IRIX so just check for their presence AC_CHECK_HEADERS(sys/mode.h,,,) -- 1.7.9.5