Skip to content
Merged
Changes from 1 commit
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: 2 additions & 0 deletions src/SPC/builder/extension/openssl.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ public function getUnixConfigureArg(bool $shared = false): string
$args = '--with-openssl=' . ($shared ? 'shared,' : '') . BUILD_ROOT_PATH . $openssl_dir;
if ($this->builder->getPHPVersionID() >= 80500 || !$this->builder->getOption('enable-zts')) {
$args .= ' --with-openssl-argon2 OPENSSL_LIBS="-lz"';
} else {
$args .= ' --without-openssl-argon2';
Copy link
Collaborator

@henderkes henderkes Aug 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not needed, I mean that we must disable the fake password-argon2 extension in case openssl-argon2 is used.

Copy link
Owner Author

@crazywhalecc crazywhalecc Aug 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah got it. But --with-password-argon2 is different from --with-openssl-argon2. Considering that Herd and some laravel projects use it, and it has not been deprecated yet, we should treat them separately. We cannot remove it until password-argon2 is deprecated in PHP standard extension.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

with-openssl-argon2 implements the functionality of with-password-argon2. When both are defined, I'm not sure which backend will be used.

Essentially we need to have this check in both extensions and use the openssl one if possible, but fall back to the coding contest implementation.

Copy link
Owner Author

@crazywhalecc crazywhalecc Aug 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to config.m4 and function source, --with-password-argon2 is defined to use the standalone libargon2, while --with-openssl-argon2 is using openssl. And these are used from different function: password_hash and openssl_password_hash. They shouldn't conflict.

Copy link
Collaborator

@henderkes henderkes Aug 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

password_hash exists either way. When no implementation is chosen, it falls back to libsodium (no threads option). Argon2 and openssl can change the bachend implementation, but I'm not sure which backend will be chosen in case both are enabled. Remi explicitly enables --with-openssl-argon2 and --without-password-argon2.

We want it to use the openssl backend because it's the most well-maintained implementation.

Copy link
Owner Author

@crazywhalecc crazywhalecc Aug 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like if we enabled libargon2, it will use it first. Otherwise it will search from zend bucket.

Anyway, I don't think we have to adjust pwhash function and dependency here. But if we could confirm and validate that openssl is able to cover it, we could make password-argon2 to depends on openssl instead of libargon2 later.

Copy link
Collaborator

@henderkes henderkes Aug 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, only from php 8.4 for NTS and 8.5 for ZTS sadly. My point is that we should let openssl be the backend for the password_hash function if possible. I'll look into it tomorrow.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}
return $args;
}
Expand Down