diff --git a/config/env.custom.ini b/config/env.custom.ini deleted file mode 100644 index a2ae8b42..00000000 --- a/config/env.custom.ini +++ /dev/null @@ -1,14 +0,0 @@ -; Modify this file name to `env.custom.ini`, and run `bin/spc-gnu-docker`, -; you can compile a GNU libc based static binary ! -[global] -SPC_SKIP_DOCTOR_CHECK_ITEMS="if musl-wrapper is installed,if musl-cross-make is installed" - -[linux] -CC=gcc -CXX=g++ -AR=ar -LD=ld -SPC_DEFAULT_C_FLAGS=-fPIC -SPC_NO_MUSL_PATH=yes -SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM="-Wl,-O1 -pie" -SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-ldl -lpthread -lm -lresolv -lutil" diff --git a/config/env.ini b/config/env.ini index 0f14c9f9..71cdb956 100644 --- a/config/env.ini +++ b/config/env.ini @@ -129,6 +129,8 @@ SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS="-L${BUILD_LIB_PATH}" SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="${SPC_PHP_DEFAULT_OPTIMIZE_CFLAGS}" ; EXTRA_LIBS for `make` php SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-lresolv" +; embed type for php, static (libphp.a) or shared (libphp.dylib) +SPC_CMD_VAR_PHP_EMBED_TYPE="static" [freebsd] ; compiler environments diff --git a/config/source.json b/config/source.json index 81204229..e42fc0e7 100644 --- a/config/source.json +++ b/config/source.json @@ -40,7 +40,7 @@ "type": "git", "rev": "v2.5.2", "url": "https://git.savannah.nongnu.org/git/attr.git", - "provide-pre-built": false, + "provide-pre-built": true, "license": { "type": "file", "path": "doc/COPYING" @@ -337,7 +337,7 @@ "type": "git", "rev": "v2.3.2", "url": "https://git.savannah.nongnu.org/git/acl.git", - "provide-pre-built": false, + "provide-pre-built": true, "license": { "type": "file", "path": "doc/COPYING" diff --git a/src/SPC/builder/Extension.php b/src/SPC/builder/Extension.php index 4cdc796c..a7886cd8 100644 --- a/src/SPC/builder/Extension.php +++ b/src/SPC/builder/Extension.php @@ -139,7 +139,8 @@ class Extension /** * Patch code before ./buildconf - * If you need to patch some code, overwrite this and return true + * If you need to patch some code, overwrite this + * return true if you patched something, false if not */ public function patchBeforeBuildconf(): bool { @@ -148,7 +149,8 @@ class Extension /** * Patch code before ./configure - * If you need to patch some code, overwrite this and return true + * If you need to patch some code, overwrite this + * return true if you patched something, false if not */ public function patchBeforeConfigure(): bool { @@ -157,7 +159,8 @@ class Extension /** * Patch code before make - * If you need to patch some code, overwrite this and return true + * If you need to patch some code, overwrite this + * return true if you patched something, false if not */ public function patchBeforeMake(): bool { diff --git a/src/SPC/builder/LibraryBase.php b/src/SPC/builder/LibraryBase.php index deb7c45f..a66b9e6b 100644 --- a/src/SPC/builder/LibraryBase.php +++ b/src/SPC/builder/LibraryBase.php @@ -294,11 +294,31 @@ abstract class LibraryBase // do something before pack, default do nothing. overwrite this method to do something (e.g. modify pkg-config file) } + /** + * Patch code before ./buildconf + * If you need to patch some code, overwrite this + * return true if you patched something, false if notand return true + */ + public function patchBeforeBuildconf(): bool + { + return false; + } + + /** + * Patch code before ./configure + * If you need to patch some code, overwrite this + * return true if you patched something, false if not + */ public function patchBeforeConfigure(): bool { return false; } + /** + * Patch code before make + * If you need to patch some code, overwrite this + * return true if you patched something, false if not + */ public function patchBeforeMake(): bool { return false; diff --git a/src/SPC/store/SourcePatcher.php b/src/SPC/store/SourcePatcher.php index 3c90e3ec..bbb07a8f 100644 --- a/src/SPC/store/SourcePatcher.php +++ b/src/SPC/store/SourcePatcher.php @@ -47,6 +47,11 @@ class SourcePatcher logger()->info('Extension [' . $ext->getName() . '] patched before buildconf'); } } + foreach ($builder->getLibs() as $lib) { + if ($lib->patchBeforeBuildconf() === true) { + logger()->info('Library [' . $lib->getName() . '] patched before buildconf'); + } + } // patch windows php 8.1 bug if (PHP_OS_FAMILY === 'Windows' && $builder->getPHPVersionID() >= 80100 && $builder->getPHPVersionID() < 80200) { logger()->info('Patching PHP 8.1 windows Fiber bug');