Skip to content

Add PHP 8.5 initial support #819

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 79 commits into from
Aug 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
5f2459a
Avoid useless exception on startup version mismatch
crazywhalecc Jul 15, 2025
ec959f6
Add 8.5 patch support for phpmicro
crazywhalecc Jul 15, 2025
b9e096a
Download alpha version for 8.5
crazywhalecc Jul 15, 2025
88cf018
extension test
crazywhalecc Jul 15, 2025
d3f8e94
Use new branch of micro, extension test
crazywhalecc Jul 15, 2025
dc8f7de
Merge branch 'main' into php-85
crazywhalecc Jul 15, 2025
1ce3ba0
Update docs and READMEs
crazywhalecc Jul 15, 2025
5838c87
Merge remote-tracking branch 'origin/php-85' into php-85
crazywhalecc Jul 15, 2025
f061259
Test bulk (without amqp, swoole) and spc-max
crazywhalecc Jul 15, 2025
fb106a3
Merge branch 'refs/heads/main' into php-85
crazywhalecc Jul 28, 2025
85e89e4
alpha2
crazywhalecc Jul 28, 2025
973c8f0
Add php-src git version support
crazywhalecc Jul 28, 2025
0696acb
Add support for re2c in tool checklists and environment setup
crazywhalecc Jul 28, 2025
1ae0752
Trigger full extension test
crazywhalecc Jul 28, 2025
b9bec5b
Whoops, extension test
crazywhalecc Jul 28, 2025
4efb3df
Add check for Bison version in MacOS tool checklist, trigger extensio…
crazywhalecc Jul 28, 2025
e9dbeb1
Refactor opcache JIT handling and version checks in Linux and MacOS b…
crazywhalecc Jul 29, 2025
ed67393
Move opcache JIT handling from Linux and MacOS builders to Extension
crazywhalecc Jul 29, 2025
9ed3c8b
phpstan
crazywhalecc Jul 29, 2025
5f5d934
Add openssl argon2 password hash support for PHP 8.5
crazywhalecc Jul 30, 2025
af10cac
Add openssl version getter for Windows, test openssl
crazywhalecc Jul 30, 2025
0dfa6e6
Fix dev:lib-version command with dependencies
crazywhalecc Jul 30, 2025
357c04d
Merge branch 'main' into php-85
crazywhalecc Jul 30, 2025
5f33a07
Fix windows builds when unix configure does not exist
crazywhalecc Jul 30, 2025
fcdb029
Install re2c manually in gnu docker
crazywhalecc Jul 30, 2025
cb0ea67
Fix x86_64 macOS bison finder path
crazywhalecc Jul 30, 2025
6984c29
suggestion
crazywhalecc Jul 30, 2025
3c972ac
Add re2c build
crazywhalecc Jul 30, 2025
601444d
Add re2c build for spc-gnu-docker
crazywhalecc Jul 30, 2025
be85791
Add alt for re2c
crazywhalecc Jul 30, 2025
96a7aab
Don't show shell log
crazywhalecc Jul 31, 2025
0496af4
Fix windows PHP 8.5 build
crazywhalecc Jul 31, 2025
1047d47
Merge branch 'main' into php-85
crazywhalecc Jul 31, 2025
72beba7
Merge remote-tracking branch 'origin/php-85' into php-85
crazywhalecc Jul 31, 2025
4c54d99
Remove pcntl
crazywhalecc Jul 31, 2025
5f9fe29
Fix missing SPC_EXTRA_LIBS with type error bug
crazywhalecc Jul 31, 2025
d3e8af2
Whoops
crazywhalecc Jul 31, 2025
e1c9240
README update
crazywhalecc Jul 31, 2025
07d66ad
Add separated patchedBeforeWindowsConfigure
crazywhalecc Jul 31, 2025
6b38123
Remove collision, it's useless at all
crazywhalecc Jul 31, 2025
33d587e
Remove redis test (https://github.com/phpredis/phpredis/pull/2676)
crazywhalecc Jul 31, 2025
451de4a
Fix ConfigValidator and sort config
crazywhalecc Jul 31, 2025
6b23f4b
Fix PHPUnit test on Windows, ignore calling linux system util for oth…
crazywhalecc Jul 31, 2025
7d05774
cs-fix
crazywhalecc Jul 31, 2025
9487051
Add PHP_BUILD_PROVIDER for PHP >= 8.4
crazywhalecc Jul 31, 2025
34edb6e
Add PHP_BUILD_PROVIDER to env.ini
crazywhalecc Aug 1, 2025
8b9b729
Add PHP_BUILD_COMPILER for different toolchain
crazywhalecc Aug 1, 2025
d6081ee
Support alpha4
crazywhalecc Aug 1, 2025
ac2eb3a
Remove redis test
crazywhalecc Aug 1, 2025
1c9fbdb
Use none base combination
crazywhalecc Aug 1, 2025
efa47af
Add git source test
crazywhalecc Aug 1, 2025
cace504
Workaround for windows openssl temporarily
crazywhalecc Aug 1, 2025
2c5cf07
cs fix, fix file name
crazywhalecc Aug 1, 2025
48a7d81
Test jit
crazywhalecc Aug 1, 2025
17ff5f6
Update tests.yml
crazywhalecc Aug 1, 2025
22a8191
Fix opcache jit option parsing in builder
crazywhalecc Aug 1, 2025
af62e55
Add missing space
crazywhalecc Aug 1, 2025
f6eba32
Update tests.yml
crazywhalecc Aug 1, 2025
65f7404
Update tests.yml
crazywhalecc Aug 1, 2025
e14301d
Symbol workaround for cross toolchain
crazywhalecc Aug 2, 2025
3960a21
Use full domain test list
crazywhalecc Aug 2, 2025
38725c2
Update ca certificates
crazywhalecc Aug 2, 2025
d005353
tmate
crazywhalecc Aug 2, 2025
c3e9a28
Test
crazywhalecc Aug 2, 2025
e6cf05d
Test
crazywhalecc Aug 2, 2025
e7fe91f
Fix patch, use pure socket client directly
crazywhalecc Aug 2, 2025
9a5a59d
Test
crazywhalecc Aug 2, 2025
6439268
Test original
crazywhalecc Aug 2, 2025
f1a9a28
Use backup file function to avoid multiple build conflict
crazywhalecc Aug 2, 2025
b644da8
Remove redundant patches for openssl
crazywhalecc Aug 3, 2025
2d6d25c
Update src/SPC/builder/linux/LinuxBuilder.php
crazywhalecc Aug 3, 2025
93001dc
Update src/SPC/builder/macos/MacOSBuilder.php
crazywhalecc Aug 3, 2025
430f436
Update src/SPC/builder/macos/MacOSBuilder.php
crazywhalecc Aug 3, 2025
3c09ba5
Merge remote-tracking branch 'origin/php-85' into php-85
crazywhalecc Aug 3, 2025
ea4905c
Add argon2 support for PHP-NTS < 8.5
crazywhalecc Aug 3, 2025
4cbe4ea
Revert corrupted revert
crazywhalecc Aug 3, 2025
81e7a0c
Add without argon2 option
crazywhalecc Aug 3, 2025
4fb4e42
Revert
crazywhalecc Aug 3, 2025
3789c7c
only enable one of password-argon2 or openssl-argon2
henderkes Aug 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ext-matrix-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ jobs:
- zlib
- zstd
php-version:
- "8.4"
- "git"
operating-system:
- "ubuntu-latest"
#- "macos-13"
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ jobs:
os: ${{ fromJSON(needs.define-matrix.outputs.os) }}
fail-fast: false
steps:
- name: "Update runner packages"
if: ${{ startsWith(matrix.os, 'ubuntu-') }}
run: sudo apt-get update && sudo apt-get install -y ca-certificates

- name: "Checkout"
uses: actions/checkout@v4

Expand Down
23 changes: 12 additions & 11 deletions README-zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,22 +76,23 @@ static-php-cli(简称 `spc`)有许多特性:

当前支持编译的 PHP 版本:

> :warning: 支持,但 static-php-cli 作者可能不再提供补丁修复
> :warning: 部分支持,对于新的测试版和旧版本可能存在问题。
>
> :heavy_check_mark: 支持
>
> :x: 不支持

| PHP Version | Status | Comment |
|-------------|--------------------|----------------------------------------------|
| 7.2 | :x: | |
| 7.3 | :x: | phpmicro 和许多扩展不支持 7.3、7.4 版本 |
| 7.4 | :x: | phpmicro 和许多扩展不支持 7.3、7.4 版本 |
| 8.0 | :warning: | PHP 官方已停止 8.0 的维护,我们不再处理 8.0 相关的 backport 支持 |
| 8.1 | :heavy_check_mark: | PHP 官方仅对 8.1 提供安全更新 |
| 8.2 | :heavy_check_mark: | |
| 8.3 | :heavy_check_mark: | |
| 8.4 | :heavy_check_mark: | |
| PHP Version | Status | Comment |
|-------------|--------------------|---------------------------------------------------------|
| 7.2 | :x: | |
| 7.3 | :x: | phpmicro 和许多扩展不支持 7.3、7.4 版本 |
| 7.4 | :x: | phpmicro 和许多扩展不支持 7.3、7.4 版本 |
| 8.0 | :warning: | PHP 官方已停止 8.0 的维护,我们不再处理 8.0 相关的 backport 支持 |
| 8.1 | :heavy_check_mark: | PHP 官方仅对 8.1 提供安全更新,在 8.5 发布后我们不再处理 8.1 相关的 backport 支持 |
| 8.2 | :heavy_check_mark: | |
| 8.3 | :heavy_check_mark: | |
| 8.4 | :heavy_check_mark: | |
| 8.5 (alpha) | :warning: | PHP 8.5 目前处于 alpha 阶段 |

> 这个表格的支持状态是 static-php-cli 对构建对应版本的支持情况,不是 PHP 官方对该版本的支持情况。

Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ Here is the supported OS and arch, where :octocat: represents support for GitHub

Currently supported PHP versions for compilation:

> :warning: supported but not maintained by static-php-cli authors
> :warning: Partial support, there may be issues with newer test versions or older versions.
>
> :heavy_check_mark: supported
>
Expand All @@ -95,10 +95,11 @@ Currently supported PHP versions for compilation:
| 7.3 | :x: | phpmicro and some extensions not supported on 7.x |
| 7.4 | :x: | phpmicro and some extensions not supported on 7.x |
| 8.0 | :warning: | PHP official has stopped maintenance of 8.0, we no longer provide backport support for version 8.0 |
| 8.1 | :heavy_check_mark: | PHP official has security fixes only |
| 8.1 | :heavy_check_mark: | PHP official has security fixes only, we no longer provide backport support when 8.5 released |
| 8.2 | :heavy_check_mark: | |
| 8.3 | :heavy_check_mark: | |
| 8.4 | :heavy_check_mark: | |
| 8.5 (alpha) | :warning: | PHP 8.5 is in alpha |

> This table shows the support status for static-php-cli in building the corresponding version,
> not the official PHP support status for that version.
Expand Down
1 change: 1 addition & 0 deletions bin/spc-alpine-docker
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ RUN apk update; \
m4 \
make \
pkgconfig \
re2c \
wget \
xz \
gettext-dev \
Expand Down
9 changes: 6 additions & 3 deletions bin/spc-gnu-docker
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
set -e

# This file is using docker to run commands
SPC_DOCKER_VERSION=v4
SPC_DOCKER_VERSION=v5

# Detect docker can run
if ! which docker >/dev/null; then
Expand Down Expand Up @@ -102,17 +102,20 @@ RUN curl -o cmake.tgz -#fSL https://github.com/Kitware/CMake/releases/download/v
tar -xzf cmake.tgz -C /cmake --strip-components 1

WORKDIR /app
ADD ./src /app/src
COPY ./composer.* /app/
ADD ./bin/setup-runtime /app/bin/setup-runtime
ADD ./bin/spc /app/bin/spc
RUN /app/bin/setup-runtime
ADD ./src /app/src
RUN /app/bin/php /app/bin/composer install --no-dev
ENV SPC_LIBC=glibc
ENV PATH="/app/bin:/cmake/bin:/opt/rh/devtoolset-10/root/usr/bin:\$PATH"

ADD ./config/env.ini /app/config/env.ini
ADD ./config /app/config
RUN CC=gcc bin/spc doctor --auto-fix --debug
RUN if [ -f /app/buildroot/bin/re2c ]; then \
cp /app/buildroot/bin/re2c /usr/local/bin/re2c ;\
fi

RUN curl -o make.tgz -fsSL https://ftp.gnu.org/gnu/make/make-4.4.tar.gz && \
tar -zxvf make.tgz && \
Expand Down
1 change: 0 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
"captainhook/hook-installer": "^1.0",
"friendsofphp/php-cs-fixer": "^3.60",
"humbug/box": "^4.5.0 || ^4.6.0",
"nunomaduro/collision": "^7.8",
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^10.3 || ^9.5"
},
Expand Down
Loading