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

Re: debian/control: enhanced version dependencies?


Quoting Felipe Sateler (2016-01-15 13:33:37)
> You are trying to create implications. a => b is the same as !a || b, which
> is how I expressed the dependencies above. This is easy to do for versioned
> dependencies, but not so easy for non-versioned ones (you cannot have
> !package in the Depends field, there is the Conflicts field but that is
> another grouping). You could work around that limitation by imposing a (<<
> 0~) restriction to packages that should not be installed in any version.

Implications like a=>b can be expressed via a third package c which conflicts
with a. You'd then have:

Package: xyz
Depends: c | b

Package: c
Conflicts: a

Whenever discussions about new dependency syntax come up I like to remind
people of all the time (about six years now) and effort it took to get the
build profile syntax [1] accepted by the archive, supported by all tools and to
sufficiently discuss this with everybody involved to get general agreement that
this is necessary and we're doing it the right way. And this is not even over
yet as that syntax has to be documented in policy as well! Plus, we are only
talking about Build-Depends syntax here.  I'd assume that there are even more
tools that handle binary package Depends syntax that the 19 that handle source
package dependency syntax.

In this case, the desired effect can be achieved using existing elements of the
dependency syntax and without any unreadable version quirks. A new syntax would
*only* be acceptable if there were hundreds if not thousands of packages that
would benefit from an easier way to express such a conditional and in which
case having all these meta-packages I proposed as a solution above would become


cheers, josch

[1] https://wiki.debian.org/BuildProfileSpec

Attachment: signature.asc
Description: signature

Reply to: