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.



Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to