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