From 0548aba24880a901692242c27b0bdedce9258275 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Sat, 7 Mar 2026 21:20:34 +0800 Subject: [PATCH] Add ext-curl --- config/pkg/ext/builtin-extensions.yml | 9 +++++++++ src/Package/Library/curl.php | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/config/pkg/ext/builtin-extensions.yml b/config/pkg/ext/builtin-extensions.yml index 8b5a926d..074f6ef9 100644 --- a/config/pkg/ext/builtin-extensions.yml +++ b/config/pkg/ext/builtin-extensions.yml @@ -11,6 +11,15 @@ ext-calendar: type: php-extension ext-ctype: type: php-extension +ext-curl: + type: php-extension + depends: + - curl + depends@windows: + - ext-zlib + - ext-openssl + php-extension: + arg-type: with ext-mbregex: type: php-extension depends: diff --git a/src/Package/Library/curl.php b/src/Package/Library/curl.php index 283c765a..0edca93f 100644 --- a/src/Package/Library/curl.php +++ b/src/Package/Library/curl.php @@ -55,6 +55,12 @@ class curl // patch pkgconf $lib->patchPkgconfPrefix(['libcurl.pc']); + // curl's CMake embeds krb5 link flags directly without following Requires.private chain, + // so -lkrb5support (from mit-krb5.pc Libs.private) is missing from libcurl.pc. + $pc_path = "{$lib->getLibDir()}/pkgconfig/libcurl.pc"; + if (str_contains(FileSystem::readFile($pc_path), '-lgssapi_krb5')) { + FileSystem::replaceFileRegex($pc_path, '/-lcom_err$/m', '-lcom_err -lkrb5support'); + } shell()->cd("{$lib->getLibDir()}/cmake/CURL/") ->exec("sed -ie 's|\"/lib/libcurl.a\"|\"{$lib->getLibDir()}/libcurl.a\"|g' CURLTargets-release.cmake"); }