ostbuild: Make separate .lastfetch files for e.g. gtk2 and gtk3

This ensures we don't need to check out any git repository which is
built twice under different names.
This commit is contained in:
Colin Walters 2012-01-29 17:24:20 -05:00
parent 6d51f85667
commit 102f6a7f43
1 changed files with 7 additions and 6 deletions

View File

@ -41,7 +41,7 @@ class OstbuildResolve(builtins.Builtin):
parsed = urlparse.urlsplit(uri)
return os.path.join(self.mirrordir, prefix, keytype, parsed.scheme, parsed.netloc, parsed.path[1:])
def _ensure_vcs_mirror(self, keytype, uri, branch):
def _ensure_vcs_mirror(self, name, keytype, uri, branch):
mirror = self._get_mirrordir(keytype, uri)
tmp_mirror = mirror + '.tmp'
if os.path.isdir(tmp_mirror):
@ -50,7 +50,7 @@ class OstbuildResolve(builtins.Builtin):
run_sync(['git', 'clone', '--mirror', uri, tmp_mirror])
run_sync(['git', 'config', 'gc.auto', '0'], cwd=tmp_mirror)
os.rename(tmp_mirror, mirror)
last_fetch_path = mirror + '.lastfetch'
last_fetch_path = mirror + '.%s-lastfetch' % (name, )
if os.path.exists(last_fetch_path):
f = open(last_fetch_path)
last_fetch_contents = f.read()
@ -79,7 +79,7 @@ class OstbuildResolve(builtins.Builtin):
(sub_checksum, sub_name) = line.split(' ', 1)
sub_url = run_sync_get_output(['git', 'config', '-f', '.gitmodules',
'submodule.%s.url' % (sub_name, )], cwd=tmp_checkout)
self._ensure_vcs_mirror(keytype, sub_url, sub_checksum)
self._ensure_vcs_mirror(name + '-' + sub_name, keytype, sub_url, sub_checksum)
shutil.rmtree(tmp_checkout)
f = open(last_fetch_path, 'w')
f.write(current_vcs_version + '\n')
@ -157,7 +157,7 @@ class OstbuildResolve(builtins.Builtin):
if not found:
fatal("Unknown component %r" % (component_name, ))
(keytype, uri) = self._parse_src_key(component['src'])
mirrordir = self._ensure_vcs_mirror(keytype, uri, component['branch'])
mirrordir = self._ensure_vcs_mirror(component_name, keytype, uri, component['branch'])
log("Running git fetch for %s" % (component['name'], ))
run_sync(['git', 'fetch'], cwd=mirrordir, log_initiation=False)
else:
@ -165,11 +165,12 @@ class OstbuildResolve(builtins.Builtin):
for component in self.resolved_components:
(keytype, uri) = self._parse_src_key(component['src'])
name = component['name']
try:
fetch_components.index(component['name'])
fetch_components.index(name)
mirrordir = self._get_mirrordir(keytype, uri)
except ValueError, e:
mirrordir = self._ensure_vcs_mirror(keytype, uri, component['branch'])
mirrordir = self._ensure_vcs_mirror(name, keytype, uri, component['branch'])
revision = buildutil.get_git_version_describe(mirrordir,
component['branch'])
component['revision'] = revision