@ -304,6 +304,8 @@ class DebMirrorLikeSuiteContentLoader(SuiteContentLoader):
if packages is None :
if packages is None :
packages = { }
packages = { }
added_old_binaries = { }
all_binaries = self . _all_binaries
all_binaries = self . _all_binaries
tag_file = apt_pkg . TagFile ( filename )
tag_file = apt_pkg . TagFile ( filename )
@ -329,7 +331,21 @@ class DebMirrorLikeSuiteContentLoader(SuiteContentLoader):
continue
continue
old_pkg_id = old_pkg_data . pkg_id
old_pkg_id = old_pkg_data . pkg_id
old_src_binaries = srcdist [ old_pkg_data . source ] . binaries
old_src_binaries = srcdist [ old_pkg_data . source ] . binaries
old_src_binaries . remove ( old_pkg_id )
prev_src = added_old_binaries . get ( old_pkg_id , old_pkg_data . source )
ps = srcdist [ prev_src ]
ps . binaries . remove ( old_pkg_id )
try :
del added_old_binaries [ old_pkg_id ]
except KeyError :
pass
# Is this a take-over, i.e. is old_pkg_data pointing to the wrong source now?
cursrc_binaries = srcdist [ source ] . binaries
if old_pkg_id in cursrc_binaries :
self . logger . info ( " Removing %s from %s , taken over & NBS? " , old_pkg_id , source )
cursrc_binaries . remove ( old_pkg_id )
# This may seem weird at first glance, but the current code rely
# This may seem weird at first glance, but the current code rely
# on this behaviour to avoid issues like #709460. Admittedly it
# on this behaviour to avoid issues like #709460. Admittedly it
# is a special case, but Britney will attempt to remove the
# is a special case, but Britney will attempt to remove the
@ -338,6 +354,7 @@ class DebMirrorLikeSuiteContentLoader(SuiteContentLoader):
# and the version, so it is not particularly resilient.
# and the version, so it is not particularly resilient.
if pkg_id not in old_src_binaries :
if pkg_id not in old_src_binaries :
old_src_binaries . add ( pkg_id )
old_src_binaries . add ( pkg_id )
added_old_binaries [ pkg_id ] = old_pkg_data . source
# Merge Pre-Depends with Depends and Conflicts with
# Merge Pre-Depends with Depends and Conflicts with
# Breaks. Britney is not interested in the "finer
# Breaks. Britney is not interested in the "finer