Merge pull request #218 from mlocati/swoole

Add support for swoole
pull/228/head
Michele Locati 2020-12-16 17:33:14 +01:00 committed by GitHub
commit 96bef63e2f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 149 additions and 6 deletions

View File

@ -68,6 +68,7 @@ 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 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
swoole 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0
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 8.0 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 sysvsem 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0

View File

@ -259,6 +259,12 @@ sortModulesToInstall() {
PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL" PHP_MODULES_TO_INSTALL="msgpack $PHP_MODULES_TO_INSTALL"
PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }" PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }"
fi fi
# Some module installation may use socket if available: move it before other modules
if stringInList 'socket' "$PHP_MODULES_TO_INSTALL"; then
PHP_MODULES_TO_INSTALL="$(removeStringFromList 'socket' "$PHP_MODULES_TO_INSTALL")"
PHP_MODULES_TO_INSTALL="socket $PHP_MODULES_TO_INSTALL"
PHP_MODULES_TO_INSTALL="${PHP_MODULES_TO_INSTALL% }"
fi
# In any case, first of all, we need to install composer # In any case, first of all, we need to install composer
if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then if stringInList '@composer' "$PHP_MODULES_TO_INSTALL"; then
PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")" PHP_MODULES_TO_INSTALL="$(removeStringFromList '@composer' "$PHP_MODULES_TO_INSTALL")"
@ -713,6 +719,23 @@ buildRequiredPackageLists() {
ssh2@debian) ssh2@debian)
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libssh2-1-dev"
;; ;;
swoole@alpine)
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent postgresql-libs libstdc++"
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile postgresql-dev linux-headers"
case "$DISTRO_VERSION" in
alpine@3.7 | alpine@3.8)
# I can assure you I tried very hard to enable openssl in these Alpine versions...
;;
*)
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent $buildRequiredPackageLists_libssl"
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libressl-dev"
;;
esac
;;
swoole@debian)
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libpq5"
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev libpq-dev"
;;
sybase_ct@alpine) sybase_ct@alpine)
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds" buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent freetds"
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile freetds-dev"
@ -1295,6 +1318,7 @@ installPECLModule() {
installPECLModule_version="$(getWantedPHPModuleVersion "$installPECLModule_module")" installPECLModule_version="$(getWantedPHPModuleVersion "$installPECLModule_module")"
rm -rf "$CONFIGURE_FILE" rm -rf "$CONFIGURE_FILE"
installPECLModule_manuallyInstalled=0 installPECLModule_manuallyInstalled=0
installPECLModule_cppflags=''
case "$installPECLModule_module" in case "$installPECLModule_module" in
amqp) amqp)
case "$DISTRO_VERSION" in case "$DISTRO_VERSION" in
@ -1612,6 +1636,123 @@ installPECLModule() {
fi fi
fi fi
;; ;;
swoole)
if test -z "$installPECLModule_version"; then
if test $PHP_MAJMIN_VERSION -le 502; then
installPECLModule_version=1.6.10
elif test $PHP_MAJMIN_VERSION -le 504; then
installPECLModule_version=2.0.4
elif test $PHP_MAJMIN_VERSION -le 506; then
installPECLModule_version=2.0.11
elif test $PHP_MAJMIN_VERSION -le 700; then
installPECLModule_version=4.3.6
fi
fi
if php --ri sockets >/dev/null 2>/dev/null; then
installPECLModule_sockets=yes
else
installPECLModule_sockets=no
fi
case "$DISTRO_VERSION" in
alpine@3.7 | alpine@3.8)
# I can assure you I tried very hard to enable openssl in these Alpine versions...
installPECLModule_openssl=no
;;
*)
installPECLModule_openssl=yes
;;
esac
if test -z "$installPECLModule_version" || test $(compareVersions "$installPECLModule_version" 4.4.0) -ge 0; then
# enable sockets supports?
addConfigureOption enable-sockets $installPECLModule_sockets
# enable openssl support?
addConfigureOption enable-openssl $installPECLModule_openssl
# enable http2 support?
addConfigureOption enable-http2 yes
# enable mysqlnd support?
addConfigureOption enable-mysqlnd yes
elif test $(compareVersions "$installPECLModule_version" 4.2.11) -ge 0; then
#enable sockets supports?
addConfigureOption enable-sockets $installPECLModule_sockets
# enable openssl support?
addConfigureOption enable-openssl $installPECLModule_openssl
# enable http2 support?
addConfigureOption enable-http2 yes
# enable mysqlnd support?
addConfigureOption enable-mysqlnd yes
# enable postgresql coroutine client support?
addConfigureOption enable-coroutine-postgresql yes
elif test $(compareVersions "$installPECLModule_version" 4.2.7) -ge 0; then
#enable sockets supports?
addConfigureOption enable-sockets $installPECLModule_sockets
# enable openssl support?
addConfigureOption enable-openssl $installPECLModule_openssl
# enable http2 support?
addConfigureOption enable-http2 yes
# enable mysqlnd support?
addConfigureOption enable-mysqlnd yes
# enable postgresql coroutine client support?
addConfigureOption enable-coroutine-postgresql yes
# enable kernel debug/trace log? (it will degrade performance)
addConfigureOption enable-debug-log no
elif test $(compareVersions "$installPECLModule_version" 4.2.6) -ge 0; then
# enable debug/trace log support?
addConfigureOption enable-debug-log no
#enable sockets supports?
addConfigureOption enable-sockets $installPECLModule_sockets
# enable openssl support?
addConfigureOption enable-openssl $installPECLModule_openssl
# enable http2 support?
addConfigureOption enable-http2 yes
# enable mysqlnd support?
addConfigureOption enable-mysqlnd yes
# enable postgresql coroutine client support?
addConfigureOption enable-coroutine-postgresql yes
elif test $(compareVersions "$installPECLModule_version" 4.2.0) -ge 0; then
# enable debug/trace log support?
addConfigureOption enable-debug-log no
#enable sockets supports?
addConfigureOption enable-sockets $installPECLModule_sockets
# enable openssl support?
addConfigureOption enable-openssl $installPECLModule_openssl
# enable http2 support?
addConfigureOption enable-http2 yes
# enable async-redis support?
addConfigureOption enable-async-redis yes
# enable mysqlnd support?
addConfigureOption enable-mysqlnd yes
# enable postgresql coroutine client support?
addConfigureOption enable-coroutine-postgresql yes
elif test $(compareVersions "$installPECLModule_version" 2.1.2) -ge 0; then
# enable debug/trace log support?
addConfigureOption enable-swoole-debug no
#enable sockets supports?
addConfigureOption enable-sockets $installPECLModule_sockets
# enable openssl support?
addConfigureOption enable-openssl $installPECLModule_openssl
# enable http2 support?
addConfigureOption enable-http2 yes
# enable async-redis support?
addConfigureOption enable-async-redis yes
# enable mysqlnd support?
addConfigureOption enable-mysqlnd yes
# enable postgresql coroutine client support?
addConfigureOption enable-coroutine-postgresql yes
elif test $(compareVersions "$installPECLModule_version" 1.10.4) -ge 0 && test $(compareVersions "$installPECLModule_version" 1.10.5) -le 0; then
# enable debug/trace log support?
addConfigureOption enable-swoole-debug no
#enable sockets supports?
addConfigureOption enable-sockets $installPECLModule_sockets
# enable openssl support?
addConfigureOption enable-openssl $installPECLModule_openssl
# enable http2 support?
addConfigureOption enable-http2 yes
# enable async-redis support?
addConfigureOption enable-async-redis yes
# enable mysqlnd support?
addConfigureOption enable-mysqlnd yes
fi
;;
tdlib) tdlib)
if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then if ! test -f /usr/lib/libphpcpp.so || ! test -f /usr/include/phpcpp.h; then
if test $PHP_MAJMIN_VERSION -le 701; then if test $PHP_MAJMIN_VERSION -le 701; then
@ -1719,7 +1860,7 @@ installPECLModule() {
if test -n "$installPECLModule_version"; then if test -n "$installPECLModule_version"; then
printf ' (installing version %s)\n' "$installPECLModule_version" printf ' (installing version %s)\n' "$installPECLModule_version"
fi fi
installPeclPackage "$installPECLModule_module" "$installPECLModule_version" installPeclPackage "$installPECLModule_module" "$installPECLModule_version" "$installPECLModule_cppflags"
fi fi
case "$installPECLModule_module" in case "$installPECLModule_module" in
apcu_bc) apcu_bc)
@ -1769,7 +1910,7 @@ configureInstaller() {
if ! stringInList 'zip' "$PHP_PREINSTALLED_MODULES"; then if ! stringInList 'zip' "$PHP_PREINSTALLED_MODULES"; then
PHP_MODULES_TO_INSTALL="zip $(removeStringFromList 'zip' "$PHP_MODULES_TO_INSTALL")" PHP_MODULES_TO_INSTALL="zip $(removeStringFromList 'zip' "$PHP_MODULES_TO_INSTALL")"
fi fi
if anyStringInList 'xdebug' "$PHP_MODULES_TO_INSTALL"; then if anyStringInList 'swoole xdebug' "$PHP_MODULES_TO_INSTALL"; then
USE_PICKLE=2 USE_PICKLE=2
else else
curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle curl -sSLf https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar -o /tmp/pickle
@ -1820,6 +1961,7 @@ addConfigureOption() {
# Arguments: # Arguments:
# $1: the package to be installed # $1: the package to be installed
# $2: the package version to be installed (optional) # $2: the package version to be installed (optional)
# $3: the value of the CPPFLAGS variable
installPeclPackage() { installPeclPackage() {
if ! test -f "$CONFIGURE_FILE"; then if ! test -f "$CONFIGURE_FILE"; then
printf '\n' >"$CONFIGURE_FILE" printf '\n' >"$CONFIGURE_FILE"
@ -1830,14 +1972,14 @@ installPeclPackage() {
else else
installPeclPackage_fullname="$1-$2" installPeclPackage_fullname="$1-$2"
fi fi
cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" pecl install "$installPeclPackage_fullname" cat "$CONFIGURE_FILE" | MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" pecl install "$installPeclPackage_fullname"
else else
if test -z "${2:-}"; then if test -z "${2:-}"; then
installPeclPackage_fullname="$1" installPeclPackage_fullname="$1"
else else
installPeclPackage_fullname="$1@$2" installPeclPackage_fullname="$1@$2"
fi fi
MAKE="make -j$(getCompilationProcessorCount $1)" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_fullname" MAKE="make -j$(getCompilationProcessorCount $1)" CPPFLAGS="${3:-}" /tmp/pickle install --tmp-dir=/tmp/pickle.tmp --no-interaction --with-configure-options "$CONFIGURE_FILE" -- "$installPeclPackage_fullname"
fi fi
} }
@ -1869,8 +2011,8 @@ stringInList() {
# 0 (true): at least one of the items in $1 is in $2 # 0 (true): at least one of the items in $1 is in $2
# 1 (false): otherwise # 1 (false): otherwise
anyStringInList() { anyStringInList() {
for anyStringInList in $1; do for anyStringInList_item in $1; do
if stringInList "$1" "$2"; then if stringInList "$anyStringInList_item" "$2"; then
return 0 return 0
fi fi
done done