summaryrefslogtreecommitdiffstats
path: root/pasture/source
diff options
context:
space:
mode:
Diffstat (limited to 'pasture/source')
-rwxr-xr-xpasture/source/apmd/apmd.SlackBuild114
-rw-r--r--pasture/source/apmd/slack-desc19
-rwxr-xr-xpasture/source/libpng14/libpng14.SlackBuild133
-rw-r--r--pasture/source/libpng14/slack-desc19
-rw-r--r--pasture/source/php/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch1309
-rw-r--r--pasture/source/php/doinst.sh30
-rwxr-xr-xpasture/source/php/fetch-php.sh2
-rw-r--r--pasture/source/php/mod_php.conf.example29
-rw-r--r--pasture/source/php/php-fpm.conf.diff28
-rwxr-xr-xpasture/source/php/php.SlackBuild317
-rw-r--r--pasture/source/php/php.ini-development.diff62
-rw-r--r--pasture/source/php/slack-desc19
12 files changed, 0 insertions, 2081 deletions
diff --git a/pasture/source/apmd/apmd.SlackBuild b/pasture/source/apmd/apmd.SlackBuild
deleted file mode 100755
index b17ddf36f..000000000
--- a/pasture/source/apmd/apmd.SlackBuild
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/sh
-
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-VERSION=${VERSION:-3.2.2}
-BUILD=${BUILD:-3}
-
-# Automatically determine the architecture we're building on:
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
- esac
-fi
-
-NUMJOBS=${NUMJOBS:-" -j7 "}
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-apmd
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
-fi
-
-rm -rf $PKG
-mkdir -p $TMP $PKG
-
-cd $TMP
-rm -rf apmd-$VERSION
-tar xvf $CWD/apmd-$VERSION.tar.bz2 || exit 1
-cd apmd-$VERSION
-
-if [ "$ARCH" = "x86_64" ]; then
- sed -i -e "s#/lib#/lib64#" Makefile
-fi
-
-chown -R root:root .
-find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-CFLAGS="$SLKCFLAGS" make $NUMJOBS || exit 1
-CFLAGS="$SLKCFLAGS" make install DESTDIR=$PKG
-
-( cd xbattery
- cp ../.libs/libapm.a ..
- xmkmf
- make -j3
-)
-
-mkdir -p $PKG/usr/bin
-cat xapm > $PKG/usr/bin/xapm
-cat xbattery/xbattery > $PKG/usr/bin/xbattery
-chmod 755 $PKG/usr/bin/{xapm,xbattery}
-
-( cd $PKG
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-)
-
-mkdir -p $PKG/usr/man/man1
-cat xbattery/xbattery.man | gzip -9c > $PKG/usr/man/man1/xbattery.1.gz
-for page in apm.1 apmsleep.1 on_ac_power.1 xapm.1 ; do
- cat $page | gzip -9c > $PKG/usr/man/man1/${page}.gz
-done
-mkdir -p $PKG/usr/man/man8
-cat apmd.8 | gzip -9c > $PKG/usr/man/man8/apmd.8.gz
-mkdir -p $PKG/usr/man/fr/man1
-cat apmsleep.fr.1 | gzip -9c > $PKG/usr/man/fr/man1/apmsleep.1.gz
-
-# Remove this version since the one in pm-utils is better:
-rm -f $PKG/usr/bin/on_ac_power
-rm -f $PKG/usr/man/man1/on_ac_power.1.gz
-
-mkdir -p $PKG/usr/doc/apmd-$VERSION
-cp -a \
- AUTHORS COPYING LSM README apmlib.COPYING apmsleep.README \
- $PKG/usr/doc/apmd-$VERSION
-cp -a xbattery/README $PKG/usr/doc/apmd-$VERSION/README.xbattery
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-# Build the package:
-cd $PKG
-makepkg -c n -l y $TMP/apmd-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/pasture/source/apmd/slack-desc b/pasture/source/apmd/slack-desc
deleted file mode 100644
index 614c6d1dc..000000000
--- a/pasture/source/apmd/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|' on
-# the right side marks the last column you can put a character in. You must make
-# exactly 11 lines for the formatting to be correct. It's also customary to
-# leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-apmd: apmd (Advanced Power Management daemon)
-apmd:
-apmd: apmd is an APM monitoring daemon, and works in conjunction with the
-apmd: APM BIOS driver in the kernel. Apmd (and the included tools) handle
-apmd: tasks such as automatically putting a laptop into suspend when the
-apmd: power level drop below a certain point. This package also includes
-apmd: the graphical power management tools xapm and xbattery.
-apmd:
-apmd: The apmd tools were written by Rik Faith and are maintained by
-apmd: Avery Pennarun. xbattery was written by Nathan Sidwell.
-apmd:
diff --git a/pasture/source/libpng14/libpng14.SlackBuild b/pasture/source/libpng14/libpng14.SlackBuild
deleted file mode 100755
index d6a98ea5b..000000000
--- a/pasture/source/libpng14/libpng14.SlackBuild
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/bin/sh
-
-# Copyright 2005-2011, 2018 Patrick J. Volkerding, Sebeka, MN, USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-VERSION_NEW=1.4.22
-BUILD=${BUILD:-1}
-
-# Automatically determine the architecture we're building on:
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
- arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
- esac
-fi
-
-if [ "$ARCH" = "x86_64" ]; then
- LIBDIRSUFFIX="64"
-else
- LIBDIRSUFFIX=""
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-libpng
-rm -rf $PKG
-mkdir -p $TMP $PKG/usr
-
-build_source() {
-
-cd $TMP
-rm -rf libpng-$VERSION
-tar xvf $CWD/libpng-$VERSION.tar.?z* || exit 1
-cd libpng-$VERSION
-chown -R root:root .
-find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-# Look like using ./configure is the only way that works now...
-./configure --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --mandir=/usr/man
-
-make -j4 prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} ZLIBLIB="-L/usr/lib${LIBDIRSUFFIX} -lm -lz" || exit 1
-make install prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} ZLIBLIB="-L/usr/lib${LIBDIRSUFFIX} -lm -lz" DESTDIR=$PKG
-
-# Don't package these:
-rm $PKG/usr/lib${LIBDIRSUFFIX}/*.{a,la}
-
-# I'm ditching this to see if anyone cares.
-#
-## This symlink is needed to keep old applications running:
-## I guess the real lib used the major number 3, then 0 for
-## a short while, and now .3 again. Hopefully it will stay
-## this way as it was .3 in Slackware 10.2. One can hope.
-#( cd $PKG/usr/lib${LIBDIRSUFFIX}
-# if [ ! -e libpng.so.0 -a -e libpng.so.3 ]; then
-# ln -sf libpng.so.3 libpng.so.0
-# fi
-#)
-
-# Well, glad I got rid of the above, but <someone> upstream still does not
-# grok shared libraries on Linux it seems -- libpng-1.4.0 caused all the
-# newly compiled binaries to want libpng.so.14, and now libpng-1.4.1
-# wants to change that to libpng14.so.14. Searching online finds that
-# we are not the only ones with binaries that want libpng.so.14, so we
-# are forced to provide a compatibility symlink again... :-/
-#
-# We'll try to remove this in 5 to 10 years, just like before.
-( cd $PKG/usr/lib${LIBDIRSUFFIX}
- if [ ! -e libpng.so.14 -a -e libpng14.so.14 ]; then
- ln -sf libpng14.so.14 libpng.so.14
- fi
-)
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
-#gzip -9 --force $PKG/usr/man/man?/*.?
-rm -rf $PKG/usr/man
-
-mkdir -p $PKG/usr/doc/libpng-$VERSION
-cp -a \
- ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \
- libpng*.txt example.c \
- $PKG/usr/doc/libpng-$VERSION
-
-# If there's a ChangeLog, installing at least part of the recent history
-# is useful, but don't let it get totally out of control:
-if [ -r ChangeLog ]; then
- DOCSDIR=$(echo $PKG/usr/doc/libpng-$VERSION)
- cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
- touch -r ChangeLog $DOCSDIR/ChangeLog
-fi
-
-}
-
-# Build the 1.4 version:
-VERSION=$VERSION_NEW
-build_source
-
-# Default the includes to version 1.4.x:
-#( cd $PKG/usr/include ; ln -sf libpng14 libpng )
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $TMP/libpng14-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/pasture/source/libpng14/slack-desc b/pasture/source/libpng14/slack-desc
deleted file mode 100644
index 9a05c432b..000000000
--- a/pasture/source/libpng14/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-libpng14: libpng14 (Portable Network Graphics library v1.4)
-libpng14:
-libpng14: PNG (Portable Network Graphics) is an extensible file format for the
-libpng14: lossless, portable, well-compressed storage of raster images. PNG
-libpng14: provides a patent-free replacement for GIF and can also replace many
-libpng14: common uses of TIFF. Indexed-color, grayscale, and truecolor images
-libpng14: are supported, plus an optional alpha channel. Sample depths range
-libpng14: from 1 to 16 bits.
-libpng14:
-libpng14:
-libpng14:
diff --git a/pasture/source/php/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch b/pasture/source/php/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
deleted file mode 100644
index 3809ca3c7..000000000
--- a/pasture/source/php/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
+++ /dev/null
@@ -1,1309 +0,0 @@
-diff -rupN php-5.6.31.orig/ext/openssl/openssl.c php-5.6.31/ext/openssl/openssl.c
---- php-5.6.31.orig/ext/openssl/openssl.c 2017-07-06 00:25:00.000000000 +0200
-+++ php-5.6.31/ext/openssl/openssl.c 2017-08-01 10:55:28.108819344 +0200
-@@ -42,6 +42,12 @@
-
- /* OpenSSL includes */
- #include <openssl/evp.h>
-+#if OPENSSL_VERSION_NUMBER >= 0x10002000L
-+#include <openssl/bn.h>
-+#include <openssl/rsa.h>
-+#include <openssl/dsa.h>
-+#include <openssl/dh.h>
-+#endif
- #include <openssl/x509.h>
- #include <openssl/x509v3.h>
- #include <openssl/crypto.h>
-@@ -531,6 +537,133 @@ zend_module_entry openssl_module_entry =
- ZEND_GET_MODULE(openssl)
- #endif
-
-+/* {{{ OpenSSL compatibility functions and macros */
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
-+#define EVP_PKEY_get0_RSA(_pkey) _pkey->pkey.rsa
-+#define EVP_PKEY_get0_DH(_pkey) _pkey->pkey.dh
-+#define EVP_PKEY_get0_DSA(_pkey) _pkey->pkey.dsa
-+#define EVP_PKEY_get0_EC_KEY(_pkey) _pkey->pkey.ec
-+
-+static int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
-+{
-+ r->n = n;
-+ r->e = e;
-+ r->d = d;
-+
-+ return 1;
-+}
-+
-+static int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
-+{
-+ r->p = p;
-+ r->q = q;
-+
-+ return 1;
-+}
-+
-+static int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
-+{
-+ r->dmp1 = dmp1;
-+ r->dmq1 = dmq1;
-+ r->iqmp = iqmp;
-+
-+ return 1;
-+}
-+
-+static void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
-+{
-+ *n = r->n;
-+ *e = r->e;
-+ *d = r->d;
-+}
-+
-+static void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
-+{
-+ *p = r->p;
-+ *q = r->q;
-+}
-+
-+static void RSA_get0_crt_params(const RSA *r, const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **iqmp)
-+{
-+ *dmp1 = r->dmp1;
-+ *dmq1 = r->dmq1;
-+ *iqmp = r->iqmp;
-+}
-+
-+static void DH_get0_pqg(const DH *dh, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
-+{
-+ *p = dh->p;
-+ *q = dh->q;
-+ *g = dh->g;
-+}
-+
-+static int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
-+{
-+ dh->p = p;
-+ dh->q = q;
-+ dh->g = g;
-+
-+ return 1;
-+}
-+
-+static void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
-+{
-+ *pub_key = dh->pub_key;
-+ *priv_key = dh->priv_key;
-+}
-+
-+static int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
-+{
-+ dh->pub_key = pub_key;
-+ dh->priv_key = priv_key;
-+
-+ return 1;
-+}
-+
-+static void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
-+{
-+ *p = d->p;
-+ *q = d->q;
-+ *g = d->g;
-+}
-+
-+int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
-+{
-+ d->p = p;
-+ d->q = q;
-+ d->g = g;
-+
-+ return 1;
-+}
-+
-+static void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key)
-+{
-+ *pub_key = d->pub_key;
-+ *priv_key = d->priv_key;
-+}
-+
-+int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
-+{
-+ d->pub_key = pub_key;
-+ d->priv_key = priv_key;
-+
-+ return 1;
-+}
-+
-+#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined (LIBRESSL_VERSION_NUMBER)
-+#define EVP_PKEY_id(_pkey) _pkey->type
-+#define EVP_PKEY_base_id(_key) EVP_PKEY_type(_key->type)
-+
-+static int X509_get_signature_nid(const X509 *x)
-+{
-+ return OBJ_obj2nid(x->sig_alg->algorithm);
-+}
-+
-+#endif
-+
-+#endif
-+/* }}} */
-+
- static int le_key;
- static int le_x509;
- static int le_csr;
-@@ -825,7 +958,7 @@ static int add_oid_section(struct php_x5
- }
- for (i = 0; i < sk_CONF_VALUE_num(sktmp); i++) {
- cnf = sk_CONF_VALUE_value(sktmp, i);
-- if (OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
-+ if (OBJ_sn2nid(cnf->name) == NID_undef && OBJ_ln2nid(cnf->name) == NID_undef && OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "problem creating object %s=%s", cnf->name, cnf->value);
- return FAILURE;
- }
-@@ -967,7 +1100,7 @@ static void php_openssl_dispose_config(s
- }
- /* }}} */
-
--#ifdef PHP_WIN32
-+#if defined(PHP_WIN32) || (OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER))
- #define PHP_OPENSSL_RAND_ADD_TIME() ((void) 0)
- #else
- #define PHP_OPENSSL_RAND_ADD_TIME() php_openssl_rand_add_timeval()
-@@ -1053,9 +1186,11 @@ static EVP_MD * php_openssl_get_evp_md_f
- mdtype = (EVP_MD *) EVP_md2();
- break;
- #endif
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
- case OPENSSL_ALGO_DSS1:
- mdtype = (EVP_MD *) EVP_dss1();
- break;
-+#endif
- #if OPENSSL_VERSION_NUMBER >= 0x0090708fL
- case OPENSSL_ALGO_SHA224:
- mdtype = (EVP_MD *) EVP_sha224();
-@@ -1146,6 +1281,12 @@ PHP_MINIT_FUNCTION(openssl)
- OpenSSL_add_all_digests();
- OpenSSL_add_all_algorithms();
-
-+#if !defined(OPENSSL_NO_AES) && defined(EVP_CIPH_CCM_MODE) && OPENSSL_VERSION_NUMBER < 0x100020000
-+ EVP_add_cipher(EVP_aes_128_ccm());
-+ EVP_add_cipher(EVP_aes_192_ccm());
-+ EVP_add_cipher(EVP_aes_256_ccm());
-+#endif
-+
- SSL_load_error_strings();
-
- /* register a resource id number with OpenSSL so that we can map SSL -> stream structures in
-@@ -1173,7 +1314,9 @@ PHP_MINIT_FUNCTION(openssl)
- #ifdef HAVE_OPENSSL_MD2_H
- REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2, CONST_CS|CONST_PERSISTENT);
- #endif
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined (LIBRESSL_VERSION_NUMBER)
- REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1, CONST_CS|CONST_PERSISTENT);
-+#endif
- #if OPENSSL_VERSION_NUMBER >= 0x0090708fL
- REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA224", OPENSSL_ALGO_SHA224, CONST_CS|CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("OPENSSL_ALGO_SHA256", OPENSSL_ALGO_SHA256, CONST_CS|CONST_PERSISTENT);
-@@ -1251,7 +1394,9 @@ PHP_MINIT_FUNCTION(openssl)
- }
-
- php_stream_xport_register("ssl", php_openssl_ssl_socket_factory TSRMLS_CC);
-+#ifndef OPENSSL_NO_SSL3
- php_stream_xport_register("sslv3", php_openssl_ssl_socket_factory TSRMLS_CC);
-+#endif
- #ifndef OPENSSL_NO_SSL2
- php_stream_xport_register("sslv2", php_openssl_ssl_socket_factory TSRMLS_CC);
- #endif
-@@ -1308,7 +1453,9 @@ PHP_MSHUTDOWN_FUNCTION(openssl)
- #ifndef OPENSSL_NO_SSL2
- php_stream_xport_unregister("sslv2" TSRMLS_CC);
- #endif
-+#ifndef OPENSSL_NO_SSL3
- php_stream_xport_unregister("sslv3" TSRMLS_CC);
-+#endif
- php_stream_xport_unregister("tls" TSRMLS_CC);
- php_stream_xport_unregister("tlsv1.0" TSRMLS_CC);
- #if OPENSSL_VERSION_NUMBER >= 0x10001001L
-@@ -1893,6 +2040,7 @@ static int openssl_x509v3_subjectAltName
- {
- GENERAL_NAMES *names;
- const X509V3_EXT_METHOD *method = NULL;
-+ ASN1_OCTET_STRING *extension_data;
- long i, length, num;
- const unsigned char *p;
-
-@@ -1901,8 +2049,9 @@ static int openssl_x509v3_subjectAltName
- return -1;
- }
-
-- p = extension->value->data;
-- length = extension->value->length;
-+ extension_data = X509_EXTENSION_get_data(extension);
-+ p = extension_data->data;
-+ length = extension_data->length;
- if (method->it) {
- names = (GENERAL_NAMES*)(ASN1_item_d2i(NULL, &p, length,
- ASN1_ITEM_ptr(method->it)));
-@@ -1965,6 +2114,8 @@ PHP_FUNCTION(openssl_x509_parse)
- char * tmpstr;
- zval * subitem;
- X509_EXTENSION *extension;
-+ X509_NAME *subject_name;
-+ char *cert_name;
- char *extname;
- BIO *bio_out;
- BUF_MEM *bio_buf;
-@@ -1979,10 +2130,10 @@ PHP_FUNCTION(openssl_x509_parse)
- }
- array_init(return_value);
-
-- if (cert->name) {
-- add_assoc_string(return_value, "name", cert->name, 1);
-- }
--/* add_assoc_bool(return_value, "valid", cert->valid); */
-+ subject_name = X509_get_subject_name(cert);
-+ cert_name = X509_NAME_oneline(subject_name, NULL, 0);
-+ add_assoc_string(return_value, "name", cert_name, 1);
-+ OPENSSL_free(cert_name);
-
- add_assoc_name_entry(return_value, "subject", X509_get_subject_name(cert), useshortnames TSRMLS_CC);
- /* hash as used in CA directories to lookup cert by subject name */
-@@ -2008,7 +2159,7 @@ PHP_FUNCTION(openssl_x509_parse)
- add_assoc_string(return_value, "alias", tmpstr, 1);
- }
-
-- sig_nid = OBJ_obj2nid((cert)->sig_alg->algorithm);
-+ sig_nid = X509_get_signature_nid(cert);
- add_assoc_string(return_value, "signatureTypeSN", (char*)OBJ_nid2sn(sig_nid), 1);
- add_assoc_string(return_value, "signatureTypeLN", (char*)OBJ_nid2ln(sig_nid), 1);
- add_assoc_long(return_value, "signatureTypeNID", sig_nid);
-@@ -3217,7 +3368,21 @@ PHP_FUNCTION(openssl_csr_get_public_key)
- RETURN_FALSE;
- }
-
-- tpubkey=X509_REQ_get_pubkey(csr);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
-+ /* Due to changes in OpenSSL 1.1 related to locking when decoding CSR,
-+ * the pub key is not changed after assigning. It means if we pass
-+ * a private key, it will be returned including the private part.
-+ * If we duplicate it, then we get just the public part which is
-+ * the same behavior as for OpenSSL 1.0 */
-+ csr = X509_REQ_dup(csr);
-+#endif
-+ /* Retrieve the public key from the CSR */
-+ tpubkey = X509_REQ_get_pubkey(csr);
-+
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
-+ /* We need to free the CSR as it was duplicated */
-+ X509_REQ_free(csr);
-+#endif
- RETVAL_RESOURCE(zend_list_insert(tpubkey, le_key TSRMLS_CC));
- return;
- }
-@@ -3482,13 +3647,20 @@ static int php_openssl_is_private_key(EV
- {
- assert(pkey != NULL);
-
-- switch (pkey->type) {
-+ switch (EVP_PKEY_id(pkey)) {
- #ifndef NO_RSA
- case EVP_PKEY_RSA:
- case EVP_PKEY_RSA2:
-- assert(pkey->pkey.rsa != NULL);
-- if (pkey->pkey.rsa != NULL && (NULL == pkey->pkey.rsa->p || NULL == pkey->pkey.rsa->q)) {
-- return 0;
-+ {
-+ RSA *rsa = EVP_PKEY_get0_RSA(pkey);
-+ if (rsa != NULL) {
-+ const BIGNUM *p, *q;
-+
-+ RSA_get0_factors(rsa, &p, &q);
-+ if (p == NULL || q == NULL) {
-+ return 0;
-+ }
-+ }
- }
- break;
- #endif
-@@ -3498,28 +3670,51 @@ static int php_openssl_is_private_key(EV
- case EVP_PKEY_DSA2:
- case EVP_PKEY_DSA3:
- case EVP_PKEY_DSA4:
-- assert(pkey->pkey.dsa != NULL);
--
-- if (NULL == pkey->pkey.dsa->p || NULL == pkey->pkey.dsa->q || NULL == pkey->pkey.dsa->priv_key){
-- return 0;
-+ {
-+ DSA *dsa = EVP_PKEY_get0_DSA(pkey);
-+ if (dsa != NULL) {
-+ const BIGNUM *p, *q, *g, *pub_key, *priv_key;
-+
-+ DSA_get0_pqg(dsa, &p, &q, &g);
-+ if (p == NULL || q == NULL) {
-+ return 0;
-+ }
-+
-+ DSA_get0_key(dsa, &pub_key, &priv_key);
-+ if (priv_key == NULL) {
-+ return 0;
-+ }
-+ }
- }
- break;
- #endif
- #ifndef NO_DH
- case EVP_PKEY_DH:
-- assert(pkey->pkey.dh != NULL);
--
-- if (NULL == pkey->pkey.dh->p || NULL == pkey->pkey.dh->priv_key) {
-- return 0;
-+ {
-+ DH *dh = EVP_PKEY_get0_DH(pkey);
-+ if (dh != NULL) {
-+ const BIGNUM *p, *q, *g, *pub_key, *priv_key;
-+
-+ DH_get0_pqg(dh, &p, &q, &g);
-+ if (p == NULL) {
-+ return 0;
-+ }
-+
-+ DH_get0_key(dh, &pub_key, &priv_key);
-+ if (priv_key == NULL) {
-+ return 0;
-+ }
-+ }
- }
- break;
- #endif
- #ifdef HAVE_EVP_PKEY_EC
- case EVP_PKEY_EC:
-- assert(pkey->pkey.ec != NULL);
--
-- if ( NULL == EC_KEY_get0_private_key(pkey->pkey.ec)) {
-- return 0;
-+ {
-+ EC_KEY *ec = EVP_PKEY_get0_EC_KEY(pkey);
-+ if (ec != NULL && NULL == EC_KEY_get0_private_key(ec)) {
-+ return 0;
-+ }
- }
- break;
- #endif
-@@ -3531,34 +3726,80 @@ static int php_openssl_is_private_key(EV
- }
- /* }}} */
-
--#define OPENSSL_PKEY_GET_BN(_type, _name) do { \
-- if (pkey->pkey._type->_name != NULL) { \
-- int len = BN_num_bytes(pkey->pkey._type->_name); \
-- char *str = emalloc(len + 1); \
-- BN_bn2bin(pkey->pkey._type->_name, (unsigned char*)str); \
-- str[len] = 0; \
-- add_assoc_stringl(_type, #_name, str, len, 0); \
-- } \
-- } while (0)
--
--#define OPENSSL_PKEY_SET_BN(_ht, _type, _name) do { \
-- zval **bn; \
-- if (zend_hash_find(_ht, #_name, sizeof(#_name), (void**)&bn) == SUCCESS && \
-- Z_TYPE_PP(bn) == IS_STRING) { \
-- _type->_name = BN_bin2bn( \
-- (unsigned char*)Z_STRVAL_PP(bn), \
-- Z_STRLEN_PP(bn), NULL); \
-- } \
-+#define OPENSSL_GET_BN(_array, _bn, _name) do { \
-+ if (_bn != NULL) { \
-+ int len = BN_num_bytes(_bn); \
-+ char *str = emalloc(len + 1); \
-+ BN_bn2bin(_bn, (unsigned char*)str); \
-+ str[len] = 0; \
-+ add_assoc_stringl(_array, #_name, str, len, 0); \
-+ } \
- } while (0);
-
-+#define OPENSSL_PKEY_GET_BN(_type, _name) OPENSSL_GET_BN(_type, _name, _name)
-+
-+#define OPENSSL_PKEY_SET_BN(_data, _name) do { \
-+ zval **bn; \
-+ if (zend_hash_find(Z_ARRVAL_P(_data), #_name, sizeof(#_name),(void**)&bn) == SUCCESS && \
-+ Z_TYPE_PP(bn) == IS_STRING) { \
-+ _name = BN_bin2bn( \
-+ (unsigned char*)Z_STRVAL_PP(bn), \
-+ Z_STRLEN_PP(bn), NULL); \
-+ } else { \
-+ _name = NULL; \
-+ } \
-+ } while (0);
-+
-+/* {{{ php_openssl_pkey_init_rsa */
-+zend_bool php_openssl_pkey_init_and_assign_rsa(EVP_PKEY *pkey, RSA *rsa, zval *data)
-+{
-+ BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp;
-+
-+ OPENSSL_PKEY_SET_BN(data, n);
-+ OPENSSL_PKEY_SET_BN(data, e);
-+ OPENSSL_PKEY_SET_BN(data, d);
-+ if (!n || !d || !RSA_set0_key(rsa, n, e, d)) {
-+ return 0;
-+ }
-+
-+ OPENSSL_PKEY_SET_BN(data, p);
-+ OPENSSL_PKEY_SET_BN(data, q);
-+ if ((p || q) && !RSA_set0_factors(rsa, p, q)) {
-+ return 0;
-+ }
-+
-+ OPENSSL_PKEY_SET_BN(data, dmp1);
-+ OPENSSL_PKEY_SET_BN(data, dmq1);
-+ OPENSSL_PKEY_SET_BN(data, iqmp);
-+ if ((dmp1 || dmq1 || iqmp) && !RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp)) {
-+ return 0;
-+ }
-+
-+ if (!EVP_PKEY_assign_RSA(pkey, rsa)) {
-+ return 0;
-+ }
-+
-+ return 1;
-+}
-+/* }}} */
-+
- /* {{{ php_openssl_pkey_init_dsa */
--zend_bool php_openssl_pkey_init_dsa(DSA *dsa)
-+zend_bool php_openssl_pkey_init_dsa(DSA *dsa, zval *data)
- {
-- if (!dsa->p || !dsa->q || !dsa->g) {
-+ BIGNUM *p, *q, *g, *priv_key, *pub_key;
-+ const BIGNUM *priv_key_const, *pub_key_const;
-+
-+ OPENSSL_PKEY_SET_BN(data, p);
-+ OPENSSL_PKEY_SET_BN(data, q);
-+ OPENSSL_PKEY_SET_BN(data, g);
-+ if (!p || !q || !g || !DSA_set0_pqg(dsa, p, q, g)) {
- return 0;
- }
-- if (dsa->priv_key || dsa->pub_key) {
-- return 1;
-+
-+ OPENSSL_PKEY_SET_BN(data, pub_key);
-+ OPENSSL_PKEY_SET_BN(data, priv_key);
-+ if (pub_key) {
-+ return DSA_set0_key(dsa, pub_key, priv_key);
- }
- PHP_OPENSSL_RAND_ADD_TIME();
- if (!DSA_generate_key(dsa)) {
-@@ -3566,7 +3807,8 @@ zend_bool php_openssl_pkey_init_dsa(DSA
- }
- /* if BN_mod_exp return -1, then DSA_generate_key succeed for failed key
- * so we need to double check that public key is created */
-- if (!dsa->pub_key || BN_is_zero(dsa->pub_key)) {
-+ DSA_get0_key(dsa, &pub_key_const, &priv_key_const);
-+ if (!pub_key_const || BN_is_zero(pub_key_const)) {
- return 0;
- }
- /* all good */
-@@ -3574,14 +3816,66 @@ zend_bool php_openssl_pkey_init_dsa(DSA
- }
- /* }}} */
-
-+/* {{{ php_openssl_dh_pub_from_priv */
-+static BIGNUM *php_openssl_dh_pub_from_priv(BIGNUM *priv_key, BIGNUM *g, BIGNUM *p)
-+{
-+ BIGNUM *pub_key, *priv_key_const_time;
-+ BN_CTX *ctx;
-+
-+ pub_key = BN_new();
-+ if (pub_key == NULL) {
-+ return NULL;
-+ }
-+
-+ priv_key_const_time = BN_new();
-+ if (priv_key_const_time == NULL) {
-+ BN_free(pub_key);
-+ return NULL;
-+ }
-+ ctx = BN_CTX_new();
-+ if (ctx == NULL) {
-+ BN_free(pub_key);
-+ BN_free(priv_key_const_time);
-+ return NULL;
-+ }
-+
-+ BN_with_flags(priv_key_const_time, priv_key, BN_FLG_CONSTTIME);
-+
-+ if (!BN_mod_exp_mont(pub_key, g, priv_key_const_time, p, ctx, NULL)) {
-+ BN_free(pub_key);
-+ pub_key = NULL;
-+ }
-+
-+ BN_free(priv_key_const_time);
-+ BN_CTX_free(ctx);
-+
-+ return pub_key;
-+}
-+/* }}} */
-+
- /* {{{ php_openssl_pkey_init_dh */
--zend_bool php_openssl_pkey_init_dh(DH *dh)
-+zend_bool php_openssl_pkey_init_dh(DH *dh, zval *data)
- {
-- if (!dh->p || !dh->g) {
-+ BIGNUM *p, *q, *g, *priv_key, *pub_key;
-+
-+ OPENSSL_PKEY_SET_BN(data, p);
-+ OPENSSL_PKEY_SET_BN(data, q);
-+ OPENSSL_PKEY_SET_BN(data, g);
-+ if (!p || !g || !DH_set0_pqg(dh, p, q, g)) {
- return 0;
- }
-- if (dh->pub_key) {
-- return 1;
-+
-+ OPENSSL_PKEY_SET_BN(data, priv_key);
-+ OPENSSL_PKEY_SET_BN(data, pub_key);
-+ if (pub_key) {
-+ return DH_set0_key(dh, pub_key, priv_key);
-+ }
-+ if (priv_key) {
-+ pub_key = php_openssl_dh_pub_from_priv(priv_key, g, p);
-+ if (pub_key == NULL) {
-+ return 0;
-+ }
-+ return DH_set0_key(dh, pub_key, priv_key);
- }
- PHP_OPENSSL_RAND_ADD_TIME();
- if (!DH_generate_key(dh)) {
-@@ -3614,18 +3908,8 @@ PHP_FUNCTION(openssl_pkey_new)
- if (pkey) {
- RSA *rsa = RSA_new();
- if (rsa) {
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, n);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, e);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, d);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, p);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, q);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, dmp1);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, dmq1);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), rsa, iqmp);
-- if (rsa->n && rsa->d) {
-- if (EVP_PKEY_assign_RSA(pkey, rsa)) {
-- RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
-- }
-+ if (php_openssl_pkey_init_and_assign_rsa(pkey, rsa, *data)) {
-+ RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
- }
- RSA_free(rsa);
- }
-@@ -3638,12 +3922,7 @@ PHP_FUNCTION(openssl_pkey_new)
- if (pkey) {
- DSA *dsa = DSA_new();
- if (dsa) {
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, p);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, q);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, g);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, priv_key);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dsa, pub_key);
-- if (php_openssl_pkey_init_dsa(dsa)) {
-+ if (php_openssl_pkey_init_dsa(dsa, *data)) {
- if (EVP_PKEY_assign_DSA(pkey, dsa)) {
- RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
- }
-@@ -3659,11 +3938,7 @@ PHP_FUNCTION(openssl_pkey_new)
- if (pkey) {
- DH *dh = DH_new();
- if (dh) {
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, p);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, g);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, priv_key);
-- OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, pub_key);
-- if (php_openssl_pkey_init_dh(dh)) {
-+ if (php_openssl_pkey_init_dh(dh, *data)) {
- if (EVP_PKEY_assign_DH(pkey, dh)) {
- RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
- }
-@@ -3738,10 +4013,10 @@ PHP_FUNCTION(openssl_pkey_export_to_file
- cipher = NULL;
- }
-
-- switch (EVP_PKEY_type(key->type)) {
-+ switch (EVP_PKEY_base_id(key)) {
- #ifdef HAVE_EVP_PKEY_EC
- case EVP_PKEY_EC:
-- pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get1_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL);
-+ pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get0_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL);
- break;
- #endif
- default:
-@@ -3807,7 +4082,7 @@ PHP_FUNCTION(openssl_pkey_export)
- cipher = NULL;
- }
-
-- switch (EVP_PKEY_type(key->type)) {
-+ switch (EVP_PKEY_base_id(key)) {
- #ifdef HAVE_EVP_PKEY_EC
- case EVP_PKEY_EC:
- pem_write = PEM_write_bio_ECPrivateKey(bio_out, EVP_PKEY_get1_EC_KEY(key), cipher, (unsigned char *)passphrase, passphrase_len, NULL, NULL);
-@@ -3928,25 +4203,33 @@ PHP_FUNCTION(openssl_pkey_get_details)
- /*TODO: Use the real values once the openssl constants are used
- * See the enum at the top of this file
- */
-- switch (EVP_PKEY_type(pkey->type)) {
-+ switch (EVP_PKEY_base_id(pkey)) {
- case EVP_PKEY_RSA:
- case EVP_PKEY_RSA2:
-- ktype = OPENSSL_KEYTYPE_RSA;
--
-- if (pkey->pkey.rsa != NULL) {
-- zval *rsa;
--
-- ALLOC_INIT_ZVAL(rsa);
-- array_init(rsa);
-- OPENSSL_PKEY_GET_BN(rsa, n);
-- OPENSSL_PKEY_GET_BN(rsa, e);
-- OPENSSL_PKEY_GET_BN(rsa, d);
-- OPENSSL_PKEY_GET_BN(rsa, p);
-- OPENSSL_PKEY_GET_BN(rsa, q);
-- OPENSSL_PKEY_GET_BN(rsa, dmp1);
-- OPENSSL_PKEY_GET_BN(rsa, dmq1);
-- OPENSSL_PKEY_GET_BN(rsa, iqmp);
-- add_assoc_zval(return_value, "rsa", rsa);
-+ {
-+ RSA *rsa = EVP_PKEY_get0_RSA(pkey);
-+ ktype = OPENSSL_KEYTYPE_RSA;
-+
-+ if (rsa != NULL) {
-+ zval *z_rsa;
-+ const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp;
-+
-+ RSA_get0_key(rsa, &n, &e, &d);
-+ RSA_get0_factors(rsa, &p, &q);
-+ RSA_get0_crt_params(rsa, &dmp1, &dmq1, &iqmp);
-+
-+ ALLOC_INIT_ZVAL(z_rsa);
-+ array_init(z_rsa);
-+ OPENSSL_PKEY_GET_BN(z_rsa, n);
-+ OPENSSL_PKEY_GET_BN(z_rsa, e);
-+ OPENSSL_PKEY_GET_BN(z_rsa, d);
-+ OPENSSL_PKEY_GET_BN(z_rsa, p);
-+ OPENSSL_PKEY_GET_BN(z_rsa, q);
-+ OPENSSL_PKEY_GET_BN(z_rsa, dmp1);
-+ OPENSSL_PKEY_GET_BN(z_rsa, dmq1);
-+ OPENSSL_PKEY_GET_BN(z_rsa, iqmp);
-+ add_assoc_zval(return_value, "rsa", z_rsa);
-+ }
- }
-
- break;
-@@ -3954,42 +4237,55 @@ PHP_FUNCTION(openssl_pkey_get_details)
- case EVP_PKEY_DSA2:
- case EVP_PKEY_DSA3:
- case EVP_PKEY_DSA4:
-- ktype = OPENSSL_KEYTYPE_DSA;
--
-- if (pkey->pkey.dsa != NULL) {
-- zval *dsa;
--
-- ALLOC_INIT_ZVAL(dsa);
-- array_init(dsa);
-- OPENSSL_PKEY_GET_BN(dsa, p);
-- OPENSSL_PKEY_GET_BN(dsa, q);
-- OPENSSL_PKEY_GET_BN(dsa, g);
-- OPENSSL_PKEY_GET_BN(dsa, priv_key);
-- OPENSSL_PKEY_GET_BN(dsa, pub_key);
-- add_assoc_zval(return_value, "dsa", dsa);
-+ {
-+ DSA *dsa = EVP_PKEY_get0_DSA(pkey);
-+ ktype = OPENSSL_KEYTYPE_DSA;
-+
-+ if (dsa != NULL) {
-+ zval *z_dsa;
-+ const BIGNUM *p, *q, *g, *priv_key, *pub_key;
-+
-+ DSA_get0_pqg(dsa, &p, &q, &g);
-+ DSA_get0_key(dsa, &pub_key, &priv_key);
-+
-+ ALLOC_INIT_ZVAL(z_dsa);
-+ array_init(z_dsa);
-+ OPENSSL_PKEY_GET_BN(z_dsa, p);
-+ OPENSSL_PKEY_GET_BN(z_dsa, q);
-+ OPENSSL_PKEY_GET_BN(z_dsa, g);
-+ OPENSSL_PKEY_GET_BN(z_dsa, priv_key);
-+ OPENSSL_PKEY_GET_BN(z_dsa, pub_key);
-+ add_assoc_zval(return_value, "dsa", z_dsa);
-+ }
- }
- break;
- case EVP_PKEY_DH:
--
-- ktype = OPENSSL_KEYTYPE_DH;
--
-- if (pkey->pkey.dh != NULL) {
-- zval *dh;
--
-- ALLOC_INIT_ZVAL(dh);
-- array_init(dh);
-- OPENSSL_PKEY_GET_BN(dh, p);
-- OPENSSL_PKEY_GET_BN(dh, g);
-- OPENSSL_PKEY_GET_BN(dh, priv_key);
-- OPENSSL_PKEY_GET_BN(dh, pub_key);
-- add_assoc_zval(return_value, "dh", dh);
-+ {
-+ DH *dh = EVP_PKEY_get0_DH(pkey);
-+ ktype = OPENSSL_KEYTYPE_DH;
-+
-+ if (dh != NULL) {
-+ zval *z_dh;
-+ const BIGNUM *p, *q, *g, *priv_key, *pub_key;
-+
-+ DH_get0_pqg(dh, &p, &q, &g);
-+ DH_get0_key(dh, &pub_key, &priv_key);
-+
-+ ALLOC_INIT_ZVAL(z_dh);
-+ array_init(z_dh);
-+ OPENSSL_PKEY_GET_BN(z_dh, p);
-+ OPENSSL_PKEY_GET_BN(z_dh, g);
-+ OPENSSL_PKEY_GET_BN(z_dh, priv_key);
-+ OPENSSL_PKEY_GET_BN(z_dh, pub_key);
-+ add_assoc_zval(return_value, "dh", z_dh);
-+ }
- }
-
- break;
- #ifdef HAVE_EVP_PKEY_EC
- case EVP_PKEY_EC:
- ktype = OPENSSL_KEYTYPE_EC;
-- if (pkey->pkey.ec != NULL) {
-+ if (EVP_PKEY_get0_EC_KEY(pkey) != NULL) {
- zval *ec;
- const EC_GROUP *ec_group;
- int nid;
-@@ -4546,13 +4842,13 @@ PHP_FUNCTION(openssl_private_encrypt)
- cryptedlen = EVP_PKEY_size(pkey);
- cryptedbuf = emalloc(cryptedlen + 1);
-
-- switch (pkey->type) {
-+ switch (EVP_PKEY_id(pkey)) {
- case EVP_PKEY_RSA:
- case EVP_PKEY_RSA2:
- successful = (RSA_private_encrypt(data_len,
- (unsigned char *)data,
- cryptedbuf,
-- pkey->pkey.rsa,
-+ EVP_PKEY_get0_RSA(pkey),
- padding) == cryptedlen);
- break;
- default:
-@@ -4604,13 +4900,13 @@ PHP_FUNCTION(openssl_private_decrypt)
- cryptedlen = EVP_PKEY_size(pkey);
- crypttemp = emalloc(cryptedlen + 1);
-
-- switch (pkey->type) {
-+ switch (EVP_PKEY_id(pkey)) {
- case EVP_PKEY_RSA:
- case EVP_PKEY_RSA2:
- cryptedlen = RSA_private_decrypt(data_len,
- (unsigned char *)data,
- crypttemp,
-- pkey->pkey.rsa,
-+ EVP_PKEY_get0_RSA(pkey),
- padding);
- if (cryptedlen != -1) {
- cryptedbuf = emalloc(cryptedlen + 1);
-@@ -4669,13 +4965,13 @@ PHP_FUNCTION(openssl_public_encrypt)
- cryptedlen = EVP_PKEY_size(pkey);
- cryptedbuf = emalloc(cryptedlen + 1);
-
-- switch (pkey->type) {
-+ switch (EVP_PKEY_id(pkey)) {
- case EVP_PKEY_RSA:
- case EVP_PKEY_RSA2:
- successful = (RSA_public_encrypt(data_len,
- (unsigned char *)data,
- cryptedbuf,
-- pkey->pkey.rsa,
-+ EVP_PKEY_get0_RSA(pkey),
- padding) == cryptedlen);
- break;
- default:
-@@ -4728,13 +5024,13 @@ PHP_FUNCTION(openssl_public_decrypt)
- cryptedlen = EVP_PKEY_size(pkey);
- crypttemp = emalloc(cryptedlen + 1);
-
-- switch (pkey->type) {
-+ switch (EVP_PKEY_id(pkey)) {
- case EVP_PKEY_RSA:
- case EVP_PKEY_RSA2:
- cryptedlen = RSA_public_decrypt(data_len,
- (unsigned char *)data,
- crypttemp,
-- pkey->pkey.rsa,
-+ EVP_PKEY_get0_RSA(pkey),
- padding);
- if (cryptedlen != -1) {
- cryptedbuf = emalloc(cryptedlen + 1);
-@@ -4798,7 +5094,7 @@ PHP_FUNCTION(openssl_sign)
- long keyresource = -1;
- char * data;
- int data_len;
-- EVP_MD_CTX md_ctx;
-+ EVP_MD_CTX *md_ctx;
- zval *method = NULL;
- long signature_algo = OPENSSL_ALGO_SHA1;
- const EVP_MD *mdtype;
-@@ -4831,9 +5127,10 @@ PHP_FUNCTION(openssl_sign)
- siglen = EVP_PKEY_size(pkey);
- sigbuf = emalloc(siglen + 1);
-
-- EVP_SignInit(&md_ctx, mdtype);
-- EVP_SignUpdate(&md_ctx, data, data_len);
-- if (EVP_SignFinal (&md_ctx, sigbuf,(unsigned int *)&siglen, pkey)) {
-+ md_ctx = EVP_MD_CTX_create();
-+ EVP_SignInit(md_ctx, mdtype);
-+ EVP_SignUpdate(md_ctx, data, data_len);
-+ if (EVP_SignFinal (md_ctx, sigbuf,(unsigned int *)&siglen, pkey)) {
- zval_dtor(signature);
- sigbuf[siglen] = '\0';
- ZVAL_STRINGL(signature, (char *)sigbuf, siglen, 0);
-@@ -4842,7 +5139,7 @@ PHP_FUNCTION(openssl_sign)
- efree(sigbuf);
- RETVAL_FALSE;
- }
-- EVP_MD_CTX_cleanup(&md_ctx);
-+ EVP_MD_CTX_destroy(md_ctx);
- if (keyresource == -1) {
- EVP_PKEY_free(pkey);
- }
-@@ -4856,7 +5153,7 @@ PHP_FUNCTION(openssl_verify)
- zval **key;
- EVP_PKEY *pkey;
- int err;
-- EVP_MD_CTX md_ctx;
-+ EVP_MD_CTX *md_ctx;
- const EVP_MD *mdtype;
- long keyresource = -1;
- char * data; int data_len;
-@@ -4890,10 +5187,11 @@ PHP_FUNCTION(openssl_verify)
- RETURN_FALSE;
- }
-
-- EVP_VerifyInit (&md_ctx, mdtype);
-- EVP_VerifyUpdate (&md_ctx, data, data_len);
-- err = EVP_VerifyFinal (&md_ctx, (unsigned char *)signature, signature_len, pkey);
-- EVP_MD_CTX_cleanup(&md_ctx);
-+ md_ctx = EVP_MD_CTX_create();
-+ EVP_VerifyInit (md_ctx, mdtype);
-+ EVP_VerifyUpdate (md_ctx, data, data_len);
-+ err = EVP_VerifyFinal (md_ctx, (unsigned char *)signature, signature_len, pkey);
-+ EVP_MD_CTX_destroy(md_ctx);
-
- if (keyresource == -1) {
- EVP_PKEY_free(pkey);
-@@ -4917,7 +5215,7 @@ PHP_FUNCTION(openssl_seal)
- char *method =NULL;
- int method_len = 0;
- const EVP_CIPHER *cipher;
-- EVP_CIPHER_CTX ctx;
-+ EVP_CIPHER_CTX *ctx;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szza/|s", &data, &data_len, &sealdata, &ekeys, &pubkeys, &method, &method_len) == FAILURE) {
- return;
-@@ -4950,6 +5248,7 @@ PHP_FUNCTION(openssl_seal)
- memset(eks, 0, sizeof(*eks) * nkeys);
- key_resources = safe_emalloc(nkeys, sizeof(long), 0);
- memset(key_resources, 0, sizeof(*key_resources) * nkeys);
-+ memset(pkeys, 0, sizeof(*pkeys) * nkeys);
-
- /* get the public keys we are using to seal this data */
- zend_hash_internal_pointer_reset_ex(pubkeysht, &pos);
-@@ -4967,27 +5266,28 @@ PHP_FUNCTION(openssl_seal)
- i++;
- }
-
-- if (!EVP_EncryptInit(&ctx,cipher,NULL,NULL)) {
-+ ctx = EVP_CIPHER_CTX_new();
-+ if (ctx == NULL || !EVP_EncryptInit(ctx,cipher,NULL,NULL)) {
- RETVAL_FALSE;
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+ EVP_CIPHER_CTX_free(ctx);
- goto clean_exit;
- }
-
- #if 0
- /* Need this if allow ciphers that require initialization vector */
-- ivlen = EVP_CIPHER_CTX_iv_length(&ctx);
-+ ivlen = EVP_CIPHER_CTX_iv_length(ctx);
- iv = ivlen ? emalloc(ivlen + 1) : NULL;
- #endif
- /* allocate one byte extra to make room for \0 */
-- buf = emalloc(data_len + EVP_CIPHER_CTX_block_size(&ctx));
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+ buf = emalloc(data_len + EVP_CIPHER_CTX_block_size(ctx));
-+ EVP_CIPHER_CTX_cleanup(ctx);
-
-- if (EVP_SealInit(&ctx, cipher, eks, eksl, NULL, pkeys, nkeys) <= 0 ||
-- !EVP_SealUpdate(&ctx, buf, &len1, (unsigned char *)data, data_len) ||
-- !EVP_SealFinal(&ctx, buf + len1, &len2)) {
-+ if (EVP_SealInit(ctx, cipher, eks, eksl, NULL, pkeys, nkeys) <= 0 ||
-+ !EVP_SealUpdate(ctx, buf, &len1, (unsigned char *)data, data_len) ||
-+ !EVP_SealFinal(ctx, buf + len1, &len2)) {
- RETVAL_FALSE;
- efree(buf);
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+ EVP_CIPHER_CTX_free(ctx);
- goto clean_exit;
- }
-
-@@ -5018,7 +5318,7 @@ PHP_FUNCTION(openssl_seal)
- efree(buf);
- }
- RETVAL_LONG(len1 + len2);
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+ EVP_CIPHER_CTX_free(ctx);
-
- clean_exit:
- for (i=0; i<nkeys; i++) {
-@@ -5045,7 +5345,7 @@ PHP_FUNCTION(openssl_open)
- int len1, len2;
- unsigned char *buf;
- long keyresource = -1;
-- EVP_CIPHER_CTX ctx;
-+ EVP_CIPHER_CTX *ctx;
- char * data; int data_len;
- char * ekey; int ekey_len;
- char *method =NULL;
-@@ -5074,8 +5374,9 @@ PHP_FUNCTION(openssl_open)
-
- buf = emalloc(data_len + 1);
-
-- if (EVP_OpenInit(&ctx, cipher, (unsigned char *)ekey, ekey_len, NULL, pkey) && EVP_OpenUpdate(&ctx, buf, &len1, (unsigned char *)data, data_len)) {
-- if (!EVP_OpenFinal(&ctx, buf + len1, &len2) || (len1 + len2 == 0)) {
-+ ctx = EVP_CIPHER_CTX_new();
-+ if (EVP_OpenInit(ctx, cipher, (unsigned char *)ekey, ekey_len, NULL, pkey) && EVP_OpenUpdate(ctx, buf, &len1, (unsigned char *)data, data_len)) {
-+ if (!EVP_OpenFinal(ctx, buf + len1, &len2) || (len1 + len2 == 0)) {
- efree(buf);
- RETVAL_FALSE;
- } else {
-@@ -5091,7 +5392,7 @@ PHP_FUNCTION(openssl_open)
- if (keyresource == -1) {
- EVP_PKEY_free(pkey);
- }
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+ EVP_CIPHER_CTX_free(ctx);
- }
- /* }}} */
-
-@@ -5151,7 +5452,7 @@ PHP_FUNCTION(openssl_digest)
- char *data, *method;
- int data_len, method_len;
- const EVP_MD *mdtype;
-- EVP_MD_CTX md_ctx;
-+ EVP_MD_CTX *md_ctx;
- int siglen;
- unsigned char *sigbuf;
-
-@@ -5167,9 +5468,10 @@ PHP_FUNCTION(openssl_digest)
- siglen = EVP_MD_size(mdtype);
- sigbuf = emalloc(siglen + 1);
-
-- EVP_DigestInit(&md_ctx, mdtype);
-- EVP_DigestUpdate(&md_ctx, (unsigned char *)data, data_len);
-- if (EVP_DigestFinal (&md_ctx, (unsigned char *)sigbuf, (unsigned int *)&siglen)) {
-+ md_ctx = EVP_MD_CTX_create();
-+ EVP_DigestInit(md_ctx, mdtype);
-+ EVP_DigestUpdate(md_ctx, (unsigned char *)data, data_len);
-+ if (EVP_DigestFinal (md_ctx, (unsigned char *)sigbuf, (unsigned int *)&siglen)) {
- if (raw_output) {
- sigbuf[siglen] = '\0';
- RETVAL_STRINGL((char *)sigbuf, siglen, 0);
-@@ -5185,6 +5487,8 @@ PHP_FUNCTION(openssl_digest)
- efree(sigbuf);
- RETVAL_FALSE;
- }
-+
-+ EVP_MD_CTX_destroy(md_ctx);
- }
- /* }}} */
-
-@@ -5230,7 +5534,7 @@ PHP_FUNCTION(openssl_encrypt)
- char *data, *method, *password, *iv = "";
- int data_len, method_len, password_len, iv_len = 0, max_iv_len;
- const EVP_CIPHER *cipher_type;
-- EVP_CIPHER_CTX cipher_ctx;
-+ EVP_CIPHER_CTX *cipher_ctx;
- int i=0, outlen, keylen;
- unsigned char *outbuf, *key;
- zend_bool free_iv;
-@@ -5262,19 +5566,24 @@ PHP_FUNCTION(openssl_encrypt)
- outlen = data_len + EVP_CIPHER_block_size(cipher_type);
- outbuf = safe_emalloc(outlen, 1, 1);
-
-- EVP_EncryptInit(&cipher_ctx, cipher_type, NULL, NULL);
-+ cipher_ctx = EVP_CIPHER_CTX_new();
-+ if (!cipher_ctx) {
-+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to create cipher context");
-+ RETURN_FALSE;
-+ }
-+ EVP_EncryptInit(cipher_ctx, cipher_type, NULL, NULL);
- if (password_len > keylen) {
-- EVP_CIPHER_CTX_set_key_length(&cipher_ctx, password_len);
-+ EVP_CIPHER_CTX_set_key_length(cipher_ctx, password_len);
- }
-- EVP_EncryptInit_ex(&cipher_ctx, NULL, NULL, key, (unsigned char *)iv);
-+ EVP_EncryptInit_ex(cipher_ctx, NULL, NULL, key, (unsigned char *)iv);
- if (options & OPENSSL_ZERO_PADDING) {
-- EVP_CIPHER_CTX_set_padding(&cipher_ctx, 0);
-+ EVP_CIPHER_CTX_set_padding(cipher_ctx, 0);
- }
- if (data_len > 0) {
-- EVP_EncryptUpdate(&cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
-+ EVP_EncryptUpdate(cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
- }
- outlen = i;
-- if (EVP_EncryptFinal(&cipher_ctx, (unsigned char *)outbuf + i, &i)) {
-+ if (EVP_EncryptFinal(cipher_ctx, (unsigned char *)outbuf + i, &i)) {
- outlen += i;
- if (options & OPENSSL_RAW_DATA) {
- outbuf[outlen] = '\0';
-@@ -5301,7 +5610,8 @@ PHP_FUNCTION(openssl_encrypt)
- if (free_iv) {
- efree(iv);
- }
-- EVP_CIPHER_CTX_cleanup(&cipher_ctx);
-+ EVP_CIPHER_CTX_cleanup(cipher_ctx);
-+ EVP_CIPHER_CTX_free(cipher_ctx);
- }
- /* }}} */
-
-@@ -5313,7 +5623,7 @@ PHP_FUNCTION(openssl_decrypt)
- char *data, *method, *password, *iv = "";
- int data_len, method_len, password_len, iv_len = 0;
- const EVP_CIPHER *cipher_type;
-- EVP_CIPHER_CTX cipher_ctx;
-+ EVP_CIPHER_CTX *cipher_ctx;
- int i, outlen, keylen;
- unsigned char *outbuf, *key;
- int base64_str_len;
-@@ -5359,17 +5669,23 @@ PHP_FUNCTION(openssl_decrypt)
- outlen = data_len + EVP_CIPHER_block_size(cipher_type);
- outbuf = emalloc(outlen + 1);
-
-- EVP_DecryptInit(&cipher_ctx, cipher_type, NULL, NULL);
-+ cipher_ctx = EVP_CIPHER_CTX_new();
-+ if (!cipher_ctx) {
-+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to create cipher context");
-+ RETURN_FALSE;
-+ }
-+
-+ EVP_DecryptInit(cipher_ctx, cipher_type, NULL, NULL);
- if (password_len > keylen) {
-- EVP_CIPHER_CTX_set_key_length(&cipher_ctx, password_len);
-+ EVP_CIPHER_CTX_set_key_length(cipher_ctx, password_len);
- }
-- EVP_DecryptInit_ex(&cipher_ctx, NULL, NULL, key, (unsigned char *)iv);
-+ EVP_DecryptInit_ex(cipher_ctx, NULL, NULL, key, (unsigned char *)iv);
- if (options & OPENSSL_ZERO_PADDING) {
-- EVP_CIPHER_CTX_set_padding(&cipher_ctx, 0);
-+ EVP_CIPHER_CTX_set_padding(cipher_ctx, 0);
- }
-- EVP_DecryptUpdate(&cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
-+ EVP_DecryptUpdate(cipher_ctx, outbuf, &i, (unsigned char *)data, data_len);
- outlen = i;
-- if (EVP_DecryptFinal(&cipher_ctx, (unsigned char *)outbuf + i, &i)) {
-+ if (EVP_DecryptFinal(cipher_ctx, (unsigned char *)outbuf + i, &i)) {
- outlen += i;
- outbuf[outlen] = '\0';
- RETVAL_STRINGL((char *)outbuf, outlen, 0);
-@@ -5386,7 +5702,8 @@ PHP_FUNCTION(openssl_decrypt)
- if (base64_str) {
- efree(base64_str);
- }
-- EVP_CIPHER_CTX_cleanup(&cipher_ctx);
-+ EVP_CIPHER_CTX_cleanup(cipher_ctx);
-+ EVP_CIPHER_CTX_free(cipher_ctx);
- }
- /* }}} */
-
-@@ -5424,6 +5741,7 @@ PHP_FUNCTION(openssl_dh_compute_key)
- zval *key;
- char *pub_str;
- int pub_len;
-+ DH *dh;
- EVP_PKEY *pkey;
- BIGNUM *pub;
- char *data;
-@@ -5433,14 +5751,21 @@ PHP_FUNCTION(openssl_dh_compute_key)
- return;
- }
- ZEND_FETCH_RESOURCE(pkey, EVP_PKEY *, &key, -1, "OpenSSL key", le_key);
-- if (!pkey || EVP_PKEY_type(pkey->type) != EVP_PKEY_DH || !pkey->pkey.dh) {
-+ if (pkey == NULL) {
-+ RETURN_FALSE;
-+ }
-+ if (EVP_PKEY_base_id(pkey) != EVP_PKEY_DH) {
-+ RETURN_FALSE;
-+ }
-+ dh = EVP_PKEY_get0_DH(pkey);
-+ if (dh == NULL) {
- RETURN_FALSE;
- }
-
- pub = BN_bin2bn((unsigned char*)pub_str, pub_len, NULL);
-
-- data = emalloc(DH_size(pkey->pkey.dh) + 1);
-- len = DH_compute_key((unsigned char*)data, pub, pkey->pkey.dh);
-+ data = emalloc(DH_size(dh) + 1);
-+ len = DH_compute_key((unsigned char*)data, pub, dh);
-
- if (len >= 0) {
- data[len] = 0;
-diff -rupN php-5.6.31.orig/ext/openssl/tests/bug41033.phpt php-5.6.31/ext/openssl/tests/bug41033.phpt
---- php-5.6.31.orig/ext/openssl/tests/bug41033.phpt 2017-07-06 00:25:00.000000000 +0200
-+++ php-5.6.31/ext/openssl/tests/bug41033.phpt 2017-08-01 10:49:25.008823468 +0200
-@@ -13,11 +13,11 @@ $pub = 'file://' . dirname(__FILE__) . '
-
- $prkeyid = openssl_get_privatekey($prv, "1234");
- $ct = "Hello I am some text!";
--openssl_sign($ct, $signature, $prkeyid, OPENSSL_ALGO_DSS1);
-+openssl_sign($ct, $signature, $prkeyid, OPENSSL_VERSION_NUMBER < 0x10100000 ? OPENSSL_ALGO_DSS1 : OPENSSL_ALGO_SHA1);
- echo "Signature: ".base64_encode($signature) . "\n";
-
- $pukeyid = openssl_get_publickey($pub);
--$valid = openssl_verify($ct, $signature, $pukeyid, OPENSSL_ALGO_DSS1);
-+$valid = openssl_verify($ct, $signature, $pukeyid, OPENSSL_VERSION_NUMBER < 0x10100000 ? OPENSSL_ALGO_DSS1 : OPENSSL_ALGO_SHA1);
- echo "Signature validity: " . $valid . "\n";
-
-
-diff -rupN php-5.6.31.orig/ext/openssl/tests/bug66501.phpt php-5.6.31/ext/openssl/tests/bug66501.phpt
---- php-5.6.31.orig/ext/openssl/tests/bug66501.phpt 2017-07-06 00:25:00.000000000 +0200
-+++ php-5.6.31/ext/openssl/tests/bug66501.phpt 2017-08-01 10:49:25.008823468 +0200
-@@ -16,7 +16,7 @@ AwEHoUQDQgAEPq4hbIWHvB51rdWr8ejrjWo4qVNW
- sqOTOnMoezkbSmVVMuwz9flvnqHGmQvmug==
- -----END EC PRIVATE KEY-----';
- $key = openssl_pkey_get_private($pkey);
--$res = openssl_sign($data ='alpha', $sign, $key, 'ecdsa-with-SHA1');
-+$res = openssl_sign($data ='alpha', $sign, $key, OPENSSL_VERSION_NUMBER < 0x10100000 ? 'ecdsa-with-SHA1' : 'SHA1');
- var_dump($res);
- --EXPECTF--
- bool(true)
-diff -rupN php-5.6.31.orig/ext/openssl/tests/openssl_error_string_basic.phpt php-5.6.31/ext/openssl/tests/openssl_error_string_basic.phpt
---- php-5.6.31.orig/ext/openssl/tests/openssl_error_string_basic.phpt 2017-07-06 00:25:00.000000000 +0200
-+++ php-5.6.31/ext/openssl/tests/openssl_error_string_basic.phpt 2017-08-01 10:49:25.008823468 +0200
-@@ -105,7 +105,7 @@ expect_openssl_errors('openssl_private_d
- // public encrypt and decrypt with failed padding check and padding
- @openssl_public_encrypt("data", $crypted, $public_key_file, 1000);
- @openssl_public_decrypt("data", $crypted, $public_key_file);
--expect_openssl_errors('openssl_private_(en|de)crypt padding', ['0906D06C', '04068076', '0407006A', '04067072']);
-+expect_openssl_errors('openssl_private_(en|de)crypt padding', OPENSSL_VERSION_NUMBER < 0x10100000 ? ['0906D06C', '04068076', '0407006A', '04067072'] : ['0906D06C', '04068076', '04067072']);
-
- // X509
- echo "X509 errors\n";
-diff -rupN php-5.6.31.orig/ext/openssl/tests/sni_server.phpt php-5.6.31/ext/openssl/tests/sni_server.phpt
---- php-5.6.31.orig/ext/openssl/tests/sni_server.phpt 2017-07-06 00:25:00.000000000 +0200
-+++ php-5.6.31/ext/openssl/tests/sni_server.phpt 2017-08-01 10:49:25.012823468 +0200
-@@ -27,6 +27,9 @@ CODE;
- $clientCode = <<<'CODE'
- $flags = STREAM_CLIENT_CONNECT;
- $ctxArr = [
-+ 'verify_peer' => false,
-+ 'verify_peer_name' => false,
-+ 'allow_self_signed' => true,
- 'cafile' => __DIR__ . '/sni_server_ca.pem',
- 'capture_peer_cert' => true
- ];
-diff -rupN php-5.6.31.orig/ext/openssl/xp_ssl.c php-5.6.31/ext/openssl/xp_ssl.c
---- php-5.6.31.orig/ext/openssl/xp_ssl.c 2017-07-06 00:25:00.000000000 +0200
-+++ php-5.6.31/ext/openssl/xp_ssl.c 2017-08-01 10:49:25.012823468 +0200
-@@ -935,7 +935,7 @@ static int set_local_cert(SSL_CTX *ctx,
- static const SSL_METHOD *php_select_crypto_method(long method_value, int is_client TSRMLS_DC) /* {{{ */
- {
- if (method_value == STREAM_CRYPTO_METHOD_SSLv2) {
--#ifndef OPENSSL_NO_SSL2
-+#if !defined(OPENSSL_NO_SSL2) && OPENSSL_VERSION_NUMBER < 0x10100000L
- return is_client ? SSLv2_client_method() : SSLv2_server_method();
- #else
- php_error_docref(NULL TSRMLS_CC, E_WARNING,
-@@ -1588,12 +1588,26 @@ int php_openssl_setup_crypto(php_stream
- }
- /* }}} */
-
-+#define PHP_SSL_MAX_VERSION_LEN 32
-+
-+static char *php_ssl_cipher_get_version(const SSL_CIPHER *c, char *buffer, size_t max_len) /* {{{ */
-+{
-+ const char *version = SSL_CIPHER_get_version(c);
-+ strncpy(buffer, version, max_len);
-+ if (max_len <= strlen(version)) {
-+ buffer[max_len - 1] = 0;
-+ }
-+ return buffer;
-+}
-+/* }}} */
-+
- static zval *capture_session_meta(SSL *ssl_handle) /* {{{ */
- {
- zval *meta_arr;
- char *proto_str;
- long proto = SSL_version(ssl_handle);
- const SSL_CIPHER *cipher = SSL_get_current_cipher(ssl_handle);
-+ char version_str[PHP_SSL_MAX_VERSION_LEN];
-
- switch (proto) {
- #if OPENSSL_VERSION_NUMBER >= 0x10001001L
-@@ -1611,7 +1625,7 @@ static zval *capture_session_meta(SSL *s
- add_assoc_string(meta_arr, "protocol", proto_str, 1);
- add_assoc_string(meta_arr, "cipher_name", (char *) SSL_CIPHER_get_name(cipher), 1);
- add_assoc_long(meta_arr, "cipher_bits", SSL_CIPHER_get_bits(cipher, NULL));
-- add_assoc_string(meta_arr, "cipher_version", SSL_CIPHER_get_version(cipher), 1);
-+ add_assoc_string(meta_arr, "cipher_version", php_ssl_cipher_get_version(cipher, version_str, PHP_SSL_MAX_VERSION_LEN), 1);
-
- return meta_arr;
- }
-diff -rupN php-5.6.31.orig/ext/phar/util.c php-5.6.31/ext/phar/util.c
---- php-5.6.31.orig/ext/phar/util.c 2017-07-06 00:25:00.000000000 +0200
-+++ php-5.6.31/ext/phar/util.c 2017-08-01 10:49:25.020823468 +0200
-@@ -1531,7 +1531,7 @@ int phar_verify_signature(php_stream *fp
- BIO *in;
- EVP_PKEY *key;
- EVP_MD *mdtype = (EVP_MD *) EVP_sha1();
-- EVP_MD_CTX md_ctx;
-+ EVP_MD_CTX *md_ctx;
- #else
- int tempsig;
- #endif
-@@ -1608,7 +1608,8 @@ int phar_verify_signature(php_stream *fp
- return FAILURE;
- }
-
-- EVP_VerifyInit(&md_ctx, mdtype);
-+ md_ctx = EVP_MD_CTX_create();
-+ EVP_VerifyInit(md_ctx, mdtype);
- read_len = end_of_phar;
-
- if (read_len > sizeof(buf)) {
-@@ -1620,7 +1621,7 @@ int phar_verify_signature(php_stream *fp
- php_stream_seek(fp, 0, SEEK_SET);
-
- while (read_size && (len = php_stream_read(fp, (char*)buf, read_size)) > 0) {
-- EVP_VerifyUpdate (&md_ctx, buf, len);
-+ EVP_VerifyUpdate (md_ctx, buf, len);
- read_len -= (off_t)len;
-
- if (read_len < read_size) {
-@@ -1628,9 +1629,9 @@ int phar_verify_signature(php_stream *fp
- }
- }
-
-- if (EVP_VerifyFinal(&md_ctx, (unsigned char *)sig, sig_len, key) != 1) {
-+ if (EVP_VerifyFinal(md_ctx, (unsigned char *)sig, sig_len, key) != 1) {
- /* 1: signature verified, 0: signature does not match, -1: failed signature operation */
-- EVP_MD_CTX_cleanup(&md_ctx);
-+ EVP_MD_CTX_destroy(md_ctx);
-
- if (error) {
- spprintf(error, 0, "broken openssl signature");
-@@ -1639,7 +1640,7 @@ int phar_verify_signature(php_stream *fp
- return FAILURE;
- }
-
-- EVP_MD_CTX_cleanup(&md_ctx);
-+ EVP_MD_CTX_destroy(md_ctx);
- #endif
-
- *signature_len = phar_hex_str((const char*)sig, sig_len, signature TSRMLS_CC);
diff --git a/pasture/source/php/doinst.sh b/pasture/source/php/doinst.sh
deleted file mode 100644
index a6f584ed3..000000000
--- a/pasture/source/php/doinst.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-if [ ! -r etc/httpd/mod_php.conf ]; then
- cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf
-elif [ "`cat etc/httpd/mod_php.conf 2> /dev/null`" = "" ]; then
- cp -a etc/httpd/mod_php.conf.example etc/httpd/mod_php.conf
-fi
-
-config() {
- NEW="$1"
- OLD="`dirname $NEW`/`basename $NEW .new`"
- # If there's no config file by that name, mv it over:
- if [ ! -r $OLD ]; then
- mv $NEW $OLD
- elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
- rm $NEW
- fi
- # Otherwise, we leave the .new copy for the admin to consider...
-}
-# Keep same perms on rc.php-fpm.new:
-if [ -e etc/rc.d/rc.php-fpm ]; then
- cp -a etc/rc.d/rc.php-fpm etc/rc.d/rc.php-fpm.new.incoming
- cat etc/rc.d/rc.php-fpm.new > etc/rc.d/rc.php-fpm.new.incoming
- mv etc/rc.d/rc.php-fpm.new.incoming etc/rc.d/rc.php-fpm.new
-fi
-config etc/rc.d/rc.php-fpm.new
-cp -a etc/php.ini-production etc/php.ini.new
-config etc/php.ini.new
-cp -a etc/php-fpm.conf.default etc/php-fpm.conf.new
-config etc/php-fpm.conf.new
-cp -a etc/php-fpm.conf.default etc/php-fpm.conf.new
-config etc/php-fpm.conf.new
diff --git a/pasture/source/php/fetch-php.sh b/pasture/source/php/fetch-php.sh
deleted file mode 100755
index 975c99af6..000000000
--- a/pasture/source/php/fetch-php.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-lftpget http://us.php.net/distributions/php-5.6.40.tar.xz.asc
-lftpget http://us.php.net/distributions/php-5.6.40.tar.xz
diff --git a/pasture/source/php/mod_php.conf.example b/pasture/source/php/mod_php.conf.example
deleted file mode 100644
index 670eb7135..000000000
--- a/pasture/source/php/mod_php.conf.example
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# mod_php - PHP Hypertext Preprocessor module
-#
-
-# Load the PHP module:
-LoadModule php5_module lib/httpd/modules/libphp5.so
-
-# Tell Apache to feed all *.php files through PHP. If you'd like to
-# parse PHP embedded in files with different extensions, comment out
-# these lines and see the example below.
-<FilesMatch \.php$>
- SetHandler application/x-httpd-php
-</FilesMatch>
-
-# Tell Apache to feed all *.php, *.html, and *.htm files through
-# the PHP module. Add or subtract extensions here as desired. Please
-# note that running pages through PHP for no reason can be both slow
-# and insecure, so be sure to know what you're doing. It's a convenient
-# shortcut, but probably isn't suitible for high-traffic sites if you
-# write any of your pages in straight HTML.
-#<FilesMatch "\.(php|html|htm)$">
-# SetHandler application/x-httpd-php
-#</FilesMatch>
-
-# This will display PHP files in colored syntax form. Use with caution.
-#<FilesMatch "\.phps$">
-# SetHandler application/x-httpd-php-source
-#</FilesMatch>
-
diff --git a/pasture/source/php/php-fpm.conf.diff b/pasture/source/php/php-fpm.conf.diff
deleted file mode 100644
index 38d0f9c6e..000000000
--- a/pasture/source/php/php-fpm.conf.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- ./sapi/fpm/php-fpm.conf.in.orig 2012-05-20 19:47:53.000000000 +0200
-+++ ./sapi/fpm/php-fpm.conf.in 2012-05-21 09:16:32.646276661 +0200
-@@ -12,7 +12,7 @@
- ; Relative path can also be used. They will be prefixed by:
- ; - the global prefix if it's been set (-p arguement)
- ; - @prefix@ otherwise
--;include=etc/fpm.d/*.conf
-+;include=etc/php-fpm.d/*.conf
-
- ;;;;;;;;;;;;;;;;;;
- ; Global Options ;
-@@ -22,14 +22,14 @@
- ; Pid file
- ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
- ; Default Value: none
--;pid = run/php-fpm.pid
-+pid = run/php-fpm.pid
-
- ; Error log file
- ; If it's set to "syslog", log is sent to syslogd instead of being written
- ; in a local file.
- ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
- ; Default Value: log/php-fpm.log
--;error_log = log/php-fpm.log
-+error_log = log/php-fpm.log
-
- ; syslog_facility is used to specify what type of program is logging the
- ; message. This lets syslogd specify that messages from different facilities
diff --git a/pasture/source/php/php.SlackBuild b/pasture/source/php/php.SlackBuild
deleted file mode 100755
index b4fdffea9..000000000
--- a/pasture/source/php/php.SlackBuild
+++ /dev/null
@@ -1,317 +0,0 @@
-#!/bin/sh
-
-# 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, 2018 Patrick Volkerding, Sebeka, MN, USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-ALPINE=2.21
-BUILD=${BUILD:-1}
-
-# Automatically determine the architecture we're building on:
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
- arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
- esac
-fi
-
-NUMJOBS=${NUMJOBS:-" -j7 "}
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-php/
-rm -rf $PKG
-mkdir -p $TMP $PKG
-
-if [ "$ARCH" = "i386" ]; then
- SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-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
- echo "Using IMAP library:"
- ls -l $IMAPLIBDIR/lib${LIBDIRSUFFIX}/c-client.a
- sleep 5
-else
- ( cd $CWD/../alpine ; VERSION=${ALPINE} ; ./alpine.SlackBuild || exit 1 ) || exit 1
- ( cd $TMP/alpine-${ALPINE}/imap/c-client
- strip -g c-client.a
- mkdir -p $IMAPLIBDIR/lib${LIBDIRSUFFIX}
- cp c-client.a $IMAPLIBDIR/lib${LIBDIRSUFFIX}
- mkdir -p $IMAPLIBDIR/include
- cp *.h $IMAPLIBDIR/include
- )
-fi
-
-mkdir -p $PKG/etc/httpd
-mkdir -p $PKG/etc/php.d
-# A trick from DaMouse to enable building php into $PKG.
-# We'll remove this later on.
-cat /etc/httpd/original/httpd.conf > $PKG/etc/httpd/httpd.conf
-if [ ! -e /etc/httpd/original/httpd.conf ]; then
- echo "FATAL: no /etc/httpd/original/httpd.conf found."
- exit 1
-fi
-
-cd $TMP
-rm -rf php-$VERSION
-tar xvf $CWD/php-$VERSION.tar.?z || exit 1
-cd php-$VERSION || exit 1
-
-# cleanup:
-find . -name "*.orig" -delete
-
-# Add missing(?) PEAR modules back:
-if [ -d php-$VERSION/pear/packages ]; then
- ( cd php-$VERSION/pear/packages
- cp -a $CWD/pear/*.bz2 . 2> /dev/null
- bzip2 -d *.bz2 2> /dev/null
- )
-fi
-
-if [ "$ARCH" = "s390" ]; then
- zcat $CWD/php.configure.s390.diff.gz | patch -p1 || exit
-fi
-
-# Fixup perms/owners:
-chown -R root:root .
-find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-find . -name "*.h" -exec chmod 644 {} \;
-
-# Sometimes they ship a few of these:
-find . -name "*.orig" -exec rm {} \;
-
-# Patch ini files:
-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
-
-# Support OpenSSL 1.1.x:
-zcat $CWD/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch.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
-sed -i "s|build\"$|php/build\"|" scripts/phpize.in
-
-# Generic "kitchen sink" configure function, with as many things as possible (and
-# maybe then some ;-) compiled as shared extensions:
-EXTENSION_DIR=/usr/lib${LIBDIRSUFFIX}/php/extensions \
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS -DU_USING_ICU_NAMESPACE=1" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --with-libdir=lib${LIBDIRSUFFIX} \
- --localstatedir=/var \
- --sysconfdir=/etc \
- --datarootdir=/usr/share \
- --datadir=/usr/share \
- --infodir=/usr/info \
- --mandir=/usr/man \
- --with-apxs2=/usr/bin/apxs \
- --enable-fpm \
- --with-fpm-user=apache \
- --with-fpm-group=apache \
- --enable-maintainer-zts \
- --enable-pcntl \
- --enable-mbregex \
- --enable-tokenizer=shared \
- --with-config-file-scan-dir=/etc/php.d \
- --with-config-file-path=/etc \
- --enable-mod_charset \
- --with-layout=PHP \
- --disable-sigchild \
- --enable-xml \
- --with-libxml-dir=/usr \
- --with-xmlrpc=shared \
- --enable-simplexml \
- --enable-xmlreader=shared \
- --enable-dom=shared \
- --enable-filter \
- --disable-debug \
- --with-openssl=shared \
- --with-pcre-regex=/usr \
- --with-zlib=shared,/usr \
- --enable-bcmath=shared \
- --with-bz2=shared,/usr \
- --enable-calendar=shared \
- --enable-ctype=shared \
- --with-curl=shared \
- --with-mcrypt=/usr \
- --enable-dba=shared \
- --with-gdbm=/usr \
- --with-db4=/usr \
- --enable-exif=shared \
- --enable-ftp=shared \
- --with-gd=shared \
- --with-jpeg-dir=/usr \
- --with-png-dir=/usr \
- --with-vpx-dir=/usr \
- --with-zlib-dir=/usr \
- --with-xpm-dir=/usr \
- --with-freetype-dir=/usr \
- --with-t1lib=/usr \
- --enable-gd-native-ttf \
- --with-gettext=shared,/usr \
- --with-gmp=shared,/usr \
- --with-iconv=shared \
- --with-imap-ssl=/usr \
- --with-imap=$IMAPLIBDIR \
- --with-ldap=shared \
- --enable-mbstring=shared \
- --enable-hash \
- --with-mysql=shared,mysqlnd \
- --with-mysqli=shared,mysqlnd \
- --with-mysql-sock=/var/run/mysql/mysql.sock \
- --with-iodbc=shared,/usr \
- --enable-pdo=shared \
- --with-pdo-mysql=shared,mysqlnd \
- --with-pdo-sqlite=shared,/usr \
- --with-pdo-odbc=shared,iODBC,/usr \
- --with-pspell=shared,/usr \
- --with-enchant=shared,/usr \
- --enable-shmop=shared \
- --with-snmp=shared,/usr \
- --enable-soap=shared \
- --enable-sockets \
- --with-sqlite3=shared \
- --with-regex=php \
- --enable-sysvmsg \
- --enable-sysvsem \
- --enable-sysvshm \
- --enable-wddx=shared \
- --with-xsl=shared,/usr \
- --enable-zip=shared \
- --with-tsrm-pthreads \
- --enable-intl=shared \
- --enable-opcache \
- --enable-shared=yes \
- --enable-static=no \
- --with-gnu-ld \
- --with-pic \
- --enable-phpdbg \
- --build=$ARCH-slackware-linux || exit 1
-
-# I am told this option is worse than nothing. :-)
-# --enable-safe-mode
-#
-# I would recommend *against* and will take no responbility for turning on
-# "safe" mode.
-
-make $NUMJOBS || make || exit 1
-make install INSTALL_ROOT=$PKG || exit 1
-
-mkdir -p $PKG/etc/{rc.d,php-fpm.d}
-cp sapi/fpm/init.d.php-fpm $PKG/etc/rc.d/rc.php-fpm.new
-chmod 644 $PKG/etc/rc.d/rc.php-fpm.new
-
-# PHP (used to) install Pear with some strange permissions.
-chmod 755 $PKG/usr/bin/pear
-
-# PHP sometimes puts junk in the root directory:
-( cd $PKG
- rm -rf .channels .depdb .depdblock .filemap .lock .registry
-)
-
-# We do not package static extension libraries:
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/php/extensions/*.a
-
-# Fix $PKG/usr/lib/php perms:
-( cd $PKG/usr/lib${LIBDIRSUFFIX}/php
- find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-)
-
-mkdir -p $PKG/usr/doc/php-$VERSION
-cp -a \
- CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* TODO* UPGRADING* \
- sapi/cgi/README.FastCGI \
- $PKG/usr/doc/php-$VERSION
-chown -R root:root $PKG/usr/doc/php-$VERSION
-chmod 644 $PKG/usr/doc/php-$VERSION/UPGRADING*
-
-mkdir -p $PKG/etc/httpd
-cat $CWD/mod_php.conf.example | sed -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" \
- > $PKG/etc/httpd/mod_php.conf.example
-chmod 644 $PKG/etc/httpd/*
-chown root:root $PKG/etc/httpd/*
-
-cp -a php.ini-development php.ini-production $PKG/etc
-chmod 755 $PKG/etc/php.d $PKG/etc/php-fpm.d $PKG/etc/httpd
-chown root:root $PKG/etc/*
-
-# This can go now.
-rm -f $PKG/etc/httpd/httpd*
-
-# Session directory for PHP:
-mkdir -p $PKG/var/lib/php
-chmod 770 $PKG/var/lib/php
-chown root:apache $PKG/var/lib/php
-
-# Strip ELF objects.
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
-gzip -9 $PKG/usr/man/man?/*.?
-
-mkdir -p $PKG/install
-zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-#if [ -d "$IMAPLIBDIR" ]; then
-# ( cd $IMAPLIBDIR && rm -rf * )
-# rmdir $IMAPLIBDIR
-#fi
-
-cd $PKG
-/sbin/makepkg -l y -c n $TMP/php-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/pasture/source/php/php.ini-development.diff b/pasture/source/php/php.ini-development.diff
deleted file mode 100644
index d94e708cb..000000000
--- a/pasture/source/php/php.ini-development.diff
+++ /dev/null
@@ -1,62 +0,0 @@
---- ./php.ini-development.orig 2017-07-05 17:25:00.000000000 -0500
-+++ ./php.ini-development 2017-07-07 14:25:29.270476234 -0500
-@@ -879,6 +879,50 @@
- ; If you only provide the name of the extension, PHP will look for it in its
- ; default extension directory.
- ;
-+
-+; These are the extensions that are available for use on this PHP build.
-+; If you do NOT need any of these extensions, you should comment them out.
-+; That will probably increase both your security and performance.
-+
-+extension=bcmath.so
-+extension=bz2.so
-+extension=calendar.so
-+extension=ctype.so
-+extension=curl.so
-+extension=dba.so
-+extension=dom.so
-+extension=enchant.so
-+extension=exif.so
-+extension=ftp.so
-+extension=gd.so
-+extension=gettext.so
-+extension=gmp.so
-+extension=iconv.so
-+extension=intl.so
-+extension=ldap.so
-+extension=mbstring.so
-+extension=mysql.so
-+extension=mysqli.so
-+extension=odbc.so
-+extension=openssl.so
-+zend_extension=opcache.so
-+extension=pdo.so
-+extension=pdo_mysql.so
-+extension=pdo_sqlite.so
-+extension=pdo_odbc.so
-+extension=pspell.so
-+extension=shmop.so
-+extension=snmp.so
-+extension=soap.so
-+extension=sqlite3.so
-+extension=tokenizer.so
-+extension=wddx.so
-+extension=xmlreader.so
-+extension=xmlrpc.so
-+extension=xsl.so
-+extension=zip.so
-+extension=zlib.so
-+
- ; Windows Extensions
- ; Note that ODBC support is built in, so no dll is needed for it.
- ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
-@@ -1442,7 +1486,7 @@
- ; where MODE is the octal representation of the mode. Note that this
- ; does not overwrite the process's umask.
- ; http://php.net/session.save-path
--;session.save_path = "/tmp"
-+session.save_path = "/var/lib/php"
-
- ; Whether to use strict session mode.
- ; Strict session mode does not accept uninitialized session ID and regenerate
diff --git a/pasture/source/php/slack-desc b/pasture/source/php/slack-desc
deleted file mode 100644
index fe14da6d6..000000000
--- a/pasture/source/php/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-php: php (HTML-embedded scripting language)
-php:
-php: PHP is an HTML-embedded scripting language. It shares syntax
-php: characteristics with C, Java, and Perl. The primary objective behind
-php: this language is to make a fast and easy-to-use scripting language
-php: for dynamic web sites.
-php:
-php: More information can be found online at http://www.php.net/
-php:
-php:
-php: