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 {