britney: Work around bug 815995

This bug involves a corner case that involves:

 * source orig providing liborig1 and orig-doc in testing
 * source orig providing liborig2 and orig-doc in unstable
 * source hijack providing liborig2 and orig-doc in both testing and unstable,
   where the versions of hijack's binaries has a higher version than those of
   "orig".

The arch:all packages are needed to trigger this, because Britney
flags an arch:any package as "out of date" and stops the migration
there.  However, she is more lenient with arch:all packages.

What happens is that Britney realises that src:orig need to be updated
in testing (to remove liborig1).  This leaves src:orig with no
binaries left in testing (as the orig-doc from hijack is used) and it
is therefore removed as an obsolete source.  The obsolete removal then
exploded because Britney was also trying to remove the liborig1
package, which is no longer there.

Signed-off-by: Niels Thykier <niels@thykier.net>
master
Niels Thykier 8 years ago
parent 6965dda5f7
commit 179ced304d

@ -1931,6 +1931,10 @@ class Britney(object):
and parch != migration_architecture):
continue
# Work around #815995
if migration_architecture == 'source' and is_removal and binary not in binaries_t[parch][0]:
continue
if (not include_hijacked
and binaries_t[parch][0][binary][SOURCE] != source_name):
continue

Loading…
Cancel
Save