Rewrite do_hint without hardcoding suite names

Signed-off-by: Niels Thykier <niels@thykier.net>
ubuntu/rebased
Niels Thykier 7 years ago
parent 73f4f3a5dd
commit d2836b15d4

@ -2653,6 +2653,7 @@ class Britney(object):
else: else:
_pkgvers = pkgvers _pkgvers = pkgvers
suites = self.suite_info
self.logger.info("> Processing '%s' hint from %s", hinttype, who) self.logger.info("> Processing '%s' hint from %s", hinttype, who)
output_logger.info("Trying %s from %s: %s", hinttype, who, output_logger.info("Trying %s from %s: %s", hinttype, who,
" ".join("%s/%s" % (x.uvname, x.version) for x in _pkgvers) " ".join("%s/%s" % (x.uvname, x.version) for x in _pkgvers)
@ -2666,31 +2667,30 @@ class Britney(object):
if pkg.is_removal: if pkg.is_removal:
continue continue
suite_name = pkg.suite.name suite = pkg.suite
inunstable = pkg.package in self.sources['unstable'] in_primary = pkg.package in suite.sources
rightversion = inunstable and (apt_pkg.version_compare(self.sources['unstable'][pkg.package].version, pkg.version) == 0) rightversion = in_primary and apt_pkg.version_compare(suite.sources[pkg.package].version, pkg.version) == 0
if suite_name == 'unstable' and not rightversion: if suite.suite_class.is_primary_source and not rightversion:
for suite in ['pu', 'tpu']: for s in suites.additional_source_suites:
if suite_name not in self.suite_info: if pkg.package in s.sources and apt_pkg.version_compare(suite.sources[pkg.package].version,
continue pkg.version) == 0:
if pkg.package in self.sources[suite_name] and apt_pkg.version_compare(self.sources[suite_name][pkg.package].version, pkg.version) == 0: suite = s
pkg.suite = self.suite_info[suite] pkg.suite = s
_pkgvers[idx] = pkg _pkgvers[idx] = pkg
break break
# handle *-proposed-updates if suite.suite_class.is_additional_source:
if suite_name in ['pu', 'tpu']: if pkg.package not in suite.sources:
if suite_name not in self.suite_info or pkg.package not in self.sources[suite_name]:
continue continue
if apt_pkg.version_compare(self.sources[suite_name][pkg.package].version, pkg.version) != 0: if apt_pkg.version_compare(suite.sources[pkg.package].version, pkg.version) != 0:
issues.append("Version mismatch, %s %s != %s" % (pkg.package, pkg.version, issues.append("Version mismatch, %s %s != %s" % (pkg.package, pkg.version,
self.sources[pkg.suite][pkg.package].version)) suite.sources[pkg.package].version))
# does the package exist in unstable? # does the package exist in the primary source suite?
elif not inunstable: elif not in_primary:
issues.append("Source %s has no version in unstable" % pkg.package) issues.append("Source %s has no version in %s" % (pkg.package, suite.name))
elif not rightversion: elif not rightversion:
issues.append("Version mismatch, %s %s != %s" % (pkg.package, pkg.version, issues.append("Version mismatch, %s %s != %s" % (pkg.package, pkg.version,
self.sources['unstable'][pkg.package].version)) suite.sources[pkg.package].version))
if issues: if issues:
output_logger.warning("%s: Not using hint", ", ".join(issues)) output_logger.warning("%s: Not using hint", ", ".join(issues))
return False return False

Loading…
Cancel
Save