On Sat, Mar 30, 2019 at 4:27 AM Nicolas Mailhot
<nicolas.mailhot(a)laposte.net> wrote:
Le vendredi 29 mars 2019 à 22:25 +0000, Tom Hughes a écrit :
>
> I think something like this would work:
>
> BuildRequires: (x >= 1.3.0 without x = 1.3.2 without x = 1.3.4)
>
> That requires a single package that meets the first condition
> but not either of the other two conditions if I'm reading the
> documentation correctly.
Thanks for the suggestion. That may work indeed, depending on rpm
operator priority. To be sure, you'd need lots of lispy parenthesis (as
the rpm documentation seems to recommend).
((((x >= 1.3.0) without x = 1.3.2) without (x = 1.3.4)) without (x = 1.5.7)
Unfortunately both solutions (no parenthesis, cross fingers, lots of
parenthesis, sure result) are quite human unfriendly.
For legibly and supporting updates, Don't. With a capital D. Just
write 3 distinct statements.
BuildRequires: x >= 1.3.0
BuildRequires: x != 1.3.0
BuildRequires: x != 1.5.7
> So I'm going to try
>
> ((x >= 1.3.0) without ((x = 1.3.2) or (x = 1.3.4) or (x = 1.5.7)))
>
> which is sure to work semantically, and is more regular and human-
> friendly
>
> Of course sure to work semantically does not means sure to work as
> implemented in the solver. Will need testing
>
> I anyone has better ideas…
>
>
> Regards,
>
> --
> Nicolas Mailhot
> _______________________________________________
> packaging mailing list -- packaging(a)lists.fedoraproject.org
> To unsubscribe send an email to packaging-leave(a)lists.fedoraproject.org
> Fedora Code of Conduct:
https://getfedora.org/code-of-conduct.html
> List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproje...