From 641ad8becff995cc73c6fbabd4822a61c800401d Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 8 May 2026 19:27:11 +0800 Subject: [PATCH] Add patch for PHP 8.2 compatibility in imap extension --- src/Package/Extension/imap.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Package/Extension/imap.php b/src/Package/Extension/imap.php index e9879b48..df53cfe7 100644 --- a/src/Package/Extension/imap.php +++ b/src/Package/Extension/imap.php @@ -9,6 +9,7 @@ use StaticPHP\Attribute\Package\BeforeStage; use StaticPHP\Attribute\Package\CustomPhpConfigureArg; use StaticPHP\Attribute\Package\Extension; use StaticPHP\Attribute\Package\Validate; +use StaticPHP\Attribute\PatchDescription; use StaticPHP\Exception\WrongUsageException; use StaticPHP\Package\PackageBuilder; use StaticPHP\Package\PackageInstaller; @@ -26,6 +27,19 @@ class imap extends PhpExtensionPackage } } + #[BeforeStage('php', [php::class, 'makeCliForUnix'], 'ext-imap')] + #[PatchDescription('Fix imap zend_zval_value_name() call for PHP 8.2 compatibility')] + public function patchBeforeMake(): void + { + // zend_zval_value_name() was introduced in PHP 8.3; PHP 8.2 imap backported the call but not the declaration + // replace with the equivalent PHP 8.2-compatible function + FileSystem::replaceFileStr( + "{$this->getSourceDir()}/php_imap.c", + 'zend_zval_value_name(data)', + 'zend_zval_type_name(data)' + ); + } + #[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-imap')] public function patchBeforeBuildconf(PackageInstaller $installer): void {