Update redis to 6.0.2, add alternative license file searcher (#539)

* Update redis to 6.0.2, add alternative license file searcher

* Update docs about source module
This commit is contained in:
Jerry Ma 2024-09-09 17:41:29 +08:00 committed by GitHub
parent c55ccf242b
commit ad098d085e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 60 additions and 10 deletions

View File

@ -649,11 +649,14 @@
"redis": { "redis": {
"type": "git", "type": "git",
"path": "php-src/ext/redis", "path": "php-src/ext/redis",
"rev": "5.3.7", "rev": "release/6.0.2",
"url": "https://github.com/phpredis/phpredis", "url": "https://github.com/phpredis/phpredis",
"license": { "license": {
"type": "file", "type": "file",
"path": "COPYING" "path": [
"LICENSE",
"COPYING"
]
} }
}, },
"snappy": { "snappy": {

View File

@ -317,3 +317,24 @@ When an open source project has multiple licenses, multiple files can be specifi
} }
} }
``` ```
When the license of an open source project uses different files between versions,
`path` can be used as an array to list the possible license files:
```json
{
"redis": {
"type": "git",
"path": "php-src/ext/redis",
"rev": "release/6.0.2",
"url": "https://github.com/phpredis/phpredis",
"license": {
"type": "file",
"path": [
"LICENSE",
"COPYING"
]
}
}
}
```

View File

@ -297,3 +297,23 @@ pkg.json 存放的是非源码类型的文件资源,例如 musl-toolchain、UP
} }
} }
``` ```
当一个开源项目的许可证在不同版本间使用不同的文件,`path` 参数可以使用数组将可能的许可证文件列出:
```json
{
"redis": {
"type": "git",
"path": "php-src/ext/redis",
"rev": "release/6.0.2",
"url": "https://github.com/phpredis/phpredis",
"license": {
"type": "file",
"path": [
"LICENSE",
"COPYING"
]
}
}
}
```

View File

@ -30,7 +30,7 @@ use Symfony\Component\Console\Application;
*/ */
final class ConsoleApplication extends Application final class ConsoleApplication extends Application
{ {
public const VERSION = '2.3.3'; public const VERSION = '2.3.4';
public function __construct() public function __construct()
{ {

View File

@ -118,20 +118,26 @@ class LicenseDumper
/** /**
* @throws RuntimeException * @throws RuntimeException
*/ */
private function loadSourceFile(string $source_name, int $index, ?string $in_path, ?string $custom_base_path = null): string private function loadSourceFile(string $source_name, int $index, null|array|string $in_path, ?string $custom_base_path = null): string
{ {
if (is_null($in_path)) { if (is_null($in_path)) {
throw new RuntimeException('source [' . $source_name . '] license file is not set, please check config/source.json'); throw new RuntimeException('source [' . $source_name . '] license file is not set, please check config/source.json');
} }
if (file_exists(SOURCE_PATH . '/' . ($custom_base_path ?? $source_name) . '/' . $in_path)) { if (!is_array($in_path)) {
return file_get_contents(SOURCE_PATH . '/' . ($custom_base_path ?? $source_name) . '/' . $in_path); $in_path = [$in_path];
}
foreach ($in_path as $item) {
if (file_exists(SOURCE_PATH . '/' . ($custom_base_path ?? $source_name) . '/' . $item)) {
return file_get_contents(SOURCE_PATH . '/' . ($custom_base_path ?? $source_name) . '/' . $item);
}
} }
if (file_exists(BUILD_ROOT_PATH . '/source-licenses/' . $source_name . '/' . $index . '.txt')) { if (file_exists(BUILD_ROOT_PATH . '/source-licenses/' . $source_name . '/' . $index . '.txt')) {
return file_get_contents(BUILD_ROOT_PATH . '/source-licenses/' . $source_name . '/' . $index . '.txt'); return file_get_contents(BUILD_ROOT_PATH . '/source-licenses/' . $source_name . '/' . $index . '.txt');
} }
throw new RuntimeException('source [' . $source_name . '] license file [' . $in_path . '] not exist'); throw new RuntimeException('Cannot find any license file in source [' . $source_name . '] directory!');
} }
} }

View File

@ -19,13 +19,13 @@ $upx = true;
// If you want to test your added extensions and libs, add below (comma separated, example `bcmath,openssl`). // If you want to test your added extensions and libs, add below (comma separated, example `bcmath,openssl`).
$extensions = match (PHP_OS_FAMILY) { $extensions = match (PHP_OS_FAMILY) {
'Linux', 'Darwin' => 'imap,swoole-hook-sqlite,swoole', 'Linux', 'Darwin' => 'redis,igbinary',
'Windows' => 'igbinary,redis,session', 'Windows' => 'redis,igbinary',
}; };
// If you want to test lib-suggests feature with extension, add them below (comma separated, example `libwebp,libavif`). // If you want to test lib-suggests feature with extension, add them below (comma separated, example `libwebp,libavif`).
$with_libs = match (PHP_OS_FAMILY) { $with_libs = match (PHP_OS_FAMILY) {
'Linux', 'Darwin' => '', 'Linux', 'Darwin' => 'liblz4',
'Windows' => '', 'Windows' => '',
}; };