ostbuild: Write out separate arch-component snapshots
This commit is contained in:
parent
c3debe0fb6
commit
c71770c08c
|
|
@ -160,12 +160,11 @@ class OstbuildResolve(builtins.Builtin):
|
||||||
else:
|
else:
|
||||||
fetch_components = []
|
fetch_components = []
|
||||||
|
|
||||||
self.manifest['patches'] = self._resolve_component_meta(self.manifest['patches'])
|
global_patches_meta = self._resolve_component_meta(self.manifest['patches'])
|
||||||
patches_meta = self.manifest['patches']
|
(keytype, uri) = self._parse_src_key(global_patches_meta['src'])
|
||||||
(keytype, uri) = self._parse_src_key(patches_meta['src'])
|
mirrordir = self._ensure_vcs_mirror(global_patches_meta['name'], keytype, uri, global_patches_meta['branch'])
|
||||||
mirrordir = self._ensure_vcs_mirror(patches_meta['name'], keytype, uri, patches_meta['branch'])
|
revision = buildutil.get_git_version_describe(mirrordir, global_patches_meta['branch'])
|
||||||
revision = buildutil.get_git_version_describe(mirrordir, patches_meta['branch'])
|
global_patches_meta['revision'] = revision
|
||||||
patches_meta['revision'] = revision
|
|
||||||
|
|
||||||
for component in self.resolved_components:
|
for component in self.resolved_components:
|
||||||
(keytype, uri) = self._parse_src_key(component['src'])
|
(keytype, uri) = self._parse_src_key(component['src'])
|
||||||
|
|
@ -182,9 +181,17 @@ class OstbuildResolve(builtins.Builtin):
|
||||||
config_opts.extend(component.get('config-opts', []))
|
config_opts.extend(component.get('config-opts', []))
|
||||||
component['config-opts'] = config_opts
|
component['config-opts'] = config_opts
|
||||||
|
|
||||||
# We expand these two keys
|
patch_files = component.get('patches')
|
||||||
|
if patch_files is not None:
|
||||||
|
component['patches'] = dict(global_patches_meta)
|
||||||
|
component['patches']['files'] = patch_files
|
||||||
|
|
||||||
|
self.manifest['components'] = self.resolved_components
|
||||||
|
|
||||||
|
# We expanded these keys
|
||||||
del self.manifest['config-opts']
|
del self.manifest['config-opts']
|
||||||
del self.manifest['vcsconfig']
|
del self.manifest['vcsconfig']
|
||||||
|
del self.manifest['patches']
|
||||||
|
|
||||||
mirror_gitconfig_path = os.path.join(self.mirrordir, 'gitconfig')
|
mirror_gitconfig_path = os.path.join(self.mirrordir, 'gitconfig')
|
||||||
git_mirrordir = os.path.join(self.mirrordir, 'git')
|
git_mirrordir = os.path.join(self.mirrordir, 'git')
|
||||||
|
|
@ -207,13 +214,32 @@ class OstbuildResolve(builtins.Builtin):
|
||||||
f.write('/\n')
|
f.write('/\n')
|
||||||
print "Generated git mirror config: %s" % (mirror_gitconfig_path, )
|
print "Generated git mirror config: %s" % (mirror_gitconfig_path, )
|
||||||
|
|
||||||
self.manifest['components'] = self.resolved_components
|
manifest_architectures = self.manifest['architectures']
|
||||||
|
del self.manifest['architectures']
|
||||||
|
for architecture in manifest_architectures:
|
||||||
|
arch_manifest = dict(self.manifest)
|
||||||
|
for component in arch_manifest['components']:
|
||||||
|
component['arch'] = architecture
|
||||||
|
|
||||||
out_snapshot = os.path.join(self.workdir, 'snapshot.json')
|
runtime_components = filter(lambda x: x.get('component', 'runtime') == 'runtime', arch_manifest['components'])
|
||||||
|
devel_components = arch_manifest['components']
|
||||||
|
for component in arch_manifest['components']:
|
||||||
|
if 'component' in component:
|
||||||
|
del component['component']
|
||||||
|
|
||||||
f = open(out_snapshot, 'w')
|
for component_type in ['runtime', 'devel']:
|
||||||
json.dump(self.manifest, f, indent=4, sort_keys=True)
|
snapshot = dict(arch_manifest)
|
||||||
f.close()
|
if component_type == 'runtime':
|
||||||
print "Created: %s" % (out_snapshot, )
|
snapshot['components'] = runtime_components
|
||||||
|
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)
|
||||||
|
f = open(out_snapshot, 'w')
|
||||||
|
json.dump(snapshot, f, indent=4, sort_keys=True)
|
||||||
|
f.close()
|
||||||
|
print "Created: %s" % (out_snapshot, )
|
||||||
|
|
||||||
builtins.register(OstbuildResolve)
|
builtins.register(OstbuildResolve)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue