[ostree] ostbuild: Adapt "build" to newly updated expanded manifest



commit ff81b21bcf0cb43f8fa7791d039e571d20592fb1
Author: Colin Walters <walters verbum org>
Date:   Sun Mar 4 12:59:17 2012 -0500

    ostbuild: Adapt "build" to newly updated expanded manifest

 src/ostbuild/pyostbuild/builtin_build.py   |   47 ++++++++++++++-------------
 src/ostbuild/pyostbuild/builtin_resolve.py |    7 ++--
 2 files changed, 28 insertions(+), 26 deletions(-)
---
diff --git a/src/ostbuild/pyostbuild/builtin_build.py b/src/ostbuild/pyostbuild/builtin_build.py
index 07bea39..247fa07 100755
--- a/src/ostbuild/pyostbuild/builtin_build.py
+++ b/src/ostbuild/pyostbuild/builtin_build.py
@@ -165,7 +165,6 @@ class OstbuildBuild(builtins.Builtin):
 
         args = ['ostree', '--repo=' + self.repo,
                 'commit', '-b', buildname, '-s', 'Build',
-                '--add-metadata-string=ostbuild-name=' + artifact_meta['name'],
                 '--add-metadata-string=ostbuild-revision=' + artifact_meta['revision'],
                 '--owner-uid=0', '--owner-gid=0', '--no-xattrs', 
                 '--skip-if-unchanged']
@@ -187,30 +186,35 @@ class OstbuildBuild(builtins.Builtin):
             os.unlink(statoverride_path)
         return True
 
-    def _compose_arch(self, architecture, components):
-        runtime_base = buildutil.manifest_base(self.manifest, 'runtime', architecture)
-        devel_base = buildutil.manifest_base(self.manifest, 'devel', architecture)
-        runtime_contents = [runtime_base + ':/']
-        devel_contents = [devel_base + ':/']
+    def _compose(self, components):
+        base_ref = 'bases/%s:/' % (self.manifest['base'], )
+        contents = [base_ref]
+
+        # HACK
+        manifest_build_name = self.manifest['name']
+        is_runtime = manifest_build_name.endswith('-runtime')
+        # HACK - we should really name builds just like e.g. gnomeos-3.4-i686 
+        if is_runtime:
+            manifest_build_name = manifest_build_name[:-len('-runtime')] + '-devel'
 
         for component in components:
-            branch = buildutil.manifest_buildname(self.manifest, component, architecture)
-            runtime_contents.append(branch + ':/runtime')
-            devel_contents.append(branch + ':/runtime')
-            # For now just hardcode docs going in devel
-            devel_contents.append(branch + ':/doc')
-            devel_contents.append(branch + ':/devel')
-
-        buildutil.compose(self.repo, '%s-%s-%s' % (self.manifest['name'], architecture, 'runtime'),
-                          runtime_contents)
-        buildutil.compose(self.repo, '%s-%s-%s' % (self.manifest['name'], architecture, 'devel'),
-                          devel_contents)
+            branch = 'artifacts/%s/%s/%s' % (manifest_build_name,
+                                             component['name'],
+                                             component['branch'])
+            contents.append(branch + ':/runtime')
+            if not is_runtime:
+                # For now just hardcode docs going in devel
+                contents.append(branch + ':/doc')
+                contents.append(branch + ':/devel')
+
+        buildutil.compose(self.repo, self.manifest['name'], contents)
     
     def execute(self, argv):
         parser = argparse.ArgumentParser(description=self.short_description)
         parser.add_argument('--skip-built', action='store_true')
         parser.add_argument('--recompose', action='store_true')
         parser.add_argument('--start-at')
+        parser.add_argument('--manifest', required=True)
         parser.add_argument('--shell-on-failure', action='store_true')
         parser.add_argument('--debug-shell', action='store_true')
         parser.add_argument('components', nargs='*')
@@ -224,8 +228,7 @@ class OstbuildBuild(builtins.Builtin):
         self.buildopts.shell_on_failure = args.shell_on_failure
         self.buildopts.skip_built = args.skip_built
 
-        build_manifest_path = os.path.join(self.workdir, 'snapshot.json')
-        self.manifest = json.load(open(build_manifest_path))
+        self.manifest = json.load(open(args.manifest))
 
         components = self.manifest['components']
         if args.recompose:
@@ -259,10 +262,8 @@ class OstbuildBuild(builtins.Builtin):
 
         for component in build_components[start_at_index:]:
             index = components.index(component)
-            for architecture in self.manifest['architectures']:
-                self._build_one_component(component, architecture)
+            self._build_one_component(component)
 
-        for architecture in self.manifest['architectures']:
-            self._compose_arch(architecture, components)
+        self._compose(components)
         
 builtins.register(OstbuildBuild)
diff --git a/src/ostbuild/pyostbuild/builtin_resolve.py b/src/ostbuild/pyostbuild/builtin_resolve.py
index 8080c4b..e7f5ece 100755
--- a/src/ostbuild/pyostbuild/builtin_resolve.py
+++ b/src/ostbuild/pyostbuild/builtin_resolve.py
@@ -234,9 +234,10 @@ class OstbuildResolve(builtins.Builtin):
                 else:
                     snapshot['components'] = devel_components
 
-                snapshot_name = '%s-%s-%s.snapshot' % (arch_manifest['name'], architecture, component_type)
-                snapshot['name'] = snapshot_name
-                out_snapshot = os.path.join(self.workdir, snapshot_name)
+                snapshot['name'] = '%s-%s-%s' % (arch_manifest['name'], architecture, component_type)
+                snapshot_base = snapshot['base']
+                snapshot['base'] = snapshot_base + '-%s-%s' % (architecture, component_type)
+                out_snapshot = os.path.join(self.workdir, snapshot['name'] + '.snapshot')
                 f = open(out_snapshot, 'w')
                 json.dump(snapshot, f, indent=4, sort_keys=True)
                 f.close()



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]