Filter out cruft in find_smooth_updateable_binaries

When calculating smooth updateable binaries, filter out cruft binaries from
unstable, because they will not be part of the set of packages that britney
will try to migrate to testing.

Signed-off-by: Ivo De Decker <ivodd@debian.org>
ubuntu/rebased
Ivo De Decker 6 years ago
parent a56c9458c8
commit 3828a76053

@ -961,11 +961,13 @@ def find_smooth_updateable_binaries(binaries_to_check,
binary, _, parch = pkg_id binary, _, parch = pkg_id
cruft = False cruft = False
cruftbins = set()
# Not a candidate for smooth up date (newer non-cruft version in unstable) # Not a candidate for smooth up date (newer non-cruft version in unstable)
if binary in binaries_s[parch]: if binary in binaries_s[parch]:
if binaries_s[parch][binary].source_version == source_data.version: if binaries_s[parch][binary].source_version == source_data.version:
continue continue
cruftbins.add(binaries_s[parch][binary].pkg_id)
cruft = True cruft = True
# Maybe a candidate (cruft or removed binary): check if config allows us to smooth update it. # Maybe a candidate (cruft or removed binary): check if config allows us to smooth update it.
@ -987,7 +989,10 @@ def find_smooth_updateable_binaries(binaries_to_check,
combined.add(pkg_id) combined.add(pkg_id)
for rdep in rdeps: for rdep in rdeps:
for dep_clause in pkg_universe.dependencies_of(rdep): for dep_clause in pkg_universe.dependencies_of(rdep):
if dep_clause <= combined: # filter out cruft binaries from unstable, because
# they will not be added to the set of packages that
# will be migrated
if dep_clause - cruftbins <= combined:
smooth_update_it = True smooth_update_it = True
break break

Loading…
Cancel
Save