From 4d86414dd1e094756d94b5f6b45ed69d514a61e8 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 17 Sep 2018 11:24:47 +0200 Subject: [PATCH 01/18] Use a case insenstive method to check that SHA384 is a supported openssl algorithm --- src/Composer/Command/SelfUpdateCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Composer/Command/SelfUpdateCommand.php b/src/Composer/Command/SelfUpdateCommand.php index 2641a922b..243755963 100644 --- a/src/Composer/Command/SelfUpdateCommand.php +++ b/src/Composer/Command/SelfUpdateCommand.php @@ -220,7 +220,7 @@ TAGSPUBKEY $pubkeyid = openssl_pkey_get_public($sigFile); $algo = defined('OPENSSL_ALGO_SHA384') ? OPENSSL_ALGO_SHA384 : 'SHA384'; - if (!in_array('SHA384', openssl_get_md_methods())) { + if (!in_array('sha384', array_map('strtolower', openssl_get_md_methods()))) { throw new \RuntimeException('SHA384 is not supported by your openssl extension, could not verify the phar file integrity'); } $signature = json_decode($signature, true); From 0ca5c6342d95b40ef11dff720d50ad41bddece7f Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Wed, 26 Sep 2018 15:12:25 +0200 Subject: [PATCH 02/18] Fix the doc markup In *nix, the star needs to be part of the content, not of the markdown markup, and so it requires escaping. --- doc/03-cli.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/03-cli.md b/doc/03-cli.md index 0b46e04f5..0eed878e5 100644 --- a/doc/03-cli.md +++ b/doc/03-cli.md @@ -856,9 +856,9 @@ is a hidden, global (per-user on the machine) directory that is shared between all projects. By default it points to `C:\Users\\AppData\Roaming\Composer` on Windows -and `/Users//.composer` on OSX. On *nix systems that follow the [XDG Base +and `/Users//.composer` on OSX. On \*nix systems that follow the [XDG Base Directory Specifications](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html), -it points to `$XDG_CONFIG_HOME/composer`. On other *nix systems, it points to +it points to `$XDG_CONFIG_HOME/composer`. On other \*nix systems, it points to `/home//.composer`. #### COMPOSER_HOME/config.json From add71388ca24572e2d9f959752b349273a15cfe3 Mon Sep 17 00:00:00 2001 From: "Kristof Ringleff, Fooman" Date: Fri, 21 Sep 2018 15:32:35 +1200 Subject: [PATCH 03/18] Add failing artifact --- .../artifacts/not-a-zip-with-zip-extension.zip | Bin 0 -> 126405 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip diff --git a/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip b/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip new file mode 100644 index 0000000000000000000000000000000000000000..562f032d469230f4c3b79801660e9a5a40d1e8e3 GIT binary patch literal 126405 zcmXtg2Q*yW`}OEUgdtiGWlTgbQ6sw1hG@}y3xX)oYjmUcgy=*>kKjf061@Zw5xqt4 zy?@8=TmQ9U5zEZI&OK*8``LRxBGgpm?-NiHKp>F&iV8>#2m}KTJ}jZQ;5#8Lg5BT~ zzLSEU3k1T&boYVbSs>vKfiOT6ky4tT8CymkuA1W~v#Zn3n?4*3Ah6?SpQF~A6df@M z7CRz!CEp2d1>pQV)kMmM%FByjVxmamiAEW#L*hl!l(Xwkv#u|hTr4EjBzf2RYkwPk zO&rJ+v)(x$s_mZ)XMk(wV3L24^a^@kivd34u(f`;`=a%@m5M2vHx`EZD&;vNHa;U1 zq5utCyY0Up%^Qgh(ddIE@N}_2Al=RyUQ;I?7)4HlY)(&tc;)(GL%TPe7SZp!JLQp> zYSOW2Xh=M}|C6a>oxevONE{Na`B*HAXbse4fzpRX?Q+9s^Jn`@HJWTG@u{h)
i ztXy0>ZB5c~&O;QjwxeTmYOlADnF-!%h8>s?%2-f$ZHC%Wa{ z@E}GmpFxon1Co;*#DYSS;YhO<(8^1}kkC+RDx&aSBaa!kg@`9vo^RHE=DP4x$1rp| zIE33F6iK_CGx!~*>xiv~GR}3)&CPYmaBvvOUM&)0WByv&k56Ed_upR#rx*XE$)@+q zuO!t~CpQSq=F}}oCY!bDwcpR(LVL58ALsw*!2>2}P!8BsA(A{~m`NiLt0a=BsHS)w zH7HvFDIu;H7G&@8`q%1Vg7@*pqjv|rPfXS)D&{n@Rv%hK%OKCHpb@-sECrqm?V+98 zW%`ej5WPsKlzOrP5*@&R&e33%su<&i#B-T6ms0VVwvKYQT)hR`0~?|{sjGp*HhM~4 zCli21CL)L+3{Rds(Ykpk89{n*j`g$b<@4!!XB-E^dWc|!9`x4#^!^vEL#`ffmSs^o z?!s|f9xg5w5x)!9WA%JF&W&G1W2$x&<=aSTf^cjSLUD09`Zs-b3MOQ0rlB^Xf92`E zC^vqPLNx9pu8R$e48e19SHxrU+!8b@@sonGG8qN8@$~Mbb#|s4)GV5JC+_c_stkBy zInyMM@!Ag?p^*5rwDp|i_n)`$85ttrN83|0i=!G5a{0`?iV>E}U(76L4!oADhzrfj zK8}C=`W5XhYOGQ*VWF%X?YcML))kC+!r0*ZxE#bI;=9VhCx0 zEH4b&+9F3BP9)|XKawAw#JTytJvBk*>z^eIbu#k({r$zlY=04lo2&ESR~lD*T|3!9 z1n^?Xdg=0(eNWN9yDhiP+XjwJ$BP@|CE;Kv)|r1J#l$;#1d+rIVvt6VVq}*

RSv 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 LdQa6Z_t^gc0>PFJ literal 0 HcmV?d00001 From bcf4e94e8a1bd6d2f82d8a232e59251c4880637b Mon Sep 17 00:00:00 2001 From: "Kristof Ringleff, Fooman" Date: Fri, 21 Sep 2018 15:51:38 +1200 Subject: [PATCH 04/18] Ensure opening the zip was successful before proceeding --- src/Composer/Repository/ArtifactRepository.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Composer/Repository/ArtifactRepository.php b/src/Composer/Repository/ArtifactRepository.php index 2383b2dd3..e987813f0 100644 --- a/src/Composer/Repository/ArtifactRepository.php +++ b/src/Composer/Repository/ArtifactRepository.php @@ -126,7 +126,11 @@ class ArtifactRepository extends ArrayRepository implements ConfigurableReposito private function getComposerInformation(\SplFileInfo $file) { $zip = new \ZipArchive(); - $zip->open($file->getPathname()); + $res = $zip->open($file->getPathname()); + + if ($res !== true) { + return false; + } if (0 == $zip->numFiles) { $zip->close(); From 2ed573b22dc60ab894df430af368332d04c8cafc Mon Sep 17 00:00:00 2001 From: "Kristof Ringleff, Fooman" Date: Mon, 24 Sep 2018 20:28:22 +1200 Subject: [PATCH 05/18] Combine open zip call with conditional --- src/Composer/Repository/ArtifactRepository.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Composer/Repository/ArtifactRepository.php b/src/Composer/Repository/ArtifactRepository.php index e987813f0..0184cb4d5 100644 --- a/src/Composer/Repository/ArtifactRepository.php +++ b/src/Composer/Repository/ArtifactRepository.php @@ -126,9 +126,7 @@ class ArtifactRepository extends ArrayRepository implements ConfigurableReposito private function getComposerInformation(\SplFileInfo $file) { $zip = new \ZipArchive(); - $res = $zip->open($file->getPathname()); - - if ($res !== true) { + if ($zip->open($file->getPathname()) !== true) { return false; } From 5f2eefb49b3658b50293481b643dc4346670fa3c Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Wed, 10 Oct 2018 14:09:42 +0200 Subject: [PATCH 06/18] Vcs Repository: add option to cache/reuse entire versions --- src/Composer/Repository/VcsRepository.php | 67 ++++++++++++++++--- .../Repository/VersionCacheInterface.php | 23 +++++++ 2 files changed, 80 insertions(+), 10 deletions(-) create mode 100644 src/Composer/Repository/VersionCacheInterface.php diff --git a/src/Composer/Repository/VcsRepository.php b/src/Composer/Repository/VcsRepository.php index 57639cdea..785b8534b 100644 --- a/src/Composer/Repository/VcsRepository.php +++ b/src/Composer/Repository/VcsRepository.php @@ -41,8 +41,10 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt private $drivers; /** @var VcsDriverInterface */ private $driver; + /** @var VersionCacheInterface */ + private $versionCache; - public function __construct(array $repoConfig, IOInterface $io, Config $config, EventDispatcher $dispatcher = null, array $drivers = null) + public function __construct(array $repoConfig, IOInterface $io, Config $config, EventDispatcher $dispatcher = null, array $drivers = null, VersionCacheInterface $versionCache = null) { parent::__construct(); $this->drivers = $drivers ?: array( @@ -64,6 +66,7 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt $this->verbose = $io->isVeryVerbose(); $this->config = $config; $this->repoConfig = $repoConfig; + $this->versionCache = $versionCache; } public function getRepoConfig() @@ -152,6 +155,13 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt // strip the release- prefix from tags if present $tag = str_replace('release-', '', $tag); + $cachedPackage = $this->getCachedPackageVersion($tag, $identifier, $verbose); + if ($cachedPackage) { + $this->addPackage($cachedPackage); + + continue; + } + if (!$parsedTag = $this->validateTag($tag)) { if ($verbose) { $this->io->writeError('Skipped tag '.$tag.', invalid tag name'); @@ -235,6 +245,21 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt continue; } + // make sure branch packages have a dev flag + if ('dev-' === substr($parsedBranch, 0, 4) || '9999999-dev' === $parsedBranch) { + $version = 'dev-' . $branch; + } else { + $prefix = substr($branch, 0, 1) === 'v' ? 'v' : ''; + $version = $prefix . preg_replace('{(\.9{7})+}', '.x', $parsedBranch); + } + + $cachedPackage = $this->getCachedPackageVersion($version, $identifier, $verbose); + if ($cachedPackage) { + $this->addPackage($cachedPackage); + + continue; + } + try { if (!$data = $driver->getComposerInformation($identifier)) { if ($verbose) { @@ -244,17 +269,9 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt } // branches are always auto-versioned, read value from branch name - $data['version'] = $branch; + $data['version'] = $version; $data['version_normalized'] = $parsedBranch; - // make sure branch packages have a dev flag - if ('dev-' === substr($parsedBranch, 0, 4) || '9999999-dev' === $parsedBranch) { - $data['version'] = 'dev-' . $data['version']; - } else { - $prefix = substr($branch, 0, 1) === 'v' ? 'v' : ''; - $data['version'] = $prefix . preg_replace('{(\.9{7})+}', '.x', $parsedBranch); - } - if ($verbose) { $this->io->writeError('Importing branch '.$branch.' ('.$data['version'].')'); } @@ -325,4 +342,34 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt return false; } + + private function getCachedPackageVersion($version, $identifier, $verbose) + { + if (!$this->versionCache) { + return; + } + + $cachedPackage = $this->versionCache->getVersionPackage($version, $identifier); + if ($cachedPackage) { + $msg = 'Found cached composer.json of ' . ($this->packageName ?: $this->url) . ' (' . $version . ')'; + if ($verbose) { + $this->io->writeError($msg); + } else { + $this->io->overwriteError($msg, false); + } + + if ($existingPackage = $this->findPackage($cachedPackage['name'], $cachedPackage['version_normalized'])) { + if ($verbose) { + $this->io->writeError('Skipped cached version '.$version.', it conflicts with an another tag ('.$existingPackage->getPrettyVersion().') as both resolve to '.$cachedPackage['version_normalized'].' internally'); + } + $cachedPackage = null; + } + } + + if ($cachedPackage) { + return $this->loader->load($cachedPackage); + } + + return null; + } } diff --git a/src/Composer/Repository/VersionCacheInterface.php b/src/Composer/Repository/VersionCacheInterface.php new file mode 100644 index 000000000..db5934b59 --- /dev/null +++ b/src/Composer/Repository/VersionCacheInterface.php @@ -0,0 +1,23 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Repository; + +interface VersionCacheInterface +{ + /** + * @param string $version + * @param string $identifier + * @return array Package version data + */ + public function getVersionPackage($version, $identifier); +} From 819f487b38dc79f8ce3dc910a0d8ceda01086778 Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Fri, 19 Oct 2018 11:55:45 +0200 Subject: [PATCH 07/18] Bitbucket: switch to v2 API --- src/Composer/Repository/Vcs/BitbucketDriver.php | 11 ++++++++--- .../Test/Repository/Vcs/GitBitbucketDriverTest.php | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Composer/Repository/Vcs/BitbucketDriver.php b/src/Composer/Repository/Vcs/BitbucketDriver.php index 6361d6a04..3857171e8 100644 --- a/src/Composer/Repository/Vcs/BitbucketDriver.php +++ b/src/Composer/Repository/Vcs/BitbucketDriver.php @@ -190,7 +190,7 @@ abstract class BitbucketDriver extends VcsDriver } $resource = sprintf( - 'https://api.bitbucket.org/1.0/repositories/%s/%s/raw/%s/%s', + 'https://api.bitbucket.org/2.0/repositories/%s/%s/src/%s/%s', $this->owner, $this->repository, $identifier, @@ -421,11 +421,16 @@ abstract class BitbucketDriver extends VcsDriver protected function getMainBranchData() { $resource = sprintf( - 'https://api.bitbucket.org/1.0/repositories/%s/%s/main-branch', + 'https://api.bitbucket.org/2.0/repositories/%s/%s?fields=mainbranch', $this->owner, $this->repository ); - return JsonFile::parseJson($this->getContentsWithOAuthCredentials($resource), $resource); + $data = JsonFile::parseJson($this->getContentsWithOAuthCredentials($resource), $resource); + if (isset($data['mainbranch'])) { + return $data['mainbranch']; + } + + return null; } } diff --git a/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php b/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php index b35bb8867..7547855bf 100644 --- a/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php @@ -113,7 +113,7 @@ class GitBitbucketDriverTest extends TestCase ), array( $this->originUrl, - 'https://api.bitbucket.org/1.0/repositories/user/repo/main-branch', + 'https://api.bitbucket.org/2.0/repositories/user/repo?fields=mainbranch', false, ), array( @@ -128,7 +128,7 @@ class GitBitbucketDriverTest extends TestCase ), array( $this->originUrl, - 'https://api.bitbucket.org/1.0/repositories/user/repo/raw/master/composer.json', + 'https://api.bitbucket.org/2.0/repositories/user/repo/src/master/composer.json', false, ), array( @@ -139,7 +139,7 @@ class GitBitbucketDriverTest extends TestCase ) ->willReturnOnConsecutiveCalls( '{"scm":"git","website":"","has_wiki":false,"name":"repo","links":{"branches":{"href":"https:\/\/api.bitbucket.org\/2.0\/repositories\/user\/repo\/refs\/branches"},"tags":{"href":"https:\/\/api.bitbucket.org\/2.0\/repositories\/user\/repo\/refs\/tags"},"clone":[{"href":"https:\/\/user@bitbucket.org\/user\/repo.git","name":"https"},{"href":"ssh:\/\/git@bitbucket.org\/user\/repo.git","name":"ssh"}],"html":{"href":"https:\/\/bitbucket.org\/user\/repo"}},"language":"php","created_on":"2015-02-18T16:22:24.688+00:00","updated_on":"2016-05-17T13:20:21.993+00:00","is_private":true,"has_issues":false}', - '{"name": "master"}', + '{"mainbranch": {"name": "master"}}', '{"values":[{"name":"1.0.1","target":{"hash":"9b78a3932143497c519e49b8241083838c8ff8a1"}},{"name":"1.0.0","target":{"hash":"d3393d514318a9267d2f8ebbf463a9aaa389f8eb"}}]}', '{"values":[{"name":"master","target":{"hash":"937992d19d72b5116c3e8c4a04f960e5fa270b22"}}]}', '{"name": "user/repo","description": "test repo","license": "GPL","authors": [{"name": "Name","email": "local@domain.tld"}],"require": {"creator/package": "^1.0"},"require-dev": {"phpunit/phpunit": "~4.8"}}', From 23d37eebe6b7b87d98b54436eccd1a653ca04ab6 Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Wed, 24 Oct 2018 13:42:40 +0200 Subject: [PATCH 08/18] Fix: undefined index name in VcsRepository --- src/Composer/Repository/VcsRepository.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Composer/Repository/VcsRepository.php b/src/Composer/Repository/VcsRepository.php index 57639cdea..4f8e12d7c 100644 --- a/src/Composer/Repository/VcsRepository.php +++ b/src/Composer/Repository/VcsRepository.php @@ -188,7 +188,8 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt continue; } - if ($existingPackage = $this->findPackage($data['name'], $data['version_normalized'])) { + $tagPackageName = isset($data['name']) ? $data['name'] : $this->packageName; + if ($existingPackage = $this->findPackage($tagPackageName, $data['version_normalized'])) { if ($verbose) { $this->io->writeError('Skipped tag '.$tag.', it conflicts with an another tag ('.$existingPackage->getPrettyVersion().') as both resolve to '.$data['version_normalized'].' internally'); } From 8b8df013361c1d57caabc36f9e9efb516a177558 Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Fri, 26 Oct 2018 15:48:18 +0200 Subject: [PATCH 09/18] Bitbucket: fix redirect behaviour --- src/Composer/Util/RemoteFilesystem.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Composer/Util/RemoteFilesystem.php b/src/Composer/Util/RemoteFilesystem.php index dc2b33089..def4091a6 100644 --- a/src/Composer/Util/RemoteFilesystem.php +++ b/src/Composer/Util/RemoteFilesystem.php @@ -385,15 +385,18 @@ class RemoteFilesystem $statusCode = null; $contentType = null; + $locationHeader = null; if (!empty($http_response_header[0])) { $statusCode = $this->findStatusCode($http_response_header); $contentType = $this->findHeaderValue($http_response_header, 'content-type'); + $locationHeader = $this->findHeaderValue($http_response_header, 'location'); } // check for bitbucket login page asking to authenticate if ($originUrl === 'bitbucket.org' && !$this->isPublicBitBucketDownload($fileUrl) && substr($fileUrl, -4) === '.zip' + && (!$locationHeader || substr($locationHeader, -4) !== '.zip') && $contentType && preg_match('{^text/html\b}i', $contentType) ) { $result = false; From 105477218dcb31c82593460850f6b5f3dd225739 Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Mon, 29 Oct 2018 12:01:46 +0100 Subject: [PATCH 10/18] VcsRepository: fix undefined index notice in preProcess --- src/Composer/Repository/VcsRepository.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Composer/Repository/VcsRepository.php b/src/Composer/Repository/VcsRepository.php index 4f8e12d7c..b65d19d75 100644 --- a/src/Composer/Repository/VcsRepository.php +++ b/src/Composer/Repository/VcsRepository.php @@ -295,7 +295,8 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt protected function preProcess(VcsDriverInterface $driver, array $data, $identifier) { // keep the name of the main identifier for all packages - $data['name'] = $this->packageName ?: $data['name']; + $dataPackageName = isset($data['name']) ? $data['name'] : null; + $data['name'] = $this->packageName ?: $dataPackageName; if (!isset($data['dist'])) { $data['dist'] = $driver->getDist($identifier); From 114217c6e3b35653923815786221c94b023c36a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20de=20Guillebon?= Date: Wed, 31 Oct 2018 09:55:53 +0100 Subject: [PATCH 11/18] Fix ini_get() for boolean values --- src/Composer/Autoload/ClassLoader.php | 2 +- src/Composer/Command/DiagnoseCommand.php | 6 +++--- src/Composer/Compiler.php | 2 +- src/Composer/Util/ErrorHandler.php | 2 +- src/Composer/Util/RemoteFilesystem.php | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Composer/Autoload/ClassLoader.php b/src/Composer/Autoload/ClassLoader.php index 95f7e0978..fce8549f0 100644 --- a/src/Composer/Autoload/ClassLoader.php +++ b/src/Composer/Autoload/ClassLoader.php @@ -279,7 +279,7 @@ class ClassLoader */ public function setApcuPrefix($apcuPrefix) { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; } /** diff --git a/src/Composer/Command/DiagnoseCommand.php b/src/Composer/Command/DiagnoseCommand.php index 3efb34973..3cb783b3b 100644 --- a/src/Composer/Command/DiagnoseCommand.php +++ b/src/Composer/Command/DiagnoseCommand.php @@ -481,7 +481,7 @@ EOT $errors['iconv_mbstring'] = true; } - if (!ini_get('allow_url_fopen')) { + if (!filter_var(ini_get('allow_url_fopen'), FILTER_VALIDATE_BOOLEAN)) { $errors['allow_url_fopen'] = true; } @@ -505,7 +505,7 @@ EOT $warnings['openssl_version'] = true; } - if (!defined('HHVM_VERSION') && !extension_loaded('apcu') && ini_get('apc.enable_cli')) { + if (!defined('HHVM_VERSION') && !extension_loaded('apcu') && filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN)) { $warnings['apc_cli'] = true; } @@ -528,7 +528,7 @@ EOT } } - if (ini_get('xdebug.profiler_enabled')) { + if (filter_var(ini_get('xdebug.profiler_enabled'), FILTER_VALIDATE_BOOLEAN)) { $warnings['xdebug_profile'] = true; } elseif (extension_loaded('xdebug')) { $warnings['xdebug_loaded'] = true; diff --git a/src/Composer/Compiler.php b/src/Composer/Compiler.php index 4064b20b5..27b1f4816 100644 --- a/src/Composer/Compiler.php +++ b/src/Composer/Compiler.php @@ -255,7 +255,7 @@ class Compiler */ // Avoid APC causing random fatal errors per https://github.com/composer/composer/issues/264 -if (extension_loaded('apc') && ini_get('apc.enable_cli') && ini_get('apc.cache_by_default')) { +if (extension_loaded('apc') && filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN) && filter_var(ini_get('apc.cache_by_default'), FILTER_VALIDATE_BOOLEAN)) { if (version_compare(phpversion('apc'), '3.0.12', '>=')) { ini_set('apc.cache_by_default', 0); } else { diff --git a/src/Composer/Util/ErrorHandler.php b/src/Composer/Util/ErrorHandler.php index 925cab74c..83e6b5ede 100644 --- a/src/Composer/Util/ErrorHandler.php +++ b/src/Composer/Util/ErrorHandler.php @@ -41,7 +41,7 @@ class ErrorHandler return; } - if (ini_get('xdebug.scream')) { + if (filter_var(ini_get('xdebug.scream'), FILTER_VALIDATE_BOOLEAN)) { $message .= "\n\nWarning: You have xdebug.scream enabled, the warning above may be". "\na legitimately suppressed error that you were not supposed to see."; } diff --git a/src/Composer/Util/RemoteFilesystem.php b/src/Composer/Util/RemoteFilesystem.php index def4091a6..39f049cbe 100644 --- a/src/Composer/Util/RemoteFilesystem.php +++ b/src/Composer/Util/RemoteFilesystem.php @@ -364,7 +364,7 @@ class RemoteFilesystem } $result = false; } - if ($errorMessage && !ini_get('allow_url_fopen')) { + if ($errorMessage && !filter_var(ini_get('allow_url_fopen'), FILTER_VALIDATE_BOOLEAN)) { $errorMessage = 'allow_url_fopen must be enabled in php.ini ('.$errorMessage.')'; } restore_error_handler(); From 470d351926228a9f2804ae273b35cedf58846ce6 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 12:47:07 +0100 Subject: [PATCH 12/18] Update ca-bundle --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index 70455dc7b..d4e7f847f 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "composer/ca-bundle", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "46afded9720f40b9dc63542af4e3e43a1177acb0" + "reference": "8afa52cd417f4ec417b4bfe86b68106538a87660" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/46afded9720f40b9dc63542af4e3e43a1177acb0", - "reference": "46afded9720f40b9dc63542af4e3e43a1177acb0", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660", + "reference": "8afa52cd417f4ec417b4bfe86b68106538a87660", "shasum": "" }, "require": { @@ -60,7 +60,7 @@ "ssl", "tls" ], - "time": "2018-08-08T08:57:40+00:00" + "time": "2018-10-18T06:09:13+00:00" }, { "name": "composer/semver", From 77457ca4742f46d1e606dcd443a52d3323177541 Mon Sep 17 00:00:00 2001 From: Mariusz Zarzycki Date: Mon, 8 Oct 2018 20:35:06 +0100 Subject: [PATCH 13/18] Show command respects --path flag Path added to package meta output --- src/Composer/Command/ShowCommand.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index ccea6a960..6de2f4cab 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -219,6 +219,12 @@ EOT if ($input->getOption('outdated') && $input->getOption('strict') && $latestPackage && $latestPackage->getFullPrettyVersion() !== $package->getFullPrettyVersion() && !$latestPackage->isAbandoned()) { $exitCode = 1; } + if ($input->getOption('path')) { + $io->write($package->getName(), false); + $io->write(' ' . strtok(realpath($composer->getInstallationManager()->getInstallPath($package)), "\r\n")); + + return $exitCode; + } $this->printMeta($package, $versions, $installedRepo, $latestPackage ?: null); $this->printLinks($package, 'requires'); $this->printLinks($package, 'devRequires', 'requires (dev)'); @@ -577,6 +583,7 @@ EOT $this->printLicenses($package); $io->write('source : ' . sprintf('[%s] %s %s', $package->getSourceType(), $package->getSourceUrl(), $package->getSourceReference())); $io->write('dist : ' . sprintf('[%s] %s %s', $package->getDistType(), $package->getDistUrl(), $package->getDistReference())); + $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); $io->write('names : ' . implode(', ', $package->getNames())); if ($latestPackage->isAbandoned()) { From f72e2312dcda584794dc5bf136b7d6d874c87cf3 Mon Sep 17 00:00:00 2001 From: Mariusz Zarzycki Date: Mon, 8 Oct 2018 20:37:25 +0100 Subject: [PATCH 14/18] Ran php-cs-fixer --- src/Composer/Command/ShowCommand.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index 6de2f4cab..0b638a74b 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -219,12 +219,12 @@ EOT if ($input->getOption('outdated') && $input->getOption('strict') && $latestPackage && $latestPackage->getFullPrettyVersion() !== $package->getFullPrettyVersion() && !$latestPackage->isAbandoned()) { $exitCode = 1; } - if ($input->getOption('path')) { - $io->write($package->getName(), false); - $io->write(' ' . strtok(realpath($composer->getInstallationManager()->getInstallPath($package)), "\r\n")); + if ($input->getOption('path')) { + $io->write($package->getName(), false); + $io->write(' ' . strtok(realpath($composer->getInstallationManager()->getInstallPath($package)), "\r\n")); - return $exitCode; - } + return $exitCode; + } $this->printMeta($package, $versions, $installedRepo, $latestPackage ?: null); $this->printLinks($package, 'requires'); $this->printLinks($package, 'devRequires', 'requires (dev)'); @@ -583,7 +583,7 @@ EOT $this->printLicenses($package); $io->write('source : ' . sprintf('[%s] %s %s', $package->getSourceType(), $package->getSourceUrl(), $package->getSourceReference())); $io->write('dist : ' . sprintf('[%s] %s %s', $package->getDistType(), $package->getDistUrl(), $package->getDistReference())); - $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); + $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); $io->write('names : ' . implode(', ', $package->getNames())); if ($latestPackage->isAbandoned()) { From 38a63ba05a1abce51372ca3a9c12c002f3b3fe63 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 15:07:07 +0100 Subject: [PATCH 15/18] Only show path for installed packages, refs #7698 --- src/Composer/Command/ShowCommand.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index 0b638a74b..5a3c970dd 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -583,7 +583,9 @@ EOT $this->printLicenses($package); $io->write('source : ' . sprintf('[%s] %s %s', $package->getSourceType(), $package->getSourceUrl(), $package->getSourceReference())); $io->write('dist : ' . sprintf('[%s] %s %s', $package->getDistType(), $package->getDistUrl(), $package->getDistReference())); - $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); + if ($installedRepo->hasPackage($package)) { + $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); + } $io->write('names : ' . implode(', ', $package->getNames())); if ($latestPackage->isAbandoned()) { From 41458c75184bde3805d622503b7b5973ef3f1a8b Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Fri, 12 Oct 2018 15:56:26 +0200 Subject: [PATCH 16/18] Don't call Symfony ProcessUtils::escapeArgument --- src/Composer/Util/ProcessExecutor.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Composer/Util/ProcessExecutor.php b/src/Composer/Util/ProcessExecutor.php index 5e40470b0..d34c6c3aa 100644 --- a/src/Composer/Util/ProcessExecutor.php +++ b/src/Composer/Util/ProcessExecutor.php @@ -131,15 +131,11 @@ class ProcessExecutor */ public static function escape($argument) { - if (method_exists('Symfony\Component\Process\ProcessUtils', 'escapeArgument')) { - return ProcessUtils::escapeArgument($argument); - } - return self::escapeArgument($argument); } /** - * Copy of ProcessUtils::escapeArgument() that is removed in Symfony 4. + * Copy of ProcessUtils::escapeArgument() that is deprecated in Symfony 3.3 and removed in Symfony 4. * * @param string $argument * From 3c543b275279b27d3e723ffe4363e0aecaf07857 Mon Sep 17 00:00:00 2001 From: Raffael Comi Date: Mon, 15 Oct 2018 13:41:59 +0200 Subject: [PATCH 17/18] Report "same as actual" version if override package matches actual --- src/Composer/Repository/PlatformRepository.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Composer/Repository/PlatformRepository.php b/src/Composer/Repository/PlatformRepository.php index 02d552424..0a2e79f35 100644 --- a/src/Composer/Repository/PlatformRepository.php +++ b/src/Composer/Repository/PlatformRepository.php @@ -236,7 +236,12 @@ class PlatformRepository extends ArrayRepository // Skip if overridden if (isset($this->overrides[$package->getName()])) { $overrider = $this->findPackage($package->getName(), '*'); - $overrider->setDescription($overrider->getDescription().' (actual: '.$package->getPrettyVersion().')'); + if ($package->getVersion() === $overrider->getVersion()) { + $actualText = 'same as actual'; + } else { + $actualText = 'actual: '.$package->getPrettyVersion(); + } + $overrider->setDescription($overrider->getDescription().' ('.$actualText.')'); return; } @@ -244,7 +249,12 @@ class PlatformRepository extends ArrayRepository // Skip if PHP is overridden and we are adding a php-* package if (isset($this->overrides['php']) && 0 === strpos($package->getName(), 'php-')) { $overrider = $this->addOverriddenPackage($this->overrides['php'], $package->getPrettyName()); - $overrider->setDescription($overrider->getDescription().' (actual: '.$package->getPrettyVersion().')'); + if ($package->getVersion() === $overrider->getVersion()) { + $actualText = 'same as actual'; + } else { + $actualText = 'actual: '.$package->getPrettyVersion(); + } + $overrider->setDescription($overrider->getDescription().' ('.$actualText.')'); return; } From a51563300c77e339300d2fbeff796aea95f3d0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tanghe?= Date: Tue, 9 Oct 2018 10:13:01 +0200 Subject: [PATCH 18/18] Warning about the UNIX permissions lost if unzip command is not installed. Some packages provide (such as Symfony Panther or Dusk) executable files, but as PHP's unzip extension does not handle UNIX permissions, those files will lose their executable ones. --- src/Composer/Downloader/ZipDownloader.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Composer/Downloader/ZipDownloader.php b/src/Composer/Downloader/ZipDownloader.php index 5ca7a2dab..6534db3d8 100644 --- a/src/Composer/Downloader/ZipDownloader.php +++ b/src/Composer/Downloader/ZipDownloader.php @@ -69,7 +69,8 @@ class ZipDownloader extends ArchiveDownloader if (!self::$isWindows && !self::$hasSystemUnzip) { $this->io->writeError("As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension."); - $this->io->writeError("This may cause invalid reports of corrupted archives. Installing 'unzip' may remediate them."); + $this->io->writeError("This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost."); + $this->io->writeError("Installing 'unzip' may remediate them."); } }