summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Jardón <jjardon@gnome.org>2015-03-06 17:02:55 +0000
committerJavier Jardón <jjardon@gnome.org>2015-03-06 17:03:39 +0000
commit11559bbbd24c218d512d503df27157668b37bdc9 (patch)
treedd05bd09f991be08eab78a5688df738131de27cd
parent9e105fccb12de23551c93aac6cb2b1056b858700 (diff)
parent8cf5c70943817c5c24b1f8b79a67cc8ac1d7dab0 (diff)
downloadmorph-11559bbbd24c218d512d503df27157668b37bdc9.tar.gz
Merge branch 'jjardon/no_build_depends'
Reviewed-By: Paul Sherwood <paul.sherwood@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk> Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
-rw-r--r--morphlib/artifactresolver.py17
-rw-r--r--morphlib/morphloader.py13
-rw-r--r--morphlib/morphloader_tests.py22
-rw-r--r--morphlib/sourceresolver_tests.py14
4 files changed, 11 insertions, 55 deletions
diff --git a/morphlib/artifactresolver.py b/morphlib/artifactresolver.py
index e53c7511..5062f854 100644
--- a/morphlib/artifactresolver.py
+++ b/morphlib/artifactresolver.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2014 Codethink Limited
+# Copyright (C) 2012-2015 Codethink Limited
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -195,13 +195,14 @@ class ArtifactResolver(object):
chunk_source.add_dependency(other_stratum)
# Add dependencies between chunks mentioned in this stratum
- for name in build_depends: # pragma: no cover
- if name not in name_to_processed_artifacts:
- raise DependencyOrderError(
- source, info['name'], name)
- other_artifacts = name_to_processed_artifacts[name]
- for other_artifact in other_artifacts:
- chunk_source.add_dependency(other_artifact)
+ if build_depends is not None:
+ for name in build_depends: # pragma: no cover
+ if name not in name_to_processed_artifacts:
+ raise DependencyOrderError(
+ source, info['name'], name)
+ other_artifacts = name_to_processed_artifacts[name]
+ for other_artifact in other_artifacts:
+ chunk_source.add_dependency(other_artifact)
# Add build dependencies between our stratum's artifacts
# and the chunk artifacts produced by this stratum.
diff --git a/morphlib/morphloader.py b/morphlib/morphloader.py
index e0f0952b..7d51dc1e 100644
--- a/morphlib/morphloader.py
+++ b/morphlib/morphloader.py
@@ -111,14 +111,6 @@ class UnknownArchitectureError(MorphologyValidationError):
% (arch, morph_filename))
-class NoBuildDependenciesError(MorphologyValidationError):
-
- def __init__(self, stratum_name, chunk_name, morph_filename):
- self.msg = (
- 'Stratum %s has no build dependencies for chunk %s in %s' %
- (stratum_name, chunk_name, morph_filename))
-
-
class NoStratumBuildDependenciesError(MorphologyValidationError):
def __init__(self, stratum_name, morph_filename):
@@ -556,7 +548,7 @@ class MorphologyLoader(object):
# Validate build-dependencies if specified
self._validate_stratum_specs_fields(morph, 'build-depends')
- # Require build-dependencies for each chunk.
+ # Check build-dependencies for each chunk.
for spec in morph['chunks']:
chunk_name = spec.get('alias', spec['name'])
if 'build-depends' in spec:
@@ -564,9 +556,6 @@ class MorphologyLoader(object):
raise InvalidTypeError(
'%s.build-depends' % chunk_name, list,
type(spec['build-depends']), morph['name'])
- else:
- raise NoBuildDependenciesError(
- morph['name'], chunk_name, morph.filename)
@classmethod
def _validate_chunk(cls, morphology):
diff --git a/morphlib/morphloader_tests.py b/morphlib/morphloader_tests.py
index dd70c824..a1fe1674 100644
--- a/morphlib/morphloader_tests.py
+++ b/morphlib/morphloader_tests.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2014 Codethink Limited
+# Copyright (C) 2013-2015 Codethink Limited
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -344,26 +344,6 @@ build-system: dummy
self.loader.validate(m)
self.assertEqual(m['arch'], 'armv7l')
- def test_validate_requires_build_deps_for_chunks_in_strata(self):
- m = morphlib.morphology.Morphology(
- {
- "kind": "stratum",
- "name": "foo",
- "chunks": [
- {
- "name": "foo",
- "repo": "foo",
- "ref": "foo",
- "morph": "foo",
- "build-mode": "bootstrap",
- }
- ],
- })
-
- self.assertRaises(
- morphlib.morphloader.NoBuildDependenciesError,
- self.loader.validate, m)
-
def test_validate_requires_build_deps_or_bootstrap_mode_for_strata(self):
m = morphlib.morphology.Morphology(
{
diff --git a/morphlib/sourceresolver_tests.py b/morphlib/sourceresolver_tests.py
index 638f593f..1239b437 100644
--- a/morphlib/sourceresolver_tests.py
+++ b/morphlib/sourceresolver_tests.py
@@ -69,15 +69,6 @@ class FakeLocalRepo(object):
build-mode: bootstrap
build-depends: []
''',
- 'stratum-no-chunk-bdeps.morph': '''
- name: stratum-no-chunk-bdeps
- kind: stratum
- chunks:
- - name: chunk
- repo: test:repo
- ref: sha1
- build-mode: bootstrap
- ''',
'stratum-no-bdeps-no-bootstrap.morph': '''
name: stratum-no-bdeps-no-bootstrap
kind: stratum
@@ -328,11 +319,6 @@ class SourceResolverTests(unittest.TestCase):
self.assertRaises(morphlib.Error, self.sr._get_morphology,
'reponame', 'sha1', 'parse-error.morph')
- def test_fails_on_no_chunk_bdeps(self):
- self.assertRaises(morphlib.morphloader.NoBuildDependenciesError,
- self.sr._get_morphology, 'reponame', 'sha1',
- 'stratum-no-chunk-bdeps.morph')
-
def test_fails_on_no_bdeps_or_bootstrap(self):
self.assertRaises(
morphlib.morphloader.NoStratumBuildDependenciesError,