diff --git a/README.md b/README.md index 6d6bcd5c..ba3c7f4c 100644 --- a/README.md +++ b/README.md @@ -234,7 +234,7 @@ install-php-extensions @fix_letsencrypt | interbase | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | intl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ion | | | | | | | | | ✓ | ✓ | -| ioncube_loader | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | | +| ioncube_loader | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | jsmin | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | json_post | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | jsonpath | | | | | | | ✓ | ✓ | ✓ | ✓ | @@ -246,7 +246,7 @@ install-php-extensions @fix_letsencrypt | maxminddb | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | mcrypt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | memcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| memcached[*](#special-requirements-for-memcached) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| memcached | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | memprof[*](#special-requirements-for-memprof) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | mongo | ✓ | ✓ | | | | | | | | | | mongodb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | @@ -309,7 +309,7 @@ install-php-extensions @fix_letsencrypt | sysvmsg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | sysvsem | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | sysvshm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| tensor[*](#special-requirements-for-tensor) | | | | | ✓ | ✓ | ✓ | ✓ | | | +| tensor | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | tideways | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | tidy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | timezonedb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | @@ -425,7 +425,6 @@ Some extensions have special requirements: | ecma_intl | • Not available in `buster` docker images
• Not available in `bullseye` docker images | | geos | • Not available in `alpine3.9` docker images
• Not available in `alpine3.10` docker images | | lz4 | Not available in `jessie` docker images | -| memcached | Not available in `bookworm` docker images | | memprof | • Not available in `alpine3.9` docker images
• Not available in `alpine3.10` docker images
• Not available in `alpine3.11` docker images
• Not available in `alpine3.12` docker images
• Not available in `alpine3.13` docker images
• Not available in `alpine3.14` docker images
• Not available in `alpine3.15` docker images | | parallel | Requires images with PHP compiled with thread-safety enabled (`zts`) | | parle | Not available in `jessie` docker images | @@ -434,7 +433,6 @@ Some extensions have special requirements: | simdjson | • Not available in `jessie` docker images
• Not available in `stretch` docker images | | sodium | Not available in `jessie` docker images | | sqlsrv | • Not available in `7.1-alpine3.9` docker images
• Not available in `7.1-alpine3.10` docker images
• Not available in ARM architectures | -| tensor | • Not available in `alpine3.15` docker images
• Not available in `alpine3.16` docker images | | vips | • Not available in `alpine3.9` docker images
• Not available in `jessie` docker images | diff --git a/data/special-requirements b/data/special-requirements index 947ebf19..9c45e5c1 100644 --- a/data/special-requirements +++ b/data/special-requirements @@ -3,7 +3,6 @@ ddtrace !jessie ecma_intl !buster !bullseye geos !alpine3.9 !alpine3.10 lz4 !jessie -memcached !bookworm memprof !alpine3.9 !alpine3.10 !alpine3.11 !alpine3.12 !alpine3.13 !alpine3.14 !alpine3.15 parallel zts parle !jessie @@ -12,5 +11,4 @@ pthreads zts simdjson !jessie !stretch sodium !jessie sqlsrv !7.1-alpine3.9 !7.1-alpine3.10 !arm -tensor !alpine3.15 !alpine3.16 vips !alpine3.9 !jessie diff --git a/data/supported-extensions b/data/supported-extensions index 66de6513..12a9a46e 100644 --- a/data/supported-extensions +++ b/data/supported-extensions @@ -39,7 +39,7 @@ inotify 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 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 8.0 8.1 8.2 ion 8.1 8.2 -ioncube_loader 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.1 +ioncube_loader 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.1 8.2 jsmin 5.5 5.6 7.0 7.1 7.2 7.3 7.4 json_post 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 jsonpath 7.4 8.0 8.1 8.2 @@ -114,7 +114,7 @@ sync 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 sysvmsg 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 sysvsem 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 sysvshm 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -tensor 7.2 7.3 7.4 8.0 +tensor 7.2 7.3 7.4 8.0 8.1 8.2 tideways 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 tidy 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 timezonedb 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 diff --git a/install-php-extensions b/install-php-extensions index 3939ba1b..08ee780c 100755 --- a/install-php-extensions +++ b/install-php-extensions @@ -1032,6 +1032,9 @@ buildRequiredPackageLists() { memcached@debian) buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libmemcachedutil2" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libmemcached-dev zlib1g-dev" + if test $DISTRO_MAJMIN_VERSION -ge 12; then + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile $buildRequiredPackageLists_libssldev" + fi ;; mongo@alpine) buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libsasl $buildRequiredPackageLists_libssl" @@ -1171,6 +1174,10 @@ buildRequiredPackageLists() { ;; esac buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zstd-dev" + if test $PHP_MAJMIN_VERSION -ge 702; then + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lz4-dev" + fi fi ;; redis@debian) @@ -1188,6 +1195,10 @@ buildRequiredPackageLists() { ;; esac fi + if test $PHP_MAJMIN_VERSION -ge 702; then + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblz4-1" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblz4-dev" + fi ;; relay@alpine) buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lz4-libs zstd-libs" @@ -1324,23 +1335,38 @@ buildRequiredPackageLists() { buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile git cmake gperf zlib1g-dev $buildRequiredPackageLists_libssldev" ;; tensor@alpine) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack libexecinfo openblas" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev libexecinfo-dev openblas-dev" - if test $DISTRO_MAJMIN_VERSION -le 310; then - if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then - IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent openblas" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile lapack-dev openblas-dev" + if test $DISTRO_MAJMIN_VERSION -le 317; then + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent lapack" + if test $DISTRO_MAJMIN_VERSION -le 316; then + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libexecinfo" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libexecinfo-dev" + if test $DISTRO_MAJMIN_VERSION -le 310; then + if ! stringInList --force-overwrite "$IPE_APK_FLAGS"; then + IPE_APK_FLAGS="$IPE_APK_FLAGS --force-overwrite" + fi + fi fi + else + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapack" fi ;; tensor@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke libopenblas-base" + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent liblapacke" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile liblapack-dev libopenblas-dev liblapacke-dev" - if test $DISTRO_VERSION_NUMBER -ge 11; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" - elif test $DISTRO_VERSION_NUMBER -ge 10; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8" + if test $DISTRO_VERSION_NUMBER -le 9; then + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-6 libopenblas-base" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-6-dev" + elif test $DISTRO_VERSION_NUMBER -le 10; then + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-8 libopenblas-base" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-8-dev" + elif test $DISTRO_VERSION_NUMBER -le 11; then + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-10 libopenblas-base" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-10-dev" + else + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent gfortran-12 libopenblas0" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libgfortran-12-dev" fi ;; tidy@alpine) @@ -1974,16 +2000,24 @@ isMicrosoftSqlServerODBCInstalled() { } # Install the Microsoft SQL Server ODBC Driver +# see https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server installMicrosoftSqlServerODBC() { printf 'Installing the Microsoft SQL Server ODBC Driver\n' case "$DISTRO" in alpine) - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#alpine17 rm -rf /tmp/src/msodbcsql.apk if test $PHP_MAJMIN_VERSION -le 703; then curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.9.1.1-1_amd64.apk else - curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apk + case $(uname -m) in + aarch64 | arm64 | armv8) + installMicrosoftSqlServerODBC_arch=arm64 + ;; + *) + installMicrosoftSqlServerODBC_arch=amd64 + ;; + esac + curl -sSLf -o /tmp/src/msodbcsql.apk https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.1.1-1_$installMicrosoftSqlServerODBC_arch.apk fi printf '\n' | apk add --allow-untrusted /tmp/src/msodbcsql.apk rm -rf /tmp/src/msodbcsql.apk @@ -1992,8 +2026,6 @@ installMicrosoftSqlServerODBC() { if test $DISTRO_VERSION_NUMBER -eq 12; then DISTRO_VERSION_NUMBER=11 fi - - # https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#debian17 printf -- '- installing the Microsoft APT key\n' if test $DISTRO_VERSION_NUMBER -eq 11; then curl -sSLf -o /etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc @@ -2017,7 +2049,6 @@ installMicrosoftSqlServerODBC() { else DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS '^msodbcsql[0-9]+$' fi - if test $DISTRO_VERSION_NUMBER -eq 11; then setDistro fi @@ -2855,10 +2886,6 @@ installRemoteModule() { esac fi fi - if test -z "$installRemoteModule_version"; then - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=1.57.0 - fi if test -z "$installRemoteModule_version" || test "$installRemoteModule_version" = 1.35.0; then case "$DISTRO_VERSION" in alpine@3.13) @@ -3181,9 +3208,6 @@ installRemoteModule() { if test -z "$installRemoteModule_version"; then if test $PHP_MAJMIN_VERSION -le 506; then installRemoteModule_version=3.12.4 - else - # See https://github.com/protocolbuffers/protobuf/issues/10619 - installRemoteModule_version=3.24.2 fi fi ;; @@ -3241,19 +3265,21 @@ installRemoteModule() { if test -z "$installRemoteModule_version"; then if test $PHP_MAJMIN_VERSION -le 506; then installRemoteModule_version=4.3.0 + elif test $PHP_MAJMIN_VERSION -le 701; then + installRemoteModule_version=5.3.7 fi else installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" fi # Enable igbinary serializer support? if php --ri igbinary >/dev/null 2>/dev/null; then - addConfigureOption 'enable-redis-igbinary' 'yes' + addConfigureOption enable-redis-igbinary yes else - addConfigureOption 'enable-redis-igbinary' 'no' + addConfigureOption enable-redis-igbinary no fi # Enable lzf compression support? - addConfigureOption 'enable-redis-lzf' 'yes' - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" '5.0.0') -ge 0; then + addConfigureOption enable-redis-lzf yes + if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.0) -ge 0; then if ! test -e /usr/include/zstd.h || ! test -e /usr/lib/libzstd.so -o -e "/usr/lib/$TARGET_TRIPLET/libzstd.so"; then installRemoteModule_zstdVersion=1.4.4 installRemoteModule_zstdVersionMajor=$(echo $installRemoteModule_zstdVersion | cut -d. -f1) @@ -3269,7 +3295,19 @@ installRemoteModule() { cd - >/dev/null fi # Enable zstd compression support? - addConfigureOption 'enable-redis-zstd' 'yes' + addConfigureOption enable-redis-zstd yes + if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then + # Enable msgpack serializer support? + if php --ri msgpack >/dev/null 2>/dev/null; then + addConfigureOption enable-redis-msgpack yes + else + addConfigureOption enable-redis-msgpack no + fi + # Enable lz4 compression? + addConfigureOption enable-redis-lz4 yes + # Use system liblz4? + addConfigureOption with-liblz4 yes + fi fi ;; relay) @@ -3337,7 +3375,11 @@ installRemoteModule() { snuffleupagus) if test -z "$installRemoteModule_path"; then if test -z "$installRemoteModule_version"; then - installRemoteModule_version=0.9.0 + if test $PHP_MAJMIN_VERSION -le 704; then + installRemoteModule_version=0.9.0 + else + installRemoteModule_version=0.10.0 + fi fi installRemoteModule_src="$(getPackageSource https://codeload.github.com/jvoisin/snuffleupagus/tar.gz/v$installRemoteModule_version)" cd "$installRemoteModule_src/src" @@ -3639,6 +3681,15 @@ installRemoteModule() { installRemoteModule_version=2.2.3 fi fi + case "$DISTRO" in + alpine) + if test $DISTRO_MAJMIN_VERSION -ge 315 && test $DISTRO_MAJMIN_VERSION -le 317; then + if test -e /usr/lib/liblapacke.so.3 && ! test -e /usr/lib/liblapacke.so; then + ln -s /usr/lib/liblapacke.so.3 /usr/lib/liblapacke.so + fi + fi + ;; + esac ;; tideways) case "$DISTRO" in