summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-06-28 16:10:39 +0100
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-06-28 18:48:56 +0100
commite673826fbab90b1bb3b1b93277cab0e489fec190 (patch)
treeb4a9d24f37ea7cd56f4a1f069b6bb25c62a06ace
parent414516fbbc8e961ea6336597bfa8fc3d528fb327 (diff)
downloadmorph-e673826fbab90b1bb3b1b93277cab0e489fec190.tar.gz
Add check for missing build depends in strata
This will make a build fail if the morphology is missing explicit build dependencies. Also fix test causes so that ./check passes.
-rwxr-xr-xmorphlib/app.py11
-rwxr-xr-xtests.as-root/arm-system-writes-kernel.script6
-rwxr-xr-xtests.as-root/make-patch.script6
-rwxr-xr-xtests.as-root/setup3
-rwxr-xr-xtests.as-root/system-overlap.script12
-rw-r--r--tests.branching/edit-updates-stratum.stdout11
-rwxr-xr-xtests.branching/setup3
-rwxr-xr-xtests/build-stratum-with-submodules.script3
-rwxr-xr-xtests/morphless-chunks.script3
-rwxr-xr-xtests/setup3
-rwxr-xr-xtests/stratum-overlap-warns.setup12
11 files changed, 52 insertions, 21 deletions
diff --git a/morphlib/app.py b/morphlib/app.py
index 851ee058..fb0ddbaf 100755
--- a/morphlib/app.py
+++ b/morphlib/app.py
@@ -458,7 +458,18 @@ class Morph(cliapp.Application):
def _create_source_pool(self, lrc, rrc, triplet):
pool = morphlib.sourcepool.SourcePool()
+
+ def check_stratum(filename, morphology):
+ for source in morphology['sources']:
+ if source.get('build-depends', None) is None:
+ name = source.get('name', source.get('repo', 'unknown'))
+ raise morphlib.Error('Add build dependencies to '
+ 'stratum %s for %s' %
+ (filename, name))
+
def add_to_pool(reponame, ref, filename, absref, morphology):
+ if morphology['kind'] == 'stratum':
+ check_stratum(filename, morphology)
source = morphlib.source.Source(reponame, ref, absref,
morphology, filename)
pool.add(source)
diff --git a/tests.as-root/arm-system-writes-kernel.script b/tests.as-root/arm-system-writes-kernel.script
index 500cedba..2a837af4 100755
--- a/tests.as-root/arm-system-writes-kernel.script
+++ b/tests.as-root/arm-system-writes-kernel.script
@@ -45,12 +45,14 @@ cat <<EOF >arm-stratum.morph
{
"name": "hello",
"repo": "test:chunk-repo",
- "ref": "farrokh"
+ "ref": "farrokh",
+ "build-depends": []
},
{
"name": "linux",
"repo": "test:kernel-repo",
- "ref": "arm"
+ "ref": "arm",
+ "build-depends": ["hello"]
}
]
}
diff --git a/tests.as-root/make-patch.script b/tests.as-root/make-patch.script
index d312cb55..b5385fc0 100755
--- a/tests.as-root/make-patch.script
+++ b/tests.as-root/make-patch.script
@@ -28,12 +28,14 @@ cat <<EOF > "$DATADIR/morphs-repo/hello-stratum.morph"
{
"name": "hello",
"repo": "test:chunk-repo",
- "ref": "farrokh"
+ "ref": "farrokh",
+ "build-depends": []
},
{
"name": "linux",
"repo": "test:kernel-repo",
- "ref": "master"
+ "ref": "master",
+ "build-depends": ["hello"]
}
]
}
diff --git a/tests.as-root/setup b/tests.as-root/setup
index 1d32b14d..2ee2d7fa 100755
--- a/tests.as-root/setup
+++ b/tests.as-root/setup
@@ -94,7 +94,8 @@ cat <<EOF > hello-stratum.morph
{
"name": "hello",
"repo": "test:chunk-repo",
- "ref": "farrokh"
+ "ref": "farrokh",
+ "build-depends": []
}
]
}
diff --git a/tests.as-root/system-overlap.script b/tests.as-root/system-overlap.script
index 71b55e24..b6e3238e 100755
--- a/tests.as-root/system-overlap.script
+++ b/tests.as-root/system-overlap.script
@@ -45,12 +45,14 @@ cat <<EOF >foo-baz-stratum.morph
{
"name": "overlap-foo-baz",
"repo": "test:chunk-repo",
- "ref": "overlap"
+ "ref": "overlap",
+ "build-depends": []
},
{
"name": "linux",
"repo": "test:kernel-repo",
- "ref": "master"
+ "ref": "master",
+ "build-depends": ["overlap-foo-baz"]
}
]
}
@@ -63,12 +65,14 @@ cat <<EOF >foo-barqux-stratum.morph
{
"name": "overlap-foobar",
"repo": "test:chunk-repo",
- "ref": "overlap"
+ "ref": "overlap",
+ "build-depends": []
},
{
"name": "overlap-fooqux",
"repo": "test:chunk-repo",
- "ref": "overlap"
+ "ref": "overlap",
+ "build-depends": ["overlap-foobar"]
}
]
}
diff --git a/tests.branching/edit-updates-stratum.stdout b/tests.branching/edit-updates-stratum.stdout
index 7dd3a8e2..71038a16 100644
--- a/tests.branching/edit-updates-stratum.stdout
+++ b/tests.branching/edit-updates-stratum.stdout
@@ -1,8 +1,8 @@
diff --git a/hello-stratum.morph b/hello-stratum.morph
-index d7c0afe..af63df7 100644
+index 77fb1d0..c5ed672 100644
--- a/hello-stratum.morph
+++ b/hello-stratum.morph
-@@ -1,10 +1,13 @@
+@@ -1,12 +1,14 @@
{
- "name": "hello-stratum",
- "kind": "stratum",
@@ -13,10 +13,13 @@ index d7c0afe..af63df7 100644
{
- "name": "hello",
- "ref": "master",
-+ "build-depends": null,
+- "repo": "baserock:hello",
+- "build-depends": []
++ "build-depends": [],
+ "morph": "hello",
+ "name": "hello",
+ "ref": "newbranch",
- "repo": "baserock:hello"
++ "repo": "baserock:hello"
}
]
+ }
diff --git a/tests.branching/setup b/tests.branching/setup
index 714be9da..3b9e7e7b 100755
--- a/tests.branching/setup
+++ b/tests.branching/setup
@@ -63,7 +63,8 @@ cat <<EOF > "$DATADIR/morphs/hello-stratum.morph"
{
"name": "hello",
"ref": "master",
- "repo": "baserock:hello"
+ "repo": "baserock:hello",
+ "build-depends": []
}
]
}
diff --git a/tests/build-stratum-with-submodules.script b/tests/build-stratum-with-submodules.script
index 7d44caf6..c2d97817 100755
--- a/tests/build-stratum-with-submodules.script
+++ b/tests/build-stratum-with-submodules.script
@@ -53,7 +53,8 @@ cat <<EOF > "$morphs/submod-stratum.morph"
{
"name": "parent",
"repo": "test:parent-repo",
- "ref": "master"
+ "ref": "master",
+ "build-depends": []
}
]
}
diff --git a/tests/morphless-chunks.script b/tests/morphless-chunks.script
index 584a4e09..956bd7c1 100755
--- a/tests/morphless-chunks.script
+++ b/tests/morphless-chunks.script
@@ -48,7 +48,8 @@ cat << EOF > alfred.morph
{
"name": "morphless",
"repo": "test:morphless",
- "ref": "master"
+ "ref": "master",
+ "build-depends": []
}
]
}
diff --git a/tests/setup b/tests/setup
index 5a6668a3..179502f8 100755
--- a/tests/setup
+++ b/tests/setup
@@ -94,7 +94,8 @@ cat <<EOF > hello-stratum.morph
{
"name": "hello",
"repo": "test:chunk-repo",
- "ref": "farrokh"
+ "ref": "farrokh",
+ "build-depends": []
}
]
}
diff --git a/tests/stratum-overlap-warns.setup b/tests/stratum-overlap-warns.setup
index 94aed05a..4dff3ddb 100755
--- a/tests/stratum-overlap-warns.setup
+++ b/tests/stratum-overlap-warns.setup
@@ -33,22 +33,26 @@ cat <<EOF >overlap-stratum.morph
{
"name": "dirs",
"repo": "test:chunk-repo",
- "ref": "overlap"
+ "ref": "overlap",
+ "build-depends": []
},
{
"name": "overlap-foobar",
"repo": "test:chunk-repo",
- "ref": "overlap"
+ "ref": "overlap",
+ "build-depends": ["dirs"]
},
{
"name": "overlap-fooqux",
"repo": "test:chunk-repo",
- "ref": "overlap"
+ "ref": "overlap",
+ "build-depends": ["overlap-foobar"]
},
{
"name": "overlap-foo-baz",
"repo": "test:chunk-repo",
- "ref": "overlap"
+ "ref": "overlap",
+ "build-depends": ["overlap-fooqux"]
}
]
}