summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2004-12-30 14:52:29 +0000
committerfoobar <sniper@php.net>2004-12-30 14:52:29 +0000
commit41dde12bbdf1772da48367893c6eb39641fcfbd3 (patch)
treee00ada5c825196a4388e3f0cc2911ed3a122f752
parent72b45bdab0600fbb95b8b31696aa318123fa0bfb (diff)
downloadphp-git-41dde12bbdf1772da48367893c6eb39641fcfbd3.tar.gz
MFH: - Fixed bug #31101 (missing kerberos header file path with --with-openssl)
-rw-r--r--NEWS1
-rw-r--r--acinclude.m482
-rw-r--r--ext/imap/config.m480
-rw-r--r--ext/openssl/config0.m412
4 files changed, 113 insertions, 62 deletions
diff --git a/NEWS b/NEWS
index 6cec945b11..00643887fd 100644
--- a/NEWS
+++ b/NEWS
@@ -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.])