mirror of
https://github.com/php/php-src.git
synced 2026-03-31 04:32:19 +02:00
MFH: - Fixed bug #31101 (missing kerberos header file path with --with-openssl)
This commit is contained in:
1
NEWS
1
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)
|
||||
|
||||
82
acinclude.m4
82
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
|
||||
|
||||
@@ -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,[ ])
|
||||
|
||||
@@ -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.])
|
||||
|
||||
Reference in New Issue
Block a user