> On Jun 17, 2016, at 11:48 PM, Jonathan Callen <jcal...@gentoo.org> wrote:
> 
>> On 06/17/2016 06:22 PM, Ian Stakenvicius wrote:
>>> On 17/06/16 06:17 PM, Ian Stakenvicius wrote:
>>>> On 17/06/16 05:22 PM, Michał Górny wrote:
>>>> On Sat, 18 Jun 2016 00:06:10 +0300
>>>> Andrew Savchenko <birc...@gentoo.org> wrote:
>>>> 
>>>>>> On Fri, 17 Jun 2016 19:42:18 +0200 Michał Górny wrote:
>>>>>> Hello,
>>>>>> 
>>>>>> Since this is a major issue involving a lot of packages, and it needs
>>>>>> to be fixed *quickly*, I'm forwarding the new check results to
>>>>>> gentoo-dev.
>>>>>> 
>>>>>> If the below list contains your package, please fix it ASAP. I will
>>>>>> file bugs for the remaining packages then.
>>>>>> 
>>>>>> Long story short, using := operator inside || () conditional blocks is
>>>>>> completely forbidden and triggers random misbehavior inside package
>>>>>> managers (Portage doesn't do exactly what you think it does).  
>>>>> 
>>>>> Please explain in more details why this is forbidden. man 5 ebuild
>>>>> contains nothing about this, I can't find anything in PMS also. If
>>>>> package manager misbehaves this doesn't automatically imply that
>>>>> ebuilds are broken (and not PM).
>>>> 
>>>> It was explained already. PMS doesn't permit it. It doesn't make *any*
>>>> sense, so the author didn't even bother explicitly saying it's
>>>> forbidden. Package manager can't not misbehave if something can't be
>>>> implemented.
>>> 
>>> Where does PMS not permit it??
>>> 
>>> 8.2: [...]
>>> An any-of group, which consists of the string ||, followed by
>>> whitespace, followed by an open parenthesis, followed by whitespace,
>>> followed by zero or more of (a dependency item of any kind followed by
>>> whitespace), followed by a close parenthesis.
>>> 
>>> 
>>> "dependency item of any kind" would certainly include atoms with slot
>>> operators.
>>> 
>>> 
>>> There is also no caveat at all in 8.2.3 that excludes slot operators,
>>> and 8.2.6.3 also contains no caveat or exclusion of slot operators
>>> from any-of groups.
>>> 
>>> 
>>> Using slot operators within OR deps was intended when EAPI5 was
>>> introduced.  If Portage and other PMs don't handle it well or properly
>>> then they should be fixed, and perhaps the spec should be refined in
>>> EAPI7, but that doesn't mean banning it now.
>> 
>> 
>> Now, one thing that *is* banned is the use of :[SLOT]/[Sub-Slot]
>> values in ebuilds, as per PMS s.8.2.6.3  -- I know there's plenty of
>> ebuilds that are doing that, including in virtuals.
> 
> No, the specific syntax that is banned is ":0/0=" (that is, both a
> subslot and a slot operator).  It is perfectly legal to depend on ":0/0"
> or on ":0=", but not on ":0/0=".
> 

Ah, thank you for that clarification -- I didn't catch the language was 
specifying the subslot as coming before the equal sign.

Well, good that this would be banned given it wouldn't make any sense 
(triggering a rebuild when the subslot changes, while tying something to a 
single slot/subslot value, would never do anything)




Reply via email to