summaryrefslogtreecommitdiffstats
path: root/source/n/php
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/php')
-rwxr-xr-xsource/n/php/php.SlackBuild28
-rw-r--r--source/n/php/php.imap.api.diff78
2 files changed, 104 insertions, 2 deletions
diff --git a/source/n/php/php.SlackBuild b/source/n/php/php.SlackBuild
index e61f021e4..b46f94290 100755
--- a/source/n/php/php.SlackBuild
+++ b/source/n/php/php.SlackBuild
@@ -3,7 +3,7 @@
# Build and package mod_php on Slackware.
# by: David Cantrell <david@slackware.com>
# Modified for PHP 4-5 by volkerdi@slackware.com
-# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2017, 2019 Patrick Volkerding, Sebeka, MN, USA
+# Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2017, 2019, 2020 Patrick Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=php
VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ALPINE=2.22
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -75,6 +75,19 @@ else
LIBDIRSUFFIX=""
fi
+# Look for Kerberos on the machine and in any precompiled c-client.a:
+if /bin/ls /lib${LIBDIRSUFFIX}/libkrb5.so.? 1> /dev/null 2> /dev/null ; then
+ # Remove the c-client library if it doesn't contain Kerberos support:
+ if ! grep -q krb5_ /usr/local/lib${LIBDIRSUFFIX}/c-client/lib${LIBDIRSUFFIX}/c-client.a 2> /dev/null ; then
+ rm -rf /usr/local/lib${LIBDIRSUFFIX}/c-client
+ fi
+else
+ # Remove the c-client library if it contains Kerberos support:
+ if grep -q krb5_ /usr/local/lib${LIBDIRSUFFIX}/c-client/lib${LIBDIRSUFFIX}/c-client.a 2> /dev/null ; then
+ rm -rf /usr/local/lib${LIBDIRSUFFIX}/c-client
+ fi
+fi
+
# we need to compile alpine to get c-client.a for IMAP support:
IMAPLIBDIR=/usr/local/lib${LIBDIRSUFFIX}/c-client
if [ -r $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a ]; then
@@ -92,6 +105,13 @@ else
)
fi
+# Set Kerberos build option:
+if /bin/ls /lib${LIBDIRSUFFIX}/libkrb5.so.? 1> /dev/null 2> /dev/null ; then
+ KRB5_OPTION="--with-kerberos"
+else
+ unset KRB5_OPTION
+fi
+
mkdir -p $PKG/etc/httpd
mkdir -p $PKG/etc/php.d
# A trick from DaMouse to enable building php into $PKG.
@@ -132,6 +152,9 @@ zcat $CWD/php.ini-development.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/php.ini-development.diff.gz | patch -p1 --verbose php.ini-production || exit 1
zcat $CWD/php-fpm.conf.diff.gz | patch -p1 --verbose || exit 1
+# Fix for imap API change:
+zcat $CWD/php.imap.api.diff.gz | patch -p1 --verbose || exit 1
+
# Install the build folder into /usr/lib$LIBDIRSUFFIX/php/build
# and adapt phpize accordingly:
sed -i "s|build$|php/build|" scripts/Makefile.frag
@@ -177,6 +200,7 @@ CXXFLAGS="$SLKCFLAGS -DU_USING_ICU_NAMESPACE=1" \
--enable-filter \
--disable-debug \
--with-openssl=shared \
+ $KRB5_OPTION \
--with-external-pcre \
--with-zlib=shared,/usr \
--enable-bcmath=shared \
diff --git a/source/n/php/php.imap.api.diff b/source/n/php/php.imap.api.diff
new file mode 100644
index 000000000..836375205
--- /dev/null
+++ b/source/n/php/php.imap.api.diff
@@ -0,0 +1,78 @@
+--- ./configure.orig 2020-01-21 05:35:20.000000000 -0600
++++ ./configure 2020-01-22 16:13:05.664626321 -0600
+@@ -39925,6 +39925,7 @@
+ PHP_IMAP_EXPORT void mm_nocritical(void){}
+ PHP_IMAP_EXPORT void mm_notify(void){}
+ PHP_IMAP_EXPORT void mm_login(void){}
++ PHP_IMAP_EXPORT void mm_login_method(void){}
+ PHP_IMAP_EXPORT void mm_diskerror(void){}
+ PHP_IMAP_EXPORT void mm_status(void){}
+ PHP_IMAP_EXPORT void mm_lsub(void){}
+@@ -39992,6 +39993,7 @@
+ PHP_IMAP_EXPORT void mm_nocritical(void){}
+ PHP_IMAP_EXPORT void mm_notify(void){}
+ PHP_IMAP_EXPORT void mm_login(void){}
++ PHP_IMAP_EXPORT void mm_login_method(void){}
+ PHP_IMAP_EXPORT void mm_diskerror(void){}
+ PHP_IMAP_EXPORT void mm_status(void){}
+ PHP_IMAP_EXPORT void mm_lsub(void){}
+@@ -40059,6 +40061,7 @@
+ PHP_IMAP_EXPORT void mm_nocritical(void){}
+ PHP_IMAP_EXPORT void mm_notify(void){}
+ PHP_IMAP_EXPORT void mm_login(void){}
++ PHP_IMAP_EXPORT void mm_login_method(void){}
+ PHP_IMAP_EXPORT void mm_diskerror(void){}
+ PHP_IMAP_EXPORT void mm_status(void){}
+ PHP_IMAP_EXPORT void mm_lsub(void){}
+@@ -40133,6 +40136,7 @@
+ PHP_IMAP_EXPORT void mm_nocritical(void){}
+ PHP_IMAP_EXPORT void mm_notify(void){}
+ PHP_IMAP_EXPORT void mm_login(void){}
++ PHP_IMAP_EXPORT void mm_login_method(void){}
+ PHP_IMAP_EXPORT void mm_diskerror(void){}
+ PHP_IMAP_EXPORT void mm_status(void){}
+ PHP_IMAP_EXPORT void mm_lsub(void){}
+--- ./ext/imap/config.m4.orig 2020-01-21 05:35:24.000000000 -0600
++++ ./ext/imap/config.m4 2020-01-22 16:13:05.665626321 -0600
+@@ -34,6 +34,7 @@
+ PHP_IMAP_EXPORT void mm_nocritical(void){}
+ PHP_IMAP_EXPORT void mm_notify(void){}
+ PHP_IMAP_EXPORT void mm_login(void){}
++ PHP_IMAP_EXPORT void mm_login_method(void){}
+ PHP_IMAP_EXPORT void mm_diskerror(void){}
+ PHP_IMAP_EXPORT void mm_status(void){}
+ PHP_IMAP_EXPORT void mm_lsub(void){}
+@@ -262,6 +263,7 @@
+ PHP_IMAP_EXPORT void mm_nocritical(void){}
+ PHP_IMAP_EXPORT void mm_notify(void){}
+ PHP_IMAP_EXPORT void mm_login(void){}
++ PHP_IMAP_EXPORT void mm_login_method(void){}
+ PHP_IMAP_EXPORT void mm_diskerror(void){}
+ PHP_IMAP_EXPORT void mm_status(void){}
+ PHP_IMAP_EXPORT void mm_lsub(void){}
+--- ./ext/imap/php_imap.c.orig 2020-01-21 05:35:24.000000000 -0600
++++ ./ext/imap/php_imap.c 2020-01-22 16:15:25.545614746 -0600
+@@ -5081,7 +5081,7 @@
+ php debugger? */
+ }
+
+-PHP_IMAP_EXPORT void mm_login(NETMBX *mb, char *user, char *pwd, long trial)
++PHP_IMAP_EXPORT void mm_login(NETMBX *mb, char *user, char **pwd, long trial)
+ {
+
+ if (*mb->user) {
+@@ -5089,7 +5089,13 @@
+ } else {
+ strlcpy (user, IMAPG(imap_user), MAILTMPLEN);
+ }
+- strlcpy (pwd, IMAPG(imap_password), MAILTMPLEN);
++ *pwd = cpystr(IMAPG(imap_password)); /* alpine-2.22 c-client.a */
++}
++
++/* alpine-2.22 c-client.a workaround */
++PHP_IMAP_EXPORT void mm_login_method(NETMBX *mb, char *user, void *pwd, long trial, char *method)
++{
++ pwd = NULL;
+ }
+
+ PHP_IMAP_EXPORT void mm_critical(MAILSTREAM *stream)