2024-02-21 20:14:44 +06:00

90 lines
3.1 KiB
Diff

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)