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