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=".

-- 
Jonathan Callen

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to