From 8970af6d4c424b6bd533230aa0b1d5f61529df4c Mon Sep 17 00:00:00 2001 From: edram Date: Thu, 27 Aug 2026 14:24:58 +0800 Subject: [PATCH] fix(imap): isolate c-client headers from global include path c-client's private unix.h leaked into PHP configure checks, causing installed development headers to require an unshipped file. Keep c-client headers in the path already supported by ext-imap. Co-Authored-By: Codex GPT-5 --- src/Package/Library/imap.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Package/Library/imap.php b/src/Package/Library/imap.php index 3c9f261c9..213fc6e64 100644 --- a/src/Package/Library/imap.php +++ b/src/Package/Library/imap.php @@ -73,12 +73,14 @@ public function buildLinux(LibraryPackage $lib, PackageInstaller $installer): vo throw $e; } } + $cClientIncludeDir = "{$lib->getIncludeDir()}/c-client"; + FileSystem::createDir($cClientIncludeDir); try { shell() ->exec("cp -rf {$lib->getSourceDir()}/c-client/c-client.a {$lib->getLibDir()}/libc-client.a") ->exec("cp -rf {$lib->getSourceDir()}/c-client/*.c {$lib->getLibDir()}/") - ->exec("cp -rf {$lib->getSourceDir()}/c-client/*.h {$lib->getIncludeDir()}/") - ->exec("cp -rf {$lib->getSourceDir()}/src/osdep/unix/*.h {$lib->getIncludeDir()}/"); + ->exec("cp -rf {$lib->getSourceDir()}/c-client/*.h {$cClientIncludeDir}/") + ->exec("cp -rf {$lib->getSourceDir()}/src/osdep/unix/*.h {$cClientIncludeDir}/"); } catch (\Throwable) { // last command throws an exception, no idea why since it works } @@ -111,12 +113,14 @@ public function buildDarwin(LibraryPackage $lib, PackageInstaller $installer): v throw $e; } } + $cClientIncludeDir = "{$lib->getIncludeDir()}/c-client"; + FileSystem::createDir($cClientIncludeDir); try { shell() ->exec("cp -rf {$lib->getSourceDir()}/c-client/c-client.a {$lib->getLibDir()}/libc-client.a") ->exec("cp -rf {$lib->getSourceDir()}/c-client/*.c {$lib->getLibDir()}/") - ->exec("cp -rf {$lib->getSourceDir()}/c-client/*.h {$lib->getIncludeDir()}/") - ->exec("cp -rf {$lib->getSourceDir()}/src/osdep/unix/*.h {$lib->getIncludeDir()}/"); + ->exec("cp -rf {$lib->getSourceDir()}/c-client/*.h {$cClientIncludeDir}/") + ->exec("cp -rf {$lib->getSourceDir()}/src/osdep/unix/*.h {$cClientIncludeDir}/"); } catch (\Throwable) { // last command throws an exception, no idea why since it works }