From a678d908d50fa86b1ab0f1966f2e7f14fb26bcc9 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Mon, 9 Mar 2026 14:45:36 +0800 Subject: [PATCH] Add ext-event --- config/pkg/ext/ext-event.yml | 19 ++++++++++++++ src/Package/Extension/event.php | 46 +++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 config/pkg/ext/ext-event.yml create mode 100644 src/Package/Extension/event.php diff --git a/config/pkg/ext/ext-event.yml b/config/pkg/ext/ext-event.yml new file mode 100644 index 00000000..dd9c1c8e --- /dev/null +++ b/config/pkg/ext/ext-event.yml @@ -0,0 +1,19 @@ +ext-event: + type: php-extension + artifact: + source: + type: url + url: 'https://bitbucket.org/osmanov/pecl-event/get/3.1.4.tar.gz' + extract: php-src/ext/event + metadata: + license-files: [LICENSE] + license: PHP-3.01 + depends: + - libevent + - ext-openssl + suggests: + - ext-sockets + php-extension: + support: + Windows: wip + arg-type: custom diff --git a/src/Package/Extension/event.php b/src/Package/Extension/event.php new file mode 100644 index 00000000..db119274 --- /dev/null +++ b/src/Package/Extension/event.php @@ -0,0 +1,46 @@ +getBuilder()->getBuildRootPath()}"; + if ($installer->getLibraryPackage('openssl')) { + $arg .= " --with-event-openssl={$this->getBuilder()->getBuildRootPath()}"; + } + if ($installer->getPhpExtensionPackage('ext-sockets')) { + $arg .= ' --enable-event-sockets'; + } else { + $arg .= ' --disable-event-sockets'; + } + return $arg; + } + + #[BeforeStage('php', [php::class, 'makeForUnix'], 'ext-event')] + #[PatchDescription('Prevent event extension compile error on macOS')] + public function patchBeforeMake(PackageInstaller $installer): void + { + // Prevent event extension compile error on macOS + if (SystemTarget::getTargetOS() === 'Darwin') { + $php_src = $installer->getTargetPackage('php')->getSourceDir(); + FileSystem::replaceFileRegex("{$php_src}/main/php_config.h", '/^#define HAVE_OPENPTY 1$/m', ''); + } + } +}