From 2b49403378e95bb7566b8a64c909a8fcaec1fab3 Mon Sep 17 00:00:00 2001 From: Daniel Scherzer Date: Tue, 27 Jan 2026 02:04:47 -0800 Subject: [PATCH 1/3] GitHub actions: drop more 8.1 CI configuration (#20763) * remove `libmysqlclient_with_mysqli` support from nightly workflow * remove `libmysqlclient_with_mysqli` support from root workflow * remove `withMysqli` support from `build-libmysqlclient` action * remove `withMysqli` support from `test-libmysqlclient` action * in root workflow, drop code checking for PHP 8.1 [skip ci] --- .github/actions/build-libmysqlclient/action.yml | 6 +----- .github/actions/test-libmysqlclient/action.yml | 5 ----- .github/workflows/nightly.yml | 15 ++------------- .github/workflows/root.yml | 5 ++--- 4 files changed, 5 insertions(+), 26 deletions(-) diff --git a/.github/actions/build-libmysqlclient/action.yml b/.github/actions/build-libmysqlclient/action.yml index bab2bc544a128..632c1e8ea16b5 100644 --- a/.github/actions/build-libmysqlclient/action.yml +++ b/.github/actions/build-libmysqlclient/action.yml @@ -5,8 +5,6 @@ inputs: required: false libmysql: required: true - withMysqli: - required: true runs: using: composite steps: @@ -21,13 +19,11 @@ runs: wget -nv $URL tar -xf $LIBMYSQL --strip-components=1 -C $MYSQL_DIR PDO_MYSQL=${MYSQL_DIR} - ${{ inputs.withMysqli == 'true' && 'MYSQLI=${MYSQL_DIR}/bin/mysql_config' || '' }} ./buildconf --force ./configure ${{ inputs.configurationParameters }} \ --enable-option-checking=fatal \ --disable-all \ --enable-pdo \ - --with-pdo-mysql=${PDO_MYSQL} \ - ${{ inputs.withMysqli == 'true' && '--with-mysqli=${MYSQLI}' || '' }} + --with-pdo-mysql=${PDO_MYSQL} make clean make -j$(/usr/bin/nproc) >/dev/null diff --git a/.github/actions/test-libmysqlclient/action.yml b/.github/actions/test-libmysqlclient/action.yml index 74474225e6705..185e909f96583 100644 --- a/.github/actions/test-libmysqlclient/action.yml +++ b/.github/actions/test-libmysqlclient/action.yml @@ -1,15 +1,10 @@ name: Test libmysqlclient -inputs: - withMysqli: - required: true runs: using: composite steps: - shell: bash run: | set -x - ${{ inputs.withMysqli == 'true' && 'export MYSQL_TEST_USER=root' || '' }} - ${{ inputs.withMysqli == 'true' && 'export MYSQL_TEST_PASSWD=root' || '' }} export PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=test" export PDO_MYSQL_TEST_HOST=127.0.0.1 export PDO_MYSQL_TEST_USER=root diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index fc490f079b6b0..019e779d56cb6 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -11,9 +11,6 @@ on: community_verify_type_inference: required: true type: boolean - libmysqlclient_with_mysqli: - required: true - type: boolean run_alpine: required: true type: boolean @@ -854,25 +851,17 @@ jobs: - name: Build mysql-8.0 uses: ./.github/actions/build-libmysqlclient with: - configurationParameters: ${{ !inputs.libmysqlclient_with_mysqli && '--enable-werror' || '' }} + configurationParameters: '--enable-werror' libmysql: mysql-8.0.37-linux-glibc2.28-x86_64.tar.xz - withMysqli: ${{ inputs.libmysqlclient_with_mysqli }} - name: Test mysql-8.0 uses: ./.github/actions/test-libmysqlclient - with: - withMysqli: ${{ inputs.libmysqlclient_with_mysqli }} - name: Build mysql-8.4 - if: ${{ !inputs.libmysqlclient_with_mysqli }} uses: ./.github/actions/build-libmysqlclient with: - configurationParameters: ${{ !inputs.libmysqlclient_with_mysqli && '--enable-werror' || '' }} + configurationParameters: '--enable-werror' libmysql: mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz - withMysqli: ${{ inputs.libmysqlclient_with_mysqli }} - name: Test mysql-8.4 - if: ${{ !inputs.libmysqlclient_with_mysqli }} uses: ./.github/actions/test-libmysqlclient - with: - withMysqli: ${{ inputs.libmysqlclient_with_mysqli }} - name: Verify generated files are up to date uses: ./.github/actions/verify-generated-files PECL: diff --git a/.github/workflows/root.yml b/.github/workflows/root.yml index 767a853e7c8ff..6958a9cd4147b 100644 --- a/.github/workflows/root.yml +++ b/.github/workflows/root.yml @@ -46,7 +46,6 @@ jobs: || '22.04' }} branch: ${{ matrix.branch.ref }} community_verify_type_inference: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }} - libmysqlclient_with_mysqli: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1) }} run_alpine: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }} run_linux_ppc64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }} run_macos_arm64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }} @@ -56,8 +55,8 @@ jobs: || '22.04' }} windows_version: '2022' vs_crt_version: ${{ ((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) && 'vs17') || 'vs16' }} - skip_laravel: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }} + skip_laravel: false symfony_version: ${{ (((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9) && '8.1') || '7.4' }} - skip_wordpress: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }} + skip_wordpress: false variation_enable_zend_max_execution_timers: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 3) || matrix.branch.version[0] >= 9 }} secrets: inherit From 32088b7e308316ad57815eefad0ba0b254401e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20D=C3=BCsterhus?= Date: Tue, 27 Jan 2026 14:00:18 +0100 Subject: [PATCH 2/3] zend_enum: Assert that the `case_name` is `IS_STRING` (#21045) Ideally this function would return the `zend_string*` directly to avoid some boilerplate code, but at least by including the assertion the intent is clear. --- Zend/zend_enum.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Zend/zend_enum.h b/Zend/zend_enum.h index d6c820189475a..39743c73472c8 100644 --- a/Zend/zend_enum.h +++ b/Zend/zend_enum.h @@ -50,7 +50,10 @@ ZEND_API zend_result zend_enum_get_case_by_value(zend_object **result, zend_clas static zend_always_inline zval *zend_enum_fetch_case_name(zend_object *zobj) { ZEND_ASSERT(zobj->ce->ce_flags & ZEND_ACC_ENUM); - return OBJ_PROP_NUM(zobj, 0); + + zval *name = OBJ_PROP_NUM(zobj, 0); + ZEND_ASSERT(Z_TYPE_P(name) == IS_STRING); + return name; } static zend_always_inline zval *zend_enum_fetch_case_value(zend_object *zobj) From e6beffb6ed1ceae488e1cfd0732374ce219bc85c Mon Sep 17 00:00:00 2001 From: Saki Takamachi Date: Tue, 27 Jan 2026 22:21:42 +0900 Subject: [PATCH 3/3] PHP-8.4 is now for PHP 8.4.19-dev --- NEWS | 5 ++++- Zend/zend.h | 2 +- configure.ac | 2 +- main/php_version.h | 6 +++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index f863e4d3cae4b..b593a1827b1c3 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.4.18 +?? ??? ????, PHP 8.4.19 + + +12 Feb 2026, PHP 8.4.18 - Core: . Fixed bug GH-20837 (NULL dereference when calling ob_start() in shutdown diff --git a/Zend/zend.h b/Zend/zend.h index a3fbdf3c7c2af..cf11be3f15a90 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.4.18-dev" +#define ZEND_VERSION "4.4.19-dev" #define ZEND_ENGINE_3 diff --git a/configure.ac b/configure.ac index e339666e91bfb..5744497bf7fbd 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.4.18-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.4.19-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/main/php_version.h b/main/php_version.h index a508f5375c464..a6084939e04eb 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,7 +2,7 @@ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 8 #define PHP_MINOR_VERSION 4 -#define PHP_RELEASE_VERSION 18 +#define PHP_RELEASE_VERSION 19 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.4.18-dev" -#define PHP_VERSION_ID 80418 +#define PHP_VERSION "8.4.19-dev" +#define PHP_VERSION_ID 80419