> 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)