Browse Source

Fix solving issue when provide provides a platform package that is already installed, fixes #1171

Jordi Boggiano 12 years ago
parent
commit
ead17b2680
1 changed files with 8 additions and 1 deletions
  1. 8 1
      src/Composer/Installer.php

+ 8 - 1
src/Composer/Installer.php

@@ -333,7 +333,14 @@ class Installer
 
             $constraint = new VersionConstraint('=', $package->getVersion());
             $constraint->setPrettyString($package->getPrettyVersion());
-            $request->install($package->getName(), $constraint);
+
+            if (!($package->getRepository() instanceof PlatformRepository)
+                || !($provided = $this->package->getProvides())
+                || !isset($provided[$package->getName()])
+                || !$provided[$package->getName()]->getConstraint()->matches($constraint)
+            ) {
+                $request->install($package->getName(), $constraint);
+            }
         }
 
         // if the updateWhitelist is enabled, packages not in it are also fixed