From 26129248ebdf913bfbbe018d54a0cf3e3c30bd34 Mon Sep 17 00:00:00 2001 From: Mike Bonnet Date: Oct 29 2014 03:54:20 +0000 Subject: declare dependencies as pluginRepositories also, because dependencies and plugins are resolved separately (for some reason) --- diff --git a/builder/kojid b/builder/kojid index 3e0e122..fcf55a3 100755 --- a/builder/kojid +++ b/builder/kojid @@ -245,6 +245,49 @@ class BuildRoot(object): fo.write(output) fo.close() + def _repositoryEntries(self, pi, plugin=False): + entries = [] + if plugin: + tag_name = 'pluginRepository' + id_suffix = 'plugin-repo' + name_prefix = 'Plugin repository for Koji' + else: + tag_name = 'repository' + id_suffix = 'repo' + name_prefix = 'Repository for Koji' + for dep in self.deps: + if isinstance(dep, (int, long)): + # dep is a task ID, the url points to the task output directory + repo_type = 'task' + dep_url = pi.task(dep) + snapshots = 'true' + else: + # dep is a build NVR, the url points to the build output directory + repo_type = 'build' + build = koji.parse_NVR(dep) + dep_url = pi.mavenbuild(build) + snapshots = 'false' + repo_id = 'koji-%(repo_type)s-%(dep)s-%(id_suffix)s' % locals() + entry = """ + <%(tag_name)s> + %(repo_id)s + %(name_prefix)s %(repo_type)s %(dep)s + %(dep_url)s + default + + true + never + fail + + + %(snapshots)s + never + fail + + """ % locals() + entries.append((repo_id, entry)) + return entries + def writeMavenSettings(self, destfile, outputdir): """ Write the Maven settings.xml file to the specified destination. @@ -280,40 +323,17 @@ class BuildRoot(object): if self.deps: settings += """ """ - for dep in self.deps: - if isinstance(dep, (int, long)): - # dep is a task ID, the url points to the task output directory - dep_url = pi.task(dep) - dep_repo_id = 'koji-task-%s' % dep - dep_repo_name = 'Repository for Koji task %s' % dep - snapshots = 'true' - else: - # dep is a build NVR, the url points to the build output directory - build = koji.parse_NVR(dep) - dep_url = pi.mavenbuild(build) - dep_repo_id = 'koji-build-%s' % dep - dep_repo_name = 'Repository for Koji build %s' % dep - snapshots = 'false' + for dep_repo_id, dep_repo_entry in self._repositoryEntries(pi): mirror_spec += ',!' + dep_repo_id - settings += """ - - %(dep_repo_id)s - %(dep_repo_name)s - %(dep_url)s - default - - true - never - fail - - - %(snapshots)s - never - fail - - """ % locals() + settings += dep_repo_entry + settings += """ + + """ + for dep_repo_id, dep_repo_entry in self._repositoryEntries(pi, plugin=True): + mirror_spec += ',!' + dep_repo_id + settings += dep_repo_entry settings += """ - """ + """ settings += """