diff -ur a/build/php.m4 b/build/php.m4 --- a/build/php.m4 2019-12-18 00:35:59.000000000 +0800 +++ b/build/php.m4 2019-12-25 15:54:18.072798530 +0800 @@ -2713,3 +2713,61 @@ $SED -e 's/^#undef PACKAGE_[^ ]*/\/\* & \*\//g' < $srcdir/$1 \ > $srcdir/$1.tmp && mv $srcdir/$1.tmp $srcdir/$1 ]) + +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" != "no" && test -x "$KRB5_CONFIG"; then + KERBEROS_LIBS=`$KRB5_CONFIG --libs gssapi` + KERBEROS_CFLAGS=`$KRB5_CONFIG --cflags gssapi` + + if test -n "$KERBEROS_LIBS"; 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/$PHP_LIBDIR/libkrb5.$SHLIB_SUFFIX_NAME || test -f $i/$PHP_LIBDIR/$DEB_HOST_MULTIARCH/libkrb5.$SHLIB_SUFFIX_NAME || test -f $i/$PHP_LIBDIR/libkrb5.a; then + PHP_KERBEROS_DIR=$i + break + fi + done + + if test "$PHP_KERBEROS_DIR"; then + found_kerberos=yes + PHP_ADD_LIBPATH($PHP_KERBEROS_DIR/$PHP_LIBDIR, $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 +]) diff -ur a/ext/imap/config.m4 b/ext/imap/config.m4 --- a/ext/imap/config.m4 2019-12-18 00:36:02.000000000 +0800 +++ b/ext/imap/config.m4 2019-12-25 15:57:20.696049595 +0800 @@ -46,7 +46,7 @@ AC_DEFUN([PHP_IMAP_KRB_CHK], [ if test "$PHP_KERBEROS" != "no"; then - PKG_CHECK_MODULES([KERBEROS], [krb5-gssapi krb5]) + PKG_CHECK_MODULES([KERBEROS], [krb5-gssapi krb5],,[PHP_SETUP_KERBEROS(IMAP_SHARED_LIBADD,[AC_DEFINE(HAVE_IMAP_KRB,1,[ ])],[AC_MSG_ERROR([Kerberos libraries not found])])]) PHP_EVAL_INCLINE($KERBEROS_CFLAGS) PHP_EVAL_LIBLINE($KERBEROS_LIBS, IMAP_SHARED_LIBADD) diff -ur a/ext/openssl/config0.m4 b/ext/openssl/config0.m4 --- a/ext/openssl/config0.m4 2019-12-18 00:36:00.000000000 +0800 +++ b/ext/openssl/config0.m4 2019-12-25 15:58:31.208146862 +0800 @@ -22,7 +22,7 @@ PHP_SUBST(OPENSSL_SHARED_LIBADD) if test "$PHP_KERBEROS" != "no"; then - PKG_CHECK_MODULES([KERBEROS], [krb5-gssapi krb5]) + PKG_CHECK_MODULES([KERBEROS], [krb5-gssapi krb5],,[PHP_SETUP_KERBEROS(OPENSSL_SHARED_LIBADD)]) PHP_EVAL_INCLINE($KERBEROS_CFLAGS) PHP_EVAL_LIBLINE($KERBEROS_LIBS, OPENSSL_SHARED_LIBADD)