diff --git a/src/SPC/builder/extension/password_argon2.php b/src/SPC/builder/extension/password_argon2.php index fd45ca7e..51d2afff 100644 --- a/src/SPC/builder/extension/password_argon2.php +++ b/src/SPC/builder/extension/password_argon2.php @@ -23,4 +23,21 @@ class password_argon2 extends Extension throw new RuntimeException('extension ' . $this->getName() . ' failed sanity check'); } } + + public function patchBeforeMake(): bool + { + if ($this->builder->getLib('libsodium') !== null) { + $extraLibs = getenv('SPC_EXTRA_LIBS'); + if ($extraLibs !== false) { + $extraLibs = str_replace( + [BUILD_LIB_PATH . '/libargon2.a', BUILD_LIB_PATH . '/libsodium.a'], + ['', BUILD_LIB_PATH . '/libargon2.a' . ' ' . BUILD_LIB_PATH . '/libsodium.a'], + $extraLibs, + ); + $extraLibs = trim(preg_replace('/\s+/', ' ', $extraLibs)); // normalize spacing + f_putenv('SPC_EXTRA_LIBS=' . $extraLibs); + } + } + return false; + } }