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();