Gentoo Archives: gentoo-dev

From: Brian Harring <ferringb@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] use.force as a complement to use.mask in profiles
Date: Tue, 08 Aug 2006 07:54:49
Message-Id: 20060808075120.GD12154@seldon
In Reply to: Re: [gentoo-dev] use.force as a complement to use.mask in profiles by Ciaran McCreesh
1 On Tue, Aug 08, 2006 at 08:33:51AM +0100, Ciaran McCreesh wrote:
2 > On Tue, 8 Aug 2006 00:22:50 -0700 Brian Harring <ferringb@×××××.com>
3 > wrote:
4 > | On Tue, Aug 08, 2006 at 07:23:31AM +0100, Ciaran McCreesh wrote:
5 > | > On Mon, 7 Aug 2006 21:41:39 -0700 Brian Harring <ferringb@×××××.com>
6 > | > wrote:
7 > | > | > The use.force feature is complementary to use.mask. It's
8 > | > | > exactly the same concept, but inverted.
9 > | > |
10 > | > | And both files _should_ be implemented via use deps.
11 > | >
12 > | > Huh? How?
13 > |
14 > | forcing cxx on via package.mask for gcc
15 > | sys-devel/gcc[-cxx]
16 > |
17 > | forcing it off
18 > | sys-devel/gcc[cxx]
19 >
20 > Mmm. See, that'll lead to error messages if the user sets USE=cxx and
21 > then tries to install gcc. With the .mask/.force, it's handled
22 > automatically and indicated visibly by use flags being (parened).
23
24 The error msg would be "blah is masked", with an explanation of why.
25 Pretty standard fair, portage already does the same now for non use
26 dep maskings.
27
28 As is, the package.use.mask patch that got shoved in gives _no_
29 indication that it's forcing a flag off for a pkg- leaves the user
30 wondering wtf occured once they spot the flag is disabled.
31
32 Point there is that arguing against it based on UI code is a
33 non-arguement; either implementation (for portage at least) requires
34 mangling portage's -vp code to indicate the forced disabling/enabling.
35
36 > | *Full* implementation of use deps requires ability to flip on use
37 > | flags as needed
38 >
39 > I implemented this a while back for Paludis and then chucked it. It
40 > doesn't turn out nicely, mostly because of flags like build and
41 > bootstrap. You'd end up with dumb cases like patch being built with
42 > USE=build then USE=-build, and all kinds of hairy USE flags being
43 > turned on.
44
45 Alternative is not being able to resolve unixodbc/qt and sizable
46 chunks of bootstrap'ing without resorting to telling the resolver to
47 ignore cycles.
48
49 This is part of why use deps aren't implemented in portage now; doing
50 it *fully* requires a lot of bitchy internal tracking. You can ignore
51 it, but resolution capabilities pay the cost.
52
53 ~harring

Replies