|
@@ -36,12 +36,15 @@ class SolverProblemsException extends \RuntimeException
|
|
$installedMap = $request->getPresentMap(true);
|
|
$installedMap = $request->getPresentMap(true);
|
|
$text = "\n";
|
|
$text = "\n";
|
|
$hasExtensionProblems = false;
|
|
$hasExtensionProblems = false;
|
|
|
|
+ $isCausedByLock = false;
|
|
foreach ($this->problems as $i => $problem) {
|
|
foreach ($this->problems as $i => $problem) {
|
|
$text .= " Problem ".($i + 1).$problem->getPrettyString($repositorySet, $request, $pool, $installedMap, $this->learnedPool)."\n";
|
|
$text .= " Problem ".($i + 1).$problem->getPrettyString($repositorySet, $request, $pool, $installedMap, $this->learnedPool)."\n";
|
|
|
|
|
|
if (!$hasExtensionProblems && $this->hasExtensionProblems($problem->getReasons())) {
|
|
if (!$hasExtensionProblems && $this->hasExtensionProblems($problem->getReasons())) {
|
|
$hasExtensionProblems = true;
|
|
$hasExtensionProblems = true;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ $isCausedByLock |= $problem->isCausedByLock();
|
|
}
|
|
}
|
|
|
|
|
|
if (!$isDevExtraction && (strpos($text, 'could not be found') || strpos($text, 'no matching package found'))) {
|
|
if (!$isDevExtraction && (strpos($text, 'could not be found') || strpos($text, 'no matching package found'))) {
|
|
@@ -52,6 +55,10 @@ class SolverProblemsException extends \RuntimeException
|
|
$text .= $this->createExtensionHint();
|
|
$text .= $this->createExtensionHint();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if ($isCausedByLock && !$isDevExtraction) {
|
|
|
|
+ $text .= "\nUse the option --with-all-dependencies to allow updates and removals for packages currently locked to specific versions.";
|
|
|
|
+ }
|
|
|
|
+
|
|
return $text;
|
|
return $text;
|
|
}
|
|
}
|
|
|
|
|