Merge pull request #167 from mcfedr/pickle
Support for using pickle as drop in for pecl on php 8pull/170/head
commit
a5fdfc6d8c
|
@ -51,6 +51,7 @@ jobs:
|
|||
- alpine3.9
|
||||
- alpine3.10
|
||||
- alpine3.11
|
||||
- alpine3.12
|
||||
- jessie
|
||||
- stretch
|
||||
- buster
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
parallel zts
|
||||
pthreads zts
|
||||
tdlib !alpine3.7 !jessie
|
||||
enchant !7.2-alpine3.12 !7.3-alpine3.12 !7.4-alpine3.12
|
||||
|
|
|
@ -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
|
||||
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
|
||||
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 8.0
|
||||
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
|
||||
|
|
|
@ -27,7 +27,9 @@ setDistro() {
|
|||
exit 1
|
||||
fi
|
||||
DISTRO="$(cat /etc/os-release | grep -E ^ID= | cut -d = -f 2)"
|
||||
DISTRO_VERSION="$(printf '%s@%s' $DISTRO $(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2))"
|
||||
DISTRO_VERSION_NUMBER="$(cat /etc/os-release | grep -E ^VERSION_ID= | cut -d = -f 2 | cut -d '"' -f 2 | cut -d . -f 1,2)"
|
||||
DISTRO_VERSION="$(printf '%s@%s' $DISTRO $DISTRO_VERSION_NUMBER)"
|
||||
DISTRO_MAJMIN_VERSION="$(echo "$DISTRO_VERSION_NUMBER" | awk -F. '{print $1*100+$2}')"
|
||||
}
|
||||
|
||||
# Set the PHP_MAJMIN_VERSION variable containing the PHP Major-Minor version as an integer value, in format MMmm (example: 506 for PHP 5.6.15)
|
||||
|
@ -241,8 +243,13 @@ buildRequiredPackageLists() {
|
|||
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmpdec-dev"
|
||||
;;
|
||||
enchant@alpine)
|
||||
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant"
|
||||
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev"
|
||||
if test $DISTRO_MAJMIN_VERSION -ge 312; then
|
||||
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant2"
|
||||
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant2-dev"
|
||||
else
|
||||
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent enchant"
|
||||
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile enchant-dev"
|
||||
fi
|
||||
;;
|
||||
enchant@debian)
|
||||
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libenchant1c2a"
|
||||
|
@ -1355,8 +1362,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 +1383,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 +1484,7 @@ cleanup() {
|
|||
docker-php-source delete
|
||||
rm -rf /tmp/pear
|
||||
rm -rf /tmp/src
|
||||
rm -rf /tmp/pickle
|
||||
}
|
||||
|
||||
resetIFS
|
||||
|
@ -1465,7 +1493,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 +1507,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"
|
||||
|
|
|
@ -109,6 +109,9 @@ filterUnsupportedExensionsForDistro() {
|
|||
# the full docker image ID
|
||||
getDockerImageName() {
|
||||
case "$2" in
|
||||
8.0)
|
||||
getDockerImageName_version="$2-rc"
|
||||
;;
|
||||
*)
|
||||
getDockerImageName_version="$2"
|
||||
;;
|
||||
|
@ -154,6 +157,10 @@ getDockerImageName() {
|
|||
# Outputs:
|
||||
# the space-separated list of supported PHP versions
|
||||
getAllPHPVersionsForExtensions() {
|
||||
if test -n "${PHP_VERSION_TO_TEST:-}"; then
|
||||
echo "$PHP_VERSION_TO_TEST"
|
||||
return
|
||||
fi
|
||||
getAllPHPVersionsForExtensions_result=''
|
||||
IFS=' '
|
||||
for getAllPHPVersionsForExtensions_extension in $1; do
|
||||
|
@ -208,7 +215,22 @@ getAllPHPVersionsForExtension() {
|
|||
fi
|
||||
done
|
||||
done <"$CI_BUILD_DIR/data/supported-extensions"
|
||||
printf '%s' "$getAllPHPVersionsForExtension_result"
|
||||
|
||||
filterUnsupportedExensionsForDistro_reqs="$CI_BUILD_DIR/data/special-requirements"
|
||||
if test -f "$filterUnsupportedExensionsForDistro_reqs"; then
|
||||
getAllPHPVersionsForExtension_filtered_result=''
|
||||
for getAllPHPVersionsForExtension_result_filter in $getAllPHPVersionsForExtension_result; do
|
||||
if stringInList "!$getAllPHPVersionsForExtension_result_filter-$DOCKER_DISTRO" "$(cat "$filterUnsupportedExensionsForDistro_reqs" | grep -E "^$1[ \t]")"; then
|
||||
printf 'Note: extension "%s" is not supported for distro "%s" using php "%s"\n' "$1" "$DOCKER_DISTRO" "$getAllPHPVersionsForExtension_result_filter" >/dev/stderr
|
||||
else
|
||||
getAllPHPVersionsForExtension_filtered_result="$getAllPHPVersionsForExtension_filtered_result $getAllPHPVersionsForExtension_result_filter"
|
||||
fi
|
||||
done
|
||||
else
|
||||
getAllPHPVersionsForExtension_filtered_result="$getAllPHPVersionsForExtension_result"
|
||||
fi
|
||||
|
||||
printf '%s' "${getAllPHPVersionsForExtension_filtered_result# }"
|
||||
}
|
||||
|
||||
# Test extensions
|
||||
|
|
|
@ -55,7 +55,7 @@ try {
|
|||
$image2 = $loadFuntion($tempFile);
|
||||
unlink($tempFile);
|
||||
$tempFile = null;
|
||||
if (!is_resource($image2) || imagesx($image2) !== $imageWidth || imagesy($image2) !== $imageHeight) {
|
||||
if (!(is_resource($image2) || is_object($image2)) || imagesx($image2) !== $imageWidth || imagesy($image2) !== $imageHeight) {
|
||||
throw new Exception("{$loadFuntion}() failed");
|
||||
}
|
||||
imagedestroy($image2);
|
||||
|
|
Loading…
Reference in New Issue