summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--composer-bash-completion84
-rw-r--r--composer-noxdg.patch12
-rw-r--r--composer-rpm.patch145
-rw-r--r--composer.json65
-rw-r--r--composer.spec454
-rw-r--r--installed.json2094
-rwxr-xr-xmakesrc.sh37
7 files changed, 2582 insertions, 309 deletions
diff --git a/composer-bash-completion b/composer-bash-completion
new file mode 100644
index 0000000..d57fa7c
--- /dev/null
+++ b/composer-bash-completion
@@ -0,0 +1,84 @@
+# This file is part of the Symfony package.
+#
+# (c) Fabien Potencier <fabien@symfony.com>
+#
+# For the full copyright and license information, please view
+# https://symfony.com/doc/current/contributing/code/license.html
+
+_sf_composer() {
+ # Use newline as only separator to allow space in completion values
+ IFS=$'\n'
+ local sf_cmd="${COMP_WORDS[0]}"
+
+ # for an alias, get the real script behind it
+ sf_cmd_type=$(type -t $sf_cmd)
+ if [[ $sf_cmd_type == "alias" ]]; then
+ sf_cmd=$(alias $sf_cmd | sed -E "s/alias $sf_cmd='(.*)'/\1/")
+ elif [[ $sf_cmd_type == "file" ]]; then
+ sf_cmd=$(type -p $sf_cmd)
+ fi
+
+ if [[ $sf_cmd_type != "function" && ! -x $sf_cmd ]]; then
+ return 1
+ fi
+
+ local cur prev words cword
+ _get_comp_words_by_ref -n := cur prev words cword
+
+ local completecmd=("$sf_cmd" "_complete" "--no-interaction" "-sbash" "-c$cword" "-S2.7.4")
+ for w in ${words[@]}; do
+ w=$(printf -- '%b' "$w")
+ # remove quotes from typed values
+ quote="${w:0:1}"
+ if [ "$quote" == \' ]; then
+ w="${w%\'}"
+ w="${w#\'}"
+ elif [ "$quote" == \" ]; then
+ w="${w%\"}"
+ w="${w#\"}"
+ fi
+ # empty values are ignored
+ if [ ! -z "$w" ]; then
+ completecmd+=("-i$w")
+ fi
+ done
+
+ local sfcomplete
+ if sfcomplete=$(${completecmd[@]} 2>&1); then
+ local quote suggestions
+ quote=${cur:0:1}
+
+ # Use single quotes by default if suggestions contains backslash (FQCN)
+ if [ "$quote" == '' ] && [[ "$sfcomplete" =~ \\ ]]; then
+ quote=\'
+ fi
+
+ if [ "$quote" == \' ]; then
+ # single quotes: no additional escaping (does not accept ' in values)
+ suggestions=$(for s in $sfcomplete; do printf $'%q%q%q\n' "$quote" "$s" "$quote"; done)
+ elif [ "$quote" == \" ]; then
+ # double quotes: double escaping for \ $ ` "
+ suggestions=$(for s in $sfcomplete; do
+ s=${s//\\/\\\\}
+ s=${s//\$/\\\$}
+ s=${s//\`/\\\`}
+ s=${s//\"/\\\"}
+ printf $'%q%q%q\n' "$quote" "$s" "$quote";
+ done)
+ else
+ # no quotes: double escaping
+ suggestions=$(for s in $sfcomplete; do printf $'%q\n' $(printf '%q' "$s"); done)
+ fi
+ COMPREPLY=($(IFS=$'\n' compgen -W "$suggestions" -- $(printf -- "%q" "$cur")))
+ __ltrim_colon_completions "$cur"
+ else
+ if [[ "$sfcomplete" != *"Command \"_complete\" is not defined."* ]]; then
+ >&2 echo
+ >&2 echo $sfcomplete
+ fi
+
+ return 1
+ fi
+}
+
+complete -F _sf_composer composer
diff --git a/composer-noxdg.patch b/composer-noxdg.patch
index fc6b127..8971527 100644
--- a/composer-noxdg.patch
+++ b/composer-noxdg.patch
@@ -1,14 +1,14 @@
diff -up ./src/Composer/Factory.php.noxdg ./src/Composer/Factory.php
---- ./src/Composer/Factory.php.noxdg 2021-05-31 15:37:50.548115679 +0200
-+++ ./src/Composer/Factory.php 2021-05-31 15:39:05.192882880 +0200
-@@ -653,6 +653,10 @@ class Factory
- */
- private static function useXdg()
+--- ./src/Composer/Factory.php.noxdg 2024-04-20 12:34:54.442117723 +0200
++++ ./src/Composer/Factory.php 2024-04-20 12:35:39.497640757 +0200
+@@ -680,6 +680,10 @@ class Factory
+
+ private static function useXdg(): bool
{
+ // As XDG is very patially implemted
+ // resulting in command/code in ~/.config
+ return false;
+
foreach (array_keys($_SERVER) as $key) {
- if (strpos($key, 'XDG_') === 0) {
+ if (strpos((string) $key, 'XDG_') === 0) {
return true;
diff --git a/composer-rpm.patch b/composer-rpm.patch
index d63b69b..162dcdd 100644
--- a/composer-rpm.patch
+++ b/composer-rpm.patch
@@ -1,7 +1,7 @@
diff -up ./bin/composer.rpm ./bin/composer
---- ./bin/composer.rpm 2021-06-04 09:21:49.000000000 +0200
-+++ ./bin/composer 2021-06-04 09:21:53.808648766 +0200
-@@ -6,7 +6,7 @@ if (PHP_SAPI !== 'cli' && PHP_SAPI !== '
+--- ./bin/composer.rpm 2023-09-01 11:05:16.000000000 +0200
++++ ./bin/composer 2023-09-01 11:05:28.156309389 +0200
+@@ -11,7 +11,7 @@ if (PHP_VERSION_ID < 70205) {
}
setlocale(LC_ALL, 'C');
@@ -11,21 +11,21 @@ diff -up ./bin/composer.rpm ./bin/composer
use Composer\Console\Application;
use Composer\XdebugHandler\XdebugHandler;
diff -up ./src/Composer/Autoload/AutoloadGenerator.php.rpm ./src/Composer/Autoload/AutoloadGenerator.php
---- ./src/Composer/Autoload/AutoloadGenerator.php.rpm 2021-06-04 09:21:49.000000000 +0200
-+++ ./src/Composer/Autoload/AutoloadGenerator.php 2021-06-04 09:21:53.808648766 +0200
-@@ -395,7 +395,7 @@ EOF;
- $filesystem->filePutContentsIfModified($targetDir.'/autoload_real.php', $this->getAutoloadRealFile(true, (bool) $includePathFileContents, $targetDirLoader, (bool) $includeFilesFileContents, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion, $checkPlatform));
+--- ./src/Composer/Autoload/AutoloadGenerator.php.rpm 2023-09-01 11:05:16.000000000 +0200
++++ ./src/Composer/Autoload/AutoloadGenerator.php 2023-09-01 11:05:28.156309389 +0200
+@@ -448,7 +448,7 @@ EOF;
+ $filesystem->filePutContentsIfModified($targetDir.'/autoload_real.php', $this->getAutoloadRealFile(true, (bool) $includePathFileContents, $targetDirLoader, (bool) $includeFilesFileContents, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $checkPlatform));
$filesystem->safeCopy(__DIR__.'/ClassLoader.php', $targetDir.'/ClassLoader.php');
- $filesystem->safeCopy(__DIR__.'/../../../LICENSE', $targetDir.'/LICENSE');
+ $filesystem->safeCopy((getenv('BUILDROOT')?:'') . '/usr/share/composer/LICENSE', $targetDir.'/LICENSE');
if ($this->runScripts) {
- $this->eventDispatcher->dispatchScript(ScriptEvents::POST_AUTOLOAD_DUMP, $this->devMode, array(), array(
+ $this->eventDispatcher->dispatchScript(ScriptEvents::POST_AUTOLOAD_DUMP, $this->devMode, [], [
diff -up ./src/Composer/Compiler.php.rpm ./src/Composer/Compiler.php
---- ./src/Composer/Compiler.php.rpm 2021-06-04 09:21:49.000000000 +0200
-+++ ./src/Composer/Compiler.php 2021-06-04 09:21:53.808648766 +0200
-@@ -100,7 +100,7 @@ class Compiler
+--- ./src/Composer/Compiler.php.rpm 2023-09-01 11:05:16.000000000 +0200
++++ ./src/Composer/Compiler.php 2023-09-01 11:05:28.156309389 +0200
+@@ -105,7 +105,7 @@ class Compiler
// Add Composer resources
$finder = new Finder();
$finder->files()
@@ -34,83 +34,10 @@ diff -up ./src/Composer/Compiler.php.rpm ./src/Composer/Compiler.php
->sort($finderSort)
;
foreach ($finder as $file) {
-diff -up ./src/Composer/Json/JsonFile.php.rpm ./src/Composer/Json/JsonFile.php
---- ./src/Composer/Json/JsonFile.php.rpm 2021-06-04 09:21:49.000000000 +0200
-+++ ./src/Composer/Json/JsonFile.php 2021-06-04 09:23:51.867361526 +0200
-@@ -34,7 +34,7 @@ class JsonFile
- const JSON_PRETTY_PRINT = 128;
- const JSON_UNESCAPED_UNICODE = 256;
-
-- const COMPOSER_SCHEMA_PATH = '/../../../res/composer-schema.json';
-+ const COMPOSER_SCHEMA_PATH = '/usr/share/composer/res/composer-schema.json';
-
- private $path;
- private $httpDownloader;
-@@ -188,7 +188,7 @@ class JsonFile
- $isComposerSchemaFile = false;
- if (null === $schemaFile) {
- $isComposerSchemaFile = true;
-- $schemaFile = __DIR__ . self::COMPOSER_SCHEMA_PATH;
-+ $schemaFile = (getenv('BUILDROOT')?:'') . self::COMPOSER_SCHEMA_PATH;
- }
-
- // Prepend with file:// only when not using a special schema already (e.g. in the phar)
-diff -up ./tests/Composer/Test/Json/ComposerSchemaTest.php.rpm ./tests/Composer/Test/Json/ComposerSchemaTest.php
---- ./tests/Composer/Test/Json/ComposerSchemaTest.php.rpm 2021-06-04 09:21:49.000000000 +0200
-+++ ./tests/Composer/Test/Json/ComposerSchemaTest.php 2021-06-04 09:21:53.808648766 +0200
-@@ -93,7 +93,8 @@ class ComposerSchemaTest extends TestCas
- private function check($json)
- {
- $validator = new Validator();
-- $validator->check(json_decode($json), (object) array('$ref' => 'file://' . __DIR__ . '/../../../../res/composer-schema.json'));
-+ $f = (getenv('BUILDROOT')?:'') . '/usr/share/composer/res/composer-schema.json';
-+ $validator->check(json_decode($json), (object) array('$ref' => 'file://' . $f));
-
- if (!$validator->isValid()) {
- $errors = $validator->getErrors();
-diff -up ./tests/Composer/Test/PolyfillTestCase.php.rpm ./tests/Composer/Test/PolyfillTestCase.php
---- ./tests/Composer/Test/PolyfillTestCase.php.rpm 2021-06-04 09:21:49.000000000 +0200
-+++ ./tests/Composer/Test/PolyfillTestCase.php 2021-06-04 09:21:53.808648766 +0200
-@@ -15,10 +15,35 @@ namespace Composer\Test {
- use PHPUnit\Framework\Constraint\LogicalNot;
- use PHPUnit\Framework\Constraint\StringContains;
-
-- if (method_exists('PHPUnit\Framework\TestCase', 'assertStringContainsString')) {
-+ if (method_exists('PHPUnit\Framework\TestCase', 'assertFileDoesNotExist')) {
- abstract class PolyfillTestCase extends TestCase
- {
- }
-+ } else if (method_exists('PHPUnit\Framework\TestCase', 'assertStringContainsString')) {
-+ abstract class PolyfillTestCase extends TestCase {
-+ /**
-+ * @param string $filename
-+ * @param string $message
-+ *
-+ * @return void
-+ */
-+ public static function assertFileDoesNotExist($filename, $message = '')
-+ {
-+ static::assertFileNotExists($filename, $message);
-+ }
-+
-+ /**
-+ * @param string $pattern
-+ * @param string $string
-+ * @param string $message
-+ *
-+ * @return void
-+ */
-+ public static function assertMatchesRegularExpression($pattern, $string, $message = '')
-+ {
-+ static::assertRegExp($pattern, $string, $message);
-+ }
-+ }
- } else {
- abstract class PolyfillTestCase extends TestCase
- {
---- ./src/Composer/InstalledVersions.php.rpm 2021-06-07 08:18:59.326450774 +0200
-+++ ./src/Composer/InstalledVersions.php 2021-06-07 08:19:11.525413189 +0200
-@@ -251,7 +251,7 @@ class InstalledVersions
+diff -up ./src/Composer/InstalledVersions.php.rpm ./src/Composer/InstalledVersions.php
+--- ./src/Composer/InstalledVersions.php.rpm 2023-09-01 11:05:16.000000000 +0200
++++ ./src/Composer/InstalledVersions.php 2023-09-01 11:05:28.156309389 +0200
+@@ -266,7 +266,7 @@ class InstalledVersions
if (null === self::$installed) {
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
@@ -119,13 +46,45 @@ diff -up ./tests/Composer/Test/PolyfillTestCase.php.rpm ./tests/Composer/Test/Po
self::$installed = include __DIR__ . '/installed.php';
} else {
self::$installed = array();
-@@ -324,7 +324,7 @@ class InstalledVersions
+@@ -341,7 +341,7 @@ class InstalledVersions
if (null === self::$installed) {
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
- if (substr(__DIR__, -8, 1) !== 'C') {
+ if (substr(__DIR__, -8, 1) !== 'C' && is_file(__DIR__ . '/installed.php')) {
- self::$installed = require __DIR__ . '/installed.php';
- } else {
- self::$installed = array();
-
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
+ $required = require __DIR__ . '/installed.php';
+ self::$installed = $required;
+diff -up ./src/Composer/Json/JsonFile.php.rpm ./src/Composer/Json/JsonFile.php
+--- ./src/Composer/Json/JsonFile.php.rpm 2023-09-01 11:05:16.000000000 +0200
++++ ./src/Composer/Json/JsonFile.php 2023-09-01 11:06:16.767233012 +0200
+@@ -40,7 +40,7 @@ class JsonFile
+ /** @deprecated Use \JSON_UNESCAPED_UNICODE */
+ public const JSON_UNESCAPED_UNICODE = 256;
+
+- public const COMPOSER_SCHEMA_PATH = __DIR__ . '/../../../res/composer-schema.json';
++ public const COMPOSER_SCHEMA_PATH = '/usr/share/composer/res/composer-schema.json';
+
+ public const INDENT_DEFAULT = ' ';
+
+@@ -229,7 +229,7 @@ class JsonFile
+ $isComposerSchemaFile = false;
+ if (null === $schemaFile) {
+ $isComposerSchemaFile = true;
+- $schemaFile = self::COMPOSER_SCHEMA_PATH;
++ $schemaFile = (getenv('BUILDROOT')?:'') . self::COMPOSER_SCHEMA_PATH;
+ }
+
+ // Prepend with file:// only when not using a special schema already (e.g. in the phar)
+diff -up ./src/Composer/vendor/composer/ca-bundle/src/CaBundle.php.rpm ./src/Composer/vendor/composer/ca-bundle/src/CaBundle.php
+--- ./src/Composer/vendor/composer/ca-bundle/src/CaBundle.php.rpm 2023-08-30 11:31:38.000000000 +0200
++++ ./src/Composer/vendor/composer/ca-bundle/src/CaBundle.php 2023-09-01 11:05:28.156309389 +0200
+@@ -125,7 +125,7 @@ class CaBundle
+ */
+ public static function getBundledCaBundlePath()
+ {
+- $caBundleFile = __DIR__.'/../res/cacert.pem';
++ $caBundleFile = '/etc/pki/tls/certs/ca-bundle.crt'; // System CA, always
+
+ // cURL does not understand 'phar://' paths
+ // see https://github.com/composer/ca-bundle/issues/10
diff --git a/composer.json b/composer.json
index 2070495..2cbcfa7 100644
--- a/composer.json
+++ b/composer.json
@@ -22,25 +22,35 @@
}
],
"require": {
- "php": "^5.3.2 || ^7.0 || ^8.0",
+ "php": "^7.2.5 || ^8.0",
"composer/ca-bundle": "^1.0",
+ "composer/class-map-generator": "^1.0",
"composer/metadata-minifier": "^1.0",
- "composer/semver": "^3.0",
- "composer/spdx-licenses": "^1.2",
- "composer/xdebug-handler": "^2.0",
+ "composer/semver": "^3.2.5",
+ "composer/spdx-licenses": "^1.5.7",
+ "composer/xdebug-handler": "^2.0.2 || ^3.0.3",
"justinrainbow/json-schema": "^5.2.11",
- "psr/log": "^1.0",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
"seld/jsonlint": "^1.4",
- "seld/phar-utils": "^1.0",
- "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
- "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
- "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
- "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
- "react/promise": "^1.2 || ^2.7"
+ "seld/phar-utils": "^1.2",
+ "symfony/console": "^5.4.11 || ^6.0.11 || ^7",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7",
+ "symfony/finder": "^5.4 || ^6.0 || ^7",
+ "symfony/process": "^5.4 || ^6.0 || ^7",
+ "react/promise": "^2.8 || ^3",
+ "composer/pcre": "^2.1 || ^3.1",
+ "symfony/polyfill-php73": "^1.24",
+ "symfony/polyfill-php80": "^1.24",
+ "symfony/polyfill-php81": "^1.24",
+ "seld/signal-handler": "^2.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0",
- "phpspec/prophecy": "^1.10"
+ "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1",
+ "phpstan/phpstan": "^1.9.3",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-strict-rules": "^1",
+ "phpstan/phpstan-symfony": "^1.2.10"
},
"suggest": {
"ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
@@ -49,43 +59,46 @@
},
"config": {
"platform": {
- "php": "5.3.9"
+ "php": "7.2.5"
},
"platform-check": false
},
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-main": "2.7-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "phpstan/rules.neon"
+ ]
}
},
"autoload": {
"psr-4": {
- "Composer\\": "src/Composer"
+ "Composer\\": "src/Composer/"
}
},
"autoload-dev": {
"psr-4": {
- "Composer\\Test\\": "tests/Composer/Test",
- "Composer\\PHPStanRules\\": "phpstan/Rules/src",
- "Composer\\PHPStanRulesTests\\": "phpstan/Rules/tests"
- },
- "classmap": [
- "phpstan/Rules/tests/data"
- ]
+ "Composer\\Test\\": "tests/Composer/Test/"
+ }
},
"bin": [
"bin/composer"
],
"scripts": {
"compile": "@php -dphar.readonly=0 bin/compile",
- "test": "simple-phpunit"
+ "test": "@php simple-phpunit",
+ "phpstan": "@php vendor/bin/phpstan analyse --configuration=phpstan/config.neon"
},
"scripts-descriptions": {
"compile": "Compile composer.phar",
- "test": "Run all tests"
+ "test": "Run all tests",
+ "phpstan": "Runs PHPStan"
},
"support": {
"issues": "https://github.com/composer/composer/issues",
- "irc": "ircs://irc.libera.chat:6697/composer"
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "security": "https://github.com/composer/composer/security/policy"
}
}
diff --git a/composer.spec b/composer.spec
index 2a55a87..f1ae6ac 100644
--- a/composer.spec
+++ b/composer.spec
@@ -1,7 +1,7 @@
# remirepo/fedora spec file for composer
#
-# Copyright (c) 2015-2021 Remi Collet
-# License: CC-BY-SA
+# Copyright (c) 2015-2024 Remi Collet
+# License: CC-BY-SA-4.0
# http://creativecommons.org/licenses/by-sa/4.0/
#
# Please, preserve the changelog entries
@@ -10,35 +10,34 @@
# For compatibility with SCL
%undefine __brp_mangle_shebangs
-%bcond_without tests
-
-%global gh_commit e5cac5f9d2354d08b67f1d21c664ae70d748c603
+%global gh_commit a625e50598e12171d3f60b1149eb530690c43474
%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
%global gh_branch 2.0-dev
%global gh_owner composer
%global gh_project composer
-%global api_version 2.1.0
-%global run_version 2.1.0
+%global api_version 2.6.0
+%global run_version 2.2.2
-%global upstream_version 2.1.6
+%global upstream_version 2.7.4
#global upstream_prever RC1
#global upstream_lower rc1
-%global symfony_prefix php-symfony4
-%global symfony_path %{_datadir}/php/Symfony4
-%global symfony_min 4.4
-
%global _phpunit %{_bindir}/phpunit9
+%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null)
+%global bashcomproot %(dirname %{bashcompdir} 2>/dev/null)
+
Name: composer
Version: %{upstream_version}%{?upstream_prever:~%{upstream_lower}}
Release: 1%{?dist}
Summary: Dependency Manager for PHP
+# SPDX: composer and all dependencies are MIT
License: MIT
URL: https://getcomposer.org/
Source0: %{gh_project}-%{upstream_version}%{?upstream_prever}-%{gh_short}.tgz
# Profile scripts
+Source1: %{name}-bash-completion
Source3: %{name}.sh
Source4: %{name}.csh
# Get a git snapshot to retrieve the test suite
@@ -50,95 +49,66 @@ Patch0: %{name}-rpm.patch
Patch1: %{name}-noxdg.patch
BuildArch: noarch
+# platform set in makesrc.sh
+BuildRequires: php(language) >= 7.2.5
BuildRequires: php-cli
-%if %{with tests}
-# remirepo:1
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-BuildRequires: (php-composer(composer/ca-bundle) >= 1.0 with php-composer(composer/ca-bundle) < 2)
-BuildRequires: (php-composer(composer/metadata-minifier) >= 1.0 with php-composer(composer/metadata-minifier) < 2)
-BuildRequires: (php-composer(composer/semver) >= 3.0 with php-composer(composer/semver) < 4)
-BuildRequires: (php-composer(composer/spdx-licenses) >= 1.2 with php-composer(composer/spdx-licenses) < 2)
-BuildRequires: (php-composer(composer/xdebug-handler) >= 2.0 with php-composer(composer/xdebug-handler) < 3)
-BuildRequires: (php-composer(seld/jsonlint) >= 1.4 with php-composer(seld/jsonlint) < 2)
-BuildRequires: (php-composer(seld/phar-utils) >= 1.0 with php-composer(seld/phar-utils) < 2)
-BuildRequires: (php-composer(psr/log) >= 1.0 with php-composer(psr/log) < 2)
-BuildRequires: (php-composer(justinrainbow/json-schema) >= 5.2.11 with php-composer(justinrainbow/json-schema) < 6)
-BuildRequires: (php-composer(react/promise) >= 2.7 with php-composer(react/promise) < 3)
-# remirepo:12
-%else
-BuildRequires: php-composer-ca-bundle
-BuildRequires: php-composer-metadata-minifier
-BuildRequires: php-composer-semver3
-BuildRequires: php-composer-spdx-licenses >= 1.2
-BuildRequires: php-composer-xdebug-handler2
-BuildRequires: php-jsonlint >= 1.4
-BuildRequires: php-seld-phar-utils
-BuildRequires: php-PsrLog
-BuildRequires: php-justinrainbow-json-schema5 >= 5.2.11
-BuildRequires: php-react-promise >= 2.7
-%endif
-BuildRequires: %{symfony_prefix}-console >= %{symfony_min}
-BuildRequires: %{symfony_prefix}-finder >= %{symfony_min}
-BuildRequires: %{symfony_prefix}-filesystem >= %{symfony_min}
-BuildRequires: %{symfony_prefix}-process >= %{symfony_min}
-BuildRequires: php-zip
-# From composer.json, "require-dev": {
-# "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0",
-# "phpspec/prophecy": "^1.10"
-BuildRequires: %{_phpunit}
-# For autoloader
-BuildRequires: php-fedora-autoloader-devel
-BuildRequires: php-seld-phar-utils >= 1.1
-BuildRequires: php-PsrLog >= 1.1
-%endif
+BuildRequires: php-json
+BuildRequires: pkgconfig(bash-completion)
# From composer.json, "require": {
-# "php": "^5.3.2 || ^7.0",
+# "php": "^7.2.5 || ^8.0",
# "composer/ca-bundle": "^1.0",
# "composer/metadata-minifier": "^1.0",
# "composer/semver": "^3.0",
# "composer/spdx-licenses": "^1.2",
-# "composer/xdebug-handler": "^2.0",
+# "composer/xdebug-handler": "^2.0.2 || ^3.0.3",
# "justinrainbow/json-schema": "^5.2.11",
-# "psr/log": "^1.0"
+# "psr/log": "^1.0 || ^2.0 || ^3.0"
# "seld/jsonlint": "~1.4",
-# "seld/phar-utils": "^1.0",
-# "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
-# "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
-# "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
-# "symfony/process": "^^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
-# "react/promise": "^1.2 || ^2.7"
-Requires: php(language) >= 5.3.2
+# "seld/phar-utils": "^1.2",
+# "symfony/console": "^5.4.1 || ^6.0",
+# "symfony/filesystem": "^5.4 || ^6.0",
+# "symfony/finder": "^5.4 || ^6.0",
+# "symfony/process": "^5.4 || ^6.0",
+# "react/promise": "^2.8",
+# "composer/pcre": "^2 || ^3"
+# "symfony/polyfill-php73": "^1.24",
+# "symfony/polyfill-php80": "^1.24"
+Requires: php(language) >= 7.2.5
Requires: php-cli
-# remirepo:1
-%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
-Requires: (php-composer(composer/ca-bundle) >= 1.0 with php-composer(composer/ca-bundle) < 2)
-Requires: (php-composer(composer/metadata-minifier) >= 1.0 with php-composer(composer/metadata-minifier) < 2)
-Requires: (php-composer(composer/semver) >= 3.0 with php-composer(composer/semver) < 4)
-Requires: (php-composer(composer/spdx-licenses) >= 1.2 with php-composer(composer/spdx-licenses) < 2)
-Requires: (php-composer(composer/xdebug-handler) >= 2.0 with php-composer(composer/xdebug-handler) < 3)
-Requires: (php-composer(seld/jsonlint) >= 1.4 with php-composer(seld/jsonlint) < 2)
-Requires: (php-composer(seld/phar-utils) >= 1.0 with php-composer(seld/phar-utils) < 2)
-Requires: (php-composer(psr/log) >= 1.0 with php-composer(psr/log) < 2)
-Requires: (php-composer(justinrainbow/json-schema) >= 5.2.11 with php-composer(justinrainbow/json-schema) < 6)
-Requires: (php-composer(react/promise) >= 2.7 with php-composer(react/promise) < 3)
-# remirepo:12
-%else
-Requires: php-composer-ca-bundle
-Requires: php-composer-metadata-minifier
-Requires: php-composer-semver3
-Requires: php-composer-spdx-licenses >= 1.2
-Requires: php-composer-xdebug-handler2
-Requires: php-jsonlint >= 1.4
-Requires: php-seld-phar-utils
-Requires: php-PsrLog
-Requires: php-justinrainbow-json-schema5 >= 5.2.11
-Requires: php-react-promise >= 2.7
-%endif
-Requires: %{symfony_prefix}-console >= %{symfony_min}
-Requires: %{symfony_prefix}-finder >= %{symfony_min}
-Requires: %{symfony_prefix}-process >= %{symfony_min}
-Requires: %{symfony_prefix}-filesystem >= %{symfony_min}
+# System certificates
+Requires: ca-certificates
+# Bundled libraries
+# License MIT
+Provides: bundled(php-composer-ca-bundle) = 1.5.0
+Provides: bundled(php-composer-class-map-generator) = 1.1.1
+Provides: bundled(php-composer-metadata-minifier) = 1.0.0
+Provides: bundled(php-composer-pcre) = 2.1.3
+Provides: bundled(php-composer-semver) = 3.4.0
+Provides: bundled(php-composer-spdx-licenses) = 1.5.8
+Provides: bundled(php-composer-xdebug-handler) = 3.0.4
+Provides: bundled(php-justinrainbow-json-schema) = v5.2.13
+Provides: bundled(php-psr-container) = 1.1.1
+Provides: bundled(php-psr-log) = 1.1.4
+Provides: bundled(php-react-promise) = v3.1.0
+Provides: bundled(php-seld-jsonlint) = 1.10.2
+Provides: bundled(php-seld-phar-utils) = 1.2.1
+Provides: bundled(php-seld-signal-handler) = 2.0.2
+Provides: bundled(php-symfony-console) = v5.4.36
+Provides: bundled(php-symfony-deprecation-contracts) = v2.5.3
+Provides: bundled(php-symfony-filesystem) = v5.4.38
+Provides: bundled(php-symfony-finder) = v5.4.35
+Provides: bundled(php-symfony-polyfill-ctype) = v1.29.0
+Provides: bundled(php-symfony-polyfill-intl-grapheme) = v1.29.0
+Provides: bundled(php-symfony-polyfill-intl-normalizer) = v1.29.0
+Provides: bundled(php-symfony-polyfill-mbstring) = v1.29.0
+Provides: bundled(php-symfony-polyfill-php73) = v1.29.0
+Provides: bundled(php-symfony-polyfill-php80) = v1.29.0
+Provides: bundled(php-symfony-polyfill-php81) = v1.29.0
+Provides: bundled(php-symfony-process) = v5.4.36
+Provides: bundled(php-symfony-service-contracts) = v2.5.3
+Provides: bundled(php-symfony-string) = v5.4.36
+
# From composer.json, suggest
# "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
# "ext-zip": "Enabling the zip extension allows you to unzip archives",
@@ -146,14 +116,11 @@ Requires: %{symfony_prefix}-filesystem >= %{symfony_min}
Requires: php-openssl
Requires: php-zip
Requires: php-zlib
-# For our autoloader
-Requires: php-composer(fedora/autoloader)
-Requires: php-seld-phar-utils >= 1.1
-Requires: php-PsrLog >= 1.1
-# From phpcompatinfo for version 2.0.0
+# From phpcompatinfo for version 2.2.5
Requires: php-ctype
Requires: php-curl
Requires: php-date
+Requires: php-dom
Requires: php-filter
Requires: php-hash
Requires: php-iconv
@@ -188,8 +155,8 @@ Documentation: https://getcomposer.org/doc/
%prep
%setup -q -n %{gh_project}-%{gh_commit}
-%patch0 -p1 -b .rpm
-%patch1 -p1 -b .noxdg
+%patch -P0 -p1 -b .rpm
+%patch -P1 -p1 -b .noxdg
find . \( -name \*.rpm -o -name \*noxdg \) -delete -print
if grep -r '\.\./res'; then
@@ -197,48 +164,38 @@ if grep -r '\.\./res'; then
exit 1
fi
-phpab --template fedora --output src/Composer/autoload.php src/Composer
-cat << 'EOF' | tee -a src/Composer/autoload.php
-
-\Fedora\Autoloader\Dependencies::required([
- '%{_datadir}/php/Composer/XdebugHandler2/autoload.php', /* before symfony which load composer */
- '%{symfony_path}/Component/Console/autoload.php',
- '%{symfony_path}/Component/Finder/autoload.php',
- '%{symfony_path}/Component/Process/autoload.php',
- '%{symfony_path}/Component/Filesystem/autoload.php',
- '%{_datadir}/php/Seld/JsonLint/autoload.php',
- '%{_datadir}/php/Seld/PharUtils/autoload.php',
- '%{_datadir}/php/Composer/CaBundle/autoload.php',
- '%{_datadir}/php/Composer/Spdx/autoload.php',
- '%{_datadir}/php/Composer/MetadataMinifier/autoload.php',
- '%{_datadir}/php/Composer/Semver3/autoload.php',
- '%{_datadir}/php/Psr/Log/autoload.php',
- '%{_datadir}/php/JsonSchema5/autoload.php',
- '%{_datadir}/php/React/Promise/autoload.php',
-]);
-EOF
-
-cat << 'EOF' | tee tests/bootstrap.php
-<?php
-require 'Composer/autoload.php';
-\Fedora\Autoloader\Autoload::addPsr0('Composer\\Test\\', __DIR__ . '/');
-EOF
-
rm src/bootstrap.php
+rm src/Composer/vendor/composer/ca-bundle/res/cacert.pem
+: symlink autoloader for library
+ln -s vendor/autoload.php src/Composer/autoload.php
+
+: fix layout
+sed -e "s:/../..' . '/src/Composer::" -i src/Composer/vendor/composer/autoload_static.php
+
+: List bundled libraries and Licenses
+php -r '
+ $pkgs = file_get_contents("src/Composer/vendor/composer/installed.json");
+ $pkgs = json_decode($pkgs, true);
+ if (!is_array($pkgs) || !isset($pkgs["packages"])) {
+ echo "cant decode json file\n";
+ exit(3);
+ }
+ $res = [];
+ foreach($pkgs["packages"] as $pkg) {
+ $lic = implode(" and ", $pkg["license"]);
+ if (!isset($res[$lic])) $res[$lic] = [];
+ $res[$lic][] = sprintf("Provides: bundled(php-%s) = %s", str_replace(["/", "_"], ["-", "-"], $pkg["name"]), $pkg["version"]);
+ }
+ foreach($res as $lic => $lib) {
+ sort($lib);
+ printf("# License %s\n%s\n", $lic, implode("\n", $lib));
+ }
+'
: fix reported version
-%if 0%{?gh_date}
-DATE=%{gh_date}
-DATE=${DATE:0:4}-${DATE:4:2}-${DATE:6:2}
-sed -e '/VERSION/s/@package_version@/%{gh_commit}/' \
- -e '/BRANCH_ALIAS_VERSION/s/@package_branch_alias_version@/%{gh_branch}/' \
- -e "/RELEASE_DATE/s/@release_date@/$DATE/" \
- -i src/Composer/Composer.php
-%else
sed -e '/BRANCH_ALIAS_VERSION/s/@package_branch_alias_version@//' \
-i src/Composer/Composer.php
-%endif
: check Plugin API version
php -r '
@@ -260,6 +217,7 @@ if (version_compare(Composer::RUNTIME_API_VERSION, "%{run_version}")) {
%install
: Profile scripts
+install -Dpm 644 %{SOURCE1} %{buildroot}%{bashcompdir}/%{name}
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
install -m 644 %{SOURCE3} %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d/
@@ -278,43 +236,6 @@ ln -sf %{_datadir}/%{name}/LICENSE LICENSE
install -Dpm 755 bin/%{name} %{buildroot}%{_bindir}/%{name}
-%check
-%if %{with tests}
-: Online tests
-rm tests/Composer/Test/Util/RemoteFilesystemTest.php
-
-: Ensure not used
-rm -rf res
-
-: Run test suite
-export BUILDROOT=%{buildroot}
-
-FILTER="--filter '^((?!(testIntegration)).)*$'"
-
-# Adapt for phunit9
-find tests \
- -name \*.php \
- -exec sed -e '/function setUpBeforeClass(/s/$/:void/' \
- -e '/function tearDownAfterClass(/s/$/:void/' \
- -e '/function setUp(/s/$/:void/' \
- -e '/function tearDown(/s/$/:void/' \
- -i {} \;
-
-# testIntegration may hang on local build
-ret=0
-for cmd in php php73 php74 php80; do
- if which $cmd; then
- $cmd -d memory_limit=1G %{_phpunit} \
- $FILTER \
- --include-path %{buildroot}%{_datadir}/php || ret=1
- fi
-done
-exit $ret
-%else
-: Test suite disabled
-%endif
-
-
%files
%{!?_licensedir:%global license %%doc}
%license LICENSE
@@ -324,9 +245,200 @@ exit $ret
%{_bindir}/%{name}
%{_datadir}/php/Composer
%{_datadir}/%{name}
+%{bashcomproot}
%changelog
+* Tue Apr 23 2024 Remi Collet <remi@remirepo.net> - 2.7.4-1
+- update to 2.7.4
+
+* Sat Apr 20 2024 Remi Collet <remi@remirepo.net> - 2.7.3-1
+- update to 2.7.3
+
+* Tue Mar 12 2024 Remi Collet <remi@remirepo.net> - 2.7.2-1
+- update to 2.7.2
+
+* Sat Feb 10 2024 Remi Collet <remi@remirepo.net> - 2.7.1-1
+- update to 2.7.1
+
+* Fri Feb 9 2024 Remi Collet <remi@remirepo.net> - 2.7.0-1
+- update to 2.7.0
+
+* Sat Dec 9 2023 Remi Collet <remi@remirepo.net> - 2.6.6-1
+- update to 2.6.6
+
+* Fri Oct 6 2023 Remi Collet <remi@remirepo.net> - 2.6.5-1
+- update to 2.6.5
+
+* Fri Sep 29 2023 Remi Collet <remi@remirepo.net> - 2.6.4-1
+- update to 2.6.4
+
+* Fri Sep 15 2023 Remi Collet <remi@remirepo.net> - 2.6.3-1
+- update to 2.6.3
+
+* Mon Sep 4 2023 Remi Collet <remi@remirepo.net> - 2.6.2-1
+- update to 2.6.2
+
+* Fri Sep 1 2023 Remi Collet <remi@remirepo.net> - 2.6.1-1
+- update to 2.6.1
+
+* Fri Sep 1 2023 Remi Collet <remi@remirepo.net> - 2.6.0-1
+- update to 2.6.0
+
+* Sat Jun 10 2023 Remi Collet <remi@remirepo.net> - 2.5.8-1
+- update to 2.5.8
+
+* Wed May 24 2023 Remi Collet <remi@remirepo.net> - 2.5.7-1
+- update to 2.5.7
+
+* Wed May 24 2023 Remi Collet <remi@remirepo.net> - 2.5.6-1
+- update to 2.5.6
+
+* Tue Mar 21 2023 Remi Collet <remi@remirepo.net> - 2.5.5-1
+- update to 2.5.5
+
+* Wed Feb 15 2023 Remi Collet <remi@remirepo.net> - 2.5.4-1
+- update to 2.5.4
+
+* Fri Feb 10 2023 Remi Collet <remi@remirepo.net> - 2.5.3-1
+- update to 2.5.3
+
+* Mon Feb 6 2023 Remi Collet <remi@remirepo.net> - 2.5.2-1
+- update to 2.5.2
+
+* Thu Dec 22 2022 Remi Collet <remi@remirepo.net> - 2.5.1-1
+- update to 2.5.1
+
+* Tue Dec 20 2022 Remi Collet <remi@remirepo.net> - 2.5.0-1
+- update to 2.5.0
+
+* Fri Oct 28 2022 Remi Collet <remi@remirepo.net> - 2.4.4-1
+- update to 2.4.4
+
+* Sat Oct 15 2022 Remi Collet <remi@remirepo.net> - 2.4.3-1
+- update to 2.4.3
+
+* Thu Sep 15 2022 Remi Collet <remi@remirepo.net> - 2.4.2-1
+- update to 2.4.2
+
+* Mon Aug 29 2022 Remi Collet <remi@remirepo.net> - 2.4.1-1
+- update to 2.4.1
+
+* Tue Aug 16 2022 Remi Collet <remi@remirepo.net> - 2.4.0-1
+- update to 2.4.0
+
+* Fri Jul 29 2022 Remi Collet <remi@remirepo.net> - 2.4.0~rc1-2
+- refresh bundled symfony for 5.4.11
+
+* Fri Jul 22 2022 Remi Collet <remi@remirepo.net> - 2.4.0~rc1-1
+- open https://github.com/symfony/symfony/pull/47022 fix command path
+
+* Thu Jul 14 2022 Remi Collet <remi@remirepo.net> - 2.3.10-1
+- update to 2.3.10
+
+* Tue Jul 5 2022 Remi Collet <remi@remirepo.net> - 2.3.9-1
+- update to 2.3.9
+
+* Fri Jul 1 2022 Remi Collet <remi@remirepo.net> - 2.3.8-1
+- update to 2.3.8
+
+* Wed Jun 22 2022 Remi Collet <remi@remirepo.net> - 2.3.7-2
+- add bash completion file
+
+* Tue Jun 7 2022 Remi Collet <remi@remirepo.net> - 2.3.7-1
+- update to 2.3.7
+
+* Thu Jun 2 2022 Remi Collet <remi@remirepo.net> - 2.3.6-1
+- update to 2.3.6
+
+* Thu Apr 14 2022 Remi Collet <remi@remirepo.net> - 2.3.5-1
+- update to 2.3.5
+
+* Fri Apr 8 2022 Remi Collet <remi@remirepo.net> - 2.3.4-1
+- update to 2.3.4
+
+* Sat Apr 2 2022 Remi Collet <remi@remirepo.net> - 2.3.3-1
+- update to 2.3.3
+
+* Thu Mar 31 2022 Remi Collet <remi@remirepo.net> - 2.3.2-1
+- update to 2.3.2
+
+* Wed Mar 30 2022 Remi Collet <remi@remirepo.net> - 2.3.1-1
+- update to 2.3.1
+
+* Wed Mar 30 2022 Remi Collet <remi@remirepo.net> - 2.3.0-1
+- update to 2.3.0
+
+* Mon Mar 21 2022 Remi Collet <remi@remirepo.net> - 2.3.0~RC2-1
+- update to 2.3.0RC2
+
+* Wed Mar 16 2022 Remi Collet <remi@remirepo.net> - 2.3.0~RC1-1
+- update to 2.3.0RC1
+- always use bundled libraries
+ as symfony/* 5.4 and composer/pcre 2 are not available
+
+* Wed Mar 16 2022 Remi Collet <remi@remirepo.net> - 2.2.9-1
+- update to 2.2.9
+
+* Tue Mar 15 2022 Remi Collet <remi@remirepo.net> - 2.2.8-1
+- update to 2.2.8
+
+* Fri Feb 25 2022 Remi Collet <remi@remirepo.net> - 2.2.7-1
+- update to 2.2.7
+
+* Sat Feb 5 2022 Remi Collet <remi@remirepo.net> - 2.2.6-1
+- update to 2.2.6
+
+* Mon Jan 31 2022 Remi Collet <remi@remirepo.net> - 2.2.5-3
+- lower minimal php version back to 7.2.5
+
+* Tue Jan 25 2022 Remi Collet <remi@remirepo.net> - 2.2.5-2
+- use system libraries on Fedora, bundled libraries on EL
+
+* Sat Jan 22 2022 Remi Collet <remi@remirepo.net> - 2.2.5-1
+- update to 2.2.5
+
+* Sun Jan 9 2022 Remi Collet <remi@remirepo.net> - 2.2.4-1
+- update to 2.2.4
+
+* Sat Jan 1 2022 Remi Collet <remi@remirepo.net> - 2.2.3-1
+- update to 2.2.3
+
+* Thu Dec 30 2021 Remi Collet <remi@remirepo.net> - 2.2.2-1
+- update to 2.2.2
+
+* Thu Dec 23 2021 Remi Collet <remi@remirepo.net> - 2.2.1-1
+- update to 2.2.1
+
+* Wed Dec 22 2021 Remi Collet <remi@remirepo.net> - 2.2.0-1
+- update to 2.2.0
+
+* Wed Dec 8 2021 Remi Collet <remi@remirepo.net> - 2.2.0-RC1-1
+- update to 2.2.0-RC1
+- add dependency on composer/pcre
+
+* Tue Nov 30 2021 Remi Collet <remi@remirepo.net> - 2.1.14-1
+- update to 2.1.14
+
+* Tue Nov 9 2021 Remi Collet <remi@remirepo.net> - 2.1.12-1
+- update to 2.1.12
+
+* Tue Nov 2 2021 Remi Collet <remi@remirepo.net> - 2.1.11-1
+- update to 2.1.11
+
+* Sat Oct 30 2021 Remi Collet <remi@remirepo.net> - 2.1.10-1
+- update to 2.1.10
+- allow psr/log v2
+
+* Tue Oct 5 2021 Remi Collet <remi@remirepo.net> - 2.1.9-1
+- update to 2.1.9
+
+* Sat Sep 18 2021 Remi Collet <remi@remirepo.net> - 2.1.8-1
+- update to 2.1.8
+
+* Tue Sep 14 2021 Remi Collet <remi@remirepo.net> - 2.1.7-1
+- update to 2.1.7
+
* Mon Aug 23 2021 Remi Collet <remi@remirepo.net> - 2.1.6-1
- update to 2.1.6
diff --git a/installed.json b/installed.json
new file mode 100644
index 0000000..903fb91
--- /dev/null
+++ b/installed.json
@@ -0,0 +1,2094 @@
+{
+ "packages": [
+ {
+ "name": "composer/ca-bundle",
+ "version": "1.5.0",
+ "version_normalized": "1.5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/ca-bundle.git",
+ "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c5ccfcfea312b5c5a190a21ac5cef93f74baf99",
+ "reference": "0c5ccfcfea312b5c5a190a21ac5cef93f74baf99",
+ "shasum": ""
+ },
+ "require": {
+ "ext-openssl": "*",
+ "ext-pcre": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.10",
+ "psr/log": "^1.0",
+ "symfony/phpunit-bridge": "^4.2 || ^5",
+ "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "time": "2024-03-15T14:00:32+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Composer\\CaBundle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
+ "keywords": [
+ "cabundle",
+ "cacert",
+ "certificate",
+ "ssl",
+ "tls"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/ca-bundle/issues",
+ "source": "https://github.com/composer/ca-bundle/tree/1.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "./ca-bundle"
+ },
+ {
+ "name": "composer/class-map-generator",
+ "version": "1.1.1",
+ "version_normalized": "1.1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/class-map-generator.git",
+ "reference": "8286a62d243312ed99b3eee20d5005c961adb311"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8286a62d243312ed99b3eee20d5005c961adb311",
+ "reference": "8286a62d243312ed99b3eee20d5005c961adb311",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^2.1 || ^3.1",
+ "php": "^7.2 || ^8.0",
+ "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.6",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/filesystem": "^5.4 || ^6",
+ "symfony/phpunit-bridge": "^5"
+ },
+ "time": "2024-03-15T12:53:41+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Composer\\ClassMapGenerator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Utilities to scan PHP code and generate class maps.",
+ "keywords": [
+ "classmap"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/class-map-generator/issues",
+ "source": "https://github.com/composer/class-map-generator/tree/1.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "./class-map-generator"
+ },
+ {
+ "name": "composer/metadata-minifier",
+ "version": "1.0.0",
+ "version_normalized": "1.0.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/metadata-minifier.git",
+ "reference": "c549d23829536f0d0e984aaabbf02af91f443207"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207",
+ "reference": "c549d23829536f0d0e984aaabbf02af91f443207",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "composer/composer": "^2",
+ "phpstan/phpstan": "^0.12.55",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "time": "2021-04-07T13:37:33+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Composer\\MetadataMinifier\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Small utility library that handles metadata minification and expansion.",
+ "keywords": [
+ "composer",
+ "compression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/metadata-minifier/issues",
+ "source": "https://github.com/composer/metadata-minifier/tree/1.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "./metadata-minifier"
+ },
+ {
+ "name": "composer/pcre",
+ "version": "2.1.3",
+ "version_normalized": "2.1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "540af382c97b83c628227d5f87cf56466d476191"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/540af382c97b83c628227d5f87cf56466d476191",
+ "reference": "540af382c97b83c628227d5f87cf56466d476191",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/phpunit-bridge": "^5"
+ },
+ "time": "2024-03-19T09:03:05+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/2.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "./pcre"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.0",
+ "version_normalized": "3.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "time": "2023-08-31T09:50:34+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "./semver"
+ },
+ {
+ "name": "composer/spdx-licenses",
+ "version": "1.5.8",
+ "version_normalized": "1.5.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/spdx-licenses.git",
+ "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+ "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.55",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "time": "2023-11-20T07:44:33+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Composer\\Spdx\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "SPDX licenses list and validation library.",
+ "keywords": [
+ "license",
+ "spdx",
+ "validator"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/spdx-licenses/issues",
+ "source": "https://github.com/composer/spdx-licenses/tree/1.5.8"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "./spdx-licenses"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "3.0.4",
+ "version_normalized": "3.0.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255",
+ "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
+ },
+ "time": "2024-03-26T18:29:49+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "./xdebug-handler"
+ },
+ {
+ "name": "justinrainbow/json-schema",
+ "version": "v5.2.13",
+ "version_normalized": "5.2.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/justinrainbow/json-schema.git",
+ "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793",
+ "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
+ "json-schema/json-schema-test-suite": "1.2.0",
+ "phpunit/phpunit": "^4.8.35"
+ },
+ "time": "2023-09-26T02:20:38+00:00",
+ "bin": [
+ "bin/validate-json"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "JsonSchema\\": "src/JsonSchema/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bruno Prieto Reis",
+ "email": "bruno.p.reis@gmail.com"
+ },
+ {
+ "name": "Justin Rainbow",
+ "email": "justin.rainbow@gmail.com"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Robert Schönthal",
+ "email": "seroscho@googlemail.com"
+ }
+ ],
+ "description": "A library to validate a json schema.",
+ "homepage": "https://github.com/justinrainbow/json-schema",
+ "keywords": [
+ "json",
+ "schema"
+ ],
+ "support": {
+ "issues": "https://github.com/justinrainbow/json-schema/issues",
+ "source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13"
+ },
+ "install-path": "../justinrainbow/json-schema"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.1.1",
+ "version_normalized": "1.1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "time": "2021-03-05T17:36:06+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
+ },
+ "install-path": "../psr/container"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.4",
+ "version_normalized": "1.1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "time": "2021-05-03T11:20:27+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/1.1.4"
+ },
+ "install-path": "../psr/log"
+ },
+ {
+ "name": "react/promise",
+ "version": "v3.1.0",
+ "version_normalized": "3.1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/e563d55d1641de1dea9f5e84f3cccc66d2bfe02c",
+ "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "1.10.39 || 1.4.10",
+ "phpunit/phpunit": "^9.6 || ^7.5"
+ },
+ "time": "2023-11-16T16:21:57+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
+ }
+ ],
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "keywords": [
+ "promise",
+ "promises"
+ ],
+ "support": {
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v3.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "install-path": "../react/promise"
+ },
+ {
+ "name": "seld/jsonlint",
+ "version": "1.10.2",
+ "version_normalized": "1.10.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/jsonlint.git",
+ "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9bb7db07b5d66d90f6ebf542f09fc67d800e5259",
+ "reference": "9bb7db07b5d66d90f6ebf542f09fc67d800e5259",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.5",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
+ },
+ "time": "2024-02-07T12:57:50+00:00",
+ "bin": [
+ "bin/jsonlint"
+ ],
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Seld\\JsonLint\\": "src/Seld/JsonLint/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "JSON Linter",
+ "keywords": [
+ "json",
+ "linter",
+ "parser",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/jsonlint/issues",
+ "source": "https://github.com/Seldaek/jsonlint/tree/1.10.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../seld/jsonlint"
+ },
+ {
+ "name": "seld/phar-utils",
+ "version": "1.2.1",
+ "version_normalized": "1.2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/phar-utils.git",
+ "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
+ "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "time": "2022-08-31T10:31:18+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Seld\\PharUtils\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be"
+ }
+ ],
+ "description": "PHAR file format utilities, for when PHP phars you up",
+ "keywords": [
+ "phar"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/phar-utils/issues",
+ "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1"
+ },
+ "install-path": "../seld/phar-utils"
+ },
+ {
+ "name": "seld/signal-handler",
+ "version": "2.0.2",
+ "version_normalized": "2.0.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/signal-handler.git",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "time": "2023-09-03T09:24:00+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Seld\\Signal\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development",
+ "keywords": [
+ "posix",
+ "sigint",
+ "signal",
+ "sigterm",
+ "unix"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/signal-handler/issues",
+ "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2"
+ },
+ "install-path": "../seld/signal-handler"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v5.4.36",
+ "version_normalized": "5.4.36.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e",
+ "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.9",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/string": "^5.1|^6.0"
+ },
+ "conflict": {
+ "psr/log": ">=3",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/dotenv": "<5.1",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/lock": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
+ },
+ "time": "2024-02-20T16:33:57+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v5.4.36"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/console"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v2.5.3",
+ "version_normalized": "2.5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "80d075412b557d41002320b96a096ca65aa2c98d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d",
+ "reference": "80d075412b557d41002320b96a096ca65aa2c98d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "time": "2023-01-24T14:02:46+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/deprecation-contracts"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v5.4.38",
+ "version_normalized": "5.4.38.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "899330a01056077271e2f614c7b28b0379a671eb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/899330a01056077271e2f614c7b28b0379a671eb",
+ "reference": "899330a01056077271e2f614c7b28b0379a671eb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "time": "2024-03-21T08:05:07+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v5.4.38"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/filesystem"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v5.4.35",
+ "version_normalized": "5.4.35.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435",
+ "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "time": "2024-01-23T13:51:25+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v5.4.35"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/finder"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.29.0",
+ "version_normalized": "1.29.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
+ "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "time": "2024-01-29T20:11:03+00:00",
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/polyfill-ctype"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.29.0",
+ "version_normalized": "1.29.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "time": "2024-01-29T20:11:03+00:00",
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/polyfill-intl-grapheme"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.29.0",
+ "version_normalized": "1.29.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "time": "2024-01-29T20:11:03+00:00",
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/polyfill-intl-normalizer"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.29.0",
+ "version_normalized": "1.29.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "time": "2024-01-29T20:11:03+00:00",
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/polyfill-mbstring"
+ },
+ {
+ "name": "symfony/polyfill-php73",
+ "version": "v1.29.0",
+ "version_normalized": "1.29.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "21bd091060673a1177ae842c0ef8fe30893114d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2",
+ "reference": "21bd091060673a1177ae842c0ef8fe30893114d2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "time": "2024-01-29T20:11:03+00:00",
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/polyfill-php73"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.29.0",
+ "version_normalized": "1.29.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "time": "2024-01-29T20:11:03+00:00",
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/polyfill-php80"
+ },
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.29.0",
+ "version_normalized": "1.29.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d",
+ "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "time": "2024-01-29T20:11:03+00:00",
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/polyfill-php81"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v5.4.36",
+ "version_normalized": "5.4.36.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/4fdf34004f149cc20b2f51d7d119aa500caad975",
+ "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "time": "2024-02-12T15:49:53+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v5.4.36"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/process"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v2.5.3",
+ "version_normalized": "2.5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3",
+ "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "psr/container": "^1.1",
+ "symfony/deprecation-contracts": "^2.1|^3"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "time": "2023-04-21T15:04:16+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v2.5.3"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/service-contracts"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v5.4.36",
+ "version_normalized": "5.4.36.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/4e232c83622bd8cd32b794216aa29d0d266d353b",
+ "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php80": "~1.15"
+ },
+ "conflict": {
+ "symfony/translation-contracts": ">=3.0"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ },
+ "time": "2024-02-01T08:49:30+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v5.4.36"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/string"
+ }
+ ],
+ "dev": false,
+ "dev-package-names": []
+}
diff --git a/makesrc.sh b/makesrc.sh
index 9615a91..cb5e069 100755
--- a/makesrc.sh
+++ b/makesrc.sh
@@ -8,21 +8,32 @@ PREVER=$(sed -n '/^%global upstream_prever/{s/.* //;p}' $NAME.spec)
COMMIT=$(sed -n '/^%global gh_commit/{s/.* //;p}' $NAME.spec)
SHORT=${COMMIT:0:7}
-echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION$PREVER\n"
+if [ -f $NAME-$VERSION$PREVER-$SHORT.tgz ]; then
+ echo skip $NAME-$VERSION$PREVER-$SHORT.tgz already here
+else
+ echo -e "\nCreate git snapshot\nName=$NAME, Owner=$OWNER, Project=$PROJECT, Version=$VERSION$PREVER\n"
-echo "Cloning..."
-git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT
+ echo "Cloning..."
+ git clone https://github.com/$OWNER/$PROJECT.git $PROJECT-$COMMIT
-echo "Getting commit..."
-pushd $PROJECT-$COMMIT
-git checkout $COMMIT
-cp composer.json ../composer.json
-popd
+ echo "Getting commit..."
+ pushd $PROJECT-$COMMIT
+ git checkout $COMMIT || exit 1
+ cp composer.json ../composer.json
+ composer config platform.php 7.2.5
+ rm composer.lock
+ export COMPOSER_VENDOR_DIR=src/Composer/vendor
+ composer install --no-interaction --no-progress --no-dev --optimize-autoloader
+ cp src/Composer/vendor/composer/installed.json ../
+ # bash completion
+ ln -sf Composer/vendor/autoload.php src/bootstrap.php
+ bin/composer completion bash >../composer-bash-completion
+ popd
-echo "Archiving..."
-tar czf $NAME-$VERSION$PREVER-$SHORT.tgz --exclude .git $PROJECT-$COMMIT
-
-echo "Cleaning..."
-rm -rf $PROJECT-$COMMIT
+ echo "Archiving..."
+ tar czf $NAME-$VERSION$PREVER-$SHORT.tgz --exclude .git $PROJECT-$COMMIT
+ echo "Cleaning..."
+ rm -rf $PROJECT-$COMMIT
+fi
echo "Done."