Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
rich dependencies (version range of same dependency) are not handled properly #182
There's some another example which makes libsolv to produce somewhat weird result:
but it needs only one
libsolv is correct, of course. ;-)
With your first testcase, the installed system after the transaction will have both rust-serde10-devel-0.10.0-1 (providing crate(serde) = 0.10.0) and rust-serde6-devel-0.6.0-1 (providing crate(serde) = 0.6.0) installed. Thus the requirement "crate(serde) >= 0.9.0 & crate(serde) < 0.10.0" is satisfied.
Your "and" type rich dependencies aren't very useful in this case. The require from above is exactly equivalent to this
I.e. there is no need to use rich dependencies at all.
What you're looking for is libsolv's "with" dependency type, '+' in testcase syntax:
The semantics is that the requirement must be fulfilled by the same package. I also suggested that for rpm rich dependencies, but there wasn't much interest in having that.
As for your second testcase, there is no single foo that provides both "foo >= 2" and "foo <= 3", because just version 1 and 4 is provided.