From 1e04b3c11091a5ec0cc11d77166833774188928f Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Fri, 7 Jun 2024 17:47:24 +0200 Subject: [PATCH 1/6] Fix installing swoole (#926) * Install swoole 5.1.2 on Alpine 3.12 Fix this error: configure: error: Package requirements (libbrotlienc) were not met: Package 'libbrotlienc', required by 'virtual:world', not found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables BROTLIENC_CFLAGS and BROTLIENC_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. Test: swoole * Fix installing swoole on Debian * Workaround for https://github.com/swoole/swoole-src/issues/5365 * Fix installing swoole on Debian --- install-php-extensions | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/install-php-extensions b/install-php-extensions index 22f4c5f7..976b349b 100755 --- a/install-php-extensions +++ b/install-php-extensions @@ -1364,7 +1364,8 @@ buildRequiredPackageLists() { buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" fi if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev" + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" fi ;; sybase_ct@alpine) @@ -3811,6 +3812,14 @@ installRemoteModule() { elif test $PHP_BITS -eq 32; then # See https://github.com/swoole/swoole-src/issues/5198#issuecomment-1820162178 installRemoteModule_version="$(resolvePHPModuleVersion "$installRemoteModule_module" '^5.0')" + else + case "$DISTRO" in + alpine) + if test $DISTRO_MAJMIN_VERSION -le 312; then + installRemoteModule_version=5.1.2 + fi + ;; + esac fi else installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" @@ -3829,8 +3838,8 @@ installRemoteModule() { fi ;; esac - if test $PHP_MAJMIN_VERSION -eq 803; then - # see https://github.com/swoole/docker-swoole/issues/45 + if test $PHP_MAJMIN_VERSION -ge 800; then + # see https://github.com/swoole/swoole-src/issues/5365 installRemoteModule_curl=no else installRemoteModule_curl=yes From fafb433f97e8285170d662cae36d42eb13625449 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Mon, 10 Jun 2024 23:14:49 +0200 Subject: [PATCH 2/6] Delete newrelic install logs (#928) --- README.md | 1 + install-php-extensions | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/README.md b/README.md index eb29b2fd..0117738d 100644 --- a/README.md +++ b/README.md @@ -421,6 +421,7 @@ Here's the list of all the supported environment variables: | pspell | `IPE_ASPELL_LANGUAGES='...'` | Configure the languages to be made available (for example: `IPE_ASPELL_LANGUAGES='en fr'`). If omitted, we'll assume `en` | | | `IPE_DEB_ARCHIVE` & `IPE_DEB_ARCHIVE_SECURITY` | The APT packages of very old Debian versions (eg Jessie) may have been archived: you can use these environment variables to specify custom URLs of these APT archives | | newrelic | `IPE_NEWRELIC_DAEMON=1` | Install the NewRelic daemon | +| newrelic | `IPE_NEWRELIC_KEEPLOG=1` | Keep the log files of NewRelic setup (`/tmp/nrinstall-….tar`) | | newrelic | `NR_INSTALL_KEY` | Your New Relic license key | ## Special requirements diff --git a/install-php-extensions b/install-php-extensions index 976b349b..eccef226 100755 --- a/install-php-extensions +++ b/install-php-extensions @@ -2447,6 +2447,12 @@ installNewRelic() { NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 ./newrelic-install install_daemon ;; esac + case "${IPE_NEWRELIC_KEEPLOG:-}" in + 1 | y* | Y*) ;; + *) + rm -f /tmp/nrinstall-*.tar + ;; + esac cd - >/dev/null cat < Date: Mon, 24 Jun 2024 11:38:29 +0200 Subject: [PATCH 3/6] Add support for swoole 6.0.0 (#929) --- install-php-extensions | 91 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 85 insertions(+), 6 deletions(-) diff --git a/install-php-extensions b/install-php-extensions index eccef226..7095b6d5 100755 --- a/install-php-extensions +++ b/install-php-extensions @@ -1354,6 +1354,9 @@ buildRequiredPackageLists() { if test $PHP_MAJMIN_VERSION -ge 702; then buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent c-ares" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile c-ares-dev" + if test $PHP_MAJMIN_VERSION -ge 801; then + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile sqlite-dev" + fi fi ;; swoole@debian) @@ -1362,10 +1365,13 @@ buildRequiredPackageLists() { if test $PHP_MAJMIN_VERSION -ge 702; then buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libc-ares2" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libc-ares-dev" - fi - if test $PHP_MAJMIN_VERSION -ge 800; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" - buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" + if test $PHP_MAJMIN_VERSION -ge 800; then + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libbrotli1" + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile zlib1g-dev libbrotli-dev" + if test $PHP_MAJMIN_VERSION -ge 801; then + buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libsqlite3-dev" + fi + fi fi ;; sybase_ct@alpine) @@ -3827,6 +3833,13 @@ installRemoteModule() { ;; esac fi + if test -z "$installRemoteModule_version"; then + if test $PHP_MAJMIN_VERSION -le 800; then + installRemoteModule_version=5.1.3 + else + installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" stable)" + fi + fi else installRemoteModule_version="$(resolvePeclStabilityVersion "$installRemoteModule_module" "$installRemoteModule_version")" fi @@ -3838,7 +3851,7 @@ installRemoteModule() { installRemoteModule_openssl=yes case "$DISTRO_VERSION" in alpine@3.7 | alpine@3.8) - if test -n "$installRemoteModule_version" && test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then + if test $(compareVersions "$installRemoteModule_version" 4.6.0) -lt 0; then # see https://github.com/swoole/swoole-src/issues/3934 installRemoteModule_openssl=no fi @@ -3850,7 +3863,73 @@ installRemoteModule() { else installRemoteModule_curl=yes fi - if test -z "$installRemoteModule_version" || test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then + if test $PHP_THREADSAFE -eq 1; then + installRemoteModule_zts=yes + else + installRemoteModule_zts=no + fi + installRemoteModule_sqlite=yes + case "$DISTRO" in + alpine) + if test $DISTRO_MAJMIN_VERSION -lt 317; then + # we need sqlite3 >= 3.7.7 + installRemoteModule_sqlite=no + fi + ;; + debian) + if test $DISTRO_MAJMIN_VERSION -lt 1200; then + # we need sqlite3 >= 3.7.7 + installRemoteModule_sqlite=no + fi + ;; + esac + if test $(compareVersions "$installRemoteModule_version" 6.0.0) -ge 0; then + # enable sockets supports? + addConfigureOption enable-sockets $installRemoteModule_sockets + # enable openssl support? + addConfigureOption enable-openssl $installRemoteModule_openssl + # enable mysqlnd support? + addConfigureOption enable-mysqlnd yes + # enable curl support? + addConfigureOption enable-swoole-curl $installRemoteModule_curl + # enable cares support? + addConfigureOption enable-cares yes + # enable brotli support? + addConfigureOption enable-brotli yes + # enable PostgreSQL database support? + addConfigureOption enable-swoole-pgsql yes + # enable ODBC database support? + addConfigureOption with-swoole-odbc no + # enable Oracle database support? + addConfigureOption with-swoole-oracle no + # enable Sqlite database support? + addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite + # enable swoole thread support (need php zts support)? + addConfigureOption enable-swoole-thread $installRemoteModule_zts + # enable iouring for file async support? + addConfigureOption enable-iouring yes + elif test $(compareVersions "$installRemoteModule_version" 5.1.0) -ge 0; then + # enable sockets supports? + addConfigureOption enable-sockets $installRemoteModule_sockets + # enable openssl support? + addConfigureOption enable-openssl $installRemoteModule_openssl + # enable mysqlnd support? + addConfigureOption enable-mysqlnd yes + # enable curl support? + addConfigureOption enable-swoole-curl $installRemoteModule_curl + # enable cares support? + addConfigureOption enable-cares yes + # enable brotli support? + addConfigureOption enable-brotli yes + # enable PostgreSQL database support? + addConfigureOption enable-swoole-pgsql yes + # enable ODBC database support? + addConfigureOption with-swoole-odbc no + # enable Oracle database support? + addConfigureOption with-swoole-oracle no + # enable Sqlite database support? + addConfigureOption enable-swoole-sqlite $installRemoteModule_sqlite + elif test $(compareVersions "$installRemoteModule_version" 5.0.1) -ge 0; then # enable sockets supports? addConfigureOption enable-sockets $installRemoteModule_sockets # enable openssl support? From 7ccc11b3760b170ecec6b5e0b55b7465b6dfb332 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Mon, 24 Jun 2024 12:03:47 +0200 Subject: [PATCH 4/6] Update GitHub Action versions (#930) --- .github/workflows/monitor-php8.3.yml | 2 +- .github/workflows/readme-release.yml | 2 +- .github/workflows/test-extensions.yml | 25 ++++++++++---------- .github/workflows/test-recent-extensions.yml | 4 ++-- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/workflows/monitor-php8.3.yml b/.github/workflows/monitor-php8.3.yml index 31e49d3d..9eb6679c 100644 --- a/.github/workflows/monitor-php8.3.yml +++ b/.github/workflows/monitor-php8.3.yml @@ -25,7 +25,7 @@ jobs: IPETEST_ONLY_PHPVERSIONS: "8.3" steps: - name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v4 - name: Test extensions run: ./scripts/ci-test-extensions all - name: Notify failures diff --git a/.github/workflows/readme-release.yml b/.github/workflows/readme-release.yml index 5adba788..e8a91b11 100644 --- a/.github/workflows/readme-release.yml +++ b/.github/workflows/readme-release.yml @@ -22,7 +22,7 @@ jobs: (github.event_name == 'push' && github.ref == 'refs/heads/master') || (github.event_name == 'create' && github.event.ref_type == 'tag') || github.event_name == 'repository_dispatch' - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: ref: master fetch-depth: 0 diff --git a/.github/workflows/test-extensions.yml b/.github/workflows/test-extensions.yml index 102e4a78..74c6e9b2 100644 --- a/.github/workflows/test-extensions.yml +++ b/.github/workflows/test-extensions.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Check order supported extensions list run: | sort -o data/supported-extensions.sorted data/supported-extensions @@ -29,13 +29,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Install Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v5 with: go-version: "1.21.0" + cache: false - name: Install shfmt run: GO111MODULE=on go install mvdan.cc/sh/v3/cmd/shfmt@v3.7.0 - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Check coding style run: ./scripts/invoke-shfmt check check_syntax_php: @@ -48,7 +49,7 @@ jobs: php-version: "7.4" tools: composer - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install Composer dependencies run: composer install --no-progress --classmap-authoritative - name: Check coding style @@ -84,7 +85,7 @@ jobs: IPETEST_DOCKER_DISTRO: ${{ matrix.distro }} steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Test extensions @@ -98,7 +99,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - run: docker run --rm --volume "$(pwd):/app" --workdir /app php:8.2-bullseye ./scripts/test-restore-apt test_custom_version: name: Test installing specific versions @@ -118,7 +119,7 @@ jobs: - ^2.8@stable steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - run: docker run --rm --volume "$(pwd):/app" --workdir /app php:7.4-alpine ./scripts/test-installversion "${{ matrix.xdebug_version }}" test_composer: name: Test installing composer @@ -135,7 +136,7 @@ jobs: - '2.0.1' steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - run: | docker run --rm --volume "$(pwd):/app" --workdir /app php:7.4-alpine ./scripts/test-installcomposer "${{ matrix.composer_version }}" test_marking_packages: @@ -152,7 +153,7 @@ jobs: - buster steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - run: docker run --rm --volume "$(pwd):/app" --workdir /app "php:7.4-${{ matrix.distro }}" "./scripts/ci-markused-${{ matrix.distro }}" test_instantclient_basic: name: Test using Oracle Instant Client Basic @@ -164,7 +165,7 @@ jobs: container: php:8.1-cli-alpine steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - run: IPE_INSTANTCLIENT_BASIC=1 ./install-php-extensions oci8 pdo_oci test_install_fromsource: name: Test installing from source @@ -192,7 +193,7 @@ jobs: source: php-memcached-dev/php-memcached@v3.2.0RC2 steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - run: ./install-php-extensions ${{ matrix.source }} test_upgrading_icu_data_en: name: Test that icu-data-en can be upgraded @@ -203,5 +204,5 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - run: docker run --rm --volume "$(pwd):/app" --workdir /app php:8.2-cli-alpine ./scripts/test-icu-data-en-upgradable diff --git a/.github/workflows/test-recent-extensions.yml b/.github/workflows/test-recent-extensions.yml index 405eb29c..faa7e985 100644 --- a/.github/workflows/test-recent-extensions.yml +++ b/.github/workflows/test-recent-extensions.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v4 - name: Retrieve recently updated extensions run: ./scripts/ci-retrieve-recent-extensions >extensions-updated.txt - name: Filter supported extensions @@ -58,7 +58,7 @@ jobs: IPETEST_DOCKER_DISTRO: ${{ matrix.distro }} steps: - name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v4 - name: Loading list of extensions to be tested uses: actions/download-artifact@v1 with: From 29d5bfe506c5650ff09e916f37b2f47e16b9f4b0 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Tue, 25 Jun 2024 12:44:24 +0200 Subject: [PATCH 5/6] yar: add support for PHP 8.2/8.3 (#931) --- data/supported-extensions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/supported-extensions b/data/supported-extensions index ae1835f6..2d9e7c68 100644 --- a/data/supported-extensions +++ b/data/supported-extensions @@ -138,7 +138,7 @@ 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 +yar 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 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 From 732fe6577a65abc2b2ab163e0a841dec624d9f6e Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Tue, 25 Jun 2024 10:44:38 +0000 Subject: [PATCH 6/6] [skip ci] Automatically update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0117738d..93f1e462 100644 --- a/README.md +++ b/README.md @@ -341,7 +341,7 @@ install-php-extensions @fix_letsencrypt | xsl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | yac | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | yaml | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| yar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | +| yar | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | zephir_parser | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | zip | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | zmq | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |