Re: Bug#1131311: autopkgtest: Bad versions comparison

David Kalnischkies <[email protected]> Fri, 20 Mar 2026 11:41:57 +0100
Newsgroups gmane.linux.debian.apt.devel
Message-ID <[email protected]>
Am Fri, Mar 20, 2026 at 10:27:58AM +0100, schrieb Xavier:
> - resolver should take the higher version

fwiw that is not possible.

Yes, using version provides can produce these funny situations
in which multiple seemingly conflicting statements about a version
are true, but we can't just pick one of the versions and run with it.

If we would always pick the highest as you suggest:
node-rollup-plugin-terser build-depends on debhelper-compat = 13.
Now, that is the highest available debhelper-compat ~ for now,
14 is around the corner making your package FTBFS on its release.
Never mind all the packages that happen to still = 12 or lower.


Now, why not for Breaks? Well, we don't know what the interface is,
but it might very well be file-based, so something providing version 1
provides a file in a certain format in a certain location. If your
package can't deal with that it Breaks version 1 (well, its broken by,
so ideally the other package would have it, but that is not always
possible without access to a time machine). That there is also a
version 2 somewhere else is of no concern for the breakage caused
(so a simple Depends >= 2 doesn't work). Yes, in this situation
a "Depends >= 2" is satisfied, while also a "Breaks <= 1", which is
one of the simpler funny situations I alluded to earlier.


That we haven't yet fully descended into madness is simply a result
of Provides usually being on purely virtual packages and not that
common in general. The various node, rust, … ecosystems with their
auto-generated packages and mega-provides violate both assumptions,
so their maintainers run with some regularity into this fun that is
usually just nightmare fuel for the select few reasoning about
dependencies on the regular for us (like apt).


Best regards

David Kalnischkies
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEE5sn+Q4uCja/tn0GrMRvlz3HQeIMFAmm9JHUACgkQMRvlz3HQ
eINnSg//ZtASDsH3dQit8zRbmTQeKa9ksQeBN/PPnzqOPgRmn9lUZP5r5SDI1uym
+OBozZfM6D1/ffQoWXjUaVrtkSaJz6VWzpSzS8JfbkBQGvDZKnHwLAUGb1sO/A9L
hRxIdxf2J3o6/PrRxxPADxp8rzF0FfwCy/0EPhiHS/mB4cBr968CiiTX0owFY9Hv
mfVoGHHF0nvPnLTXEv/6vPj+g/lwm2NogW9UPAr0jZWSHjwKByhFH+UaChMwyaR7
35LgRE8iWzPknnwjKStYI4uqen4kwScaahQpwPkE1/V9PR+3xRaNXSQ++ggnui9K
FIcagLb8yqNb9c+fcD1asDgBiYBxPhfrNJPAmb3zIZ78v7IbkeMTL21E7TM7qexg
WKcEBfTY+dIIWMmnvJ3xdNtAC0Q97ECBXnzJfe6ZtfxoklaYUcwWhpBYEf3AIKQA
PNRM9dW1Yi8KZUmDbwuAN26TV02CgWp19HFBkV2m4w2ZRAlK3AuIclwX0IH8HTEl
rlaUTnglpyIqkIPB7fzfSVMLHnf39KL7w2HjX7T631vq+/4rDYkBF7FTyWwoQCF9
7gQchx0RrxtDHHhEdSh+tg5r+EFQM6j+a27OpOCU2MoEigYA716ofOTPp5T/rzAa
mye2YlIGXRtxbS796cB08SAt9PedwE5Ahv28ad91Fss1TOQk7aQ=
=Etl+
-----END PGP SIGNATURE-----