diff options
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 7 |
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; |