Dnia 2014-08-07, o godz. 15:37:07 Duncan <1i5t5.duncan@cox.net> 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 , > or perhaps : > > 6. dev-libs/bar -- 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