Dnia 2014-08-07, o godz. 15:37:07
Duncan <[email protected]> napisał(a):

> Michał Górny posted on Thu, 07 Aug 2014 11:24:43 +0200 as excerpted:
> 
> > With the new policy, the simple form of dependencies:
> > 
> >   dev-libs/foo
> > 
> > would be only allowed if dev-libs/foo has only one slot.
> > 
> > If the atom matches more than one slot of a package, one of the
> > following forms would need to be used:
> > 
> > 1. dev-libs/bar:* -- if any version of bar is acceptable,
> > and you can replace bar:1 with bar:2 without rebuilding,
> > 
> > 2. dev-libs/bar:= -- if any version of bar is acceptable,
> > and you need to rebuild bar when changing slots (and subslots),
> > 
> > 3. dev-libs/bar:slot -- if a single slot of bar is acceptable, and you
> > can change subslots without rebuilding,
> > 
> > 4. dev-libs/bar:slot= -- if a single slot of bar is acceptable,
> > and you need subslot rebuilds,
> > 
> > 5. dev-libs/bar:slot/subslot -- if a single subslot of bar is
> > acceptable, useful mostly for binary packages and pass-through virtuals.
> 
> I'm admittedly operating a bit out of my league here so feel free to 
> ignore this if it's simply noise, but in the interest of a clearer policy 
> I'll take the risk of being stupid...
> 
> Perhaps this can't happen in practice, but there's an obviously missing 
> permutation that for completeness (and to avoid questions like this), 
> probably should have been covered with a notation such as <can't happen>, 
> or perhaps <can happen but not covered, use the stricter #2 form>:
> 
> 6. dev-libs/bar<what?> -- if any version of bar is acceptable, and you 
> need to rebuild bar only when changing slots (but not subslots).
> 
> Can it happen?  Covered if so?

Long story short, PMS doesn't provide a way do this. I can't think of
any use case for that, and I think that is one of the reasons no syntax
for that was provided.

Please note that slot operators := and :* were initially designed to
deal with slots alone. You could consider that a coincidence that there
were added in the same EAPI as subslots which were invented much later
and have a different origin.

The slot operators were supposed to help dealing with 'completely'
slotted packages, in which slots corresponded to library ABI versions.
However, that required some effort to make different versions parallel-
-installable.

Therefore, subslots were added to allow getting some of the benefits of
slotting without all the requirements (like parallel-installability).
Subslots are rarely used on their own -- they are usually appended to
the slot. Then, the := and :* slot operators simply interpreter 'SLOT'
as 'slot/subslot'.

> Tho you did switch from dev-libs/foo in the initial statement to
> dev-libs/bar in the list of permutations.  Normally, I take that to imply 
> some relationship between foo and bar, thus the need for two labels 
> instead of reusing the first, but if there is such a relationship here I 
> don't see it.  I am certainly confused but is it because there such a 
> relationship that I'm simply not seeing (that possibly eliminates my 
> sixth permutation), or did you "switch horses in mid-stream", as the 
> saying goes?

dev-libs/foo has a single slot. dev-libs/bar has multiple slots.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: PGP signature

Reply via email to