summaryrefslogtreecommitdiff
path: root/morphlib/morphloader.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/morphloader.py')
-rw-r--r--morphlib/morphloader.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/morphlib/morphloader.py b/morphlib/morphloader.py
index 47cb03d7..0c69baac 100644
--- a/morphlib/morphloader.py
+++ b/morphlib/morphloader.py
@@ -195,6 +195,14 @@ class EmptySystemError(MorphologyValidationError):
self, 'System %(system_name)s has no strata.' % locals())
+class DependsOnSelfError(MorphologyValidationError):
+
+ def __init__(self, name, filename):
+ msg = ("Stratum %(name)s build-depends on itself (%(filename)s)"
+ % locals())
+ MorphologyValidationError.__init__(self, msg)
+
+
class MultipleValidationErrors(MorphologyValidationError):
def __init__(self, name, errors):
@@ -536,6 +544,9 @@ class MorphologyLoader(object):
raise InvalidTypeError(
'build-depends', list, type(morph['build-depends']),
morph['name'])
+ for dep in morph['build-depends']:
+ if dep['morph'] == morph.filename:
+ raise DependsOnSelfError(morph['name'], morph.filename)
else:
for spec in morph['chunks']:
if spec.get('build-mode') in ['bootstrap', 'test']: