commit: c059e969ff0e106823e0bed4729d4c04db02eee8 Author: Magnus Granberg <zorry <AT> gentoo <DOT> org> AuthorDate: Tue Apr 20 07:05:33 2021 +0000 Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org> CommitDate: Tue Apr 20 07:05:33 2021 +0000 URL: https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=c059e969
Support more then one Chaange USE Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org> buildbot_gentoo_ci/steps/builders.py | 48 ++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/buildbot_gentoo_ci/steps/builders.py b/buildbot_gentoo_ci/steps/builders.py index d9817d8..50f924d 100644 --- a/buildbot_gentoo_ci/steps/builders.py +++ b/buildbot_gentoo_ci/steps/builders.py @@ -86,21 +86,35 @@ def PersOutputOfEmerge(rc, stdout, stderr): # split the lines #FIXME: Handling of stderr output stderr_line_list = [] + emerge_output['change_use'] = False for line in stderr.split('\n'): if 'Change USE:' in line: line_list = line.split(' ') change_use_list = [] # get cpv cpv_split = line_list[1].split(':') - change_use_list.append(cpv_split[0]) + change_use = {} # add use flags if line_list[4].startswith('+') or line_list[4].startswith('-'): - # we only support one for now + # we only support tre for now if line_list[4].endswith(')'): change_use_list.append(line_list[4].replace(')', '')) + elif line_list[5].endswith(')'): + change_use_list.append(line_list[4]) + change_use_list.append(line_list[5].replace(')', '')) + elif line_list[6].endswith(')'): + change_use_list.append(line_list[4]) + change_use_list.append(line_list[5]) + change_use_list.append(line_list[6].replace(')', '')) + elif not line_list[6].endswith(')'): + change_use_list.append(line_list[4]) + change_use_list.append(line_list[5]) + change_use_list.append(line_list[6]) else: change_use_list = False - emerge_output['change_use'] = change_use_list + if change_use_list: + change_use[cpv_split[0]] = change_use_list + emerge_output['change_use'] = change_use err_line_list = [] if line.startswith(' * '): if line.endswith('.log.gz'): @@ -226,7 +240,7 @@ class SetupPropertys(BuildStep): name = 'SetupPropertys' description = 'Running' - descriptionDone = 'Ran' + #descriptionDone = 'Ran' descriptionSuffix = None haltOnFailure = True flunkOnFailure = True @@ -240,6 +254,7 @@ class SetupPropertys(BuildStep): def run(self): self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] print('build this %s' % self.getProperty("cpv")) + self.descriptionDone = 'Building this %s' % self.getProperty("cpv") self.setProperty('portage_repos_path', self.portage_repos_path, 'portage_repos_path') projectrepository_data = self.getProperty('projectrepository_data') print(projectrepository_data) @@ -550,6 +565,7 @@ class CheckEmergeLogs(BuildStep): # update package.* if needed and rerun pre-build max 3 times if self.step == 'pre-build': print(emerge_output) + # this should be set in the config if self.getProperty('rerun') <= 3: # when we need to change use. we could rerun pre-build with # --autounmask-use=y --autounmask-write=y --autounmask-only=y @@ -560,21 +576,21 @@ class CheckEmergeLogs(BuildStep): separator = '\n' separator2 = ' ' change_use_list = [] - cpv = emerge_output['change_use'][0] - c = yield catpkgsplit(cpv)[0] - p = yield catpkgsplit(cpv)[1] - change_use_list.append(c + '/' + p) - # we only support one use - use_flag = emerge_output['change_use'][1] - if use_flag.startswith('+'): - change_use_list.append(use_flag.replace('+', '')) - else: - change_use_list.append(use_flag) + for cpv, v in emerge_output['change_use'].items(): + c = yield catpkgsplit(cpv)[0] + p = yield catpkgsplit(cpv)[1] + change_use_list.append(c + '/' + p) + for use_flag in v: + if use_flag.startswith('+'): + change_use_list.append(use_flag.replace('+', '')) + else: + change_use_list.append(use_flag) change_use_string = separator2.join(change_use_list) self.aftersteps_list.append( steps.StringDownload(change_use_string + separator, - workerdest='zz_autouse' + str(self.getProperty('rerun')), - workdir='/etc/portage/package.use/') + workerdest='zz_autouse' + str(self.getProperty('rerun')), + workdir='/etc/portage/package.use/' + ) ) # rerun self.aftersteps_list.append(RunEmerge(step='pre-build'))