diff --git a/CHANGELOG.md b/CHANGELOG.md index 21e29898b..758a52dcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +### [1.1.2] - 2016-05-31 + + * Fixed degraded mode issue when accessing packagist.org + * Fixed GitHub access_token being added on subsequent requests in case of redirections + * Fixed exclude-from-classmap not working in some circumstances + * Fixed openssl warning preventing the use of config command for disabling tls + ### [1.1.1] - 2016-05-17 * Fixed regression in handling of #reference which made it update every time @@ -390,6 +397,7 @@ * Initial release +[1.1.2]: https://github.com/composer/composer/compare/1.1.1...1.1.2 [1.1.1]: https://github.com/composer/composer/compare/1.1.0...1.1.1 [1.1.0]: https://github.com/composer/composer/compare/1.0.3...1.1.0 [1.1.0-RC]: https://github.com/composer/composer/compare/1.0.3...1.1.0-RC diff --git a/src/Composer/Autoload/AutoloadGenerator.php b/src/Composer/Autoload/AutoloadGenerator.php index cf2593d86..51663e97b 100644 --- a/src/Composer/Autoload/AutoloadGenerator.php +++ b/src/Composer/Autoload/AutoloadGenerator.php @@ -810,7 +810,7 @@ INITIALIZER; if ($type === 'exclude-from-classmap') { // first escape user input - $path = preg_quote(trim(strtr($path, '\\', '/'), '/')); + $path = preg_replace('{/+}', '/', preg_quote(trim(strtr($path, '\\', '/'), '/'))); // add support for wildcards * and ** $path = str_replace('\\*\\*', '.+?', $path); diff --git a/src/Composer/Autoload/ClassMapGenerator.php b/src/Composer/Autoload/ClassMapGenerator.php index 5eed9523c..d902ae230 100644 --- a/src/Composer/Autoload/ClassMapGenerator.php +++ b/src/Composer/Autoload/ClassMapGenerator.php @@ -86,6 +86,8 @@ class ClassMapGenerator if (!$filesystem->isAbsolutePath($filePath)) { $filePath = $cwd . '/' . $filePath; $filePath = $filesystem->normalizePath($filePath); + } else { + $filePath = preg_replace('{[\\\\/]{2,}}', '/', $filePath); } if ($blacklist && preg_match($blacklist, strtr($filePath, '\\', '/'))) { diff --git a/src/Composer/Console/Application.php b/src/Composer/Console/Application.php index 320a48994..a2d34e40d 100644 --- a/src/Composer/Console/Application.php +++ b/src/Composer/Console/Application.php @@ -28,6 +28,7 @@ use Composer\IO\ConsoleIO; use Composer\Json\JsonValidationException; use Composer\Util\ErrorHandler; use Composer\EventDispatcher\ScriptExecutionException; +use Composer\Exception\NoSslException; /** * The console application that handles the commands @@ -127,13 +128,18 @@ class Application extends BaseApplication } if (!$input->hasParameterOption('--no-plugins') && !$this->hasPluginCommands && 'global' !== $commandName) { - foreach ($this->getPluginCommands() as $command) { - if ($this->has($command->getName())) { - $io->writeError('Plugin command '.$command->getName().' ('.get_class($command).') would override a Composer command and has been skipped'); - } else { - $this->add($command); + try { + foreach ($this->getPluginCommands() as $command) { + if ($this->has($command->getName())) { + $io->writeError('Plugin command '.$command->getName().' ('.get_class($command).') would override a Composer command and has been skipped'); + } else { + $this->add($command); + } } + } catch (NoSslException $e) { + // suppress these as they are not relevant at this point } + $this->hasPluginCommands = true; } diff --git a/src/Composer/Exception/NoSslException.php b/src/Composer/Exception/NoSslException.php new file mode 100644 index 000000000..017cac382 --- /dev/null +++ b/src/Composer/Exception/NoSslException.php @@ -0,0 +1,20 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Exception; + +/** + * @author Jordi Boggiano + */ +class NoSslException extends \RuntimeException +{ +} diff --git a/src/Composer/Factory.php b/src/Composer/Factory.php index 460ca362a..8d43e5521 100644 --- a/src/Composer/Factory.php +++ b/src/Composer/Factory.php @@ -571,7 +571,7 @@ class Factory $warned = true; $disableTls = true; } elseif (!extension_loaded('openssl')) { - throw new \RuntimeException('The openssl extension is required for SSL/TLS protection but is not available. ' + throw new Exception\NoSslException('The openssl extension is required for SSL/TLS protection but is not available. ' . 'If you can not enable the openssl extension, you can disable this error, at your own risk, by setting the \'disable-tls\' option to true.'); } $remoteFilesystemOptions = array();