[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#625792: [britney2] Needs to be cleverer at deciding which packages to check for installability

Package: release.debian.org
User: release.debian.org@packages.debian.org
Usertags: britney


With the fix for #624716 applied, b2 no longer crashes attempting to
migrate xfce and friends (via "hint exo").  It does fail the hint,
however, whereas b1 successfully migrated the package set based on the
same input.

Having spent a little while trying things, so I don't forget any of it,
and in case anyone else spots a clean and obvious solution, my thoughts
and analysis on that are below...

The process of deciding which packages need checking for installability
is roughly (see doop_source()):

if source in testing
  for each binary still built from this source in testing
    mark all reverse dependencies as affected [A]
add new source to testing
for each binary built from the new source
  mark the binary as affected [B]
  if the binary exists in testing
    mark all reverse dependencies as affected [C]
    mark all reverse conflicts as affected [D]
  add / update the binary
  mark the new reverse dependencies as affected [E]

Hinting exo initially results in cairo-dock-plugins, cairo-dock (via
c-d-p) and ristretto being flagged as newly uninstallable.  The first
two are easily fixable by applying the patch from #614249 to steps C and
E; step D uses get_full_tree() which is considerably slower but the
number of reverse conflicts is generally small enough that it doesn't
matter.  Resolving ristretto turns out to be more complicated,

The exo hint involves a number of source packages which provide
ristretto's reverse dependencies.  In the order in which they're

- mark ristretto as affected (step A)
- ristretto becomes uninstallable

- mark ristretto as affected (step A)
- ristretto is still uninstallable

- mark ristretto as affected (step A)
- ristretto is still uninstallable

- the source isn't in testing; so steps A, C and D are skipped
- unstable's ristretto doesn't depend on libthunar-vfs-1-2, so the
package isn't marked for checking again

The net effect is that ristretto is left (incorrectly) marked as
uninstallable and the hint fails.  This is a little bit of a corner case
(due to unstable's ristretto having dropped the dependency) but should
still be fixed.



Reply to: