summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index c73a7fc82..a360997c2 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -2442,7 +2442,12 @@ OperationList PackageManagerCorePrivate::sortOperationsBasedOnComponentDependenc
componentGraph.addEdges(componentNode->name(), dependencies);
}
- foreach (const QString &componentName, componentGraph.sort())
+ const QStringList resolvedComponents = componentGraph.sort();
+ if (componentGraph.hasCycle()) {
+ throw Error(tr("Dependency cycle between components detected: '%1' and '%2'.")
+ .arg(componentGraph.cycle().first, componentGraph.cycle().second));
+ }
+ foreach (const QString &componentName, resolvedComponents)
sortedOperations.append(componentOperationHash.value(componentName));
return sortedOperations;