diff --git a/.github/workflows/monitor-php8.2.yml b/.github/workflows/monitor-php8.3.yml similarity index 73% rename from .github/workflows/monitor-php8.2.yml rename to .github/workflows/monitor-php8.3.yml index ee07e8be..7ccd706e 100644 --- a/.github/workflows/monitor-php8.2.yml +++ b/.github/workflows/monitor-php8.3.yml @@ -1,11 +1,11 @@ -name: Monitor PHP 8.2 +name: Monitor PHP 8.3 on: schedule: - cron: "0 6 * * *" repository_dispatch: types: - - monitor-php8.2 + - monitor-php8.3 jobs: test_extensions: @@ -13,18 +13,15 @@ jobs: fail-fast: false matrix: distro: - - alpine3.15 - - alpine3.16 - alpine3.17 - alpine3.18 - - buster - bullseye - bookworm name: Check on ${{ matrix.distro }} runs-on: ubuntu-latest env: IPETEST_DOCKER_DISTRO: ${{ matrix.distro }} - IPETEST_ONLY_PHPVERSIONS: "8.2" + IPETEST_ONLY_PHPVERSIONS: "8.3" steps: - name: Checkout uses: actions/checkout@v1 @@ -36,4 +33,4 @@ jobs: with: token: ${{ secrets.TELEGRAM_TOKEN }} to: ${{ secrets.TELEGRAM_TO }} - message: Testing packages against PHP 8.2 failed on https://github.com/mlocati/docker-php-extension-installer + message: Testing packages against PHP 8.3 failed on https://github.com/mlocati/docker-php-extension-installer/actions/workflows/monitor-php8.3.yml diff --git a/.github/workflows/test-extensions.yml b/.github/workflows/test-extensions.yml index 7b59e910..cb9cdd0a 100644 --- a/.github/workflows/test-extensions.yml +++ b/.github/workflows/test-extensions.yml @@ -31,9 +31,9 @@ jobs: - name: Install Go uses: actions/setup-go@v2 with: - go-version: "1.17.1" + go-version: "1.21.0" - name: Install shfmt - run: GO111MODULE=on go install mvdan.cc/sh/v3/cmd/shfmt@v3.4.0 + run: GO111MODULE=on go install mvdan.cc/sh/v3/cmd/shfmt@v3.7.0 - name: Checkout uses: actions/checkout@v2 - name: Check coding style diff --git a/README.md b/README.md index ba3c7f4c..f2544a27 100644 --- a/README.md +++ b/README.md @@ -191,149 +191,149 @@ install-php-extensions @fix_letsencrypt -| Extension | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 | -|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| -| amqp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| apcu | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| apcu_bc | | | ✓ | ✓ | ✓ | ✓ | ✓ | | | | -| ast | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| bcmath | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| bitset | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| blackfire | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| bz2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| calendar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| cassandra[*](#special-requirements-for-cassandra) | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| cmark | | | ✓ | ✓ | ✓ | ✓ | ✓ | | | | -| csv | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | -| dba | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| ddtrace[*](#special-requirements-for-ddtrace) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| decimal | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| ds | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| ecma_intl[*](#special-requirements-for-ecma_intl) | | | | | | | | | | ✓ | -| enchant | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| ev | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| event | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| excimer | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| exif | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| ffi | | | | | | | ✓ | ✓ | ✓ | ✓ | -| gd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| gearman | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | -| geoip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | -| geos[*](#special-requirements-for-geos) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| geospatial | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| gettext | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| gmagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| gmp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| gnupg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| grpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| http | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| igbinary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| imagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| imap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| inotify | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| interbase | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | -| intl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| ion | | | | | | | | | ✓ | ✓ | -| ioncube_loader | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | -| jsmin | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | -| json_post | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| jsonpath | | | | | | | ✓ | ✓ | ✓ | ✓ | -| ldap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| luasandbox | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| lz4[*](#special-requirements-for-lz4) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| lzf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| mailparse | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| maxminddb | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| mcrypt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| memcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| memcached | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| memprof[*](#special-requirements-for-memprof) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| mongo | ✓ | ✓ | | | | | | | | | -| mongodb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| mosquitto | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | -| msgpack | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| mssql | ✓ | ✓ | | | | | | | | | -| mysql | ✓ | ✓ | | | | | | | | | -| mysqli | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| oauth | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| oci8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| odbc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| opcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| opencensus | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| openswoole | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| opentelemetry | | | | | | | | ✓ | ✓ | ✓ | -| parallel[*](#special-requirements-for-parallel) | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| parle[*](#special-requirements-for-parle) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pcntl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pcov | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pdo_dblib | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pdo_firebird | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pdo_mysql | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pdo_oci | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pdo_odbc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pdo_pgsql | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pdo_sqlsrv[*](#special-requirements-for-pdo_sqlsrv) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pgsql | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| php_trie | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | -| pkcs11 | | | | | | | ✓ | ✓ | ✓ | ✓ | -| pq | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| propro | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | -| protobuf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pspell | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| pthreads[*](#special-requirements-for-pthreads) | ✓ | ✓ | ✓ | | | | | | | | -| raphf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| rdkafka | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| recode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | -| redis | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| relay | | | | | | | ✓ | ✓ | ✓ | ✓ | -| seasclick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| seaslog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| shmop | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| simdjson[*](#special-requirements-for-simdjson) | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| smbclient | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| snappy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| snmp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| snuffleupagus | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| soap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| sockets | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| sodium[*](#special-requirements-for-sodium) | | ✓ | ✓ | ✓ | | | | | | | -| solr | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| sourceguardian | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| spx | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| sqlsrv[*](#special-requirements-for-sqlsrv) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| ssh2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| stomp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | ✓ | -| swoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| sybase_ct | ✓ | ✓ | | | | | | | | | -| sync | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| sysvmsg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| sysvsem | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| sysvshm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| tensor | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| tideways | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| tidy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| timezonedb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| uopz | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| uploadprogress | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| uuid | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| uv | | | | | | | | ✓ | ✓ | ✓ | -| vips[*](#special-requirements-for-vips) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| wddx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | -| xdebug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| xdiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| xhprof | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| xlswriter | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| xmldiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| xmlrpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| xsl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| yac | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| yaml | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| yar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | -| zephir_parser | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| zip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| zmq | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| zookeeper | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| zstd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| Extension | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 | PHP 8.3 | +|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| +| amqp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| apcu | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| apcu_bc | | | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | +| ast | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| bcmath | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| bitset | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| blackfire | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| bz2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| calendar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| cassandra[*](#special-requirements-for-cassandra) | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| cmark | | | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | +| csv | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| dba | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| ddtrace[*](#special-requirements-for-ddtrace) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| decimal | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| ds | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| ecma_intl[*](#special-requirements-for-ecma_intl) | | | | | | | | | | ✓ | ✓ | +| enchant | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| ev | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| event | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| excimer | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| exif | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| ffi | | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | +| gd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| gearman | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | +| geoip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | +| geos[*](#special-requirements-for-geos) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| geospatial | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| gettext | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| gmagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| gmp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| gnupg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| grpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| http | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| igbinary | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| imagick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| imap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| inotify | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| interbase | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | +| intl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| ion | | | | | | | | | ✓ | ✓ | ✓ | +| ioncube_loader | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ | | +| jsmin | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | +| json_post | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| jsonpath | | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | +| ldap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| luasandbox | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| lz4[*](#special-requirements-for-lz4) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| lzf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| mailparse | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| maxminddb | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| mcrypt | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| memcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| memcached | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| memprof[*](#special-requirements-for-memprof) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| mongo | ✓ | ✓ | | | | | | | | | | +| mongodb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| mosquitto | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | +| msgpack | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| mssql | ✓ | ✓ | | | | | | | | | | +| mysql | ✓ | ✓ | | | | | | | | | | +| mysqli | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| oauth | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| oci8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| odbc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| opcache | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| opencensus | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| openswoole | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| opentelemetry | | | | | | | | ✓ | ✓ | ✓ | ✓ | +| parallel[*](#special-requirements-for-parallel) | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| parle[*](#special-requirements-for-parle) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pcntl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pcov | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pdo_dblib | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pdo_firebird | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pdo_mysql | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pdo_oci | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pdo_odbc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pdo_pgsql | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pdo_sqlsrv[*](#special-requirements-for-pdo_sqlsrv) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pgsql | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| php_trie | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pkcs11 | | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | +| pq | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| propro | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | +| protobuf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pspell | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| pthreads[*](#special-requirements-for-pthreads) | ✓ | ✓ | ✓ | | | | | | | | | +| raphf | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| rdkafka | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| recode | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | +| redis | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| relay | | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | +| seasclick | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| seaslog | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| shmop | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| simdjson[*](#special-requirements-for-simdjson) | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| smbclient | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| snappy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| snmp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| snuffleupagus | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| soap | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| sockets | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| sodium[*](#special-requirements-for-sodium) | | ✓ | ✓ | ✓ | | | | | | | | +| solr | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| sourceguardian | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| spx | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| sqlsrv[*](#special-requirements-for-sqlsrv) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| ssh2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| stomp | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | ✓ | ✓ | +| swoole | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| sybase_ct | ✓ | ✓ | | | | | | | | | | +| sync | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| sysvmsg | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| sysvsem | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| sysvshm | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| tensor | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| tideways | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| tidy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| timezonedb | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| uopz | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| uploadprogress | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| uuid | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| uv | | | | | | | | ✓ | ✓ | ✓ | ✓ | +| vips[*](#special-requirements-for-vips) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| wddx | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | +| xdebug | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| xdiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| xhprof | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| xlswriter | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| xmldiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| xmlrpc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| xsl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| yac | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| yaml | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| yar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | +| zephir_parser | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| zip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| zmq | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| zookeeper | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | +| zstd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | *Number of supported extensions: 141* @@ -396,6 +396,7 @@ Here's the list of all the supported environment variables: | Extension | Environment variable | Description | |---|---|---| | | `IPE_DEBUG=1` | By setting this environment variable, the script will print all the commands it executes (it will be very verbose, useful only for debug purposes) | +| | `IPE_PROCESSOR_COUNT` | Set this environment variable to override the number of processors detected by the script (used for parallel compilation) | | | `IPE_DONT_ENABLE=1` | By default the script will install and enable the extensions.
If you want to only install them (without enabling them) you can set this environment variable.
To enable the extensions at a later time you can execute the command `docker-php-ext-enable-` (for example: `docker-php-ext-enable-xdebug`).
**Beware**: installing some PHP extensions require that other PHP extensions are already enabled, so use this feature wisely. | | | `IPE_KEEP_SYSPKG_CACHE=1` | By default the script will clear the apt/apk/pear cache in order to save disk space. You can disable it by setting this environment variable | | lzf | `IPE_LZF_BETTERCOMPRESSION=1` | By default `install-php-extensions` compiles the `lzf` extension to prefer speed over size; you can use this environment variable to compile it preferring size over speed | diff --git a/data/supported-extensions b/data/supported-extensions index 12a9a46e..d86de026 100644 --- a/data/supported-extensions +++ b/data/supported-extensions @@ -1,141 +1,141 @@ -amqp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -apcu 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +amqp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +apcu 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 apcu_bc 7.0 7.1 7.2 7.3 7.4 -ast 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -bcmath 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -bitset 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +ast 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +bcmath 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +bitset 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 blackfire 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -bz2 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -calendar 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -cassandra 7.2 7.3 7.4 8.0 8.1 8.2 +bz2 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +calendar 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +cassandra 7.2 7.3 7.4 8.0 8.1 8.2 8.3 cmark 7.0 7.1 7.2 7.3 7.4 -csv 7.3 7.4 8.0 8.1 8.2 -dba 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -ddtrace 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -decimal 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +csv 7.3 7.4 8.0 8.1 8.2 8.3 +dba 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +ddtrace 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +decimal 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 ds 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -ecma_intl 8.2 -enchant 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -ev 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -event 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -excimer 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -exif 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -ffi 7.4 8.0 8.1 8.2 -gd 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +ecma_intl 8.2 8.3 +enchant 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +ev 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +event 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +excimer 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +exif 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +ffi 7.4 8.0 8.1 8.2 8.3 +gd 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 gearman 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 geoip 5.5 5.6 7.0 7.1 7.2 7.3 7.4 -geos 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -geospatial 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -gettext 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -gmagick 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -gmp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -gnupg 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -grpc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -http 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -igbinary 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +geos 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +geospatial 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +gettext 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +gmagick 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +gmp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +gnupg 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +grpc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +http 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +igbinary 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 imagick 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -imap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -inotify 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +imap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +inotify 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.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 8.0 8.1 8.2 -ion 8.1 8.2 +intl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +ion 8.1 8.2 8.3 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 -ldap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -luasandbox 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -lz4 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -lzf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -mailparse 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -maxminddb 7.2 7.3 7.4 8.0 8.1 8.2 -mcrypt 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -memcache 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -memcached 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -memprof 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +json_post 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +jsonpath 7.4 8.0 8.1 8.2 8.3 +ldap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +luasandbox 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +lz4 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +lzf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +mailparse 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +maxminddb 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +mcrypt 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +memcache 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +memcached 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +memprof 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 mongo 5.5 5.6 -mongodb 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +mongodb 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 mosquitto 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 8.0 8.1 8.2 +msgpack 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 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 8.0 8.1 8.2 -oauth 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -oci8 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -opcache 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -opencensus 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +mysqli 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +oauth 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +oci8 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +opcache 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +opencensus 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 openswoole 7.2 7.3 7.4 8.0 8.1 8.2 -opentelemetry 8.0 8.1 8.2 -parallel 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -parle 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pcntl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pcov 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pdo_dblib 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pdo_firebird 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pdo_mysql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pdo_oci 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pdo_odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pdo_pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pdo_sqlsrv 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -php_trie 7.3 7.4 8.0 8.1 8.2 -pkcs11 7.4 8.0 8.1 8.2 -pq 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +opentelemetry 8.0 8.1 8.2 8.3 +parallel 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +parle 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pcntl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pcov 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pdo_dblib 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pdo_firebird 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pdo_mysql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pdo_oci 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pdo_odbc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pdo_pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pdo_sqlsrv 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pgsql 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +php_trie 7.3 7.4 8.0 8.1 8.2 8.3 +pkcs11 7.4 8.0 8.1 8.2 8.3 +pq 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 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 8.0 8.1 8.2 -pspell 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +protobuf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +pspell 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 pthreads 5.5 5.6 7.0 -raphf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -rdkafka 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +raphf 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +rdkafka 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.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 8.0 8.1 8.2 -relay 7.4 8.0 8.1 8.2 -seasclick 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -seaslog 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -shmop 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -simdjson 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -smbclient 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -snappy 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -snmp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -snuffleupagus 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -soap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -sockets 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +redis 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +relay 7.4 8.0 8.1 8.2 8.3 +seasclick 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +seaslog 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +shmop 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +simdjson 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +smbclient 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +snappy 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +snmp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +snuffleupagus 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +soap 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +sockets 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 sodium 5.6 7.0 7.1 solr 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 sourceguardian 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 spx 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -sqlsrv 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -ssh2 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -stomp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.2 -swoole 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +sqlsrv 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +ssh2 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +stomp 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.2 8.3 +swoole 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 sybase_ct 5.5 5.6 -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 +sync 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +sysvmsg 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +sysvsem 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +sysvshm 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 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 -uopz 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -uploadprogress 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -uuid 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -uv 8.0 8.1 8.2 -vips 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 8.3 +timezonedb 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +uopz 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +uploadprogress 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +uuid 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +uv 8.0 8.1 8.2 8.3 +vips 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.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 8.0 8.1 8.2 -xdiff 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -xhprof 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -xlswriter 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -xmldiff 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -xmlrpc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -xsl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -yac 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -yaml 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +xdiff 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +xhprof 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +xlswriter 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +xmldiff 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +xmlrpc 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +xsl 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +yac 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +yaml 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 yar 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 -zephir_parser 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -zip 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -zmq 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +zephir_parser 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +zip 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 +zmq 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 zookeeper 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 -zstd 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 +zstd 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 diff --git a/install-php-extensions b/install-php-extensions index 08ee780c..a57219ae 100755 --- a/install-php-extensions +++ b/install-php-extensions @@ -715,18 +715,11 @@ buildRequiredPackageLists() { buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake" ;; ddtrace@alpine) + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libgcc" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile curl-dev" - if test $DISTRO_MAJMIN_VERSION -ge 317; then - # Alpine 3.17 is the minimum version that comes with cargo 1.64.0+ - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cargo" - fi ;; ddtrace@debian) buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libcurl4-openssl-dev" - if test $DISTRO_MAJMIN_VERSION -ge 1200; then - # Debian bookworm is the minimum version that comes with cargo 1.64.0+ - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cargo" - fi ;; dba@alpine) buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent db" @@ -1624,6 +1617,10 @@ expandInstalledSystemPackageName() { # Output: # The number of processor cores available getProcessorCount() { + if test -n "${IPE_PROCESSOR_COUNT:-}"; then + echo $IPE_PROCESSOR_COUNT + return + fi if command -v nproc >/dev/null 2>&1; then nproc else @@ -2023,9 +2020,6 @@ installMicrosoftSqlServerODBC() { rm -rf /tmp/src/msodbcsql.apk ;; debian) - if test $DISTRO_VERSION_NUMBER -eq 12; then - DISTRO_VERSION_NUMBER=11 - fi 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 @@ -2043,15 +2037,12 @@ installMicrosoftSqlServerODBC() { printf -- '- installing the APT package\n' if test $PHP_MAJMIN_VERSION -le 703; then DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS msodbcsql17 - elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 11; then - # On Debian 9 and 11 we have both msodbcsql17 and msodbcsql18: let's install just one + elif test $DISTRO_VERSION_NUMBER -ge 9 && test $DISTRO_VERSION_NUMBER -le 12; then + # On Debian 9 to 12 we have both msodbcsql17 and msodbcsql18: let's install just one DEBIAN_FRONTEND=noninteractive ACCEPT_EULA=Y apt-get install -qqy --no-install-recommends $IPE_APTGET_INSTALLOPTIONS msodbcsql18 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 ;; esac } @@ -2291,6 +2282,25 @@ installSourceGuardian() { exit 1 } +# Install Cargo (if not yet installed) +installCargo() { + if command -v cargo >/dev/null; then + return + fi + printf '# Installing cargo\n' + case "$DISTRO" in + alpine) + # see https://github.com/hyperledger/indy-vdr/issues/69#issuecomment-998104850 + export RUSTFLAGS='-C target-feature=-crt-static' + ;; + esac + curl https://sh.rustup.rs -sSf | sh -s -- -y -q + . "$HOME/.cargo/env" + if test -z "${IPE_UNINSTALL_CARGO:-}"; then + IPE_UNINSTALL_CARGO=y + fi +} + # Install a bundled PHP module given its handle # # Arguments: @@ -2701,26 +2711,7 @@ installRemoteModule() { if test $PHP_MAJMIN_VERSION -lt 700; then installRemoteModule_version=0.75.0 else - case "$DISTRO" in - alpine) - if test $DISTRO_MAJMIN_VERSION -lt 317; then - # Alpine 3.17 is the minimum version that comes with cargo 1.64.0+ - installRemoteModule_version=0.87.2 - elif test $DISTRO_MAJMIN_VERSION -lt 318; then - # Alpine 3.18 is the minimum version that comes with cargo 1.71.0+ - installRemoteModule_version=0.89.0 - fi - ;; - debian) - if test $DISTRO_MAJMIN_VERSION -lt 1200; then - # Debian bookworm is the minimum version that comes with cargo 1.64.0+ - installRemoteModule_version=0.87.2 - elif test $DISTRO_MAJMIN_VERSION -le 1300; then - # Newer ddtrace versions require cargo 1.71.0+, but bookworm comes with cargo 1.65.0 - installRemoteModule_version=0.89.0 - fi - ;; - esac + installCargo fi fi ;; @@ -4239,6 +4230,10 @@ fixLetsEncrypt() { # Cleanup everything at the end of the execution cleanup() { + if test "${IPE_UNINSTALL_CARGO:-}" = y; then + . "$HOME/.cargo/env" + rustup self uninstall -y + fi if test -n "$UNNEEDED_PACKAGE_LINKS"; then printf '### REMOVING UNNEEDED PACKAGE LINKS ###\n' for cleanup_link in $UNNEEDED_PACKAGE_LINKS; do @@ -4304,7 +4299,7 @@ esac setPHPVersionVariables setPHPPreinstalledModules case "$PHP_MAJMIN_VERSION" in - 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802) ;; + 505 | 506 | 700 | 701 | 702 | 703 | 704 | 800 | 801 | 802 | 803) ;; *) printf "### ERROR: Unsupported PHP version: %s.%s ###\n" $((PHP_MAJMIN_VERSION / 100)) $((PHP_MAJMIN_VERSION % 100)) ;; diff --git a/scripts/ci-test-extensions b/scripts/ci-test-extensions index ec8c1cb7..bea1a54e 100755 --- a/scripts/ci-test-extensions +++ b/scripts/ci-test-extensions @@ -23,7 +23,7 @@ set -o nounset # $2: the PHP version shouldProcessPhpVersionForDistro() { case "$2@$1" in - 8.1@alpine3.12) + 8.1@alpine3.12 | 8.3@buster) return 1 ;; *) @@ -153,6 +153,9 @@ getDockerImageName() { return fi case "$2" in + 8.3) + getDockerImageName_version="$2-rc" + ;; *) getDockerImageName_version="$2" ;; @@ -182,7 +185,7 @@ getDockerImageName() { if test "${getDockerImageName_log#*manifest unknown}" != "$getDockerImageName_log" || test "${getDockerImageName_log#*manifest for * not found}" != "$getDockerImageName_log"; then return fi - printf '%s\n' "$getDockerImageName_log" >&2 + printf '%s\n' "$getDockerImageName_log" exit 1 fi fi @@ -311,7 +314,7 @@ testExtension() { testExtensionFor() { printf 'PHP version: %s\n' "$2" if test -n "$(printf '%s' "$2" | sed -E 's/^[0-9]+\.[0-9]+$//')"; then - printf ' INVALID PHP VERSION: %s\n' "$2" >&2 + printf ' INVALID PHP VERSION: %s\n' "$2" return 1 fi testExtensionFor_Image="$(getDockerImageName "$1" "$2")" @@ -330,22 +333,27 @@ testExtensionFor() { testExtensionFor_delta=$(expr $testExtensionFor_end - $testExtensionFor_start) rm -rf "$testExtensionFor_out" printf ' - Passed in %s seconds\n' $testExtensionFor_delta + IPE_SUMMARY_GOOD="$(printf '%s- %s (%s)\n ' "${IPE_SUMMARY_GOOD% }" "$1" "$testExtensionFor_Image")" return 0 fi - printf '\n\n###############\n## ##\n## FAILED! ##\n## ##\n###############\n' >&2 - cat "$testExtensionFor_out" >&2 + printf '\n\n###############\n## ##\n## FAILED! ##\n## ##\n###############\n' + echo '::group::Error details' + cat "$testExtensionFor_out" + echo '::endgroup::' + echo '' rm -rf "$testExtensionFor_out" + IPE_SUMMARY_BAD="$(printf '%s- %s (%s)\n ' "${IPE_SUMMARY_BAD% }" "$1" "$testExtensionFor_Image")" return 1 } echo 'Checking environment' if test -z "${GITHUB_WORKSPACE:-}"; then - echo 'Not in a CI environment' >&2 + echo 'Not in a CI environment' exit 1 fi CI_BUILD_DIR="$GITHUB_WORKSPACE" if test -z "${IPETEST_DOCKER_DISTRO:-}"; then - echo 'IPETEST_DOCKER_DISTRO environment variable not set' >&2 + echo 'IPETEST_DOCKER_DISTRO environment variable not set' exit 1 fi @@ -354,7 +362,7 @@ fi case "${1:-}" in from-commits) if test -z "${2:-}"; then - echo 'Missing commit range of the push event' >&2 + echo 'Missing commit range of the push event' exit 1 fi CI_COMMIT_RANGE="$2" @@ -373,9 +381,9 @@ case "${1:-}" in ;; *) if test -z "${1:-}"; then - printf 'Missing source of extensions to be tested\n' >&2 + printf 'Missing source of extensions to be tested\n' else - printf '"%s" is an unknown source of extensions to be tested\n' "$1" >&2 + printf '"%s" is an unknown source of extensions to be tested\n' "$1" fi exit 1 ;; @@ -393,10 +401,24 @@ SOME_TEST_FAILED=0 IFS=' ' +IPE_SUMMARY_GOOD='' +IPE_SUMMARY_BAD='' for EXTENSION_TO_BE_TESTED in "$EXTENSIONS_TO_BE_TESTED"; do testExtension "$EXTENSION_TO_BE_TESTED" || SOME_TEST_FAILED=1 done +printf '\n### SUMMARY\n' +if test -z "$IPE_SUMMARY_GOOD"; then + printf 'Passed extensions:\n(none)\n' +else + printf 'Passed extensions:\n%s' "${IPE_SUMMARY_GOOD% }" +fi +if test -z "$IPE_SUMMARY_BAD"; then + printf 'Failed extensions:\n(none)\n' +else + printf 'Failed extensions:\n%s' "${IPE_SUMMARY_BAD% }" +fi + if test $SOME_TEST_FAILED -ne 0; then exit 1 fi diff --git a/scripts/lint b/scripts/lint index 03eb35eb..de083544 100755 --- a/scripts/lint +++ b/scripts/lint @@ -11,7 +11,7 @@ echo '# Linting shell scripts' if ! docker --version >/dev/null 2>/dev/null; then echo 'Docker is not installed, or it is not running.' >&2 rc=1 -elif ! docker run --rm -v "$SRC_DIR:/src" -w /src --entrypoint /src/scripts/invoke-shfmt mvdan/shfmt:v3.4.0-alpine fix; then +elif ! docker run --rm -v "$SRC_DIR:/src" -w /src --entrypoint /src/scripts/invoke-shfmt mvdan/shfmt:v3.7.0-alpine fix; then echo 'ERROR!' >&2 rc=1 fi diff --git a/scripts/lint.bat b/scripts/lint.bat index babca735..eee8974f 100644 --- a/scripts/lint.bat +++ b/scripts/lint.bat @@ -16,7 +16,7 @@ if errorlevel 1 ( echo Docker is not installed, or it's not running >&2 set rc=1 ) else ( - docker run --rm -v "%SRC_DIR%:/src" -w /src --entrypoint /src/scripts/invoke-shfmt mvdan/shfmt:v3.4.0-alpine fix + docker run --rm -v "%SRC_DIR%:/src" -w /src --entrypoint /src/scripts/invoke-shfmt mvdan/shfmt:v3.7.0-alpine fix if errorlevel 1 ( echo ERROR! >&2 set rc=1