Support for using pickle as drop in for pecl on php 8

pull/167/head
Fred Cox 2020-09-18 14:05:53 +03:00
parent 4811e7961f
commit 7ce97ab6ed
3 changed files with 73 additions and 47 deletions

View File

@ -1,81 +1,81 @@
amqp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 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 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 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 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 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 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 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 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 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 exif 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0
ffi 7.4 ffi 7.4 8.0
gd 5.5 5.6 7.0 7.1 7.2 7.3 7.4 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 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 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 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 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 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 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 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 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 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 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 mongo 5.5 5.6
mongodb 5.5 5.6 7.0 7.1 7.2 7.3 7.4 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 msgpack 5.5 5.6 7.0 7.1 7.2 7.3 7.4
mssql 5.5 5.6 mssql 5.5 5.6
mysql 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 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 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 opencensus 7.0 7.1 7.2 7.3 7.4
parallel 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 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 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_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_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 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 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 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 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 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 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 pspell 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0
pthreads 5.5 5.6 7.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 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 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 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 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 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 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 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 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 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 ssh2 5.5 5.6 7.0 7.1 7.2 7.3 7.4
sybase_ct 5.5 5.6 sybase_ct 5.5 5.6
sysvmsg 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 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 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 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 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 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 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 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 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 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 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 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 zookeeper 5.5 5.6 7.0 7.1 7.2 7.3 7.4

View File

@ -1355,8 +1355,7 @@ installPECLModule() {
if test "$1" != "$installPECLModule_actual"; then if test "$1" != "$installPECLModule_actual"; then
printf ' (installing version %s)\n' "$installPECLModule_actual" printf ' (installing version %s)\n' "$installPECLModule_actual"
fi fi
pecl channel-update pecl.php.net || true printf "$installPECLModule_stdin" | MAKE="make -j$(getCompilationProcessorCount $1)" $PECL_COMMAND "$installPECLModule_actual"
printf "$installPECLModule_stdin" | MAKE="make -j$(getCompilationProcessorCount $1)" pecl install "$installPECLModule_actual"
fi fi
case "$1" in case "$1" in
apcu_bc) apcu_bc)
@ -1377,6 +1376,27 @@ installPECLModule() {
esac 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 # Check if a string is in a list of space-separated string
# #
# Arguments: # Arguments:
@ -1457,6 +1477,7 @@ cleanup() {
docker-php-source delete docker-php-source delete
rm -rf /tmp/pear rm -rf /tmp/pear
rm -rf /tmp/src rm -rf /tmp/src
rm -rf /tmp/pickle
} }
resetIFS resetIFS
@ -1465,7 +1486,7 @@ IPE_ERRFLAG_FILE="$(mktemp -p /tmp/src)"
setDistro setDistro
setPHPMajorMinor setPHPMajorMinor
case "$PHP_MAJMIN_VERSION" in 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)) printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100))
;; ;;
@ -1479,12 +1500,14 @@ fi
sortModulesToInstall 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 buildRequiredPackageLists $PHP_MODULES_TO_INSTALL
if test -n "$PACKAGES_PERSISTENT$PACKAGES_VOLATILE"; then if test -n "$PACKAGES_PERSISTENT$PACKAGES_VOLATILE"; then
installRequiredPackages installRequiredPackages
fi 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 for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do
if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then if stringInList "$PHP_MODULE_TO_INSTALL" "$BUNDLED_MODULES"; then
installBundledModule "$PHP_MODULE_TO_INSTALL" installBundledModule "$PHP_MODULE_TO_INSTALL"

View File

@ -109,6 +109,9 @@ filterUnsupportedExensionsForDistro() {
# the full docker image ID # the full docker image ID
getDockerImageName() { getDockerImageName() {
case "$2" in case "$2" in
8.0)
getDockerImageName_version="$2-rc"
;;
*) *)
getDockerImageName_version="$2" getDockerImageName_version="$2"
;; ;;