--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: pkg-php-p...@lists.alioth.debian.org, t...@security.debian.org
[ Reason ]
I’d like to address CVE-2022-24828 that has been tagged as no-dsa. Some
people may also wish to see #989315 fixed (it was reported twice), and
the fix is trivial, so I’m proposing a fix for it too.
[ Impact ]
The security fix is worth it, the GitHub token pattern fix is useful for
people using this feature.
[ Tests ]
I had to also checkout a file used for the updated testsuite that
passes. I’m not using the Github feature, but the regex fix looks pretty
obvious.
[ Risks ]
I’ve also provided the diffoscope output, showing probably better the
trival changes.
[ Checklist ]
[x] *all* changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in (old)stable
[x] the issue is verified as fixed in unstable
Regards
Thanks in advance.
David
diff --git a/debian/changelog b/debian/changelog
index 4498422ae..51613d0d9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+composer (2.0.9-2+deb11u1) bullseye; urgency=medium
+
+ * Fix code injection vulnerability [CVE-2022-24828] (Closes: #1009960)
+ * Update GitHub token pattern (Closes: #989315)
+ * Checkout ProcessExecutorMock.php needed for updated tests
+
+ -- David Prévot <taf...@debian.org> Sun, 29 May 2022 11:55:56 +0200
+
composer (2.0.9-2) unstable; urgency=medium
* Use debian/bullseye branch
diff --git a/debian/patches/0010-Merge-pull-request-from-GHSA-x7cr-6qr6-2hh6.patch b/debian/patches/0010-Merge-pull-request-from-GHSA-x7cr-6qr6-2hh6.patch
new file mode 100644
index 000000000..02fd68fe5
--- /dev/null
+++ b/debian/patches/0010-Merge-pull-request-from-GHSA-x7cr-6qr6-2hh6.patch
@@ -0,0 +1,230 @@
+From: Stephan <glaubi...@users.noreply.github.com>
+Date: Wed, 13 Apr 2022 14:54:58 +0100
+Subject: Merge pull request from GHSA-x7cr-6qr6-2hh6
+
+* GitDriver: filter branch names starting with a - character
+
+* GitDriver: getFileContent prevent identifiers starting with a -
+
+* HgDriver: prevent invalid identifiers and prevent file from running commands
+
+* HgDriver: filter branches starting with a - character
+
+Origin: backport, https://github.com/composer/composer/commit/2c40c53637c5c7e43fff7c09d3d324d632734709
+Bug-Debian: https://bugs.debian.org/1009960
+Bug-Debian: https://security-tracker.debian.org/tracker/CVE-2022-24828
+---
+ src/Composer/Repository/Vcs/GitDriver.php | 6 +-
+ src/Composer/Repository/Vcs/HgDriver.php | 10 ++-
+ .../Composer/Test/Repository/Vcs/GitDriverTest.php | 81 ++++++++++++++++++++++
+ .../Composer/Test/Repository/Vcs/HgDriverTest.php | 46 ++++++++++++
+ 4 files changed, 139 insertions(+), 4 deletions(-)
+ create mode 100644 tests/Composer/Test/Repository/Vcs/GitDriverTest.php
+
+diff --git a/src/Composer/Repository/Vcs/GitDriver.php b/src/Composer/Repository/Vcs/GitDriver.php
+index 70400e8..577477d 100644
+--- a/src/Composer/Repository/Vcs/GitDriver.php
++++ b/src/Composer/Repository/Vcs/GitDriver.php
+@@ -130,6 +130,10 @@ class GitDriver extends VcsDriver
+ */
+ public function getFileContent($file, $identifier)
+ {
++ if (isset($identifier[0]) && $identifier[0] === '-') {
++ throw new \RuntimeException('Invalid git identifier detected. Identifier must not start with a -, given: ' . $identifier);
++ }
++
+ $resource = sprintf('%s:%s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
+ $this->process->execute(sprintf('git show %s', $resource), $content, $this->repoDir);
+
+@@ -183,7 +187,7 @@ class GitDriver extends VcsDriver
+ $this->process->execute('git branch --no-color --no-abbrev -v', $output, $this->repoDir);
+ foreach ($this->process->splitLines($output) as $branch) {
+ if ($branch && !preg_match('{^ *[^/]+/HEAD }', $branch)) {
+- if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match)) {
++ if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match) && $match[1][0] !== '-') {
+ $branches[$match[1]] = $match[2];
+ }
+ }
+diff --git a/src/Composer/Repository/Vcs/HgDriver.php b/src/Composer/Repository/Vcs/HgDriver.php
+index f3b0e6c..b154653 100644
+--- a/src/Composer/Repository/Vcs/HgDriver.php
++++ b/src/Composer/Repository/Vcs/HgDriver.php
+@@ -121,7 +121,11 @@ class HgDriver extends VcsDriver
+ */
+ public function getFileContent($file, $identifier)
+ {
+- $resource = sprintf('hg cat -r %s %s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
++ if (isset($identifier[0]) && $identifier[0] === '-') {
++ throw new \RuntimeException('Invalid hg identifier detected. Identifier must not start with a -, given: ' . $identifier);
++ }
++
++ $resource = sprintf('hg cat -r %s -- %s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
+ $this->process->execute($resource, $content, $this->repoDir);
+
+ if (!trim($content)) {
+@@ -181,14 +185,14 @@ class HgDriver extends VcsDriver
+
+ $this->process->execute('hg branches', $output, $this->repoDir);
+ foreach ($this->process->splitLines($output) as $branch) {
+- if ($branch && preg_match('(^([^\s]+)\s+\d+:([a-f0-9]+))', $branch, $match)) {
++ if ($branch && preg_match('(^([^\s]+)\s+\d+:([a-f0-9]+))', $branch, $match) && $match[1][0] !== '-') {
+ $branches[$match[1]] = $match[2];
+ }
+ }
+
+ $this->process->execute('hg bookmarks', $output, $this->repoDir);
+ foreach ($this->process->splitLines($output) as $branch) {
+- if ($branch && preg_match('(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)', $branch, $match)) {
++ if ($branch && preg_match('(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)', $branch, $match) && $match[1][0] !== '-') {
+ $bookmarks[$match[1]] = $match[2];
+ }
+ }
+diff --git a/tests/Composer/Test/Repository/Vcs/GitDriverTest.php b/tests/Composer/Test/Repository/Vcs/GitDriverTest.php
+new file mode 100644
+index 0000000..eebe5da
+--- /dev/null
++++ b/tests/Composer/Test/Repository/Vcs/GitDriverTest.php
+@@ -0,0 +1,81 @@
++<?php
++
++namespace Composer\Test\Repository\Vcs;
++
++use Composer\Config;
++use Composer\Repository\Vcs\GitDriver;
++use Composer\Test\Mock\ProcessExecutorMock;
++use Composer\Test\TestCase;
++
++class GitDriverTest extends TestCase
++{
++ /** @var Config */
++ private $config;
++ /** @var string */
++ private $home;
++
++ public function setUp(): void
++ {
++ $this->home = self::getUniqueTmpDirectory();
++ $this->config = new Config();
++ $this->config->merge(array(
++ 'config' => array(
++ 'home' => $this->home,
++ ),
++ ));
++ }
++
++ public function testGetBranchesFilterInvalidBranchNames()
++ {
++ $process = new ProcessExecutorMock;
++ $io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
++
++ $driver = new GitDriver(array('url' => 'https://example.org/acme.git'), $io, $this->config, $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock(), $process);
++ $this->setRepoDir($driver, $this->home);
++
++ // Branches starting with a - character are not valid git branches names
++ // Still assert that they get filtered to prevent issues later on
++ $stdout = <<<GIT
++* main 089681446ba44d6d9004350192486f2ceb4eaa06 commit
++ 2.2 12681446ba44d6d9004350192486f2ceb4eaa06 commit
++ -h 089681446ba44d6d9004350192486f2ceb4eaa06 commit
++GIT;
++
++ $process
++ ->expects(array(array(
++ 'cmd' => 'git branch --no-color --no-abbrev -v',
++ 'stdout' => $stdout,
++ )));
++
++ $branches = $driver->getBranches();
++ $this->assertSame(array(
++ 'main' => '089681446ba44d6d9004350192486f2ceb4eaa06',
++ '2.2' => '12681446ba44d6d9004350192486f2ceb4eaa06',
++ ), $branches);
++ }
++
++ public function testFileGetContentInvalidIdentifier()
++ {
++ $this->expectException('\RuntimeException');
++
++ $process = new ProcessExecutorMock;
++ $io = $this->getMockBuilder('Composer\IO\IOInterface')->getMock();
++ $driver = new GitDriver(array('url' => 'https://example.org/acme.git'), $io, $this->config, $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock(), $process);
++
++ $this->assertNull($driver->getFileContent('file.txt', 'h'));
++
++ $driver->getFileContent('file.txt', '-h');
++ }
++
++ /**
++ * @param GitDriver $driver
++ * @param string $path
++ */
++ private function setRepoDir($driver, $path)
++ {
++ $reflectionClass = new \ReflectionClass($driver);
++ $reflectionProperty = $reflectionClass->getProperty('repoDir');
++ $reflectionProperty->setAccessible(true);
++ $reflectionProperty->setValue($driver, $path);
++ }
++}
+diff --git a/tests/Composer/Test/Repository/Vcs/HgDriverTest.php b/tests/Composer/Test/Repository/Vcs/HgDriverTest.php
+index c22439b..50138f0 100644
+--- a/tests/Composer/Test/Repository/Vcs/HgDriverTest.php
++++ b/tests/Composer/Test/Repository/Vcs/HgDriverTest.php
+@@ -13,6 +13,7 @@
+ namespace Composer\Test\Repository\Vcs;
+
+ use Composer\Repository\Vcs\HgDriver;
++use Composer\Test\Mock\ProcessExecutorMock;
+ use Composer\Test\TestCase;
+ use Composer\Util\Filesystem;
+ use Composer\Config;
+@@ -64,4 +65,49 @@ class HgDriverTest extends TestCase
+ array('https://u...@bitbucket.org/user/repo'),
+ );
+ }
++
++ public function testGetBranchesFilterInvalidBranchNames()
++ {
++ $process = new ProcessExecutorMock;
++
++ $driver = new HgDriver(array('url' => 'https://example.org/acme.git'), $this->io, $this->config, $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock(), $process);
++
++ $stdout = <<<HG_BRANCHES
++default 1:dbf6c8acb640
++--help 1:dbf6c8acb640
++HG_BRANCHES;
++
++ $stdout1 = <<<HG_BOOKMARKS
++help 1:dbf6c8acb641
++--help 1:dbf6c8acb641
++
++HG_BOOKMARKS;
++
++ $process
++ ->expects(array(array(
++ 'cmd' => 'hg branches',
++ 'stdout' => $stdout,
++ ), array(
++ 'cmd' => 'hg bookmarks',
++ 'stdout' => $stdout1,
++ )));
++
++ $branches = $driver->getBranches();
++ $this->assertSame(array(
++ 'help' => 'dbf6c8acb641',
++ 'default' => 'dbf6c8acb640',
++ ), $branches);
++ }
++
++ public function testFileGetContentInvalidIdentifier()
++ {
++ $this->expectException('\RuntimeException');
++
++ $process = new ProcessExecutorMock;
++ $driver = new HgDriver(array('url' => 'https://example.org/acme.git'), $this->io, $this->config, $this->getMockBuilder('Composer\Util\HttpDownloader')->disableOriginalConstructor()->getMock(), $process);
++
++ $this->assertNull($driver->getFileContent('file.txt', 'h'));
++
++ $driver->getFileContent('file.txt', '-h');
++ }
+ }
diff --git a/debian/patches/0011-Update-GitHub-token-pattern.patch b/debian/patches/0011-Update-GitHub-token-pattern.patch
new file mode 100644
index 000000000..2db6ea201
--- /dev/null
+++ b/debian/patches/0011-Update-GitHub-token-pattern.patch
@@ -0,0 +1,26 @@
+From: Ayesh Karunaratne <ay...@aye.sh>
+Date: Sun, 7 Mar 2021 00:40:32 +0700
+Subject: Update GitHub token pattern
+
+GitHub is updating the format of auth tokens from `a-z0-9` to `A-Za-z0-9` ([notice](https://github.blog/changelog/2021-03-04-authentication-token-format-updates/)).
+I'm not sure why `.` is allowed, but I dare not to remove it. In this PR, the token validation regex is updated to allow `A-Za-z0-9` instead of the current all lower-case `a-z` and disallowed `_`.
+
+Origin: upstream, https://github.com/composer/composer/commit/dc83ba93f3d8a35629f9a387632e8cd373a144d0
+Bug-Debian: https://bugs.debian.org/989315
+---
+ src/Composer/IO/BaseIO.php | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Composer/IO/BaseIO.php b/src/Composer/IO/BaseIO.php
+index e66360e..9c8bf70 100644
+--- a/src/Composer/IO/BaseIO.php
++++ b/src/Composer/IO/BaseIO.php
+@@ -124,7 +124,7 @@ abstract class BaseIO implements IOInterface
+ }
+
+ foreach ($githubOauth as $domain => $token) {
+- if (!preg_match('{^[.a-z0-9]+$}', $token)) {
++ if (!preg_match('{^[.A-Za-z0-9_]+$}', $token)) {
+ throw new \UnexpectedValueException('Your github oauth token for '.$domain.' contains invalid characters: "'.$token.'"');
+ }
+ $this->checkAndSetAuthentication($domain, $token, 'x-oauth-basic');
diff --git a/debian/patches/0012-Checkout-ProcessExecutorMock.php-needed-for-updated-.patch b/debian/patches/0012-Checkout-ProcessExecutorMock.php-needed-for-updated-.patch
new file mode 100644
index 000000000..74d86b951
--- /dev/null
+++ b/debian/patches/0012-Checkout-ProcessExecutorMock.php-needed-for-updated-.patch
@@ -0,0 +1,188 @@
+From: =?utf-8?q?David_Pr=C3=A9vot?= <taf...@debian.org>
+Date: Sun, 29 May 2022 11:02:37 +0200
+Subject: Checkout ProcessExecutorMock.php needed for updated tests
+
+git checkout 2c40c53637c5c7e43fff7c09d3d324d632734709 tests/Composer/Test/Mock/ProcessExecutorMock.php
+---
+ tests/Composer/Test/Mock/ProcessExecutorMock.php | 172 +++++++++++++++++++++++
+ 1 file changed, 172 insertions(+)
+ create mode 100644 tests/Composer/Test/Mock/ProcessExecutorMock.php
+
+diff --git a/tests/Composer/Test/Mock/ProcessExecutorMock.php b/tests/Composer/Test/Mock/ProcessExecutorMock.php
+new file mode 100644
+index 0000000..247f815
+--- /dev/null
++++ b/tests/Composer/Test/Mock/ProcessExecutorMock.php
+@@ -0,0 +1,172 @@
++<?php
++
++/*
++ * This file is part of Composer.
++ *
++ * (c) Nils Adermann <nader...@naderman.de>
++ * Jordi Boggiano <j.boggi...@seld.be>
++ *
++ * For the full copyright and license information, please view the LICENSE
++ * file that was distributed with this source code.
++ */
++
++namespace Composer\Test\Mock;
++
++use Composer\Util\ProcessExecutor;
++use Composer\Util\Platform;
++use PHPUnit\Framework\TestCase;
++use PHPUnit\Framework\AssertionFailedError;
++use Symfony\Component\Process\Process;
++use React\Promise\Promise;
++
++/**
++ * @author Jordi Boggiano <j.boggi...@seld.be>
++ */
++class ProcessExecutorMock extends ProcessExecutor
++{
++ /**
++ * @var array<array{cmd: string, return: int, stdout: string, stderr: string, callback: ?callable}>
++ */
++ private $expectations = array();
++ /**
++ * @var bool
++ */
++ private $strict = false;
++ /**
++ * @var array{return: int, stdout: string, stderr: string}
++ */
++ private $defaultHandler = array('return' => 0, 'stdout' => '', 'stderr' => '');
++ /**
++ * @var string[]
++ */
++ private $log = array();
++
++ /**
++ * @param array<string|array{cmd: string, return?: int, stdout?: string, stderr?: string, callback?: callable}> $expectations
++ * @param bool $strict set to true if you want to provide *all* expected commands, and not just a subset you are interested in testing
++ * @param array{return: int, stdout?: string, stderr?: string} $defaultHandler default command handler for undefined commands if not in strict mode
++ *
++ * @return void
++ */
++ public function expects(array $expectations, $strict = false, array $defaultHandler = array('return' => 0, 'stdout' => '', 'stderr' => ''))
++ {
++ $default = array('cmd' => '', 'return' => 0, 'stdout' => '', 'stderr' => '', 'callback' => null);
++ $this->expectations = array_map(function ($expect) use ($default) {
++ if (is_string($expect)) {
++ $expect = array('cmd' => $expect);
++ } elseif ($diff = array_diff_key(array_merge($default, $expect), $default)) {
++ throw new \UnexpectedValueException('Unexpected keys in process execution step: '.implode(', ', array_keys($diff)));
++ }
++
++ return array_merge($default, $expect);
++ }, $expectations);
++ $this->strict = $strict;
++ $this->defaultHandler = array_merge($this->defaultHandler, $defaultHandler);
++ }
++
++ /** @return void */
++ public function assertComplete(TestCase $testCase)
++ {
++ if ($this->expectations) {
++ $expectations = array_map(function ($expect) {
++ return $expect['cmd'];
++ }, $this->expectations);
++ throw new AssertionFailedError(
++ 'There are still '.count($this->expectations).' expected process calls which have not been consumed:'.PHP_EOL.
++ implode(PHP_EOL, $expectations).PHP_EOL.PHP_EOL.
++ 'Received calls:'.PHP_EOL.implode(PHP_EOL, $this->log)
++ );
++ }
++
++ $testCase->assertTrue(true);
++ }
++
++ public function execute($command, &$output = null, $cwd = null)
++ {
++ if (func_num_args() > 1) {
++ return $this->doExecute($command, $cwd, false, $output);
++ }
++
++ return $this->doExecute($command, $cwd, false);
++ }
++
++ public function executeTty($command, $cwd = null)
++ {
++ if (Platform::isTty()) {
++ return $this->doExecute($command, $cwd, true);
++ }
++
++ return $this->doExecute($command, $cwd, false);
++ }
++
++ /**
++ * @param string $command
++ * @param string $cwd
++ * @param bool $tty
++ * @param callable $output
++ * @return mixed
++ */
++ private function doExecute($command, $cwd, $tty, &$output = null)
++ {
++ $this->captureOutput = func_num_args() > 3;
++ $this->errorOutput = '';
++
++ $callback = is_callable($output) ? $output : array($this, 'outputHandler');
++
++ $this->log[] = $command;
++
++ if ($this->expectations && $command === $this->expectations[0]['cmd']) {
++ $expect = array_shift($this->expectations);
++ $stdout = $expect['stdout'];
++ $stderr = $expect['stderr'];
++ $return = $expect['return'];
++ if (isset($expect['callback'])) {
++ call_user_func($expect['callback']);
++ }
++ } elseif (!$this->strict) {
++ $stdout = $this->defaultHandler['stdout'];
++ $stderr = $this->defaultHandler['stderr'];
++ $return = $this->defaultHandler['return'];
++ } else {
++ throw new AssertionFailedError(
++ 'Received unexpected command "'.$command.'" in "'.$cwd.'"'.PHP_EOL.
++ ($this->expectations ? 'Expected "'.$this->expectations[0]['cmd'].'" at this point.' : 'Expected no more calls at this point.').PHP_EOL.
++ 'Received calls:'.PHP_EOL.implode(PHP_EOL, array_slice($this->log, 0, -1))
++ );
++ }
++
++ if ($stdout) {
++ call_user_func($callback, Process::STDOUT, $stdout);
++ }
++ if ($stderr) {
++ call_user_func($callback, Process::ERR, $stderr);
++ }
++
++ if ($this->captureOutput && !is_callable($output)) {
++ $output = $stdout;
++ }
++
++ $this->errorOutput = $stderr;
++
++ return $return;
++ }
++
++ public function executeAsync($command, $cwd = null)
++ {
++ $resolver = function ($resolve, $reject) {
++ // TODO strictly speaking this should resolve with a mock Process instance here
++ $resolve();
++ };
++
++ $canceler = function () {
++ throw new \RuntimeException('Aborted process');
++ };
++
++ return new Promise($resolver, $canceler);
++ }
++
++ public function getErrorOutput()
++ {
++ return $this->errorOutput;
++ }
++}
diff --git a/debian/patches/series b/debian/patches/series
index fe5b35053..e3c4bb6f7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,3 +7,6 @@
0007-Use-expectException-instead-of-setExpectedException.patch
0008-Compatibility-with-recent-PHPUnit-8.patch
0009-Merge-pull-request-from-GHSA-h5h8-pc6h-jvvx.patch
+0010-Merge-pull-request-from-GHSA-x7cr-6qr6-2hh6.patch
+0011-Update-GitHub-token-pattern.patch
+0012-Checkout-ProcessExecutorMock.php-needed-for-updated-.patch
--- ../composer_2.0.9-2_all.deb
+++ ../composer_2.0.9-2+deb11u1_all.deb
├── file list
│ @@ -1,3 +1,3 @@
│ --rw-r--r-- 0 0 0 4 2021-04-27 22:20:52.000000 debian-binary
│ --rw-r--r-- 0 0 0 9020 2021-04-27 22:20:52.000000 control.tar.xz
│ --rw-r--r-- 0 0 0 398172 2021-04-27 22:20:52.000000 data.tar.xz
│ +-rw-r--r-- 0 0 0 4 2022-05-29 09:55:56.000000 debian-binary
│ +-rw-r--r-- 0 0 0 9028 2022-05-29 09:55:56.000000 control.tar.xz
│ +-rw-r--r-- 0 0 0 398364 2022-05-29 09:55:56.000000 data.tar.xz
├── control.tar.xz
│ ├── control.tar
│ │ ├── file list
│ │ │ @@ -1,3 +1,3 @@
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./
│ │ │ --rw-r--r-- 0 root (0) root (0) 1060 2021-04-27 22:20:52.000000 ./control
│ │ │ --rw-r--r-- 0 root (0) root (0) 26748 2021-04-27 22:20:52.000000 ./md5sums
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./
│ │ │ +-rw-r--r-- 0 root (0) root (0) 1068 2022-05-29 09:55:56.000000 ./control
│ │ │ +-rw-r--r-- 0 root (0) root (0) 26748 2022-05-29 09:55:56.000000 ./md5sums
│ │ ├── ./control
│ │ │ @@ -1,12 +1,12 @@
│ │ │ Package: composer
│ │ │ -Version: 2.0.9-2
│ │ │ +Version: 2.0.9-2+deb11u1
│ │ │ Architecture: all
│ │ │ Maintainer: Debian PHP PEAR Maintainers <pkg-php-p...@lists.alioth.debian.org>
│ │ │ -Installed-Size: 2244
│ │ │ +Installed-Size: 2245
│ │ │ Depends: php-cli, php-common, php-composer-ca-bundle (>= 1.0), php-composer-ca-bundle (<< 2~~), php-composer-semver (>= 3.0), php-composer-semver (<< 4~~), php-composer-spdx-licenses (>= 1.2), php-composer-spdx-licenses (<< 2~~), php-composer-xdebug-handler (>= 1.1), php-composer-xdebug-handler (<< 2~~), php-json-schema (>= 5.2.10), php-json-schema (<< 6~~), php-psr-log (>= 1.0), php-psr-log (<< 2~~), jsonlint (>= 1.4), jsonlint (<< 2~~), php-symfony-console, php-symfony-filesystem, php-symfony-finder, php-symfony-process, php-react-promise
│ │ │ Recommends: git, unzip
│ │ │ Suggests: fossil, mercurial, subversion, php-zip
│ │ │ Section: php
│ │ │ Priority: optional
│ │ │ Homepage: https://getcomposer.org/
│ │ │ Description: dependency manager for PHP
│ │ ├── ./md5sums
│ │ │ ├── ./md5sums
│ │ │ │┄ Files differ
├── data.tar.xz
│ ├── data.tar
│ │ ├── file list
│ │ │ @@ -1,79 +1,79 @@
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/bin/
│ │ │ --rwxr-xr-x 0 root (0) root (0) 1855 2021-04-27 22:20:52.000000 ./usr/bin/composer
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/doc/
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/bin/
│ │ │ +-rwxr-xr-x 0 root (0) root (0) 1855 2022-05-29 09:55:56.000000 ./usr/bin/composer
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/doc/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/
│ │ │ -rw-r--r-- 0 root (0) root (0) 2457 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/00-intro.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 4653 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/01-basic-usage.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 2292 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/02-libraries.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 12394 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/03-cli.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 10201 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/04-schema.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 7492 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/05-repositories.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 4687 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/06-config.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 1806 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/07-runtime.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 1323 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/08-community.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 2262 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/README.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 4411 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/UPGRADE-2.0.md.gz
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/articles/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/articles/
│ │ │ -rw-r--r-- 0 root (0) root (0) 3996 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/aliases.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 2795 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/authentication-for-private-packages.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 1738 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/autoloader-optimization.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 2442 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/custom-installers.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 4358 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/handling-private-packages.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 3746 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/plugins.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 3215 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/repository-priorities.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 2966 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/resolving-merge-conflicts.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 4087 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/scripts.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 5491 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/troubleshooting.md.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 3401 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/vendor-binaries.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 4390 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/articles/versions.md.gz
│ │ │ --rw-r--r-- 0 root (0) root (0) 4415 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/changelog.Debian.gz
│ │ │ +-rw-r--r-- 0 root (0) root (0) 4529 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/changelog.Debian.gz
│ │ │ -rw-r--r-- 0 root (0) root (0) 22982 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/changelog.gz
│ │ │ --rw-r--r-- 0 root (0) root (0) 2919 2021-04-27 22:10:47.000000 ./usr/share/doc/composer/copyright
│ │ │ +-rw-r--r-- 0 root (0) root (0) 2919 2022-05-29 09:00:09.000000 ./usr/share/doc/composer/copyright
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/dev/
│ │ │ -rw-r--r-- 0 root (0) root (0) 1280 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/dev/DefaultPolicy.md
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/faqs/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/faqs/
│ │ │ -rw-r--r-- 0 root (0) root (0) 2219 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 1440 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/how-to-install-composer-programmatically.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 938 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/how-to-install-untrusted-packages-safely.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 1704 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 153 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/which-version-numbering-system-does-composer-itself-use.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 1069 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/why-are-unbound-version-constraints-a-bad-idea.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 989 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/why-are-version-constraints-combining-comparisons-and-wildcards-a-bad-idea.md
│ │ │ -rw-r--r-- 0 root (0) root (0) 2106 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/faqs/why-can't-composer-load-repositories-recursively.md
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/
│ │ │ -rw-r--r-- 0 root (0) root (0) 1012 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/fixtures.md
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/fixtures/repo-composer-plain/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/fixtures/repo-composer-plain/
│ │ │ -rw-r--r-- 0 root (0) root (0) 582 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-plain/packages.json.gz
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/bar/
│ │ │ -rw-r--r-- 0 root (0) root (0) 1656 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/bar/baz$923363b3c22e73abb2e3fd891c8156dd4d0821a97fd3e428bc910833e3e46dbe.json
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/foo/
│ │ │ -rw-r--r-- 0 root (0) root (0) 2607 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/foo/bar$4baabb3303afa3e34a4d3af18fb138e5f3b79029c1f8d9ab5b477ea15776ba0a.json
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/gar/
│ │ │ -rw-r--r-- 0 root (0) root (0) 1614 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/gar/nix$5d210670cb46c8364c8e3fb449967b9bea558b971e5b082f330ae4f1d484c321.json
│ │ │ -rw-r--r-- 0 root (0) root (0) 516 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/provider-active$1893a061e579543822389ecd12d791c612db0c05e22d90e9286e233cacd86ed8.json
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/qux/
│ │ │ -rw-r--r-- 0 root (0) root (0) 632 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/p/qux/quux$c142d1a07ca354be46b613f59f1d601923a5a00ccc5fcce50a77ecdd461eb72d.json
│ │ │ -rw-r--r-- 0 root (0) root (0) 308 2021-01-27 15:09:27.000000 ./usr/share/doc/composer/fixtures/repo-composer-with-providers/packages.json
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/man/
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/man/man1/
│ │ │ --rw-r--r-- 0 root (0) root (0) 1338 2021-04-27 22:20:52.000000 ./usr/share/man/man1/composer.1.gz
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Autoload/
│ │ │ --rw-r--r-- 0 root (0) root (0) 45789 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Autoload/AutoloadGenerator.php
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/man/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/man/man1/
│ │ │ +-rw-r--r-- 0 root (0) root (0) 1338 2022-05-29 09:55:56.000000 ./usr/share/man/man1/composer.1.gz
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Autoload/
│ │ │ +-rw-r--r-- 0 root (0) root (0) 45789 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Autoload/AutoloadGenerator.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 14362 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Autoload/ClassLoader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 13066 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Autoload/ClassMapGenerator.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 8329 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Cache.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Command/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Command/
│ │ │ -rw-r--r-- 0 root (0) root (0) 1172 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/AboutCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 7035 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ArchiveCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 6726 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/BaseCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 9754 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/BaseDependencyCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 7858 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/CheckPlatformReqsCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2225 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ClearCacheCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 32295 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ConfigCommand.php
│ │ │ @@ -98,30 +98,30 @@
│ │ │ -rw-r--r-- 0 root (0) root (0) 24328 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/SelfUpdateCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 52650 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ShowCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 8589 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/StatusCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4047 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/SuggestsCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 15981 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/UpdateCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 7509 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Command/ValidateCommand.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 6814 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Composer.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Config/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Config/
│ │ │ -rw-r--r-- 0 root (0) root (0) 2015 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Config/ConfigSourceInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 10330 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Config/JsonConfigSource.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 17305 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Config.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Console/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Console/
│ │ │ -rw-r--r-- 0 root (0) root (0) 22370 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Console/Application.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1314 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Console/GithubActionError.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2561 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Console/HtmlOutputFormatter.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/DependencyResolver/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/DependencyResolver/
│ │ │ -rw-r--r-- 0 root (0) root (0) 5684 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Decisions.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 7085 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/DefaultPolicy.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2096 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/GenericRule.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 706 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/LocalRepoTransaction.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4836 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/LockTransaction.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2659 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/MultiConflictRule.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/DependencyResolver/Operation/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/DependencyResolver/Operation/
│ │ │ -rw-r--r-- 0 root (0) root (0) 1283 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/InstallOperation.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1289 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/MarkAliasInstalledOperation.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1295 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/MarkAliasUninstalledOperation.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 915 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/OperationInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 787 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/SolverOperation.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1261 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/UninstallOperation.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2833 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Operation/UpdateOperation.php
│ │ │ @@ -138,55 +138,55 @@
│ │ │ -rw-r--r-- 0 root (0) root (0) 1402 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/RuleWatchChain.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 6380 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/RuleWatchGraph.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2826 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/RuleWatchNode.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 26565 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Solver.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 766 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/SolverBugException.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4479 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/SolverProblemsException.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 13484 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/DependencyResolver/Transaction.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/
│ │ │ -rw-r--r-- 0 root (0) root (0) 5903 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/ArchiveDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 766 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/ChangeReportInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 15599 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/DownloadManager.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3775 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/DownloaderInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 782 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/DvcsDownloaderInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 16782 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/FileDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 672 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/FilesystemException.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 4140 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/FossilDownloader.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 23738 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/GitDownloader.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 1969 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/GzipDownloader.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 3179 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/HgDownloader.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 4140 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/FossilDownloader.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 23738 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/GitDownloader.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 1969 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/GzipDownloader.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 3179 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/HgDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 367 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/MaxFileSizeExceededException.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 9770 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/PathDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2992 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/PerforceDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1004 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/PharDownloader.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 2405 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/RarDownloader.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 8171 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Downloader/SvnDownloader.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 2405 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/RarDownloader.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 8171 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Downloader/SvnDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 764 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/TarDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1337 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/TransportException.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 795 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/VcsCapableDownloaderInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 12336 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/VcsDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1001 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/XzDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 10718 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Downloader/ZipDownloader.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/EventDispatcher/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/EventDispatcher/
│ │ │ -rw-r--r-- 0 root (0) root (0) 2150 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/EventDispatcher/Event.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 20608 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/EventDispatcher/EventDispatcher.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1553 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/EventDispatcher/EventSubscriberInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 422 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/EventDispatcher/ScriptExecutionException.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Exception/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Exception/
│ │ │ -rw-r--r-- 0 root (0) root (0) 422 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Exception/IrrecoverableDownloadException.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 474 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Exception/NoSslException.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 26495 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Factory.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/IO/
│ │ │ --rw-r--r-- 0 root (0) root (0) 8428 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/BaseIO.php
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/IO/
│ │ │ +-rw-r--r-- 0 root (0) root (0) 8432 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/IO/BaseIO.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2604 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/BufferIO.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 10973 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/ConsoleIO.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 7609 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/IOInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2311 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/IO/NullIO.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 9564 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/InstalledVersions.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Installer/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Installer/
│ │ │ -rw-r--r-- 0 root (0) root (0) 7014 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/BinaryInstaller.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 731 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/BinaryPresenceInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 22555 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/InstallationManager.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2040 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/InstallerEvent.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 635 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/InstallerEvents.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4790 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/InstallerInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 10193 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/LibraryInstaller.php
│ │ │ @@ -194,22 +194,22 @@
│ │ │ -rw-r--r-- 0 root (0) root (0) 2602 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/NoopInstaller.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2637 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/PackageEvent.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2020 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/PackageEvents.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3851 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/PluginInstaller.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3354 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/ProjectInstaller.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 8433 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer/SuggestedPackagesReporter.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 49009 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Installer.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Json/
│ │ │ --rw-r--r-- 0 root (0) root (0) 10590 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Json/JsonFile.php
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Json/
│ │ │ +-rw-r--r-- 0 root (0) root (0) 10590 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Json/JsonFile.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4513 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Json/JsonFormatter.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 20929 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Json/JsonManipulator.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 704 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Json/JsonValidationException.php
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/
│ │ │ -rw-r--r-- 0 root (0) root (0) 10520 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/AliasPackage.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Package/Archiver/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Package/Archiver/
│ │ │ -rw-r--r-- 0 root (0) root (0) 990 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ArchivableFilesFilter.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2899 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ArchivableFilesFinder.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 6837 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ArchiveManager.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1271 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ArchiverInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3948 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/BaseExcludeFilter.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 858 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/ComposerExcludeFilter.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2105 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Archiver/GitExcludeFilter.php
│ │ │ @@ -220,52 +220,52 @@
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Comparer/
│ │ │ -rw-r--r-- 0 root (0) root (0) 3687 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Comparer/Comparer.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3961 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/CompletePackage.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2488 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/CompletePackageInterface.php
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Dumper/
│ │ │ -rw-r--r-- 0 root (0) root (0) 4944 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Dumper/ArrayDumper.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3634 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Link.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Package/Loader/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Package/Loader/
│ │ │ -rw-r--r-- 0 root (0) root (0) 14901 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/ArrayLoader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1001 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/InvalidPackageException.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1363 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/JsonLoader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 834 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/LoaderInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 10031 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/RootPackageLoader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 23735 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Loader/ValidatingArrayLoader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 16442 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Locker.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 14178 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Package.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 10845 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/PackageInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3686 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/RootAliasPackage.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2688 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/RootPackage.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3208 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/RootPackageInterface.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Package/Version/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Package/Version/
│ │ │ -rw-r--r-- 0 root (0) root (0) 1823 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Version/StabilityFilter.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 14469 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Version/VersionGuesser.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2883 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Version/VersionParser.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 8003 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Package/Version/VersionSelector.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Platform/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Platform/
│ │ │ -rw-r--r-- 0 root (0) root (0) 1870 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Platform/HhvmDetector.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2284 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Platform/Runtime.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2813 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Platform/Version.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Plugin/
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Plugin/Capability/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Plugin/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Plugin/Capability/
│ │ │ -rw-r--r-- 0 root (0) root (0) 485 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/Capability/Capability.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 863 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/Capability/CommandProvider.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1179 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/Capable.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1965 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/CommandEvent.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2087 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PluginEvents.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1709 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PluginInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 20572 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PluginManager.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2032 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PostFileDownloadEvent.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1357 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PreCommandRunEvent.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2864 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PreFileDownloadEvent.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3505 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Plugin/PrePoolCreateEvent.php
│ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Question/
│ │ │ -rw-r--r-- 0 root (0) root (0) 2667 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Question/StrictConfirmationQuestion.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/
│ │ │ -rw-r--r-- 0 root (0) root (0) 8956 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/ArrayRepository.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4158 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/ArtifactRepository.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 53547 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/ComposerRepository.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 5363 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/CompositeRepository.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 478 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/ConfigurableRepositoryInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 9313 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/FilesystemRepository.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 5407 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/FilterRepository.php
│ │ │ @@ -281,49 +281,49 @@
│ │ │ -rw-r--r-- 0 root (0) root (0) 27845 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/PlatformRepository.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 7321 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositoryFactory.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4538 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositoryInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 6159 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositoryManager.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 482 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositorySecurityException.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 10919 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RepositorySet.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 778 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/RootPackageRepository.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/
│ │ │ -rw-r--r-- 0 root (0) root (0) 13829 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/BitbucketDriver.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 7386 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/FossilDriver.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 7386 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/FossilDriver.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2378 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/GitBitbucketDriver.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 7337 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/GitDriver.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 7570 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/GitDriver.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 20170 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/GitHubDriver.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 18164 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/GitLabDriver.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2372 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/HgBitbucketDriver.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 6955 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/HgDriver.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 7214 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/HgDriver.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3855 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/PerforceDriver.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 12158 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Repository/Vcs/SvnDriver.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 12158 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Repository/Vcs/SvnDriver.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4803 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/VcsDriver.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3231 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/Vcs/VcsDriverInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 18285 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/VcsRepository.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 656 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/VersionCacheInterface.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1988 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/WritableArrayRepository.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1705 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Repository/WritableRepositoryInterface.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Script/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Script/
│ │ │ -rw-r--r-- 0 root (0) root (0) 3014 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Script/Event.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3623 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Script/ScriptEvents.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/SelfUpdate/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/SelfUpdate/
│ │ │ -rw-r--r-- 0 root (0) root (0) 874 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/SelfUpdate/Keys.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2586 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/SelfUpdate/Versions.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Util/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Util/
│ │ │ -rw-r--r-- 0 root (0) root (0) 12318 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/AuthHelper.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 8618 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Bitbucket.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1787 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/ComposerMirror.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 8767 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/ConfigValidator.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2371 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/ErrorHandler.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 24553 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Filesystem.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 18378 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Util/Git.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 18378 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Util/Git.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 6121 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/GitHub.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 7017 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/GitLab.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2538 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Hg.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Util/Http/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Util/Http/
│ │ │ -rw-r--r-- 0 root (0) root (0) 22976 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/CurlDownloader.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 687 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/CurlResponse.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 5198 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/ProxyHelper.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 4740 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/ProxyManager.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1903 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/RequestProxy.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2335 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Http/Response.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 15357 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/HttpDownloader.php
│ │ │ @@ -334,20 +334,20 @@
│ │ │ -rw-r--r-- 0 root (0) root (0) 2744 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/PackageSorter.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 17398 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Perforce.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3319 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Platform.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 12956 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/ProcessExecutor.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 33094 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/RemoteFilesystem.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2166 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Silencer.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 9288 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/StreamContextFactory.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 10041 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/Util/Svn.php
│ │ │ +-rw-r--r-- 0 root (0) root (0) 10041 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/Util/Svn.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 2469 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/SyncHelper.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 1880 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Tar.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 6625 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/TlsHelper.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 5024 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Url.php
│ │ │ -rw-r--r-- 0 root (0) root (0) 3628 2021-01-27 15:09:27.000000 ./usr/share/php/Composer/Util/Zip.php
│ │ │ --rw-r--r-- 0 root (0) root (0) 24534 2021-04-27 22:20:52.000000 ./usr/share/php/Composer/autoload.php
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/data/
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/data/Composer/
│ │ │ --rw-r--r-- 0 root (0) root (0) 1068 2021-04-27 22:20:52.000000 ./usr/share/php/data/Composer/LICENSE
│ │ │ -drwxr-xr-x 0 root (0) root (0) 0 2021-04-27 22:20:52.000000 ./usr/share/php/data/Composer/res/
│ │ │ +-rw-r--r-- 0 root (0) root (0) 24534 2022-05-29 09:55:56.000000 ./usr/share/php/Composer/autoload.php
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/data/
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/data/Composer/
│ │ │ +-rw-r--r-- 0 root (0) root (0) 1068 2022-05-29 09:55:56.000000 ./usr/share/php/data/Composer/LICENSE
│ │ │ +drwxr-xr-x 0 root (0) root (0) 0 2022-05-29 09:55:56.000000 ./usr/share/php/data/Composer/res/
│ │ │ -rw-r--r-- 0 root (0) root (0) 4081 2021-01-27 15:09:27.000000 ./usr/share/php/data/Composer/res/composer-repository-schema.json
│ │ │ -rw-r--r-- 0 root (0) root (0) 43775 2021-01-27 15:09:27.000000 ./usr/share/php/data/Composer/res/composer-schema.json
│ │ ├── ./usr/share/doc/composer/changelog.Debian.gz
│ │ │ ├── changelog.Debian
│ │ │ │ @@ -1,7 +1,15 @@
│ │ │ │ +composer (2.0.9-2+deb11u1) bullseye; urgency=medium
│ │ │ │ +
│ │ │ │ + * Fix code injection vulnerability [CVE-2022-24828] (Closes: #1009960)
│ │ │ │ + * Update GitHub token pattern (Closes: #989315)
│ │ │ │ + * Checkout ProcessExecutorMock.php needed for updated tests
│ │ │ │ +
│ │ │ │ + -- David Prévot <taf...@debian.org> Sun, 29 May 2022 11:55:56 +0200
│ │ │ │ +
│ │ │ │ composer (2.0.9-2) unstable; urgency=medium
│ │ │ │
│ │ │ │ * Use debian/bullseye branch
│ │ │ │ * Security: Fixed command injection vulnerability.
│ │ │ │ Fix external process calls to avoid user input being able to pass extra
│ │ │ │ parameters in HgDriver/HgDownloader and hardened other VCS drivers and
│ │ │ │ downloaders (GHSA-h5h8-pc6h-jvvx) [CVE-2021-29472]
│ │ ├── ./usr/share/man/man1/composer.1.gz
│ │ │ ├── composer.1
│ │ │ │ @@ -1,9 +1,9 @@
│ │ │ │ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.3.
│ │ │ │ -.TH COMPOSER "1" "April 2021" "composer 2.0.9" "User Commands"
│ │ │ │ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
│ │ │ │ +.TH COMPOSER "1" "May 2022" "composer 2.0.9" "User Commands"
│ │ │ │ .SH NAME
│ │ │ │ composer \- Composer command line interface
│ │ │ │ .SH SYNOPSIS
│ │ │ │ .B composer
│ │ │ │ \fI\,command \/\fR[\fI\,options\/\fR] [\fI\,arguments\/\fR]
│ │ │ │ .SH OPTIONS
│ │ │ │ .TP
│ │ ├── ./usr/share/php/Composer/IO/BaseIO.php
│ │ │ @@ -120,15 +120,15 @@
│ │ │ // reload oauth tokens from config if available
│ │ │
│ │ │ foreach ($bitbucketOauth as $domain => $cred) {
│ │ │ $this->checkAndSetAuthentication($domain, $cred['consumer-key'], $cred['consumer-secret']);
│ │ │ }
│ │ │
│ │ │ foreach ($githubOauth as $domain => $token) {
│ │ │ - if (!preg_match('{^[.a-z0-9]+$}', $token)) {
│ │ │ + if (!preg_match('{^[.A-Za-z0-9_]+$}', $token)) {
│ │ │ throw new \UnexpectedValueException('Your github oauth token for '.$domain.' contains invalid characters: "'.$token.'"');
│ │ │ }
│ │ │ $this->checkAndSetAuthentication($domain, $token, 'x-oauth-basic');
│ │ │ }
│ │ │
│ │ │ foreach ($gitlabOauth as $domain => $token) {
│ │ │ $this->checkAndSetAuthentication($domain, $token, 'oauth2');
│ │ ├── ./usr/share/php/Composer/Repository/Vcs/GitDriver.php
│ │ │ @@ -126,14 +126,18 @@
│ │ │ }
│ │ │
│ │ │ /**
│ │ │ * {@inheritdoc}
│ │ │ */
│ │ │ public function getFileContent($file, $identifier)
│ │ │ {
│ │ │ + if (isset($identifier[0]) && $identifier[0] === '-') {
│ │ │ + throw new \RuntimeException('Invalid git identifier detected. Identifier must not start with a -, given: ' . $identifier);
│ │ │ + }
│ │ │ +
│ │ │ $resource = sprintf('%s:%s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
│ │ │ $this->process->execute(sprintf('git show %s', $resource), $content, $this->repoDir);
│ │ │
│ │ │ if (!trim($content)) {
│ │ │ return null;
│ │ │ }
│ │ │
│ │ │ @@ -179,15 +183,15 @@
│ │ │ {
│ │ │ if (null === $this->branches) {
│ │ │ $branches = array();
│ │ │
│ │ │ $this->process->execute('git branch --no-color --no-abbrev -v', $output, $this->repoDir);
│ │ │ foreach ($this->process->splitLines($output) as $branch) {
│ │ │ if ($branch && !preg_match('{^ *[^/]+/HEAD }', $branch)) {
│ │ │ - if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match)) {
│ │ │ + if (preg_match('{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}', $branch, $match) && $match[1][0] !== '-') {
│ │ │ $branches[$match[1]] = $match[2];
│ │ │ }
│ │ │ }
│ │ │ }
│ │ │
│ │ │ $this->branches = $branches;
│ │ │ }
│ │ ├── ./usr/share/php/Composer/Repository/Vcs/HgDriver.php
│ │ │ @@ -117,15 +117,19 @@
│ │ │ }
│ │ │
│ │ │ /**
│ │ │ * {@inheritdoc}
│ │ │ */
│ │ │ public function getFileContent($file, $identifier)
│ │ │ {
│ │ │ - $resource = sprintf('hg cat -r %s %s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
│ │ │ + if (isset($identifier[0]) && $identifier[0] === '-') {
│ │ │ + throw new \RuntimeException('Invalid hg identifier detected. Identifier must not start with a -, given: ' . $identifier);
│ │ │ + }
│ │ │ +
│ │ │ + $resource = sprintf('hg cat -r %s -- %s', ProcessExecutor::escape($identifier), ProcessExecutor::escape($file));
│ │ │ $this->process->execute($resource, $content, $this->repoDir);
│ │ │
│ │ │ if (!trim($content)) {
│ │ │ return;
│ │ │ }
│ │ │
│ │ │ return $content;
│ │ │ @@ -177,22 +181,22 @@
│ │ │ {
│ │ │ if (null === $this->branches) {
│ │ │ $branches = array();
│ │ │ $bookmarks = array();
│ │ │
│ │ │ $this->process->execute('hg branches', $output, $this->repoDir);
│ │ │ foreach ($this->process->splitLines($output) as $branch) {
│ │ │ - if ($branch && preg_match('(^([^\s]+)\s+\d+:([a-f0-9]+))', $branch, $match)) {
│ │ │ + if ($branch && preg_match('(^([^\s]+)\s+\d+:([a-f0-9]+))', $branch, $match) && $match[1][0] !== '-') {
│ │ │ $branches[$match[1]] = $match[2];
│ │ │ }
│ │ │ }
│ │ │
│ │ │ $this->process->execute('hg bookmarks', $output, $this->repoDir);
│ │ │ foreach ($this->process->splitLines($output) as $branch) {
│ │ │ - if ($branch && preg_match('(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)', $branch, $match)) {
│ │ │ + if ($branch && preg_match('(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)', $branch, $match) && $match[1][0] !== '-') {
│ │ │ $bookmarks[$match[1]] = $match[2];
│ │ │ }
│ │ │ }
│ │ │
│ │ │ // Branches will have preference over bookmarks
│ │ │ $this->branches = array_merge($bookmarks, $branches);
│ │ │ }
signature.asc
Description: PGP signature
--- End Message ---