The optimizations relies on assumptions that are not valid with the
allow-uninst that has not been corrected. When these assumptions, we
end up with invalid nuninst counters.
Signed-off-by: Niels Thykier <niels@thykier.net>
The spec for Release files says that (at least) one of "Suite" and
"Codename" will be defined. This implies that "Suite" is optional
in some cases and SuiteLoader now correctly falls back to using
"Codename" in that case.
Closes: https://bugs.debian.org/942104
Signed-off-by: Niels Thykier <niels@thykier.net>
When an allow-uninst hint is added for an unversioned binary package, items
are allowed to migrate, even if they make that binary package uninstallable
(on the architecture specified in the hint, if one was specified, or on all
architectures otherwise).
Using this hint should avoid using force-hint to allow specific breakage.
Signed-off-by: Ivo De Decker <ivodd@debian.org>
When do_all fails, and there is no transaction to rollback, we will probably
leave a broken state behind. This codepath probably isn't triggered unless
something else is broken.
Signed-off-by: Ivo De Decker <ivodd@debian.org>
The code that was supposed to check uninstallability of existing binaries was
broken:
- it only checked arch: all on nobreakall archs, not arch any
- it checked if the new binary was in testing (this never happens)
- it doesn't work when binaries from both unstable and tpu are needed
Note that _excuse_unsat_deps() now handles nobreakall correctly.
don't show information about unsatisfiable depends that is not blocking
migration:
* arch all not on nobreakall arch
* arch any or arch all on breakarch
Also, set verdict to REJECTED_PERMANENTLY explicitly. This was already done
implicitly, because that is the default and it was never set to anything else.
Also, set verdict to REJECTED_PERMANENTLY explicitly. This was already done
implicitly, because that is the default and it was never set to anything else.
If the cruft removal item has a different version than the binary currently in
testing, then the cruft item was replaced since it was added, or it was added
in error. In this case, the item should not be processed.
Signed-off-by: Ivo De Decker <ivodd@debian.org>
When the item is a cruft removal item, the variable contains the binary name,
not the source name. So rename it to item_package and set source_name, to the
source in both cases.
Signed-off-by: Ivo De Decker <ivodd@debian.org>