1 |
On 01/20/2015 10:20 AM, Alexis Ballier wrote: |
2 |
> On Tue, 20 Jan 2015 09:28:21 -0800 |
3 |
> Zac Medico <zmedico@g.o> wrote: |
4 |
> |
5 |
>> On 01/20/2015 01:11 AM, Alexis Ballier wrote: |
6 |
>>> I think we can only make the safest assumption. Even without |
7 |
>>> subslot, if you consider this: || ( a b c d ), with a and c |
8 |
>>> installed but package automagically deciding to use only a, how can |
9 |
>>> a PM decide whether it is safe to remove a or not after the package |
10 |
>>> has been merged ? |
11 |
>> |
12 |
>> Right, this demonstrates that || deps are ambiguous. So, maybe we |
13 |
>> should look at alternatives that are not so ambiguous, such as USE |
14 |
>> conditionals and REQUIRED_USE constraints. |
15 |
> |
16 |
> if you assume there are no automagic deps, what is wrong and/or |
17 |
> ambiguous with '|| ( a b c d ) means "any of them, and at least all |
18 |
> that were available when the package was merged"' ? |
19 |
> in the above example this avoids PM breaking people systems by removing |
20 |
> 'a' (e.g. if another packages pulls in 'd' that has a blocker against |
21 |
> 'a') and as a side effect makes := deps work... |
22 |
|
23 |
Sure, but when you start using words like "at least all that were |
24 |
available when the package was merged", it shows a lack of precision in |
25 |
your model. I tend to agree with Ciaran, that || deps are best suited to |
26 |
dependencies that can be switched at runtime. For := deps, USE |
27 |
conditionals and REQUIRED_USE constraints seem like a better fit. |
28 |
-- |
29 |
Thanks, |
30 |
Zac |