On 01/20/2015 01:11 AM, Alexis Ballier wrote:
> On Tue, 20 Jan 2015 01:01:41 -0800
> Zac Medico <[email protected]> wrote:
> 
>> On 01/20/2015 12:13 AM, Alexis Ballier wrote:
>>> On Mon, 19 Jan 2015 20:31:45 +0100
>>> Michał Górny <[email protected]> wrote:
>>>> 2. Subslots work correctly. Rebuilds are forced when the chosen
>>>> library is upgraded. Moreover, USE flag change causes a rebuild
>>>> when user decides to change the ffmpeg provider.
>>>
>>>
>>> No offense, but this argument is complete crap. You should rather
>>> fix portage bugs than propose to introduce tree-wide changes to
>>> hide them... More precisely: || ( a:= b c:= d ) is perfectly
>>> defined (in the "what it means" sense, not in PMS sense). When the
>>> package is built, if 'a' is satisfied then a (and its subslot) is
>>> added to the subslot list of the package; ditto for c. You end up
>>> with a list of subslot deps, that you can store in vdb or whatever,
>>> and use that to decide when to rebuild the package.
>>
>> That's an interesting proposal, but I immediately find myself
>> questioning how closely it models reality. For example, maybe the
>> package links to both the a:= package and c:= package, or maybe just
>> to one of them. Shouldn't our model match reality as closely as
>> possible, as long as it's practical?
> 
> Do you have any such example ?

Well, I think this demonstrates the sorts of ambiguities that may arise
when using || deps to model reality. We may find that replacing || deps
with USE conditionals and REQUIRED_USE constraints gives us a more
accurate and practical model for some kinds of dependencies.

> I think we can only make the safest assumption. Even without subslot,
> if you consider this: || ( a b c d ), with a and c installed but
> package automagically deciding to use only a, how can a PM decide
> whether it is safe to remove a or not after the package has been
> merged ?

Right, this demonstrates that || deps are ambiguous. So, maybe we should
look at alternatives that are not so ambiguous, such as USE conditionals
and REQUIRED_USE constraints.
-- 
Thanks,
Zac

Reply via email to