diff --git a/data/supported-extensions b/data/supported-extensions index fedce51..62e4c16 100644 --- a/data/supported-extensions +++ b/data/supported-extensions @@ -1,81 +1,81 @@ amqp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -apcu 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -apcu_bc 7.0 7.1 7.2 7.3 7.4 -bcmath 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -bz2 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -calendar 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +apcu 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +apcu_bc 7.0 7.1 7.2 7.3 7.4 8.0 +bcmath 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +bz2 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +calendar 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 cmark 7.0 7.1 7.2 7.3 7.4 -dba 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +dba 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 decimal 7.0 7.1 7.2 7.3 7.4 -enchant 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -exif 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -ffi 7.4 +enchant 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +exif 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +ffi 7.4 8.0 gd 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -gettext 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +gettext 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 gmagick 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -gmp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +gmp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 grpc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 http 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -igbinary 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +igbinary 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 imagick 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -imap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +imap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 interbase 5.5 5.6 7.0 7.1 7.2 7.3 -intl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -ldap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -mailparse 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +intl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +ldap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +mailparse 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 mcrypt 5.5 5.6 7.0 7.1 7.2 7.3 7.4 memcache 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -memcached 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +memcached 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 mongo 5.5 5.6 mongodb 5.5 5.6 7.0 7.1 7.2 7.3 7.4 msgpack 5.5 5.6 7.0 7.1 7.2 7.3 7.4 mssql 5.5 5.6 mysql 5.5 5.6 -mysqli 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +mysqli 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 oauth 5.5 5.6 7.0 7.1 7.2 7.3 7.4 odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -opcache 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +opcache 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 opencensus 7.0 7.1 7.2 7.3 7.4 parallel 7.1 7.2 7.3 7.4 -pcntl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -pcov 7.0 7.1 7.2 7.3 7.4 +pcntl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +pcov 7.0 7.1 7.2 7.3 7.4 8.0 pdo_dblib 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -pdo_firebird 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -pdo_mysql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -pdo_odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -pdo_pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +pdo_firebird 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +pdo_mysql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +pdo_odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +pdo_pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 pdo_sqlsrv 7.0 7.1 7.2 7.3 7.4 -pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 propro 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -protobuf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -pspell 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +protobuf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +pspell 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 pthreads 5.5 5.6 7.0 -raphf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +raphf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 rdkafka 5.5 5.6 7.0 7.1 7.2 7.3 7.4 recode 5.5 5.6 7.0 7.1 7.2 7.3 redis 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -shmop 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +shmop 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 snuffleupagus 7.0 7.1 7.2 7.3 7.4 -snmp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -soap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -sockets 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -solr 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +snmp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +soap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +sockets 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +solr 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 sqlsrv 7.0 7.1 7.2 7.3 7.4 ssh2 5.5 5.6 7.0 7.1 7.2 7.3 7.4 sybase_ct 5.5 5.6 -sysvmsg 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -sysvsem 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -sysvshm 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +sysvmsg 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +sysvsem 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +sysvshm 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 tdlib 7.0 7.1 7.2 7.3 7.4 -tidy 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -timezonedb 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +tidy 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 +timezonedb 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 uopz 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -uuid 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +uuid 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 wddx 5.5 5.6 7.0 7.1 7.2 7.3 xdebug 5.5 5.6 7.0 7.1 7.2 7.3 7.4 xhprof 5.5 5.6 7.0 7.1 7.2 7.3 7.4 xmlrpc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -xsl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +xsl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 yaml 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -zip 5.5 5.6 7.0 7.1 7.2 7.3 7.4 +zip 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 zookeeper 5.5 5.6 7.0 7.1 7.2 7.3 7.4 diff --git a/install-php-extensions b/install-php-extensions index 8da564e..3f128e2 100755 --- a/install-php-extensions +++ b/install-php-extensions @@ -1355,8 +1355,7 @@ installPECLModule() { if test "$1" != "$installPECLModule_actual"; then printf ' (installing version %s)\n' "$installPECLModule_actual" fi - pecl channel-update pecl.php.net || true - printf "$installPECLModule_stdin" | MAKE="make -j$(getCompilationProcessorCount $1)" pecl install "$installPECLModule_actual" + printf "$installPECLModule_stdin" | MAKE="make -j$(getCompilationProcessorCount $1)" $PECL_COMMAND "$installPECLModule_actual" fi case "$1" in apcu_bc) @@ -1377,6 +1376,27 @@ installPECLModule() { esac } +# Installs pickle to use instead of pecl +# and add the zip extension that it requires, making sure its installed first +installPickle() { + for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do + if ! stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then + if test $PHP_MAJMIN_VERSION -lt 800; then + pecl channel-update pecl.php.net || true + PECL_COMMAND="pecl install" + return + fi + curl -L -f https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle + chmod +x /tmp/pickle + if ! stringInList 'zip' "$(getPHPInstalledModules)"; then + PHP_MODULES_TO_INSTALL="zip $(removeStringFromList 'zip' "$PHP_MODULES_TO_INSTALL")" + fi + PECL_COMMAND="/tmp/pickle install --defaults" + return + fi + done +} + # Check if a string is in a list of space-separated string # # Arguments: @@ -1457,6 +1477,7 @@ cleanup() { docker-php-source delete rm -rf /tmp/pear rm -rf /tmp/src + rm -rf /tmp/pickle } resetIFS @@ -1465,7 +1486,7 @@ IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)" setDistro setPHPMajorMinor case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704) ;; + 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800) ;; *) printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) ;; @@ -1479,12 +1500,14 @@ fi sortModulesToInstall +docker-php-source extract +BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" +installPickle + buildRequiredPackageLists $PHP_MODULES_TO_INSTALL if test -n "$PACKAGES_PERSISTENT$PACKAGES_VOLATILE"; then installRequiredPackages fi -docker-php-source extract -BUNDLED_MODULES="$(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | xargs -n1 dirname | xargs -n1 basename | xargs)" for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then installBundledModule "$PHP_MODULE_TO_INSTALL" diff --git a/scripts/ci-test-extensions b/scripts/ci-test-extensions index 47ba0e6..01f0ebb 100755 --- a/scripts/ci-test-extensions +++ b/scripts/ci-test-extensions @@ -109,6 +109,9 @@ filterUnsupportedExensionsForDistro() { # the full docker image ID getDockerImageName() { case "$2" in + 8.0) + getDockerImageName_version="$2-rc" + ;; *) getDockerImageName_version="$2" ;;