On Mon, 23 Jan 2017 18:17:58 +0100 "Paweł Hajdan, Jr." <phajdan...@gentoo.org> wrote:
> On 23/01/2017 13:12, Alexis Ballier wrote: > > For example, if you allow use.mask or use.force in mixins, you can > > end up having unsatisfiable deps that repoman will never catch. > > Whoa, that sounds bad. Could you elaborate why we wouldn't be able to > catch these errors? Because repoman wont be able to check the 2^{# of mixins} possibilities to have something broken there. > > Arguably, desktop profiles relying on having an useflag forced on a > > given package are already semi-broken: they'd be better with the > > useflag default enabled and proper usedeps, so the mask/force game > > doesnt seem really useful for mixins. > > Could you give examples of such assumptions? I'd agree in general > usedeps sound like the proper solution. gentoo-x86/profiles/targets/desktop/package.use.force: # Ensure shared-mime-info is pulled in by glib, otherwise GNOME, XFCE,and # numerous gtk-based applications will break, see bug #511894 dev-libs/glib mime > > It'd also be great to have "rules" ensuring all mixins commute, but > > I doubt that's easily doable. > > Could you elaborate more on that, and what the difficulties are? First you need to define *exactly* what goes into mixins. Then, you want that a combination of mixins doesnt depend on the order they are processed. It is left to the reader to show that it is equivalent to that any two mixins commute, that is, the resulting profiles with the 'parent' file containing: mixinA mixinB or: mixinB mixinA are the same. If you define mixins having only default enabled or default disabled useflags (globally or per package), then commuting is implied by 'no two mixins handle intersecting sets of (package,useflag)'. One can also go the simple way: Defining a mixin priority (either explicitly or by alphabetical order for example), so that e.g. in the above, mixinA is always processed first. Without doing something in that regard I think this is too loosely specified and asks for headaches. Alexis.