Gentoo Archives: gentoo-dev

From: Andrew Savchenko <bircoph@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Fw: [gentoo-automated-testing] BROKEN: repository became broken!
Date: Fri, 17 Jun 2016 21:06:36
Message-Id: 20160618000610.90c423de4f5908c4f0dcc90b@gentoo.org
In Reply to: [gentoo-dev] Fw: [gentoo-automated-testing] BROKEN: repository became broken! by "Michał Górny"
1 On Fri, 17 Jun 2016 19:42:18 +0200 Michał Górny wrote:
2 > Hello,
3 >
4 > Since this is a major issue involving a lot of packages, and it needs
5 > to be fixed *quickly*, I'm forwarding the new check results to
6 > gentoo-dev.
7 >
8 > If the below list contains your package, please fix it ASAP. I will
9 > file bugs for the remaining packages then.
10 >
11 > Long story short, using := operator inside || () conditional blocks is
12 > completely forbidden and triggers random misbehavior inside package
13 > managers (Portage doesn't do exactly what you think it does).
14
15 Please explain in more details why this is forbidden. man 5 ebuild
16 contains nothing about this, I can't find anything in PMS also. If
17 package manager misbehaves this doesn't automatically imply that
18 ebuilds are broken (and not PM).
19
20 > Consider it your priority to either replace the || () block with
21 > a working solution (e.g. USE flags), or remove the := operator.
22
23 What if package contains:
24 || ( cat/foo:= cat/bar:= )
25 That is, it can work with either foo or bar, but needs to be
26 rebuild on subslot changes. Are you suggesting to add USE flags
27 for each alternative under each || () clause? This is ridiculous
28 if foo and bar are drop-in replacements of one another. And
29 dropping := will just break stuff if foo or bar contain more than
30 single subslot.
31
32 Best regards,
33 Andrew Savchenko

Replies