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

autopkgtest needs-recommends [Was Re: autopkgtest: versioned triggers and fixing "Test dependencies are unsatisfiable with using apt pinning"]



Hi all,

tl;dr: autopkgtest restriction "needs-recommends" and using aspcud
solver is horror. How to move forward?

On 24-05-18 12:09, Paul Gevers wrote:
> tl;dr; I want to fix the "Test dependencies are unsatisfiable with using
> apt pinning. Retrying with using all packages from unstable" situation
> because it has unwanted side effects¹. But how to do it?

> And yes, for both paths this means figuring out which packages are
> needed at all (maybe apt --simulate) and translating src:package to
> binary packages in more than the current place.

Checking if a package came from the right release/pocket and (if
requested) has the right version has a possible implementation, ~100
lines of code.

> Maybe (I haven't checked) it may even fix bug 896698, where autopkgtest
> --needs-recommends is silently failing to install the recommends (@jak:
> do you know apt's behavior here?).

And now this turns out to be causing me headaches. apt doesn't fail when
recommends can't be installed (wishlist bug to be filed), but worse,
with the alternative solver it doesn't even try. Ideally apt gets fixed
for this latter issue (bug #900989), but until then, and after several
discussion on IRC (#debian-devel, with DonKult and josch), I think the
best solution is to let autopkgtest determine the recommends of the test
dependencies itself or deprecate the need-recommends restriction. The
biggest issue with the former solution is that it can't know which
version of a package to look at, i.e. the recommends from the package in
unstable or the recommends from the package in testing. So I wonder what
you all think autopkgtest should do.

These are most of the possibilities I see:

1) Don't do anything and forget about the alternative solver (bug 896698
will still not be solved). Wait until apt is fixed, I don't expect that
to happen soon as it seems the spec is missing this part and is not core
apt, so a NO in my opinion.

2) Stop supporting needs-recommends and use the aspcud solver in a way
similar to what I implemented on salsa. Clearly this restriction has
been out there for a while. Will be painful for some (how many?)
packages as their autopkgtest will suddenly break.

3) Fix bug 896698 by using apt's internal solver and check afterwards if
the recommends of installed packages in the test dependencies are
installed and create a clear error message if they aren't (something
like my bts-896698-fix-needs-recommends branch). I don't like this
solution because it leaves the issue of too much packages from unstable
unsolved.

4) Use the aspcud solver but add the recommends from the test
dependencies to the list of test dependencies before asking apt to
install them. This scheme could detect if the list of recommends of a
package has changed between releases/pockets and error out, join them or
pick one set (which one?).

5) Use the aspcud solver to figure out which versions of test
dependencies to install and after they are installed, install their
recommends. It may be possible that installing the recommends of the
installed set is not possible, while there is a solution, what to do in
that case? I think this is my preferred solution.

6) More combinations, own solver (NO!!!) or what have you.

Looking forward to responses.

Paul

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: