1 |
On 11/08/2014 08:01 PM, Matthias Dahl wrote: |
2 |
> Hello Ciaran... |
3 |
> |
4 |
> On 08/11/14 19:26, Ciaran McCreesh wrote: |
5 |
> |
6 |
>> No. It would make sense to introduce a cultural change, where |
7 |
>> developers stop writing dependencies that seem to work with some |
8 |
>> particular version of Portage if you don't look very closely, and start |
9 |
>> writing good dependencies. |
10 |
> |
11 |
> Sorry to chime in like that but if you don't mind, I'd like to ask for a |
12 |
> real-life example for badly declared dependencies with a few words why |
13 |
> those are bad and how to make them actually better? |
14 |
> |
15 |
|
16 |
from dev-haskell/hashtables (note "hashtables" != "hashable"): |
17 |
|| ( ( >=dev-haskell/hashable-1.1:=[profile?] |
18 |
<dev-haskell/hashable-1.2:=[profile?] ) |
19 |
( >=dev-haskell/hashable-1.2.1:=[profile?] |
20 |
<dev-haskell/hashable-1.3:=[profile?] ) |
21 |
) |
22 |
|
23 |
Latest stable version of dev-haskell/hashable is 1.2.1.0. |
24 |
On a stable system (arch) the paludis dep-solver will try to match the |
25 |
first group first and realize that there is also a stable version |
26 |
1.1.2.5 that matches that group. At that point there is a correct |
27 |
solution, but since that involves downgrading a package, it will require |
28 |
user-intervention, because it may not be what the user wants. |
29 |
(this is the easy scenario... if downgrading causes blockers, you get |
30 |
much more interesting output) |
31 |
|
32 |
If you want "user friendliness", then such dependencies would require |
33 |
that the dep-solver tries very very hard to find a solution which *may* |
34 |
be what the user wants... or not. I don't think that's what "||" were |
35 |
designed for (if there was a design behind it). |
36 |
|
37 |
Ofc there is a solution to that, e.g. by using |
38 |
--favour-matching '>=dev-haskell/hashable-1.2.1' |
39 |
which explicitly tells the dep-solver what the user wants. |
40 |
|
41 |
|
42 |
perl virtuals can be similarly interesting. |