diff --git a/src/Composer/Autoload/ClassMapGenerator.php b/src/Composer/Autoload/ClassMapGenerator.php index d4d2b0b6e..649c700c8 100644 --- a/src/Composer/Autoload/ClassMapGenerator.php +++ b/src/Composer/Autoload/ClassMapGenerator.php @@ -90,7 +90,8 @@ class ClassMapGenerator $filePath = preg_replace('{[\\\\/]{2,}}', '/', $filePath); } - if ($blacklist && preg_match($blacklist, strtr($filePath, '\\', '/'))) { + // check the realpath of the file against the blacklist as the path might be a symlink and the blacklist is realpath'd so symlink are resolved + if ($blacklist && preg_match($blacklist, strtr(realpath($filePath), '\\', '/'))) { continue; } diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index 03542210e..e9ffbe029 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -353,7 +353,7 @@ EOT } if ($input->getOption('outdated') && $latestPackage && $latestPackage->getFullPrettyVersion() === $package->getFullPrettyVersion() && !$latestPackage->isAbandoned()) { continue; - } elseif ($input->getOption('outdated')) { + } elseif ($input->getOption('outdated') || $input->getOption('strict')) { $hasOutdatedPackages = true; } diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php index 72a86116a..5d70832b2 100644 --- a/src/Composer/Installer.php +++ b/src/Composer/Installer.php @@ -1199,10 +1199,12 @@ class Installer } $package->setSourceReference($reference); - $package->setDistReference($reference); if (preg_match('{^https?://(?:(?:www\.)?bitbucket\.org|(api\.)?github\.com)/}i', $package->getDistUrl())) { + $package->setDistReference($reference); $package->setDistUrl(preg_replace('{(?<=/)[a-f0-9]{40}(?=/|$)}i', $reference, $package->getDistUrl())); + } else if ($package->getDistReference()) { // update the dist reference if there was one, but if none was provided ignore it + $package->setDistReference($reference); } }