mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-20 23:35:37 +08:00
[3.0] Refactor extensions (#1038)
This commit is contained in:
19
.github/workflows/build-unix.yml
vendored
19
.github/workflows/build-unix.yml
vendored
@@ -46,6 +46,10 @@ on:
|
|||||||
description: Prefer pre-built binaries (reduce build time)
|
description: Prefer pre-built binaries (reduce build time)
|
||||||
type: boolean
|
type: boolean
|
||||||
default: true
|
default: true
|
||||||
|
with-suggested-libs:
|
||||||
|
description: Build with suggested libs
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
debug:
|
debug:
|
||||||
description: Show full build logs
|
description: Show full build logs
|
||||||
type: boolean
|
type: boolean
|
||||||
@@ -86,6 +90,10 @@ on:
|
|||||||
description: Prefer pre-built binaries (reduce build time)
|
description: Prefer pre-built binaries (reduce build time)
|
||||||
type: boolean
|
type: boolean
|
||||||
default: true
|
default: true
|
||||||
|
with-suggested-libs:
|
||||||
|
description: Include suggested libs
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
debug:
|
debug:
|
||||||
description: Show full build logs
|
description: Show full build logs
|
||||||
type: boolean
|
type: boolean
|
||||||
@@ -157,6 +165,9 @@ jobs:
|
|||||||
if [ ${{ inputs.prefer-pre-built }} == true ]; then
|
if [ ${{ inputs.prefer-pre-built }} == true ]; then
|
||||||
DOWN_CMD="$DOWN_CMD --prefer-pre-built"
|
DOWN_CMD="$DOWN_CMD --prefer-pre-built"
|
||||||
fi
|
fi
|
||||||
|
if [ ${{ inputs.with-suggested-libs }} == true ]; then
|
||||||
|
BUILD_CMD="$BUILD_CMD --with-suggested-libs"
|
||||||
|
fi
|
||||||
if [ ${{ inputs.build-cli }} == true ]; then
|
if [ ${{ inputs.build-cli }} == true ]; then
|
||||||
BUILD_CMD="$BUILD_CMD --build-cli"
|
BUILD_CMD="$BUILD_CMD --build-cli"
|
||||||
fi
|
fi
|
||||||
@@ -202,6 +213,14 @@ jobs:
|
|||||||
# if: ${{ failure() }}
|
# if: ${{ failure() }}
|
||||||
# uses: mxschmitt/action-tmate@v3
|
# uses: mxschmitt/action-tmate@v3
|
||||||
|
|
||||||
|
# Upload debug logs
|
||||||
|
- if: ${{ inputs.debug && failure() }}
|
||||||
|
name: "Upload build logs on failure"
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: spc-logs-${{ inputs.php-version }}-${{ inputs.os }}
|
||||||
|
path: log/*.log
|
||||||
|
|
||||||
# Upload cli executable
|
# Upload cli executable
|
||||||
- if: ${{ inputs.build-cli == true }}
|
- if: ${{ inputs.build-cli == true }}
|
||||||
name: "Upload PHP cli SAPI"
|
name: "Upload PHP cli SAPI"
|
||||||
|
|||||||
4
.github/workflows/build-windows-x86_64.yml
vendored
4
.github/workflows/build-windows-x86_64.yml
vendored
@@ -29,6 +29,10 @@ on:
|
|||||||
description: prefer pre-built binaries (reduce build time)
|
description: prefer pre-built binaries (reduce build time)
|
||||||
type: boolean
|
type: boolean
|
||||||
default: true
|
default: true
|
||||||
|
with-suggested-libs:
|
||||||
|
description: Build with suggested libs
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
debug:
|
debug:
|
||||||
description: enable debug logs
|
description: enable debug logs
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|||||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -33,6 +33,9 @@ packlib_files.txt
|
|||||||
.php-cs-fixer.cache
|
.php-cs-fixer.cache
|
||||||
.phpunit.result.cache
|
.phpunit.result.cache
|
||||||
|
|
||||||
|
# doctor cache fallback (when ~/.cache/spc/ is not writable)
|
||||||
|
.spc-doctor.lock
|
||||||
|
|
||||||
# exclude self-runtime
|
# exclude self-runtime
|
||||||
/bin/*
|
/bin/*
|
||||||
!/bin/spc*
|
!/bin/spc*
|
||||||
@@ -61,3 +64,6 @@ log/
|
|||||||
# spc.phar
|
# spc.phar
|
||||||
spc.phar
|
spc.phar
|
||||||
spc.exe
|
spc.exe
|
||||||
|
|
||||||
|
# dumped files from StaticPHP v3
|
||||||
|
/dump-*.json
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# static-php-cli
|
# StaticPHP
|
||||||
|
|
||||||
[](README.md)
|
[](README.md)
|
||||||
[](README-zh.md)
|
[](README-zh.md)
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
[](https://github.com/crazywhalecc/static-php-cli/actions/workflows/tests.yml)
|
[](https://github.com/crazywhalecc/static-php-cli/actions/workflows/tests.yml)
|
||||||
[](https://github.com/crazywhalecc/static-php-cli/blob/main/LICENSE)
|
[](https://github.com/crazywhalecc/static-php-cli/blob/main/LICENSE)
|
||||||
|
|
||||||
**static-php-cli** 是一个用于构建静态、独立 PHP 运行时的强大工具,支持众多流行扩展。
|
**StaticPHP** 是一个用于构建静态编译可执行文件(包括 PHP、扩展等)的强大工具。
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ download-options:
|
|||||||
|
|
||||||
### 3. 静态 PHP 使用
|
### 3. 静态 PHP 使用
|
||||||
|
|
||||||
现在您可以将 static-php-cli 构建的二进制文件复制到另一台机器上,无需依赖即可运行:
|
现在您可以将 StaticPHP 构建的二进制文件复制到另一台机器上,无需依赖即可运行:
|
||||||
|
|
||||||
```
|
```
|
||||||
# php-cli
|
# php-cli
|
||||||
@@ -97,7 +97,7 @@ buildroot/bin/php-fpm -v
|
|||||||
|
|
||||||
## 文档
|
## 文档
|
||||||
|
|
||||||
当前 README 包含基本用法。有关 static-php-cli 的所有功能,
|
当前 README 包含基本用法。有关 StaticPHP 的所有功能,
|
||||||
请访问 <https://static-php.dev>。
|
请访问 <https://static-php.dev>。
|
||||||
|
|
||||||
## 直接下载
|
## 直接下载
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# static-php-cli
|
# StaticPHP
|
||||||
|
|
||||||
[](README-zh.md)
|
[](README-zh.md)
|
||||||
[](README.md)
|
[](README.md)
|
||||||
@@ -6,8 +6,7 @@
|
|||||||
[](https://github.com/crazywhalecc/static-php-cli/actions/workflows/tests.yml)
|
[](https://github.com/crazywhalecc/static-php-cli/actions/workflows/tests.yml)
|
||||||
[](https://github.com/crazywhalecc/static-php-cli/blob/main/LICENSE)
|
[](https://github.com/crazywhalecc/static-php-cli/blob/main/LICENSE)
|
||||||
|
|
||||||
**static-php-cli** is a powerful tool designed for building static, standalone PHP runtime
|
**StaticPHP** is a powerful tool designed for building portable executables including PHP, extensions, and more.
|
||||||
with popular extensions.
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
@@ -81,7 +80,7 @@ Run command:
|
|||||||
|
|
||||||
### 3. Static PHP usage
|
### 3. Static PHP usage
|
||||||
|
|
||||||
Now you can copy binaries built by static-php-cli to another machine and run with no dependencies:
|
Now you can copy binaries built by StaticPHP to another machine and run with no dependencies:
|
||||||
|
|
||||||
```
|
```
|
||||||
# php-cli
|
# php-cli
|
||||||
@@ -98,7 +97,7 @@ buildroot/bin/php-fpm -v
|
|||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
The current README contains basic usage. For all the features of static-php-cli,
|
The current README contains basic usage. For all the features of StaticPHP,
|
||||||
see <https://static-php.dev> .
|
see <https://static-php.dev> .
|
||||||
|
|
||||||
## Direct Download
|
## Direct Download
|
||||||
|
|||||||
9
config/artifact/ncurses.yml
Normal file
9
config/artifact/ncurses.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ncurses:
|
||||||
|
binary: hosted
|
||||||
|
metadata:
|
||||||
|
license-files:
|
||||||
|
- COPYING
|
||||||
|
source:
|
||||||
|
type: filelist
|
||||||
|
url: 'https://ftp.gnu.org/pub/gnu/ncurses/'
|
||||||
|
regex: '/href="(?<file>ncurses-(?<version>[^"]+)\.tar\.gz)"/'
|
||||||
@@ -5,3 +5,7 @@ php-src:
|
|||||||
license: PHP-3.01
|
license: PHP-3.01
|
||||||
source:
|
source:
|
||||||
type: php-release
|
type: php-release
|
||||||
|
domain: 'https://www.php.net'
|
||||||
|
source-mirror:
|
||||||
|
type: php-release
|
||||||
|
domain: 'https://phpmirror.static-php.dev'
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\BitBucketTag;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\DownloadTypeInterface;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\FileList;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\Git;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\GitHubRelease;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\GitHubTarball;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\HostedPackageBin;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\LocalDir;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\PhpRelease;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\PIE;
|
|
||||||
use StaticPHP\Artifact\Downloader\Type\Url;
|
|
||||||
|
|
||||||
/* @return array<string, DownloadTypeInterface> */
|
|
||||||
return [
|
|
||||||
'bitbuckettag' => BitBucketTag::class,
|
|
||||||
'filelist' => FileList::class,
|
|
||||||
'git' => Git::class,
|
|
||||||
'ghrel' => GitHubRelease::class,
|
|
||||||
'ghtar' => GitHubTarball::class,
|
|
||||||
'ghtagtar' => GitHubTarball::class,
|
|
||||||
'local' => LocalDir::class,
|
|
||||||
'pie' => PIE::class,
|
|
||||||
'url' => Url::class,
|
|
||||||
'php-release' => PhpRelease::class,
|
|
||||||
'hosted' => HostedPackageBin::class,
|
|
||||||
];
|
|
||||||
@@ -121,6 +121,8 @@ SPC_CMD_PREFIX_PHP_CONFIGURE="./configure --prefix= --with-valgrind=no --disable
|
|||||||
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
|
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
|
||||||
; EXTRA_CFLAGS for `configure` and `make` php
|
; EXTRA_CFLAGS for `configure` and `make` php
|
||||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fno-ident -fPIE ${SPC_DEFAULT_C_FLAGS}"
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fno-ident -fPIE ${SPC_DEFAULT_C_FLAGS}"
|
||||||
|
; EXTRA_CXXFLAGS for `configure` and `make` php
|
||||||
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_CXXFLAGS="-g -fstack-protector-strong -fno-ident -fPIE ${SPC_DEFAULT_CXX_FLAGS}"
|
||||||
; EXTRA_LDFLAGS for `make` php, can use -release to set a soname for libphp.so
|
; EXTRA_LDFLAGS for `make` php, can use -release to set a soname for libphp.so
|
||||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=""
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=""
|
||||||
|
|
||||||
@@ -132,6 +134,8 @@ OPENSSLDIR=""
|
|||||||
; build target: macho or macho (possibly we could support macho-universal in the future)
|
; build target: macho or macho (possibly we could support macho-universal in the future)
|
||||||
; Currently we do not support universal and cross-compilation for macOS.
|
; Currently we do not support universal and cross-compilation for macOS.
|
||||||
SPC_TARGET=native-macos
|
SPC_TARGET=native-macos
|
||||||
|
; Whether to use brew version of llvm or system version (valid options: 'system', 'brew', default: 'system')
|
||||||
|
SPC_USE_LLVM=system
|
||||||
; compiler environments (default value is defined by selected toolchain)
|
; compiler environments (default value is defined by selected toolchain)
|
||||||
CC=${SPC_DEFAULT_CC}
|
CC=${SPC_DEFAULT_CC}
|
||||||
CXX=${SPC_DEFAULT_CXX}
|
CXX=${SPC_DEFAULT_CXX}
|
||||||
@@ -155,5 +159,9 @@ SPC_CMD_PREFIX_PHP_CONFIGURE="./configure --prefix= --with-valgrind=no --enable-
|
|||||||
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
|
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
|
||||||
; EXTRA_CFLAGS for `configure` and `make` php
|
; EXTRA_CFLAGS for `configure` and `make` php
|
||||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fpic -fpie -Werror=unknown-warning-option ${SPC_DEFAULT_C_FLAGS}"
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fpic -fpie -Werror=unknown-warning-option ${SPC_DEFAULT_C_FLAGS}"
|
||||||
|
; EXTRA_CXXFLAGS for `configure` and `make` php
|
||||||
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_CXXFLAGS="-g -fstack-protector-strong -fno-ident -fpie -Werror=unknown-warning-option ${SPC_DEFAULT_CXX_FLAGS}"
|
||||||
|
; EXTRA_LDFLAGS for `make` php, can use -release to set a soname for libphp.dylib
|
||||||
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=""
|
||||||
; minimum compatible macOS version (LLVM vars, availability not guaranteed)
|
; minimum compatible macOS version (LLVM vars, availability not guaranteed)
|
||||||
MACOSX_DEPLOYMENT_TARGET=12.0
|
MACOSX_DEPLOYMENT_TARGET=12.0
|
||||||
|
|||||||
@@ -373,6 +373,15 @@
|
|||||||
],
|
],
|
||||||
"static-libs-windows": [
|
"static-libs-windows": [
|
||||||
"avif.lib"
|
"avif.lib"
|
||||||
|
],
|
||||||
|
"lib-depends": [
|
||||||
|
"libaom"
|
||||||
|
],
|
||||||
|
"lib-suggests": [
|
||||||
|
"libwebp",
|
||||||
|
"libjpeg",
|
||||||
|
"libxml2",
|
||||||
|
"libpng"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"libcares": {
|
"libcares": {
|
||||||
|
|||||||
@@ -1,5 +1,152 @@
|
|||||||
ext-bcmath:
|
ext-bcmath:
|
||||||
type: php-extension
|
type: php-extension
|
||||||
|
ext-bz2:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- bzip2
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: with-path
|
||||||
|
arg-type@windows: with
|
||||||
|
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-dba:
|
||||||
|
type: php-extension
|
||||||
|
suggests:
|
||||||
|
- qdbm
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
|
ext-dom:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- libxml2
|
||||||
|
- ext-xml
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-dom@shared_suffix@ --with-libxml=@build_root_path@'
|
||||||
|
arg-type@windows: with
|
||||||
|
ext-exif:
|
||||||
|
type: php-extension
|
||||||
|
ext-ffi:
|
||||||
|
type: php-extension
|
||||||
|
depends@unix:
|
||||||
|
- libffi
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: '--with-ffi=@shared_suffix@ --enable-zend-signals'
|
||||||
|
arg-type@windows: with
|
||||||
|
ext-fileinfo:
|
||||||
|
type: php-extension
|
||||||
|
ext-filter:
|
||||||
|
type: php-extension
|
||||||
|
ext-ftp:
|
||||||
|
type: php-extension
|
||||||
|
suggests:
|
||||||
|
- ext-openssl
|
||||||
|
ext-gd:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- zlib
|
||||||
|
- libpng
|
||||||
|
- ext-zlib
|
||||||
|
suggests:
|
||||||
|
- libavif
|
||||||
|
- libwebp
|
||||||
|
- libjpeg
|
||||||
|
- freetype
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
|
ext-gettext:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- gettext
|
||||||
|
php-extension:
|
||||||
|
arg-type: with-path
|
||||||
|
ext-gmp:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- gmp
|
||||||
|
php-extension:
|
||||||
|
arg-type: with-path
|
||||||
|
ext-iconv:
|
||||||
|
type: php-extension
|
||||||
|
depends@unix:
|
||||||
|
- libiconv
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: with-path
|
||||||
|
arg-type@windows: with
|
||||||
|
ext-intl:
|
||||||
|
type: php-extension
|
||||||
|
depends@unix:
|
||||||
|
- icu
|
||||||
|
ext-ldap:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ldap
|
||||||
|
suggests:
|
||||||
|
- gmp
|
||||||
|
- libsodium
|
||||||
|
- ext-openssl
|
||||||
|
php-extension:
|
||||||
|
arg-type: with-path
|
||||||
|
ext-libxml:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-xml
|
||||||
|
php-extension:
|
||||||
|
build-with-php: true
|
||||||
|
build-shared: false
|
||||||
|
arg-type: none
|
||||||
|
ext-mbregex:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- onig
|
||||||
|
- ext-mbstring
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
|
build-shared: false
|
||||||
|
build-static: true
|
||||||
|
display-name: mbstring
|
||||||
|
ext-mbstring:
|
||||||
|
type: php-extension
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
|
ext-mysqli:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-mysqlnd
|
||||||
|
php-extension:
|
||||||
|
arg-type: with
|
||||||
|
build-with-php: true
|
||||||
|
ext-mysqlnd:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- zlib
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: enable
|
||||||
|
arg-type@windows: with
|
||||||
|
build-with-php: true
|
||||||
|
ext-odbc:
|
||||||
|
type: php-extension
|
||||||
|
depends@unix:
|
||||||
|
- unixodbc
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: '--with-unixODBC@shared_path_suffix@'
|
||||||
|
ext-opcache:
|
||||||
|
type: php-extension
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: custom
|
||||||
|
arg-type@windows: enable
|
||||||
|
zend-extension: true
|
||||||
|
display-name: 'Zend Opcache'
|
||||||
ext-openssl:
|
ext-openssl:
|
||||||
type: php-extension
|
type: php-extension
|
||||||
depends:
|
depends:
|
||||||
@@ -10,6 +157,185 @@ ext-openssl:
|
|||||||
arg-type: custom
|
arg-type: custom
|
||||||
arg-type@windows: with
|
arg-type@windows: with
|
||||||
build-with-php: true
|
build-with-php: true
|
||||||
|
ext-password-argon2:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- libargon2
|
||||||
|
- ext-openssl
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
|
display-name: ''
|
||||||
|
ext-pcntl:
|
||||||
|
type: php-extension
|
||||||
|
ext-pdo:
|
||||||
|
type: php-extension
|
||||||
|
ext-pdo_mysql:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-pdo
|
||||||
|
- ext-mysqlnd
|
||||||
|
php-extension:
|
||||||
|
arg-type: with
|
||||||
|
ext-pdo_odbc:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-pdo
|
||||||
|
- ext-odbc
|
||||||
|
depends@unix:
|
||||||
|
- unixodbc
|
||||||
|
- ext-pdo
|
||||||
|
- ext-odbc
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
|
ext-pdo_pgsql:
|
||||||
|
type: php-extension
|
||||||
|
depends@unix:
|
||||||
|
- ext-pdo
|
||||||
|
- ext-pgsql
|
||||||
|
- postgresql
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: with-path
|
||||||
|
arg-type@windows: '--with-pdo-pgsql=yes'
|
||||||
|
ext-pdo_sqlite:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-pdo
|
||||||
|
- ext-sqlite3
|
||||||
|
- sqlite
|
||||||
|
php-extension:
|
||||||
|
arg-type: with
|
||||||
|
ext-pgsql:
|
||||||
|
type: php-extension
|
||||||
|
depends@unix:
|
||||||
|
- postgresql
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
|
ext-phar:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- zlib
|
||||||
|
ext-posix:
|
||||||
|
type: php-extension
|
||||||
|
ext-readline:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- libedit
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
Windows: wip
|
||||||
|
BSD: wip
|
||||||
|
arg-type: '--with-libedit --without-readline'
|
||||||
|
build-shared: false
|
||||||
|
build-static: true
|
||||||
|
ext-session:
|
||||||
|
type: php-extension
|
||||||
|
ext-shmop:
|
||||||
|
type: php-extension
|
||||||
|
php-extension:
|
||||||
|
build-with-php: true
|
||||||
|
ext-simplexml:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-xml
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: '--enable-simplexml@shared_suffix@ --with-libxml=@build_root_path@'
|
||||||
|
arg-type@windows: with
|
||||||
|
build-with-php: true
|
||||||
|
ext-snmp:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- net-snmp
|
||||||
|
php-extension:
|
||||||
|
arg-type: with
|
||||||
|
ext-soap:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-xml
|
||||||
|
- ext-session
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: '--enable-soap@shared_suffix@ --with-libxml=@build_root_path@'
|
||||||
|
arg-type@windows: with
|
||||||
|
build-with-php: true
|
||||||
|
ext-sockets:
|
||||||
|
type: php-extension
|
||||||
|
ext-sodium:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- libsodium
|
||||||
|
php-extension:
|
||||||
|
arg-type: with
|
||||||
|
ext-sqlite3:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- sqlite
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: with-path
|
||||||
|
arg-type@windows: with
|
||||||
|
build-with-php: true
|
||||||
|
ext-sysvmsg:
|
||||||
|
type: php-extension
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
Windows: 'no'
|
||||||
|
BSD: wip
|
||||||
|
ext-sysvsem:
|
||||||
|
type: php-extension
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
Windows: 'no'
|
||||||
|
BSD: wip
|
||||||
|
ext-sysvshm:
|
||||||
|
type: php-extension
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
BSD: wip
|
||||||
|
ext-tidy:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- tidy
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
Windows: wip
|
||||||
|
BSD: wip
|
||||||
|
arg-type: with-path
|
||||||
|
ext-tokenizer:
|
||||||
|
type: php-extension
|
||||||
|
php-extension:
|
||||||
|
build-with-php: true
|
||||||
|
ext-xml:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- libxml2
|
||||||
|
depends@windows:
|
||||||
|
- libxml2
|
||||||
|
- ext-iconv
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-xml@shared_suffix@ --with-libxml=@build_root_path@'
|
||||||
|
arg-type@windows: with
|
||||||
|
build-with-php: true
|
||||||
|
ext-xmlreader:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- libxml2
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-xmlreader@shared_suffix@ --with-libxml=@build_root_path@'
|
||||||
|
build-with-php: true
|
||||||
|
ext-xmlwriter:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- libxml2
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-xmlwriter@shared_suffix@ --with-libxml=@build_root_path@'
|
||||||
|
build-with-php: true
|
||||||
|
ext-xsl:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- libxslt
|
||||||
|
- ext-xml
|
||||||
|
- ext-dom
|
||||||
|
php-extension:
|
||||||
|
arg-type: with-path
|
||||||
|
build-with-php: true
|
||||||
ext-zlib:
|
ext-zlib:
|
||||||
type: php-extension
|
type: php-extension
|
||||||
depends:
|
depends:
|
||||||
|
|||||||
@@ -2,10 +2,8 @@ ext-amqp:
|
|||||||
type: php-extension
|
type: php-extension
|
||||||
artifact:
|
artifact:
|
||||||
source:
|
source:
|
||||||
type: url
|
type: pecl
|
||||||
url: 'https://pecl.php.net/get/amqp'
|
name: amqp
|
||||||
extract: php-src/ext/amqp
|
|
||||||
filename: amqp.tgz
|
|
||||||
metadata:
|
metadata:
|
||||||
license-files: [LICENSE]
|
license-files: [LICENSE]
|
||||||
license: PHP-3.01
|
license: PHP-3.01
|
||||||
|
|||||||
9
config/pkg/ext/ext-apcu.yml
Normal file
9
config/pkg/ext/ext-apcu.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-apcu:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: APCu
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
9
config/pkg/ext/ext-ast.yml
Normal file
9
config/pkg/ext/ext-ast.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-ast:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: ast
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: BSD-3-Clause
|
||||||
13
config/pkg/ext/ext-brotli.yml
Normal file
13
config/pkg/ext/ext-brotli.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
ext-brotli:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: git
|
||||||
|
extract: php-src/ext/brotli
|
||||||
|
rev: master
|
||||||
|
url: 'https://github.com/kjdev/php-ext-brotli'
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: MIT
|
||||||
|
depends:
|
||||||
|
- brotli
|
||||||
9
config/pkg/ext/ext-dio.yml
Normal file
9
config/pkg/ext/ext-dio.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-dio:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: dio
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
9
config/pkg/ext/ext-ds.yml
Normal file
9
config/pkg/ext/ext-ds.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-ds:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: ds
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: MIT
|
||||||
13
config/pkg/ext/ext-ev.yml
Normal file
13
config/pkg/ext/ext-ev.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
ext-ev:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: ev
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- ext-sockets
|
||||||
|
php-extension:
|
||||||
|
arg-type@windows: with
|
||||||
19
config/pkg/ext/ext-event.yml
Normal file
19
config/pkg/ext/ext-event.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
ext-event:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: url
|
||||||
|
url: 'https://bitbucket.org/osmanov/pecl-event/get/3.1.4.tar.gz'
|
||||||
|
extract: php-src/ext/event
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- libevent
|
||||||
|
- ext-openssl
|
||||||
|
suggests:
|
||||||
|
- ext-sockets
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
Windows: wip
|
||||||
|
arg-type: custom
|
||||||
9
config/pkg/ext/ext-excimer.yml
Normal file
9
config/pkg/ext/ext-excimer.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-excimer:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: excimer
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
@@ -3,3 +3,5 @@ ext-glfw:
|
|||||||
artifact: glfw
|
artifact: glfw
|
||||||
depends:
|
depends:
|
||||||
- glfw
|
- glfw
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: '--enable-glfw --with-glfw-dir=@build_root_path@'
|
||||||
|
|||||||
12
config/pkg/ext/ext-gmssl.yml
Normal file
12
config/pkg/ext/ext-gmssl.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
ext-gmssl:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: ghtar
|
||||||
|
repo: gmssl/GmSSL-PHP
|
||||||
|
extract: php-src/ext/gmssl
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- gmssl
|
||||||
14
config/pkg/ext/ext-grpc.yml
Normal file
14
config/pkg/ext/ext-grpc.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
ext-grpc:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: grpc
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: Apache-2.0
|
||||||
|
depends:
|
||||||
|
- grpc
|
||||||
|
lang: cpp
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: enable-path
|
||||||
12
config/pkg/ext/ext-igbinary.yml
Normal file
12
config/pkg/ext/ext-igbinary.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
ext-igbinary:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: igbinary
|
||||||
|
metadata:
|
||||||
|
license-files: [COPYING]
|
||||||
|
license: BSD-3-Clause
|
||||||
|
suggests:
|
||||||
|
- ext-session
|
||||||
|
- ext-apcu
|
||||||
13
config/pkg/ext/ext-imagick.yml
Normal file
13
config/pkg/ext/ext-imagick.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
ext-imagick:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: imagick
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- imagemagick
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
15
config/pkg/ext/ext-imap.yml
Normal file
15
config/pkg/ext/ext-imap.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
ext-imap:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: imap
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- imap
|
||||||
|
suggests:
|
||||||
|
- ext-openssl
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
9
config/pkg/ext/ext-inotify.yml
Normal file
9
config/pkg/ext/ext-inotify.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-inotify:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: inotify
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
15
config/pkg/ext/ext-lz4.yml
Normal file
15
config/pkg/ext/ext-lz4.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
ext-lz4:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: ghtagtar
|
||||||
|
repo: kjdev/php-ext-lz4
|
||||||
|
extract: php-src/ext/lz4
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: MIT
|
||||||
|
depends:
|
||||||
|
- liblz4
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: '--enable-lz4=@shared_suffix@ --with-lz4-includedir=@build_root_path@'
|
||||||
|
arg-type@windows: '--enable-lz4'
|
||||||
13
config/pkg/ext/ext-maxminddb.yml
Normal file
13
config/pkg/ext/ext-maxminddb.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
ext-maxminddb:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: maxminddb
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: Apache-2.0
|
||||||
|
depends:
|
||||||
|
- libmaxminddb
|
||||||
|
php-extension:
|
||||||
|
arg-type: with
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
ext-mbregex:
|
|
||||||
type: php-extension
|
|
||||||
depends:
|
|
||||||
- onig
|
|
||||||
- ext-mbstring
|
|
||||||
php-extension:
|
|
||||||
arg-type: custom
|
|
||||||
build-shared: false
|
|
||||||
build-static: true
|
|
||||||
display-name: mbstring
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
ext-mbstring:
|
|
||||||
type: php-extension
|
|
||||||
php-extension:
|
|
||||||
arg-type: custom
|
|
||||||
14
config/pkg/ext/ext-memcache.yml
Normal file
14
config/pkg/ext/ext-memcache.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
ext-memcache:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: memcache
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.0
|
||||||
|
depends:
|
||||||
|
- ext-zlib
|
||||||
|
- ext-session
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-memcache@shared_suffix@ --with-zlib-dir=@build_root_path@'
|
||||||
23
config/pkg/ext/ext-memcached.yml
Normal file
23
config/pkg/ext/ext-memcached.yml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
ext-memcached:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: memcached
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- libmemcached
|
||||||
|
depends@unix:
|
||||||
|
- libmemcached
|
||||||
|
- fastlz
|
||||||
|
- ext-session
|
||||||
|
- ext-zlib
|
||||||
|
suggests:
|
||||||
|
- zstd
|
||||||
|
- ext-igbinary
|
||||||
|
- ext-msgpack
|
||||||
|
- ext-session
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-memcached@shared_suffix@ --with-zlib-dir=@build_root_path@'
|
||||||
21
config/pkg/ext/ext-mongodb.yml
Normal file
21
config/pkg/ext/ext-mongodb.yml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
ext-mongodb:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: ghrel
|
||||||
|
repo: mongodb/mongo-php-driver
|
||||||
|
match: mongodb.+\.tgz
|
||||||
|
extract: php-src/ext/mongodb
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
suggests:
|
||||||
|
- icu
|
||||||
|
- openssl
|
||||||
|
- zstd
|
||||||
|
- zlib
|
||||||
|
frameworks:
|
||||||
|
- CoreFoundation
|
||||||
|
- Security
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
14
config/pkg/ext/ext-msgpack.yml
Normal file
14
config/pkg/ext/ext-msgpack.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
ext-msgpack:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: msgpack
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: BSD-3-Clause
|
||||||
|
depends:
|
||||||
|
- ext-session
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: with
|
||||||
|
arg-type@windows: enable
|
||||||
18
config/pkg/ext/ext-mysqlnd_ed25519.yml
Normal file
18
config/pkg/ext/ext-mysqlnd_ed25519.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
ext-mysqlnd_ed25519:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pie
|
||||||
|
repo: mariadb/mysqlnd_ed25519
|
||||||
|
extract: php-src/ext/mysqlnd_ed25519
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: BSD-3-Clause
|
||||||
|
depends:
|
||||||
|
- ext-mysqlnd
|
||||||
|
- libsodium
|
||||||
|
suggests:
|
||||||
|
- openssl
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--with-mysqlnd_ed25519=@shared_suffix@'
|
||||||
|
build-static: false
|
||||||
17
config/pkg/ext/ext-mysqlnd_parsec.yml
Normal file
17
config/pkg/ext/ext-mysqlnd_parsec.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
ext-mysqlnd_parsec:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pie
|
||||||
|
repo: mariadb/mysqlnd_parsec
|
||||||
|
extract: php-src/ext/mysqlnd_parsec
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: BSD-3-Clause
|
||||||
|
depends:
|
||||||
|
- ext-mysqlnd
|
||||||
|
- libsodium
|
||||||
|
- openssl
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-mysqlnd_parsec'
|
||||||
|
build-static: false
|
||||||
9
config/pkg/ext/ext-opentelemetry.yml
Normal file
9
config/pkg/ext/ext-opentelemetry.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-opentelemetry:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: opentelemetry
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: Apache-2.0
|
||||||
9
config/pkg/ext/ext-parallel.yml
Normal file
9
config/pkg/ext/ext-parallel.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-parallel:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: parallel
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
12
config/pkg/ext/ext-pcov.yml
Normal file
12
config/pkg/ext/ext-pcov.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
ext-pcov:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: pcov
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
php-extension:
|
||||||
|
build-static: false
|
||||||
|
build-shared: true
|
||||||
14
config/pkg/ext/ext-pdo_sqlsrv.yml
Normal file
14
config/pkg/ext/ext-pdo_sqlsrv.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
ext-pdo_sqlsrv:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: pdo_sqlsrv
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: MIT
|
||||||
|
depends:
|
||||||
|
- ext-pdo
|
||||||
|
- ext-sqlsrv
|
||||||
|
php-extension:
|
||||||
|
arg-type: with
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
ext-phar:
|
|
||||||
type: php-extension
|
|
||||||
depends:
|
|
||||||
- zlib
|
|
||||||
9
config/pkg/ext/ext-protobuf.yml
Normal file
9
config/pkg/ext/ext-protobuf.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
ext-protobuf:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: protobuf
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: BSD-3-Clause
|
||||||
12
config/pkg/ext/ext-rar.yml
Normal file
12
config/pkg/ext/ext-rar.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
ext-rar:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: git
|
||||||
|
url: 'https://github.com/static-php/php-rar.git'
|
||||||
|
rev: issue-php82
|
||||||
|
extract: php-src/ext/rar
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
lang: cpp
|
||||||
15
config/pkg/ext/ext-rdkafka.yml
Normal file
15
config/pkg/ext/ext-rdkafka.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
ext-rdkafka:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: ghtar
|
||||||
|
repo: arnaud-lb/php-rdkafka
|
||||||
|
extract: php-src/ext/rdkafka
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: MIT
|
||||||
|
depends:
|
||||||
|
- librdkafka
|
||||||
|
lang: cpp
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
ext-readline:
|
|
||||||
type: php-extension
|
|
||||||
depends:
|
|
||||||
- libedit
|
|
||||||
php-extension:
|
|
||||||
support:
|
|
||||||
Windows: wip
|
|
||||||
BSD: wip
|
|
||||||
arg-type: with-path
|
|
||||||
build-shared: false
|
|
||||||
build-static: true
|
|
||||||
21
config/pkg/ext/ext-redis.yml
Normal file
21
config/pkg/ext/ext-redis.yml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
ext-redis:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: redis
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
suggests:
|
||||||
|
- ext-session
|
||||||
|
- ext-igbinary
|
||||||
|
- ext-msgpack
|
||||||
|
suggests@unix:
|
||||||
|
- ext-session
|
||||||
|
- ext-igbinary
|
||||||
|
- ext-msgpack
|
||||||
|
- zstd
|
||||||
|
- liblz4
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
10
config/pkg/ext/ext-simdjson.yml
Normal file
10
config/pkg/ext/ext-simdjson.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
ext-simdjson:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: simdjson
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: Apache-2.0
|
||||||
|
lang: cpp
|
||||||
18
config/pkg/ext/ext-snappy.yml
Normal file
18
config/pkg/ext/ext-snappy.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
ext-snappy:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: git
|
||||||
|
url: 'https://github.com/kjdev/php-ext-snappy'
|
||||||
|
rev: master
|
||||||
|
extract: php-src/ext/snappy
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- snappy
|
||||||
|
suggests:
|
||||||
|
- ext-apcu
|
||||||
|
lang: cpp
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: '--enable-snappy --with-snappy-includedir=@build_root_path@'
|
||||||
14
config/pkg/ext/ext-spx.yml
Normal file
14
config/pkg/ext/ext-spx.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
ext-spx:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pie
|
||||||
|
repo: noisebynorthwest/php-spx
|
||||||
|
extract: php-src/ext/spx
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: GPL-3.0-or-later
|
||||||
|
depends:
|
||||||
|
- ext-zlib
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-SPX@shared_suffix@'
|
||||||
15
config/pkg/ext/ext-sqlsrv.yml
Normal file
15
config/pkg/ext/ext-sqlsrv.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
ext-sqlsrv:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: sqlsrv
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: MIT
|
||||||
|
depends@linux:
|
||||||
|
- unixodbc
|
||||||
|
- ext-pcntl
|
||||||
|
depends@macos:
|
||||||
|
- unixodbc
|
||||||
|
lang: cpp
|
||||||
15
config/pkg/ext/ext-ssh2.yml
Normal file
15
config/pkg/ext/ext-ssh2.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
ext-ssh2:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: ssh2
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- libssh2
|
||||||
|
- ext-openssl
|
||||||
|
- ext-zlib
|
||||||
|
php-extension:
|
||||||
|
arg-type: with-path
|
||||||
72
config/pkg/ext/ext-swoole.yml
Normal file
72
config/pkg/ext/ext-swoole.yml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
ext-swoole:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: ghtar
|
||||||
|
repo: swoole/swoole-src
|
||||||
|
extract: php-src/ext/swoole
|
||||||
|
match: v6\.+
|
||||||
|
prefer-stable: true
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: Apache-2.0
|
||||||
|
depends:
|
||||||
|
- libcares
|
||||||
|
- brotli
|
||||||
|
- nghttp2
|
||||||
|
- zlib
|
||||||
|
- ext-openssl
|
||||||
|
- ext-curl
|
||||||
|
suggests:
|
||||||
|
- zstd
|
||||||
|
- ext-sockets
|
||||||
|
- ext-swoole-hook-pgsql
|
||||||
|
- ext-swoole-hook-mysql
|
||||||
|
- ext-swoole-hook-sqlite
|
||||||
|
- ext-swoole-hook-odbc
|
||||||
|
suggests@linux:
|
||||||
|
- zstd
|
||||||
|
- liburing
|
||||||
|
- ext-sockets
|
||||||
|
- ext-swoole-hook-pgsql
|
||||||
|
- ext-swoole-hook-mysql
|
||||||
|
- ext-swoole-hook-sqlite
|
||||||
|
- ext-swoole-hook-odbc
|
||||||
|
lang: cpp
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
|
ext-swoole-hook-mysql:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-mysqlnd
|
||||||
|
- ext-pdo
|
||||||
|
- ext-pdo_mysql
|
||||||
|
suggests:
|
||||||
|
- ext-mysqli
|
||||||
|
php-extension:
|
||||||
|
arg-type: none
|
||||||
|
display-name: swoole
|
||||||
|
ext-swoole-hook-odbc:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-pdo
|
||||||
|
- unixodbc
|
||||||
|
php-extension:
|
||||||
|
arg-type: none
|
||||||
|
display-name: swoole
|
||||||
|
ext-swoole-hook-pgsql:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-pgsql
|
||||||
|
- ext-pdo
|
||||||
|
php-extension:
|
||||||
|
arg-type: none
|
||||||
|
display-name: swoole
|
||||||
|
ext-swoole-hook-sqlite:
|
||||||
|
type: php-extension
|
||||||
|
depends:
|
||||||
|
- ext-sqlite3
|
||||||
|
- ext-pdo
|
||||||
|
php-extension:
|
||||||
|
arg-type: none
|
||||||
|
display-name: swoole
|
||||||
18
config/pkg/ext/ext-swow.yml
Normal file
18
config/pkg/ext/ext-swow.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
ext-swow:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
extract: php-src/ext/swow-src
|
||||||
|
type: ghtar
|
||||||
|
repo: swow/swow
|
||||||
|
prefer-stable: true
|
||||||
|
metadata:
|
||||||
|
license: Apache-2.0
|
||||||
|
license-files: [LICENSE]
|
||||||
|
suggests:
|
||||||
|
- openssl
|
||||||
|
- curl
|
||||||
|
- ext-openssl
|
||||||
|
- ext-curl
|
||||||
|
php-extension:
|
||||||
|
arg-type: custom
|
||||||
14
config/pkg/ext/ext-trader.yml
Normal file
14
config/pkg/ext/ext-trader.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
ext-trader:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: trader
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: BSD-2-Clause
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
BSD: wip
|
||||||
|
Windows: wip
|
||||||
|
arg-type: enable
|
||||||
16
config/pkg/ext/ext-uuid.yml
Normal file
16
config/pkg/ext/ext-uuid.yml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
ext-uuid:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: uuid
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: LGPL-2.1-only
|
||||||
|
depends:
|
||||||
|
- libuuid
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
Windows: wip
|
||||||
|
BSD: wip
|
||||||
|
arg-type: with-path
|
||||||
18
config/pkg/ext/ext-uv.yml
Normal file
18
config/pkg/ext/ext-uv.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
ext-uv:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: uv
|
||||||
|
prefer-stable: false
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- libuv
|
||||||
|
- ext-sockets
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
Windows: wip
|
||||||
|
BSD: wip
|
||||||
|
arg-type: with-path
|
||||||
14
config/pkg/ext/ext-xdebug.yml
Normal file
14
config/pkg/ext/ext-xdebug.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
ext-xdebug:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pie
|
||||||
|
repo: xdebug/xdebug
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: Xdebug-1.03
|
||||||
|
php-extension:
|
||||||
|
zend-extension: true
|
||||||
|
build-static: false
|
||||||
|
build-shared: true
|
||||||
|
build-with-php: false
|
||||||
18
config/pkg/ext/ext-xhprof.yml
Normal file
18
config/pkg/ext/ext-xhprof.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
ext-xhprof:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: xhprof
|
||||||
|
extract: php-src/ext/xhprof-src
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: Apache-2.0
|
||||||
|
depends:
|
||||||
|
- ext-ctype
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
Windows: wip
|
||||||
|
BSD: wip
|
||||||
|
arg-type: enable
|
||||||
|
build-with-php: true
|
||||||
18
config/pkg/ext/ext-xlswriter.yml
Normal file
18
config/pkg/ext/ext-xlswriter.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
ext-xlswriter:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: xlswriter
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: BSD-2-Clause
|
||||||
|
depends:
|
||||||
|
- ext-zlib
|
||||||
|
- ext-zip
|
||||||
|
suggests:
|
||||||
|
- openssl
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
BSD: wip
|
||||||
|
arg-type: custom
|
||||||
15
config/pkg/ext/ext-xz.yml
Normal file
15
config/pkg/ext/ext-xz.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
ext-xz:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: git
|
||||||
|
url: 'https://github.com/codemasher/php-ext-xz'
|
||||||
|
rev: main
|
||||||
|
extract: php-src/ext/xz
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends:
|
||||||
|
- xz
|
||||||
|
php-extension:
|
||||||
|
arg-type: with-path
|
||||||
14
config/pkg/ext/ext-yac.yml
Normal file
14
config/pkg/ext/ext-yac.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
ext-yac:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: yac
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends@unix:
|
||||||
|
- fastlz
|
||||||
|
- ext-igbinary
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: '--enable-yac@shared_suffix@ --enable-igbinary --enable-json --with-system-fastlz'
|
||||||
16
config/pkg/ext/ext-yaml.yml
Normal file
16
config/pkg/ext/ext-yaml.yml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
ext-yaml:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: git
|
||||||
|
url: 'https://github.com/php/pecl-file_formats-yaml'
|
||||||
|
rev: php7
|
||||||
|
extract: php-src/ext/yaml
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: MIT
|
||||||
|
depends:
|
||||||
|
- libyaml
|
||||||
|
php-extension:
|
||||||
|
arg-type@unix: with-path
|
||||||
|
arg-type@windows: with
|
||||||
17
config/pkg/ext/ext-zip.yml
Normal file
17
config/pkg/ext/ext-zip.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
ext-zip:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: pecl
|
||||||
|
name: zip
|
||||||
|
extract: ext-zip
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: PHP-3.01
|
||||||
|
depends@unix:
|
||||||
|
- libzip
|
||||||
|
php-extension:
|
||||||
|
support:
|
||||||
|
BSD: wip
|
||||||
|
arg-type: custom
|
||||||
|
arg-type@windows: enable
|
||||||
15
config/pkg/ext/ext-zstd.yml
Normal file
15
config/pkg/ext/ext-zstd.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
ext-zstd:
|
||||||
|
type: php-extension
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: git
|
||||||
|
url: 'https://github.com/kjdev/php-ext-zstd'
|
||||||
|
rev: master
|
||||||
|
extract: php-src/ext/zstd
|
||||||
|
metadata:
|
||||||
|
license-files: [LICENSE]
|
||||||
|
license: MIT
|
||||||
|
depends:
|
||||||
|
- zstd
|
||||||
|
php-extension:
|
||||||
|
arg-type: '--enable-zstd --with-libzstd=@build_root_path@'
|
||||||
@@ -3,7 +3,7 @@ gmp:
|
|||||||
artifact:
|
artifact:
|
||||||
source:
|
source:
|
||||||
type: filelist
|
type: filelist
|
||||||
url: 'https://gmplib.org/download/gmp/'
|
url: 'https://ftp.gnu.org/gnu/gmp/'
|
||||||
regex: '/href="(?<file>gmp-(?<version>[^"]+)\.tar\.xz)"/'
|
regex: '/href="(?<file>gmp-(?<version>[^"]+)\.tar\.xz)"/'
|
||||||
source-mirror:
|
source-mirror:
|
||||||
type: url
|
type: url
|
||||||
|
|||||||
@@ -7,5 +7,12 @@ libavif:
|
|||||||
metadata:
|
metadata:
|
||||||
license-files: [LICENSE]
|
license-files: [LICENSE]
|
||||||
license: BSD-2-Clause
|
license: BSD-2-Clause
|
||||||
|
depends:
|
||||||
|
- libaom
|
||||||
|
suggests:
|
||||||
|
- libwebp
|
||||||
|
- libjpeg
|
||||||
|
- libxml2
|
||||||
|
- libpng
|
||||||
static-libs@unix:
|
static-libs@unix:
|
||||||
- libavif.a
|
- libavif.a
|
||||||
|
|||||||
@@ -10,9 +10,8 @@ libxml2:
|
|||||||
license: MIT
|
license: MIT
|
||||||
depends@unix:
|
depends@unix:
|
||||||
- libiconv
|
- libiconv
|
||||||
suggests@unix:
|
|
||||||
- xz
|
|
||||||
- zlib
|
- zlib
|
||||||
|
- xz
|
||||||
headers:
|
headers:
|
||||||
- libxml2
|
- libxml2
|
||||||
pkg-configs:
|
pkg-configs:
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
ncurses:
|
ncurses:
|
||||||
type: library
|
type: library
|
||||||
artifact:
|
artifact: ncurses
|
||||||
source:
|
|
||||||
type: filelist
|
|
||||||
url: 'https://ftp.gnu.org/pub/gnu/ncurses/'
|
|
||||||
regex: '/href="(?<file>ncurses-(?<version>[^"]+)\.tar\.gz)"/'
|
|
||||||
binary: hosted
|
|
||||||
metadata:
|
|
||||||
license-files: [COPYING]
|
|
||||||
static-libs@unix:
|
static-libs@unix:
|
||||||
- libncurses.a
|
- libncurses.a
|
||||||
|
ncursesw:
|
||||||
|
type: library
|
||||||
|
artifact: ncurses
|
||||||
|
static-libs@unix:
|
||||||
|
- libncursesw.a
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
curl:
|
curl:
|
||||||
type: library
|
type: target
|
||||||
artifact:
|
artifact:
|
||||||
source:
|
source:
|
||||||
type: ghrel
|
type: ghrel
|
||||||
@@ -29,5 +29,7 @@ curl:
|
|||||||
- SystemConfiguration
|
- SystemConfiguration
|
||||||
headers:
|
headers:
|
||||||
- curl
|
- curl
|
||||||
|
static-bins@unix:
|
||||||
|
- curl
|
||||||
static-libs@unix:
|
static-libs@unix:
|
||||||
- libcurl.a
|
- libcurl.a
|
||||||
@@ -2,5 +2,11 @@ go-xcaddy:
|
|||||||
type: target
|
type: target
|
||||||
artifact:
|
artifact:
|
||||||
binary: custom
|
binary: custom
|
||||||
|
env:
|
||||||
|
GOROOT: '{pkg_root_path}/go-xcaddy'
|
||||||
|
GOBIN: '{pkg_root_path}/go-xcaddy/bin'
|
||||||
|
GOPATH: '{pkg_root_path}/go-xcaddy/go'
|
||||||
|
path@unix:
|
||||||
|
- '{pkg_root_path}/go-xcaddy/bin'
|
||||||
static-bins:
|
static-bins:
|
||||||
- xcaddy
|
- xcaddy
|
||||||
|
|||||||
10
config/pkg/target/htop.yml
Normal file
10
config/pkg/target/htop.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
htop:
|
||||||
|
type: target
|
||||||
|
artifact:
|
||||||
|
source:
|
||||||
|
type: ghrel
|
||||||
|
repo: htop-dev/htop
|
||||||
|
match: htop.+\.tar\.xz
|
||||||
|
prefer-stable: true
|
||||||
|
depends:
|
||||||
|
- ncursesw
|
||||||
8
config/pkg/target/protoc.yml
Normal file
8
config/pkg/target/protoc.yml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
protoc:
|
||||||
|
type: target
|
||||||
|
artifact:
|
||||||
|
binary:
|
||||||
|
linux-x86_64: { type: ghrel, repo: protocolbuffers/protobuf, match: 'protoc-([0-9.]+)-linux-x86_64\.zip', extract: '{pkg_root_path}/protoc' }
|
||||||
|
linux-aarch64: { type: ghrel, repo: protocolbuffers/protobuf, match: 'protoc-([0-9.]+)-linux-aarch_64\.zip', extract: '{pkg_root_path}/protoc' }
|
||||||
|
path:
|
||||||
|
- '{pkg_root_path}/protoc/bin'
|
||||||
6
config/pkg/target/rust.yml
Normal file
6
config/pkg/target/rust.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
rust:
|
||||||
|
type: target
|
||||||
|
artifact:
|
||||||
|
binary: custom
|
||||||
|
path:
|
||||||
|
- '{pkg_root_path}/rust/bin'
|
||||||
@@ -361,7 +361,7 @@
|
|||||||
},
|
},
|
||||||
"gmp": {
|
"gmp": {
|
||||||
"type": "filelist",
|
"type": "filelist",
|
||||||
"url": "https://gmplib.org/download/gmp/",
|
"url": "https://ftp.gnu.org/gnu/gmp/",
|
||||||
"regex": "/href=\"(?<file>gmp-(?<version>[^\"]+)\\.tar\\.xz)\"/",
|
"regex": "/href=\"(?<file>gmp-(?<version>[^\"]+)\\.tar\\.xz)\"/",
|
||||||
"provide-pre-built": true,
|
"provide-pre-built": true,
|
||||||
"alt": {
|
"alt": {
|
||||||
@@ -526,7 +526,7 @@
|
|||||||
"libavif": {
|
"libavif": {
|
||||||
"type": "ghtar",
|
"type": "ghtar",
|
||||||
"repo": "AOMediaCodec/libavif",
|
"repo": "AOMediaCodec/libavif",
|
||||||
"provide-pre-built": true,
|
"provide-pre-built": false,
|
||||||
"license": {
|
"license": {
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"path": "LICENSE"
|
"path": "LICENSE"
|
||||||
|
|||||||
@@ -6,8 +6,10 @@ namespace Package\Artifact;
|
|||||||
|
|
||||||
use StaticPHP\Artifact\ArtifactDownloader;
|
use StaticPHP\Artifact\ArtifactDownloader;
|
||||||
use StaticPHP\Artifact\Downloader\DownloadResult;
|
use StaticPHP\Artifact\Downloader\DownloadResult;
|
||||||
|
use StaticPHP\Artifact\Downloader\Type\CheckUpdateResult;
|
||||||
use StaticPHP\Attribute\Artifact\AfterBinaryExtract;
|
use StaticPHP\Attribute\Artifact\AfterBinaryExtract;
|
||||||
use StaticPHP\Attribute\Artifact\CustomBinary;
|
use StaticPHP\Attribute\Artifact\CustomBinary;
|
||||||
|
use StaticPHP\Attribute\Artifact\CustomBinaryCheckUpdate;
|
||||||
use StaticPHP\Exception\DownloaderException;
|
use StaticPHP\Exception\DownloaderException;
|
||||||
use StaticPHP\Runtime\SystemTarget;
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
use StaticPHP\Util\GlobalEnvManager;
|
use StaticPHP\Util\GlobalEnvManager;
|
||||||
@@ -65,6 +67,25 @@ class go_xcaddy
|
|||||||
return DownloadResult::archive(basename($path), ['url' => $url, 'version' => $version], extract: "{$pkgroot}/go-xcaddy", verified: true, version: $version);
|
return DownloadResult::archive(basename($path), ['url' => $url, 'version' => $version], extract: "{$pkgroot}/go-xcaddy", verified: true, version: $version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[CustomBinaryCheckUpdate('go-xcaddy', [
|
||||||
|
'linux-x86_64',
|
||||||
|
'linux-aarch64',
|
||||||
|
'macos-x86_64',
|
||||||
|
'macos-aarch64',
|
||||||
|
])]
|
||||||
|
public function checkUpdateBinary(?string $old_version, ArtifactDownloader $downloader): CheckUpdateResult
|
||||||
|
{
|
||||||
|
[$version] = explode("\n", default_shell()->executeCurl('https://go.dev/VERSION?m=text') ?: '');
|
||||||
|
if ($version === '') {
|
||||||
|
throw new DownloaderException('Failed to get latest Go version from https://go.dev/VERSION?m=text');
|
||||||
|
}
|
||||||
|
return new CheckUpdateResult(
|
||||||
|
old: $old_version,
|
||||||
|
new: $version,
|
||||||
|
needUpdate: $old_version === null || $version !== $old_version,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[AfterBinaryExtract('go-xcaddy', [
|
#[AfterBinaryExtract('go-xcaddy', [
|
||||||
'linux-x86_64',
|
'linux-x86_64',
|
||||||
'linux-aarch64',
|
'linux-aarch64',
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ namespace Package\Artifact;
|
|||||||
use Package\Target\php;
|
use Package\Target\php;
|
||||||
use StaticPHP\Attribute\Artifact\AfterSourceExtract;
|
use StaticPHP\Attribute\Artifact\AfterSourceExtract;
|
||||||
use StaticPHP\Attribute\PatchDescription;
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
use StaticPHP\Runtime\SystemTarget;
|
|
||||||
use StaticPHP\Util\FileSystem;
|
use StaticPHP\Util\FileSystem;
|
||||||
use StaticPHP\Util\SourcePatcher;
|
use StaticPHP\Util\SourcePatcher;
|
||||||
|
|
||||||
@@ -52,16 +51,6 @@ class php_src
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[AfterSourceExtract('php-src')]
|
|
||||||
#[PatchDescription('Patch FFI extension on CentOS 7 with -O3 optimization (strncmp issue)')]
|
|
||||||
public function patchFfiCentos7FixO3strncmp(): void
|
|
||||||
{
|
|
||||||
spc_skip_if(!($ver = SystemTarget::getLibcVersion()) || version_compare($ver, '2.17', '>'));
|
|
||||||
$ver_id = php::getPHPVersionID(return_null_if_failed: true);
|
|
||||||
spc_skip_if($ver_id === null || $ver_id < 80316);
|
|
||||||
SourcePatcher::patchFile('ffi_centos7_fix_O3_strncmp.patch', SOURCE_PATH . '/php-src');
|
|
||||||
}
|
|
||||||
|
|
||||||
#[AfterSourceExtract('php-src')]
|
#[AfterSourceExtract('php-src')]
|
||||||
#[PatchDescription('Add LICENSE file to IMAP extension if missing')]
|
#[PatchDescription('Add LICENSE file to IMAP extension if missing')]
|
||||||
public function patchImapLicense(): void
|
public function patchImapLicense(): void
|
||||||
|
|||||||
85
src/Package/Artifact/rust.php
Normal file
85
src/Package/Artifact/rust.php
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Artifact;
|
||||||
|
|
||||||
|
use StaticPHP\Artifact\ArtifactDownloader;
|
||||||
|
use StaticPHP\Artifact\Downloader\DownloadResult;
|
||||||
|
use StaticPHP\Artifact\Downloader\Type\CheckUpdateResult;
|
||||||
|
use StaticPHP\Attribute\Artifact\AfterBinaryExtract;
|
||||||
|
use StaticPHP\Attribute\Artifact\CustomBinary;
|
||||||
|
use StaticPHP\Attribute\Artifact\CustomBinaryCheckUpdate;
|
||||||
|
use StaticPHP\Exception\DownloaderException;
|
||||||
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
|
use StaticPHP\Util\System\LinuxUtil;
|
||||||
|
|
||||||
|
class rust
|
||||||
|
{
|
||||||
|
#[CustomBinary('rust', [
|
||||||
|
'linux-x86_64',
|
||||||
|
'linux-aarch64',
|
||||||
|
])]
|
||||||
|
public function downBinary(ArtifactDownloader $downloader): DownloadResult
|
||||||
|
{
|
||||||
|
// determine distro first
|
||||||
|
$distro = LinuxUtil::isMuslDist() ? 'musl' : 'gnu';
|
||||||
|
$arch = SystemTarget::getTargetArch();
|
||||||
|
|
||||||
|
// get latest rust version from link
|
||||||
|
$toml_config = default_shell()->executeCurl('https://static.rust-lang.org/dist/channel-rust-stable.toml', retries: $downloader->getRetry());
|
||||||
|
// parse toml by regex since we want to avoid adding a toml parser dependency just for this
|
||||||
|
$cnt = preg_match_all('/^version = "([^"]+)"$/m', $toml_config ?: '', $matches);
|
||||||
|
if (!$cnt) {
|
||||||
|
throw new DownloaderException('Failed to parse Rust version from channel config');
|
||||||
|
}
|
||||||
|
$versions = $matches[1];
|
||||||
|
// strip version num \d.\d.\d (some version number is like "x.x.x (abcdefg 1970-01-01)"
|
||||||
|
$versions = array_filter(array_map(fn ($v) => preg_match('/^(\d+\.\d+\.\d+)/', $v, $m) ? $m[1] : null, $versions));
|
||||||
|
usort($versions, 'version_compare');
|
||||||
|
$latest_version = end($versions);
|
||||||
|
if (!$latest_version) {
|
||||||
|
throw new DownloaderException('Could not determine latest Rust version');
|
||||||
|
}
|
||||||
|
|
||||||
|
// merge download link
|
||||||
|
$download_url = "https://static.rust-lang.org/dist/rust-{$latest_version}-{$arch}-unknown-linux-{$distro}.tar.xz";
|
||||||
|
$path = DOWNLOAD_PATH . DIRECTORY_SEPARATOR . basename($download_url);
|
||||||
|
default_shell()->executeCurlDownload($download_url, $path, retries: $downloader->getRetry());
|
||||||
|
return DownloadResult::archive(basename($path), ['url' => $download_url, 'version' => $latest_version], extract: PKG_ROOT_PATH . '/rust-install', verified: false, version: $latest_version);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[CustomBinaryCheckUpdate('rust', [
|
||||||
|
'linux-x86_64',
|
||||||
|
'linux-aarch64',
|
||||||
|
])]
|
||||||
|
public function checkUpdateBinary(?string $old_version, ArtifactDownloader $downloader): CheckUpdateResult
|
||||||
|
{
|
||||||
|
$toml_config = default_shell()->executeCurl('https://static.rust-lang.org/dist/channel-rust-stable.toml', retries: $downloader->getRetry());
|
||||||
|
$cnt = preg_match_all('/^version = "([^"]+)"$/m', $toml_config ?: '', $matches);
|
||||||
|
if (!$cnt) {
|
||||||
|
throw new DownloaderException('Failed to parse Rust version from channel config');
|
||||||
|
}
|
||||||
|
$versions = array_filter(array_map(fn ($v) => preg_match('/^(\d+\.\d+\.\d+)/', $v, $m) ? $m[1] : null, $matches[1]));
|
||||||
|
usort($versions, 'version_compare');
|
||||||
|
$latest_version = end($versions);
|
||||||
|
if (!$latest_version) {
|
||||||
|
throw new DownloaderException('Could not determine latest Rust version');
|
||||||
|
}
|
||||||
|
return new CheckUpdateResult(
|
||||||
|
old: $old_version,
|
||||||
|
new: $latest_version,
|
||||||
|
needUpdate: $old_version === null || $latest_version !== $old_version,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[AfterBinaryExtract('rust', [
|
||||||
|
'linux-x86_64',
|
||||||
|
'linux-aarch64',
|
||||||
|
])]
|
||||||
|
public function postExtractRust(string $target_path): void
|
||||||
|
{
|
||||||
|
$prefix = PKG_ROOT_PATH . '/rust';
|
||||||
|
shell()->exec("cd {$target_path} && ./install.sh --prefix={$prefix}");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,8 +6,10 @@ namespace Package\Artifact;
|
|||||||
|
|
||||||
use StaticPHP\Artifact\ArtifactDownloader;
|
use StaticPHP\Artifact\ArtifactDownloader;
|
||||||
use StaticPHP\Artifact\Downloader\DownloadResult;
|
use StaticPHP\Artifact\Downloader\DownloadResult;
|
||||||
|
use StaticPHP\Artifact\Downloader\Type\CheckUpdateResult;
|
||||||
use StaticPHP\Attribute\Artifact\AfterBinaryExtract;
|
use StaticPHP\Attribute\Artifact\AfterBinaryExtract;
|
||||||
use StaticPHP\Attribute\Artifact\CustomBinary;
|
use StaticPHP\Attribute\Artifact\CustomBinary;
|
||||||
|
use StaticPHP\Attribute\Artifact\CustomBinaryCheckUpdate;
|
||||||
use StaticPHP\Exception\DownloaderException;
|
use StaticPHP\Exception\DownloaderException;
|
||||||
use StaticPHP\Runtime\SystemTarget;
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
|
|
||||||
@@ -24,6 +26,9 @@ class zig
|
|||||||
$index_json = default_shell()->executeCurl('https://ziglang.org/download/index.json', retries: $downloader->getRetry());
|
$index_json = default_shell()->executeCurl('https://ziglang.org/download/index.json', retries: $downloader->getRetry());
|
||||||
$index_json = json_decode($index_json ?: '', true);
|
$index_json = json_decode($index_json ?: '', true);
|
||||||
$latest_version = null;
|
$latest_version = null;
|
||||||
|
if ($index_json === null) {
|
||||||
|
throw new DownloaderException('Failed to fetch Zig version index');
|
||||||
|
}
|
||||||
foreach ($index_json as $version => $data) {
|
foreach ($index_json as $version => $data) {
|
||||||
if ($version !== 'master') {
|
if ($version !== 'master') {
|
||||||
$latest_version = $version;
|
$latest_version = $version;
|
||||||
@@ -59,6 +64,36 @@ class zig
|
|||||||
return DownloadResult::archive(basename($path), ['url' => $url, 'version' => $latest_version], extract: PKG_ROOT_PATH . '/zig', verified: true, version: $latest_version);
|
return DownloadResult::archive(basename($path), ['url' => $url, 'version' => $latest_version], extract: PKG_ROOT_PATH . '/zig', verified: true, version: $latest_version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[CustomBinaryCheckUpdate('zig', [
|
||||||
|
'linux-x86_64',
|
||||||
|
'linux-aarch64',
|
||||||
|
'macos-x86_64',
|
||||||
|
'macos-aarch64',
|
||||||
|
])]
|
||||||
|
public function checkUpdateBinary(?string $old_version, ArtifactDownloader $downloader): CheckUpdateResult
|
||||||
|
{
|
||||||
|
$index_json = default_shell()->executeCurl('https://ziglang.org/download/index.json', retries: $downloader->getRetry());
|
||||||
|
$index_json = json_decode($index_json ?: '', true);
|
||||||
|
$latest_version = null;
|
||||||
|
if (!is_array($index_json)) {
|
||||||
|
throw new DownloaderException('Failed to fetch Zig version index for update check');
|
||||||
|
}
|
||||||
|
foreach ($index_json as $version => $data) {
|
||||||
|
if ($version !== 'master') {
|
||||||
|
$latest_version = $version;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$latest_version) {
|
||||||
|
throw new DownloaderException('Could not determine latest Zig version');
|
||||||
|
}
|
||||||
|
return new CheckUpdateResult(
|
||||||
|
old: $old_version,
|
||||||
|
new: $latest_version,
|
||||||
|
needUpdate: $old_version === null || $latest_version !== $old_version,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[AfterBinaryExtract('zig', [
|
#[AfterBinaryExtract('zig', [
|
||||||
'linux-x86_64',
|
'linux-x86_64',
|
||||||
'linux-aarch64',
|
'linux-aarch64',
|
||||||
|
|||||||
28
src/Package/Extension/dba.php
Normal file
28
src/Package/Extension/dba.php
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
|
||||||
|
#[Extension('dba')]
|
||||||
|
class dba
|
||||||
|
{
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(bool $shared, PackageInstaller $installer): string
|
||||||
|
{
|
||||||
|
$qdbm = ($qdbm = $installer->getLibraryPackage('qdbm')) ? (" --with-qdbm={$qdbm->getBuildRootPath()}") : '';
|
||||||
|
return '--enable-dba' . ($shared ? '=shared' : '') . $qdbm;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[CustomPhpConfigureArg('Windows')]
|
||||||
|
public function getWindowsConfigureArg(PackageInstaller $installer): string
|
||||||
|
{
|
||||||
|
$qdbm = $installer->getLibraryPackage('qdbm') ? ' --with-qdbm' : '';
|
||||||
|
return '--with-dba' . $qdbm;
|
||||||
|
}
|
||||||
|
}
|
||||||
23
src/Package/Extension/dio.php
Normal file
23
src/Package/Extension/dio.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('dio')]
|
||||||
|
class dio extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-dio')]
|
||||||
|
public function patchBeforeBuildconf(): void
|
||||||
|
{
|
||||||
|
if (!file_exists("{$this->getSourceDir()}/php_dio.h")) {
|
||||||
|
FileSystem::writeFile("{$this->getSourceDir()}/php_dio.h", FileSystem::readFile("{$this->getSourceDir()}/src/php_dio.h"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
46
src/Package/Extension/event.php
Normal file
46
src/Package/Extension/event.php
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('event')]
|
||||||
|
class event extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(PackageInstaller $installer): string
|
||||||
|
{
|
||||||
|
$arg = "--with-event-core --with-event-extra --with-event-libevent-dir={$this->getBuilder()->getBuildRootPath()}";
|
||||||
|
if ($installer->getLibraryPackage('openssl')) {
|
||||||
|
$arg .= " --with-event-openssl={$this->getBuilder()->getBuildRootPath()}";
|
||||||
|
}
|
||||||
|
if ($installer->getPhpExtensionPackage('ext-sockets')) {
|
||||||
|
$arg .= ' --enable-event-sockets';
|
||||||
|
} else {
|
||||||
|
$arg .= ' --disable-event-sockets';
|
||||||
|
}
|
||||||
|
return $arg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[BeforeStage('php', [php::class, 'makeForUnix'], 'ext-event')]
|
||||||
|
#[PatchDescription('Prevent event extension compile error on macOS')]
|
||||||
|
public function patchBeforeMake(PackageInstaller $installer): void
|
||||||
|
{
|
||||||
|
// Prevent event extension compile error on macOS
|
||||||
|
if (SystemTarget::getTargetOS() === 'Darwin') {
|
||||||
|
$php_src = $installer->getTargetPackage('php')->getSourceDir();
|
||||||
|
FileSystem::replaceFileRegex("{$php_src}/main/php_config.h", '/^#define HAVE_OPENPTY 1$/m', '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
src/Package/Extension/excimer.php
Normal file
19
src/Package/Extension/excimer.php
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
|
||||||
|
#[Extension('excimer')]
|
||||||
|
class excimer extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
public function getSharedExtensionEnv(): array
|
||||||
|
{
|
||||||
|
$env = parent::getSharedExtensionEnv();
|
||||||
|
$env['LIBS'] = clean_spaces(str_replace('-lphp', '', $env['LIBS']));
|
||||||
|
return $env;
|
||||||
|
}
|
||||||
|
}
|
||||||
29
src/Package/Extension/ffi.php
Normal file
29
src/Package/Extension/ffi.php
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
|
use StaticPHP\Util\SourcePatcher;
|
||||||
|
use StaticPHP\Util\System\LinuxUtil;
|
||||||
|
|
||||||
|
#[Extension('ffi')]
|
||||||
|
class ffi extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-ffi')]
|
||||||
|
#[PatchDescription('Patch FFI extension on CentOS 7 with -O3 optimization (strncmp issue)')]
|
||||||
|
public function patchBeforeBuildconf(): void
|
||||||
|
{
|
||||||
|
spc_skip_if(!($ver = SystemTarget::getLibcVersion()) || version_compare($ver, '2.17', '>'));
|
||||||
|
$ver_id = php::getPHPVersionID(return_null_if_failed: true);
|
||||||
|
spc_skip_if($ver_id === null || $ver_id < 80316);
|
||||||
|
spc_skip_if(LinuxUtil::getOSRelease()['dist'] !== 'centos');
|
||||||
|
SourcePatcher::patchFile('ffi_centos7_fix_O3_strncmp.patch', SOURCE_PATH . '/php-src');
|
||||||
|
}
|
||||||
|
}
|
||||||
26
src/Package/Extension/gd.php
Normal file
26
src/Package/Extension/gd.php
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
|
||||||
|
#[Extension('gd')]
|
||||||
|
class gd extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(bool $shared, PackageInstaller $installer): string
|
||||||
|
{
|
||||||
|
$arg = '--enable-gd' . ($shared ? '=shared' : '');
|
||||||
|
$arg .= $installer->getLibraryPackage('freetype') ? ' --with-freetype' : '';
|
||||||
|
$arg .= $installer->getLibraryPackage('libjpeg') ? ' --with-jpeg' : '';
|
||||||
|
$arg .= $installer->getLibraryPackage('libwebp') ? ' --with-webp' : '';
|
||||||
|
$arg .= $installer->getLibraryPackage('libavif') ? ' --with-avif' : '';
|
||||||
|
return $arg;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,6 @@ namespace Package\Extension;
|
|||||||
|
|
||||||
use Package\Target\php;
|
use Package\Target\php;
|
||||||
use StaticPHP\Attribute\Package\BeforeStage;
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
|
||||||
use StaticPHP\Attribute\Package\Extension;
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
use StaticPHP\Attribute\PatchDescription;
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
use StaticPHP\Package\PhpExtensionPackage;
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
@@ -49,11 +48,4 @@ class glfw extends PhpExtensionPackage
|
|||||||
putenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=' . $extra_ldflags);
|
putenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=' . $extra_ldflags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[CustomPhpConfigureArg('Darwin')]
|
|
||||||
#[CustomPhpConfigureArg('Linux')]
|
|
||||||
public function getUnixConfigureArg(bool $shared = false): string
|
|
||||||
{
|
|
||||||
return '--enable-glfw --with-glfw-dir=' . BUILD_ROOT_PATH;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
70
src/Package/Extension/grpc.php
Normal file
70
src/Package/Extension/grpc.php
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Exception\EnvironmentException;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('grpc')]
|
||||||
|
class grpc extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-grpc')]
|
||||||
|
public function patchBeforeBuildconf(): void
|
||||||
|
{
|
||||||
|
if (SystemTarget::getTargetOS() === 'Windows') {
|
||||||
|
throw new EnvironmentException('grpc extension does not support windows yet');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fix deprecated PHP API usage in call.c
|
||||||
|
FileSystem::replaceFileStr(
|
||||||
|
"{$this->getSourceDir()}/src/php/ext/grpc/call.c",
|
||||||
|
'zend_exception_get_default(TSRMLS_C),',
|
||||||
|
'zend_ce_exception,',
|
||||||
|
);
|
||||||
|
|
||||||
|
// custom config.m4 content for grpc extension, to prevent building libgrpc.a again
|
||||||
|
$config_m4 = <<<'M4'
|
||||||
|
PHP_ARG_ENABLE(grpc, [whether to enable grpc support], [AS_HELP_STRING([--enable-grpc], [Enable grpc support])])
|
||||||
|
|
||||||
|
if test "$PHP_GRPC" != "no"; then
|
||||||
|
PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/include)
|
||||||
|
PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/src/php/ext/grpc)
|
||||||
|
GRPC_LIBDIR=@@build_lib_path@@
|
||||||
|
PHP_ADD_LIBPATH($GRPC_LIBDIR)
|
||||||
|
PHP_ADD_LIBRARY(grpc,,GRPC_SHARED_LIBADD)
|
||||||
|
LIBS="-lpthread $LIBS"
|
||||||
|
PHP_ADD_LIBRARY(pthread)
|
||||||
|
|
||||||
|
case $host in
|
||||||
|
*darwin*)
|
||||||
|
PHP_ADD_LIBRARY(c++,1,GRPC_SHARED_LIBADD)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
PHP_ADD_LIBRARY(stdc++,1,GRPC_SHARED_LIBADD)
|
||||||
|
PHP_ADD_LIBRARY(rt,,GRPC_SHARED_LIBADD)
|
||||||
|
PHP_ADD_LIBRARY(rt)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
PHP_NEW_EXTENSION(grpc, @grpc_c_files@, $ext_shared, , -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1)
|
||||||
|
PHP_SUBST(GRPC_SHARED_LIBADD)
|
||||||
|
PHP_INSTALL_HEADERS([ext/grpc], [php_grpc.h])
|
||||||
|
fi
|
||||||
|
M4;
|
||||||
|
$replace = get_pack_replace();
|
||||||
|
// load grpc c files from src/php/ext/grpc
|
||||||
|
$c_files = glob("{$this->getSourceDir()}/src/php/ext/grpc/*.c");
|
||||||
|
$replace['@grpc_c_files@'] = implode(" \\\n ", array_map(fn ($f) => 'src/php/ext/grpc/' . basename($f), $c_files));
|
||||||
|
$config_m4 = str_replace(array_keys($replace), array_values($replace), $config_m4);
|
||||||
|
file_put_contents("{$this->getSourceDir()}/config.m4", $config_m4);
|
||||||
|
|
||||||
|
copy("{$this->getSourceDir()}/src/php/ext/grpc/php_grpc.h", "{$this->getSourceDir()}/php_grpc.h");
|
||||||
|
}
|
||||||
|
}
|
||||||
21
src/Package/Extension/imagick.php
Normal file
21
src/Package/Extension/imagick.php
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PackageBuilder;
|
||||||
|
|
||||||
|
#[Extension('imagick')]
|
||||||
|
class imagick
|
||||||
|
{
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(bool $shared, PackageBuilder $builder): string
|
||||||
|
{
|
||||||
|
$disable_omp = ' ac_cv_func_omp_pause_resource_all=no';
|
||||||
|
return '--with-imagick=' . ($shared ? 'shared,' : '') . $builder->getBuildRootPath() . $disable_omp;
|
||||||
|
}
|
||||||
|
}
|
||||||
55
src/Package/Extension/imap.php
Normal file
55
src/Package/Extension/imap.php
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Attribute\Package\Validate;
|
||||||
|
use StaticPHP\Exception\WrongUsageException;
|
||||||
|
use StaticPHP\Package\PackageBuilder;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('imap')]
|
||||||
|
class imap extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[Validate]
|
||||||
|
public function validate(PackageBuilder $builder): void
|
||||||
|
{
|
||||||
|
if ($builder->getOption('enable-zts')) {
|
||||||
|
throw new WrongUsageException('ext-imap is not thread safe, do not build it with ZTS builds');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-imap')]
|
||||||
|
public function patchBeforeBuildconf(PackageInstaller $installer): void
|
||||||
|
{
|
||||||
|
if ($installer->getLibraryPackage('openssl')) {
|
||||||
|
// sometimes imap with openssl does not contain zlib (required by openssl)
|
||||||
|
// we need to add it manually
|
||||||
|
FileSystem::replaceFileStr("{$this->getSourceDir()}/config.m4", 'TST_LIBS="$DLIBS $IMAP_SHARED_LIBADD"', 'TST_LIBS="$DLIBS $IMAP_SHARED_LIBADD -lz"');
|
||||||
|
}
|
||||||
|
// c-client is built with PASSWDTYPE=nul so libcrypt is not referenced.
|
||||||
|
FileSystem::replaceFileStr(
|
||||||
|
"{$this->getSourceDir()}/config.m4",
|
||||||
|
" PHP_CHECK_LIBRARY(crypt, crypt,\n [\n PHP_ADD_LIBRARY(crypt,, IMAP_SHARED_LIBADD)\n AC_DEFINE(HAVE_LIBCRYPT,1,[ ])\n ])",
|
||||||
|
' dnl Skipped: crypt check not needed (c-client built with PASSWDTYPE=nul)'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(PackageInstaller $installer, PackageBuilder $builder): string
|
||||||
|
{
|
||||||
|
$arg = "--with-imap={$builder->getBuildRootPath()}";
|
||||||
|
if (($ssl = $installer->getLibraryPackage('openssl')) !== null) {
|
||||||
|
$arg .= " --with-imap-ssl={$ssl->getBuildRootPath()}";
|
||||||
|
}
|
||||||
|
return $arg;
|
||||||
|
}
|
||||||
|
}
|
||||||
30
src/Package/Extension/maxminddb.php
Normal file
30
src/Package/Extension/maxminddb.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('maxminddb')]
|
||||||
|
class maxminddb extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-maxminddb')]
|
||||||
|
#[PatchDescription('Patch maxminddb extension for buildconf to support new source structure')]
|
||||||
|
public function patchBeforeBuildconf(): void
|
||||||
|
{
|
||||||
|
if (file_exists("{$this->getSourceDir()}/config.m4")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// move ext/maxminddb/ext/* to ext/maxminddb/
|
||||||
|
$files = FileSystem::scanDirFiles("{$this->getSourceDir()}/ext", false, true);
|
||||||
|
foreach ($files as $file) {
|
||||||
|
rename("{$this->getSourceDir()}/ext/{$file}", "{$this->getSourceDir()}/{$file}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
75
src/Package/Extension/memcache.php
Normal file
75
src/Package/Extension/memcache.php
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('memcache')]
|
||||||
|
class memcache extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-memcache')]
|
||||||
|
public function patchBeforeBuildconf(): bool
|
||||||
|
{
|
||||||
|
if (!$this->isBuildStatic()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
FileSystem::replaceFileStr(
|
||||||
|
"{$this->getSourceDir()}/config9.m4",
|
||||||
|
'if test -d $abs_srcdir/src ; then',
|
||||||
|
'if test -d $abs_srcdir/main ; then'
|
||||||
|
);
|
||||||
|
FileSystem::replaceFileStr(
|
||||||
|
"{$this->getSourceDir()}/config9.m4",
|
||||||
|
'export CPPFLAGS="$CPPFLAGS $INCLUDES"',
|
||||||
|
'export CPPFLAGS="$CPPFLAGS $INCLUDES -I$abs_srcdir/main"'
|
||||||
|
);
|
||||||
|
// add for in-tree building
|
||||||
|
file_put_contents(
|
||||||
|
"{$this->getSourceDir()}/php_memcache.h",
|
||||||
|
<<<'EOF'
|
||||||
|
#ifndef PHP_MEMCACHE_H
|
||||||
|
#define PHP_MEMCACHE_H
|
||||||
|
|
||||||
|
extern zend_module_entry memcache_module_entry;
|
||||||
|
#define phpext_memcache_ptr &memcache_module_entry
|
||||||
|
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[BeforeStage('ext-memcache', [self::class, 'configureForUnix'])]
|
||||||
|
#[PatchDescription('Fix memcache extension compile error when building as shared')]
|
||||||
|
public function patchBeforeSharedConfigure(): bool
|
||||||
|
{
|
||||||
|
if (!$this->isBuildShared()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
FileSystem::replaceFileStr(
|
||||||
|
"{$this->getSourceDir()}/config9.m4",
|
||||||
|
'if test -d $abs_srcdir/main ; then',
|
||||||
|
'if test -d $abs_srcdir/src ; then',
|
||||||
|
);
|
||||||
|
FileSystem::replaceFileStr(
|
||||||
|
"{$this->getSourceDir()}/config9.m4",
|
||||||
|
'export CPPFLAGS="$CPPFLAGS $INCLUDES -I$abs_srcdir/main"',
|
||||||
|
'export CPPFLAGS="$CPPFLAGS $INCLUDES"',
|
||||||
|
);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSharedExtensionEnv(): array
|
||||||
|
{
|
||||||
|
$parent = parent::getSharedExtensionEnv();
|
||||||
|
$parent['CFLAGS'] .= ' -std=c17';
|
||||||
|
return $parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
30
src/Package/Extension/memcached.php
Normal file
30
src/Package/Extension/memcached.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
|
||||||
|
#[Extension('memcached')]
|
||||||
|
class memcached extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(bool $shared, PackageInstaller $installer): string
|
||||||
|
{
|
||||||
|
return '--enable-memcached' . ($shared ? '=shared' : '') . ' ' .
|
||||||
|
'--with-zlib-dir=' . $installer->getLibraryPackage('zlib')->getBuildRootPath() . ' ' .
|
||||||
|
'--with-libmemcached-dir=' . $installer->getLibraryPackage('libmemcached')->getBuildRootPath() . ' ' .
|
||||||
|
'--disable-memcached-sasl ' .
|
||||||
|
'--enable-memcached-json ' .
|
||||||
|
($installer->getLibraryPackage('zstd') ? '--with-zstd ' : '') .
|
||||||
|
($installer->getPhpExtensionPackage('ext-igbinary') ? '--enable-memcached-igbinary ' : '') .
|
||||||
|
($installer->getPhpExtensionPackage('ext-session') ? '--enable-memcached-session ' : '') .
|
||||||
|
($installer->getPhpExtensionPackage('ext-msgpack') ? '--enable-memcached-msgpack ' : '') .
|
||||||
|
'--with-system-fastlz';
|
||||||
|
}
|
||||||
|
}
|
||||||
38
src/Package/Extension/mongodb.php
Normal file
38
src/Package/Extension/mongodb.php
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
|
||||||
|
#[Extension('mongodb')]
|
||||||
|
class mongodb extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(bool $shared, PackageInstaller $installer): string
|
||||||
|
{
|
||||||
|
$arg = ' --enable-mongodb' . ($shared ? '=shared' : '') . ' ';
|
||||||
|
$arg .= ' --with-mongodb-system-libs=no --with-mongodb-client-side-encryption=no ';
|
||||||
|
$arg .= ' --with-mongodb-sasl=no ';
|
||||||
|
if ($installer->getLibraryPackage('openssl')) {
|
||||||
|
$arg .= '--with-mongodb-ssl=openssl';
|
||||||
|
}
|
||||||
|
$arg .= $installer->getLibraryPackage('icu') ? ' --with-mongodb-icu=yes ' : ' --with-mongodb-icu=no ';
|
||||||
|
$arg .= $installer->getLibraryPackage('zstd') ? ' --with-mongodb-zstd=yes ' : ' --with-mongodb-zstd=no ';
|
||||||
|
// $arg .= $installer->getLibraryPackage('snappy') ? ' --with-mongodb-snappy=yes ' : ' --with-mongodb-snappy=no ';
|
||||||
|
$arg .= $installer->getLibraryPackage('zlib') ? ' --with-mongodb-zlib=yes ' : ' --with-mongodb-zlib=bundled ';
|
||||||
|
return clean_spaces($arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSharedExtensionEnv(): array
|
||||||
|
{
|
||||||
|
$parent = parent::getSharedExtensionEnv();
|
||||||
|
$parent['CFLAGS'] .= ' -std=c17';
|
||||||
|
return $parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
76
src/Package/Extension/opcache.php
Normal file
76
src/Package/Extension/opcache.php
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Attribute\Package\Validate;
|
||||||
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
|
use StaticPHP\Exception\WrongUsageException;
|
||||||
|
use StaticPHP\Package\PackageBuilder;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Runtime\SystemTarget;
|
||||||
|
use StaticPHP\Util\SourcePatcher;
|
||||||
|
|
||||||
|
#[Extension('opcache')]
|
||||||
|
class opcache extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[Validate]
|
||||||
|
public function validate(): void
|
||||||
|
{
|
||||||
|
if (php::getPHPVersionID() < 80000 && getenv('SPC_SKIP_PHP_VERSION_CHECK') !== 'yes') {
|
||||||
|
throw new WrongUsageException('Statically compiled PHP with Zend Opcache only available for PHP >= 8.0 !');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-opcache')]
|
||||||
|
#[PatchDescription('Fix static opcache build for PHP 8.2.0 to 8.4.x')]
|
||||||
|
public function patchBeforeBuildconf(PackageInstaller $installer): bool
|
||||||
|
{
|
||||||
|
$version = php::getPHPVersion();
|
||||||
|
$php_src = $installer->getTargetPackage('php')->getSourceDir();
|
||||||
|
if (file_exists("{$php_src}/.opcache_patched")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// if 8.2.0 <= PHP_VERSION < 8.2.23, we need to patch from legacy patch file
|
||||||
|
if (version_compare($version, '8.2.0', '>=') && version_compare($version, '8.2.23', '<')) {
|
||||||
|
SourcePatcher::patchFile('spc_fix_static_opcache_before_80222.patch', $php_src);
|
||||||
|
}
|
||||||
|
// if 8.3.0 <= PHP_VERSION < 8.3.11, we need to patch from legacy patch file
|
||||||
|
elseif (version_compare($version, '8.3.0', '>=') && version_compare($version, '8.3.11', '<')) {
|
||||||
|
SourcePatcher::patchFile('spc_fix_static_opcache_before_80310.patch', $php_src);
|
||||||
|
}
|
||||||
|
// if 8.3.12 <= PHP_VERSION < 8.5.0-dev, we need to patch from legacy patch file
|
||||||
|
elseif (version_compare($version, '8.5.0-dev', '<')) {
|
||||||
|
SourcePatcher::patchPhpSrc(items: ['static_opcache']);
|
||||||
|
}
|
||||||
|
// PHP 8.5.0-dev and later supports static opcache without patching
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return file_put_contents($php_src . '/.opcache_patched', '1') !== false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(bool $shared, PackageBuilder $builder): string
|
||||||
|
{
|
||||||
|
$phpVersionID = php::getPHPVersionID();
|
||||||
|
$opcache_jit = ' --enable-opcache-jit';
|
||||||
|
if ((SystemTarget::getTargetOS() === 'Linux' &&
|
||||||
|
SystemTarget::getLibc() === 'musl' &&
|
||||||
|
$builder->getOption('enable-zts') &&
|
||||||
|
SystemTarget::getTargetArch() === 'x86_64' &&
|
||||||
|
$phpVersionID < 80500) ||
|
||||||
|
$builder->getOption('disable-opcache-jit')
|
||||||
|
) {
|
||||||
|
$opcache_jit = ' --disable-opcache-jit';
|
||||||
|
}
|
||||||
|
return '--enable-opcache' . ($shared ? '=shared' : '') . $opcache_jit;
|
||||||
|
}
|
||||||
|
}
|
||||||
21
src/Package/Extension/opentelemetry.php
Normal file
21
src/Package/Extension/opentelemetry.php
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Util\GlobalEnvManager;
|
||||||
|
|
||||||
|
#[Extension('opentelemetry')]
|
||||||
|
class opentelemetry
|
||||||
|
{
|
||||||
|
#[BeforeStage('php', [php::class, 'makeForUnix'], 'ext-opentelemetry')]
|
||||||
|
public function patchBeforeMake(): void
|
||||||
|
{
|
||||||
|
// add -Wno-strict-prototypes
|
||||||
|
GlobalEnvManager::putenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS=' . getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS') . ' -Wno-strict-prototypes');
|
||||||
|
}
|
||||||
|
}
|
||||||
35
src/Package/Extension/parallel.php
Normal file
35
src/Package/Extension/parallel.php
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Attribute\Package\Validate;
|
||||||
|
use StaticPHP\Attribute\PatchDescription;
|
||||||
|
use StaticPHP\Exception\WrongUsageException;
|
||||||
|
use StaticPHP\Package\PackageBuilder;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('parallel')]
|
||||||
|
class parallel extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[Validate]
|
||||||
|
public function validate(PackageBuilder $builder): void
|
||||||
|
{
|
||||||
|
if (!$builder->getOption('enable-zts')) {
|
||||||
|
throw new WrongUsageException('ext-parallel must be built with ZTS builds. Use "--enable-zts" option!');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-parallel')]
|
||||||
|
#[PatchDescription('Fix parallel m4 hardcoded PHP_VERSION check')]
|
||||||
|
public function patchBeforeBuildconf(): bool
|
||||||
|
{
|
||||||
|
FileSystem::replaceFileRegex("{$this->getSourceDir()}/config.m4", '/PHP_VERSION=.*/m', '');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
37
src/Package/Extension/password_argon2.php
Normal file
37
src/Package/Extension/password_argon2.php
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Exception\ValidationException;
|
||||||
|
use StaticPHP\Package\PackageBuilder;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
|
||||||
|
#[Extension('password-argon2')]
|
||||||
|
class password_argon2 extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
public function runSmokeTestCliUnix(): void
|
||||||
|
{
|
||||||
|
[$ret] = shell()->execWithResult(BUILD_ROOT_PATH . '/bin/php -n -r "assert(defined(\'PASSWORD_ARGON2I\'));"');
|
||||||
|
if ($ret !== 0) {
|
||||||
|
throw new ValidationException('extension ' . $this->getName() . ' failed sanity check', validation_module: 'password_argon2 function check');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
public function getConfigureArg(PackageInstaller $installer, PackageBuilder $builder): string
|
||||||
|
{
|
||||||
|
if ($installer->getLibraryPackage('openssl') !== null) {
|
||||||
|
if (php::getPHPVersionID() >= 80500 || (php::getPHPVersionID() >= 80400 && !$builder->getOption('enable-zts'))) {
|
||||||
|
return '--without-password-argon2'; // use --with-openssl-argon2 in openssl extension instead
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return '--with-password-argon2';
|
||||||
|
}
|
||||||
|
}
|
||||||
35
src/Package/Extension/pdo_odbc.php
Normal file
35
src/Package/Extension/pdo_odbc.php
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('pdo_odbc')]
|
||||||
|
class pdo_odbc extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[BeforeStage('php', [php::class, 'buildconfForUnix'], 'ext-pdo_odbc')]
|
||||||
|
public function patchBeforeBuildconf(): void
|
||||||
|
{
|
||||||
|
FileSystem::replaceFileStr("{$this->getSourceDir()}/config.m4", 'PDO_ODBC_LDFLAGS="$pdo_odbc_def_ldflags', 'PDO_ODBC_LDFLAGS="-liconv $pdo_odbc_def_ldflags');
|
||||||
|
}
|
||||||
|
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
public function getUnixConfigureArg(bool $shared): string
|
||||||
|
{
|
||||||
|
return '--with-pdo-odbc=' . ($shared ? 'shared,' : '') . 'unixODBC,' . BUILD_ROOT_PATH;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[CustomPhpConfigureArg('Windows')]
|
||||||
|
public function getWindowsConfigureArg(bool $shared): string
|
||||||
|
{
|
||||||
|
return '--with-pdo-odbc';
|
||||||
|
}
|
||||||
|
}
|
||||||
25
src/Package/Extension/pdo_sqlite.php
Normal file
25
src/Package/Extension/pdo_sqlite.php
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\BeforeStage;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Util\FileSystem;
|
||||||
|
|
||||||
|
#[Extension('pdo_sqlite')]
|
||||||
|
class pdo_sqlite
|
||||||
|
{
|
||||||
|
#[BeforeStage('php', [php::class, 'configureForUnix'], 'ext-pdo_sqlite')]
|
||||||
|
public function patchBeforeConfigure(PackageInstaller $installer): void
|
||||||
|
{
|
||||||
|
FileSystem::replaceFileRegex(
|
||||||
|
"{$installer->getTargetPackage('php')->getSourceDir()}/configure",
|
||||||
|
'/sqlite3_column_table_name=yes/',
|
||||||
|
'sqlite3_column_table_name=no'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/Package/Extension/pgsql.php
Normal file
48
src/Package/Extension/pgsql.php
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Package\Extension;
|
||||||
|
|
||||||
|
use Package\Target\php;
|
||||||
|
use StaticPHP\Attribute\Package\CustomPhpConfigureArg;
|
||||||
|
use StaticPHP\Attribute\Package\Extension;
|
||||||
|
use StaticPHP\Package\PackageBuilder;
|
||||||
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Package\PhpExtensionPackage;
|
||||||
|
use StaticPHP\Util\SPCConfigUtil;
|
||||||
|
|
||||||
|
#[Extension('pgsql')]
|
||||||
|
class pgsql extends PhpExtensionPackage
|
||||||
|
{
|
||||||
|
#[CustomPhpConfigureArg('Darwin')]
|
||||||
|
#[CustomPhpConfigureArg('Linux')]
|
||||||
|
public function getUnixConfigureArg(bool $shared, PackageBuilder $builder, PackageInstaller $installer): string
|
||||||
|
{
|
||||||
|
if (php::getPHPVersionID() >= 80400) {
|
||||||
|
$libfiles = new SPCConfigUtil(['libs_only_deps' => true, 'absolute_libs' => true])->getPackageDepsConfig('postgresql', array_keys($installer->getResolvedPackages()), $builder->getOption('with-suggests'))['libs'];
|
||||||
|
$libfiles = str_replace("{$builder->getLibDir()}/lib", '-l', $libfiles);
|
||||||
|
$libfiles = str_replace('.a', '', $libfiles);
|
||||||
|
return '--with-pgsql' . ($shared ? '=shared' : '') .
|
||||||
|
' PGSQL_CFLAGS=-I' . $builder->getIncludeDir() .
|
||||||
|
' PGSQL_LIBS="-L' . $builder->getLibDir() . ' ' . $libfiles . '"';
|
||||||
|
}
|
||||||
|
return '--with-pgsql=' . ($shared ? 'shared,' : '') . $builder->getBuildRootPath();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[CustomPhpConfigureArg('Windows')]
|
||||||
|
public function getWindowsConfigureArg(bool $shared, PackageBuilder $builder): string
|
||||||
|
{
|
||||||
|
if (php::getPHPVersionID() >= 80400) {
|
||||||
|
return '--with-pgsql';
|
||||||
|
}
|
||||||
|
return "--with-pgsql={$builder->getBuildRootPath()}";
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getSharedExtensionEnv(): array
|
||||||
|
{
|
||||||
|
$parent = parent::getSharedExtensionEnv();
|
||||||
|
$parent['CFLAGS'] .= ' -std=c17 -Wno-int-conversion';
|
||||||
|
return $parent;
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user