diff --git a/osclib/conf.py b/osclib/conf.py index 1056d85c..9cb95b9a 100644 --- a/osclib/conf.py +++ b/osclib/conf.py @@ -160,6 +160,7 @@ DEFAULT = { 'staging-archs': '', 'staging-dvd-archs': '', 'staging-required-checks-adi': '', + 'installcheck-ignore-duplicated-binaries': '', 'onlyadi': '', 'rings': '', 'nonfree': '', diff --git a/staging-installcheck.py b/staging-installcheck.py index 78b749fc..e5fb0f5d 100755 --- a/staging-installcheck.py +++ b/staging-installcheck.py @@ -71,6 +71,7 @@ class InstallChecker(object): self.calculate_allowed_cycles() self.existing_problems = self.binary_list_existing_problem(api.project, api.cmain_repo) + self.ignore_duplicated = set(self.config.get('installcheck-ignore-duplicated-binaries', '').split(' ')) def check_required_by(self, fileinfo, provides, requiredby, built_binaries, comments): if requiredby.get('name') in built_binaries: @@ -233,6 +234,12 @@ class InstallChecker(object): result = False duplicates = duplicated_binaries_in_repo(self.api.apiurl, project, repository) + # remove white listed duplicates + for arch in list(duplicates): + for binary in self.ignore_duplicated: + duplicates[arch].pop(binary, None) + if not len(duplicates[arch]): + del duplicates[arch] if len(duplicates): self.logger.warning('Found duplicated binaries') result_comment.append(yaml.dump(duplicates, default_flow_style=False))