Resolve 'stable', 'beta', ... PECL version when need actual versions (#685)

pull/679/head
Michele Locati 2023-01-20 18:48:14 +01:00 committed by GitHub
parent 1fa8fd4048
commit 9d35d426dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 46 additions and 0 deletions

View File

@ -403,6 +403,32 @@ resolveWantedPHPModuleVersion() {
exit 1
}
# Get the actual version of a PECL pmodule, resolving 'latest', 'stable', 'beta', 'alpha', 'devel'.
#
# Arguments:
# $1: the module name as known on the PECL archive
# $2: the version to be resolved
# Output:
# $2 itself if $1 is not 'latest', 'stable', 'beta', 'alpha', or 'devel', the actual version otherwise
resolvePeclStabilityVersion() {
case "$2" in
latest | stable | beta | alpha | devel) ;;
*)
printf '%s' "$2"
return
;;
esac
peclStabilityFlagToVersion_url="http://pecl.php.net/rest/r/$1/$2.txt"
if ! peclStabilityFlagToVersion_result="$(curl -sSLf "$peclStabilityFlagToVersion_url")"; then
peclStabilityFlagToVersion_result=''
fi
if test -z "$peclStabilityFlagToVersion_result"; then
printf 'Failed to resolve the PECL package version "%s" of %s from %s\n' "$2" "$1" "$peclStabilityFlagToVersion_url" >&2
exit 1
fi
printf '%s' "$peclStabilityFlagToVersion_result"
}
# Set these variables:
# - PHP_PREINSTALLED_MODULES the normalized list of PHP modules installed before running this script
setPHPPreinstalledModules() {
@ -2568,6 +2594,7 @@ installRemoteModule() {
fi
;;
event)
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.4.0) -ge 0; then
# Enable internal debugging in Event
addConfigureOption enable-event-debug no
@ -2799,6 +2826,8 @@ installRemoteModule() {
if test $PHP_MAJMIN_VERSION -lt 702; then
installRemoteModule_version=1.6.8
fi
else
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
fi
if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then
# Sacrifice speed in favour of compression ratio?
@ -2835,6 +2864,8 @@ installRemoteModule() {
if test $PHP_MAJMIN_VERSION -le 506; then
installRemoteModule_version=2.2.0
fi
else
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
fi
# Set the path to libmemcached install prefix
addConfigureOption 'with-libmemcached-dir' 'no'
@ -2877,6 +2908,7 @@ installRemoteModule() {
fi
;;
mongo)
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '1.5.0') -ge 0; then
# Build with Cyrus SASL (MongoDB Enterprise Authentication) support?
addConfigureOption '-with-mongo-sasl' 'yes'
@ -2924,6 +2956,8 @@ installRemoteModule() {
if test $PHP_MAJMIN_VERSION -lt 704; then
installRemoteModule_version=4.10.0
fi
else
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
fi
if php --ri sockets >/dev/null 2>/dev/null; then
installRemoteModule_sockets=yes
@ -3009,6 +3043,7 @@ installRemoteModule() {
fi
;;
rdkafka)
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
if test -z "$installRemoteModule_version"; then
installRemoteModule_version1=''
if test $PHP_MAJMIN_VERSION -le 505; then
@ -3048,6 +3083,8 @@ installRemoteModule() {
if test $PHP_MAJMIN_VERSION -le 506; then
installRemoteModule_version=4.3.0
fi
else
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
fi
# Enable igbinary serializer support?
if php --ri igbinary >/dev/null 2>/dev/null; then
@ -3225,6 +3262,8 @@ installRemoteModule() {
elif test $PHP_MAJMIN_VERSION -le 704; then
installRemoteModule_version=4.8.11
fi
else
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
fi
if php --ri sockets >/dev/null 2>/dev/null; then
installRemoteModule_sockets=yes
@ -3464,6 +3503,7 @@ installRemoteModule() {
fi
;;
xlswriter)
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.7) -ge 0; then
# enable reader supports?
addConfigureOption enable-reader yes
@ -3479,6 +3519,8 @@ installRemoteModule() {
if test $PHP_MAJMIN_VERSION -le 506; then
installRemoteModule_version=0.9.2
fi
else
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
fi
if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 2.2.0) -ge 0; then
# Enable igbinary serializer support
@ -3515,6 +3557,8 @@ installRemoteModule() {
if test $PHP_MAJMIN_VERSION -le 506; then
installRemoteModule_version=1.2.5
fi
else
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
fi
if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 1.2.4) -ge 0; then
# Enable Msgpack Supports
@ -3532,6 +3576,8 @@ installRemoteModule() {
else
installRemoteModule_version=1.0.0
fi
else
installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")"
fi
case "$DISTRO" in
alpine)