diff options
author | foobar <sniper@php.net> | 2004-12-30 14:52:29 +0000 |
---|---|---|
committer | foobar <sniper@php.net> | 2004-12-30 14:52:29 +0000 |
commit | 41dde12bbdf1772da48367893c6eb39641fcfbd3 (patch) | |
tree | e00ada5c825196a4388e3f0cc2911ed3a122f752 | |
parent | 72b45bdab0600fbb95b8b31696aa318123fa0bfb (diff) | |
download | php-git-41dde12bbdf1772da48367893c6eb39641fcfbd3.tar.gz |
MFH: - Fixed bug #31101 (missing kerberos header file path with --with-openssl)
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | acinclude.m4 | 82 | ||||
-rw-r--r-- | ext/imap/config.m4 | 80 | ||||
-rw-r--r-- | ext/openssl/config0.m4 | 12 |
4 files changed, 113 insertions, 62 deletions
@@ -10,6 +10,7 @@ PHP NEWS - Fixed bug #31110 (PHP 4.3.10 does not compile on Tru64 UNIX 5.1B). (Derick) - Fixed bug #31107 (Compile failure on Solaris 9 (Intel) and gcc 3.4.3). (Derick) - Fixed bug #31103 (Better error message when c-client cannot be found). (Ilia) +- Fixed bug #31101 (missing kerberos header file path with --with-openssl). (Jani) - Fixed bug #31087 (broken php_url_encode_hash macro). (Ilia) - Fixed bug #31072 (var_export() does not output an array element with an empty string key). (Derick) diff --git a/acinclude.m4 b/acinclude.m4 index 3145913dd6..bfac6330a0 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1580,6 +1580,64 @@ AC_DEFUN([PHP_CHECK_FRAMEWORK], [ ]) ]) +dnl +dnl PHP_SETUP_KERBEROS(shared-add [, action-found [, action-not-found]]) +dnl +dnl Common setup macro for kerberos +dnl +AC_DEFUN([PHP_SETUP_KERBEROS],[ + found_kerberos=no + unset KERBEROS_CFLAGS + unset KERBEROS_LIBS + + dnl First try to find krb5-config + if test -z "$KRB5_CONFIG"; then + AC_PATH_PROG(KRB5_CONFIG, krb5-config, no, [$PATH:/usr/kerberos/bin:/usr/local/bin]) + fi + + dnl If krb5-config is found try using it + if test "$PHP_KERBEROS" = "yes" && test -x "$KRB5_CONFIG"; then + KERBEROS_LIBS=`$KRB5_CONFIG --libs gssapi` + KERBEROS_CFLAGS=`$KRB5_CONFIG --cflags gssapi` + + if test -n "$KERBEROS_LIBS" && test -n "$KERBEROS_CFLAGS"; then + found_kerberos=yes + PHP_EVAL_LIBLINE($KERBEROS_LIBS, $1) + PHP_EVAL_INCLINE($KERBEROS_CFLAGS) + fi + fi + + dnl If still not found use old skool method + if test "$found_kerberos" = "no"; then + + if test "$PHP_KERBEROS" = "yes"; then + PHP_KERBEROS="/usr/kerberos /usr/local /usr" + fi + + for i in $PHP_KERBEROS; do + if test -f $i/lib/libkrb5.a || test -f $i/lib/libkrb5.$SHLIB_SUFFIX_NAME; then + PHP_KERBEROS_DIR=$i + break + fi + done + + if test "$PHP_KERBEROS_DIR"; then + found_kerberos=yes + PHP_ADD_LIBPATH($PHP_KERBEROS_DIR/lib, $1) + PHP_ADD_LIBRARY(gssapi_krb5, 1, $1) + PHP_ADD_LIBRARY(krb5, 1, $1) + PHP_ADD_LIBRARY(k5crypto, 1, $1) + PHP_ADD_LIBRARY(com_err, 1, $1) + PHP_ADD_INCLUDE($PHP_KERBEROS_DIR/include) + fi + fi + + if test "$found_kerberos" = "yes"; then +ifelse([$2],[],:,[$2]) +ifelse([$3],[],,[else $3]) + fi +]) + dnl dnl PHP_SETUP_OPENSSL(shared-add [, action-found [, action-not-found]]) dnl @@ -1590,13 +1648,20 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[ unset OPENSSL_INCDIR unset OPENSSL_LIBDIR + dnl Fallbacks for different configure options + if test "$PHP_OPENSSL" != "no"; then + PHP_OPENSSL_DIR=$PHP_OPENSSL + elif test "$PHP_IMAP_SSL" != "no"; then + PHP_OPENSSL_DIR=$PHP_IMAP_SSL + fi + dnl First try to find pkg-config if test -z "$PKG_CONFIG"; then AC_PATH_PROG(PKG_CONFIG, pkg-config, no) fi dnl If pkg-config is found try using it - if test "$PHP_OPENSSL" = "yes" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists openssl; then + if test "$PHP_OPENSSL_DIR" = "yes" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists openssl; then if $PKG_CONFIG --atleast-version=0.9.6 openssl; then found_openssl=yes OPENSSL_LIBS=`$PKG_CONFIG --libs openssl` @@ -1610,15 +1675,16 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[ PHP_EVAL_LIBLINE($OPENSSL_LIBS, $1) PHP_EVAL_INCLINE($OPENSSL_INCS) fi + fi - else - - dnl If pkg-config fails for some reason, revert to the old method - if test "$PHP_OPENSSL" = "yes"; then - PHP_OPENSSL="/usr/local/ssl /usr/local /usr /usr/local/openssl" + dnl If pkg-config fails for some reason, revert to the old method + if test "$found_openssl" = "no"; then + + if test "$PHP_OPENSSL_DIR" = "yes"; then + PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl" fi - for i in $PHP_OPENSSL; do + for i in $PHP_OPENSSL_DIR; do if test -r $i/include/openssl/evp.h; then OPENSSL_INCDIR=$i/include fi @@ -1676,11 +1742,11 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[ PHP_ADD_LIBPATH($OPENSSL_LIBDIR, $1) fi + if test "$found_openssl" = "yes"; then dnl For apache 1.3.x static build OPENSSL_INCDIR_OPT=-I$OPENSSL_INCDIR AC_SUBST(OPENSSL_INCDIR_OPT) - if test "$found_openssl" = "yes"; then ifelse([$2],[],:,[$2]) ifelse([$3],[],,[else $3]) fi diff --git a/ext/imap/config.m4 b/ext/imap/config.m4 index 236b365f5b..53b2c43b5a 100644 --- a/ext/imap/config.m4 +++ b/ext/imap/config.m4 @@ -43,41 +43,16 @@ AC_DEFUN([PHP_IMAP_TEST_BUILD], [ ]) AC_DEFUN([PHP_IMAP_KRB_CHK], [ - AC_ARG_WITH(kerberos, - [ --with-kerberos[=DIR] IMAP: Include Kerberos support. DIR is the Kerberos install dir.],[ - PHP_KERBEROS=$withval - ],[ - PHP_KERBEROS=no - ]) - if test "$PHP_KERBEROS" != "no"; then - - if test "$PHP_KERBEROS" = "yes"; then - SEARCH_PATHS="/usr/kerberos /usr/local /usr" - else - SEARCH_PATHS=$PHP_KERBEROS - fi - - for i in $SEARCH_PATHS; do - if test -f $i/lib/libkrb5.a || test -f $i/lib/libkrb5.$SHLIB_SUFFIX_NAME; then - PHP_KERBEROS_DIR=$i - break - fi - done - - if test -z "$PHP_KERBEROS_DIR"; then + PHP_SETUP_KERBEROS(IMAP_SHARED_LIBADD, + [ + AC_DEFINE(HAVE_IMAP_KRB,1,[ ]) + ], [ AC_MSG_ERROR([Kerberos libraries not found. Check the path given to --with-kerberos (if no path is given, searches in /usr/kerberos, /usr/local and /usr ) ]) - fi - AC_DEFINE(HAVE_IMAP_KRB,1,[ ]) - PHP_ADD_LIBPATH($PHP_KERBEROS_DIR/lib, IMAP_SHARED_LIBADD) - PHP_ADD_LIBRARY(gssapi_krb5, 1, IMAP_SHARED_LIBADD) - PHP_ADD_LIBRARY(krb5, 1, IMAP_SHARED_LIBADD) - PHP_ADD_LIBRARY(k5crypto, 1, IMAP_SHARED_LIBADD) - PHP_ADD_LIBRARY(com_err, 1, IMAP_SHARED_LIBADD) - PHP_ADD_INCLUDE($PHP_KERBEROS_DIR/include) + ]) else AC_EGREP_HEADER(auth_gss, $IMAP_INC_DIR/linkage.h, [ AC_MSG_ERROR([This c-client library is built with Kerberos support. @@ -86,31 +61,26 @@ AC_DEFUN([PHP_IMAP_KRB_CHK], [ ]) ]) fi - ]) AC_DEFUN([PHP_IMAP_SSL_CHK], [ - AC_ARG_WITH(imap-ssl, - [ --with-imap-ssl=<DIR> IMAP: Include SSL support. DIR is the OpenSSL install dir.],[ - PHP_IMAP_SSL=$withval - ],[ - PHP_IMAP_SSL=no - ]) - - if test "$PHP_IMAP_SSL" = "yes"; then - PHP_IMAP_SSL=/usr - fi - - AC_MSG_CHECKING([whether SSL libraries are needed for c-client]) - if test "$PHP_IMAP_SSL" != "no"; then - AC_MSG_RESULT([$PHP_IMAP_SSL/lib]) - AC_DEFINE(HAVE_IMAP_SSL,1,[ ]) - PHP_ADD_LIBRARY_DEFER(ssl, 1, IMAP_SHARED_LIBADD) - PHP_ADD_LIBRARY_DEFER(crypto, 1, IMAP_SHARED_LIBADD) - PHP_ADD_LIBPATH($PHP_IMAP_SSL/lib, IMAP_SHARED_LIBADD) - else - AC_MSG_RESULT(no) + PHP_SETUP_OPENSSL(IMAP_SHARED_LIBADD, + [ + AC_DEFINE(HAVE_IMAP_SSL,1,[ ]) + ], [ + AC_MSG_ERROR([OpenSSL libraries not found. + + Check the path given to --with-openssl-dir and output in config.log) + ]) + ]) + elif test -f "$IMAP_INC_DIR/linkage.c"; then + AC_EGREP_HEADER(ssl_onceonlyinit, $IMAP_INC_DIR/linkage.c, [ + AC_MSG_ERROR([This c-client library is built with SSL support. + + Add --with-imap-ssl to your configure line. Check config.log for details. + ]) + ]) fi ]) @@ -118,8 +88,14 @@ AC_DEFUN([PHP_IMAP_SSL_CHK], [ PHP_ARG_WITH(imap,for IMAP support, [ --with-imap[=DIR] Include IMAP support. DIR is the c-client install prefix.]) -if test "$PHP_IMAP" != "no"; then +PHP_ARG_WITH(kerberos,for IMAP Kerberos support, +[ --with-kerberos[=DIR] IMAP: Include Kerberos support. DIR is the Kerberos install prefix.], no, no) +PHP_ARG_WITH(imap-ssl,for IMAP SSL support, +[ --with-imap-ssl[=DIR] IMAP: Include SSL support. DIR is the OpenSSL install prefix.], no, no) + + +if test "$PHP_IMAP" != "no"; then PHP_SUBST(IMAP_SHARED_LIBADD) PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared) AC_DEFINE(HAVE_IMAP,1,[ ]) diff --git a/ext/openssl/config0.m4 b/ext/openssl/config0.m4 index 157c35b66b..385eb5e2ff 100644 --- a/ext/openssl/config0.m4 +++ b/ext/openssl/config0.m4 @@ -5,11 +5,19 @@ dnl PHP_ARG_WITH(openssl, for OpenSSL support, [ --with-openssl[=DIR] Include OpenSSL support (requires OpenSSL >= 0.9.6)]) +PHP_ARG_WITH(kerberos, for Kerberos support, +[ --with-kerberos[=DIR] OPENSSL: Include Kerberos support], no, no) + if test "$PHP_OPENSSL" != "no"; then + PHP_NEW_EXTENSION(openssl, openssl.c, $ext_shared) + PHP_SUBST(OPENSSL_SHARED_LIBADD) + + if test "$PHP_KERBEROS" != "no"; then + PHP_SETUP_KERBEROS(OPENSSL_SHARED_LIBADD) + fi + PHP_SETUP_OPENSSL(OPENSSL_SHARED_LIBADD, [ - PHP_NEW_EXTENSION(openssl, openssl.c xp_ssl.c, $ext_shared) - PHP_SUBST(OPENSSL_SHARED_LIBADD) AC_DEFINE(HAVE_OPENSSL_EXT,1,[ ]) ], [ AC_MSG_ERROR([OpenSSL check failed. Please check config.log for more information.]) |