From 2511ee8a4c4f08370fd79bb310e48cdfd1294f33 Mon Sep 17 00:00:00 2001 From: henderkes Date: Fri, 20 Feb 2026 16:47:01 +0700 Subject: [PATCH] fix krb5 (can't do shared build with zig) --- config/env.ini | 2 +- src/SPC/builder/unix/library/krb5.php | 10 ++++++++++ src/SPC/util/executor/UnixAutoconfExecutor.php | 14 +++----------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/config/env.ini b/config/env.ini index cfd86f67..63cd029a 100644 --- a/config/env.ini +++ b/config/env.ini @@ -98,7 +98,7 @@ LD=${SPC_LINUX_DEFAULT_LD} ; default compiler flags, used in CMake toolchain file, openssl and pkg-config build SPC_DEFAULT_C_FLAGS="-fPIC -Os" SPC_DEFAULT_CXX_FLAGS="-fPIC -Os" -SPC_DEFAULT_LD_FLAGS="-Wl,--as-needed" +SPC_DEFAULT_LD_FLAGS="-Wl,--as-needed -Wl,--undefined-version" ; upx executable path UPX_EXEC=${PKG_ROOT_PATH}/bin/upx ; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches diff --git a/src/SPC/builder/unix/library/krb5.php b/src/SPC/builder/unix/library/krb5.php index 79834645..1d739237 100644 --- a/src/SPC/builder/unix/library/krb5.php +++ b/src/SPC/builder/unix/library/krb5.php @@ -40,6 +40,16 @@ trait krb5 ->appendEnv($extraEnv) ->optionalLib('ldap', '--with-ldap', '--without-ldap') ->optionalLib('libedit', '--with-libedit', '--without-libedit') + ->removeConfigureArgs( + '--enable-static', + '--disable-static', + '--enable-shared', + '--disable-shared' + ) + ->addConfigureArgs( + '--enable-static', + '--disable-shared' + ) ->configure(...$args) ->make(); $this->patchPkgconfPrefix([ diff --git a/src/SPC/util/executor/UnixAutoconfExecutor.php b/src/SPC/util/executor/UnixAutoconfExecutor.php index 5d3f136e..228bc826 100644 --- a/src/SPC/util/executor/UnixAutoconfExecutor.php +++ b/src/SPC/util/executor/UnixAutoconfExecutor.php @@ -16,12 +16,11 @@ class UnixAutoconfExecutor extends Executor protected array $configure_args = []; - protected array $ignore_args = []; - public function __construct(protected BSDLibraryBase|LinuxLibraryBase|MacOSLibraryBase $library) { parent::__construct($library); $this->initShell(); + $this->configure_args = $this->getDefaultConfigureArgs(); } /** @@ -29,19 +28,12 @@ class UnixAutoconfExecutor extends Executor */ public function configure(...$args): static { - // remove all the ignored args - $args = array_merge($args, $this->getDefaultConfigureArgs(), $this->configure_args); - $args = array_diff($args, $this->ignore_args); + $args = array_merge($args, $this->configure_args); $configure_args = implode(' ', $args); return $this->seekLogFileOnException(fn () => $this->shell->exec("./configure {$configure_args}")); } - public function getConfigureArgsString(): string - { - return implode(' ', array_merge($this->getDefaultConfigureArgs(), $this->configure_args)); - } - /** * Run make * @@ -111,7 +103,7 @@ class UnixAutoconfExecutor extends Executor */ public function removeConfigureArgs(...$args): static { - $this->ignore_args = [...$this->ignore_args, ...$args]; + $this->configure_args = array_diff($this->configure_args, $args); return $this; }