Gentoo Archives: gentoo-dev

From: Gordon Pettey <petteyg359@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Guidelines for IUSE defaults
Date: Fri, 03 Feb 2017 00:03:05
Message-Id: CAHY5MeccdFXADJPp8acQe4auR-WdRnyAA+iEWhQF91FTenCrPA@mail.gmail.com
In Reply to: Re: [gentoo-dev] Guidelines for IUSE defaults by Rich Freeman
1 On Thu, Feb 2, 2017 at 12:01 PM, Rich Freeman <rich0@g.o> wrote:
2
3 > On Thu, Feb 2, 2017 at 11:25 AM, Michael Orlitzky <mjo@g.o> wrote:
4 > >
5 > > If (base == minimal), then all of the upstream defaults need to be added
6 > > to package.use for the upstream-defaults profile. That's bad,
7 >
8 > I'll go further and say that it is unacceptably bad.
9 >
10 > > but if
11 > > (base == upstream-defaults), then the important IUSE defaults need to be
12 > > copy/pasted from our ebuilds into the minimal profile. The latter is
13 > > more spiritually damning =)
14 > >
15 >
16 > So, I'll admit I've never been one that cared a great deal about
17 > minimalism so I appreciate that I may not be the best one to judge
18 > this, so let's go ahead and embrace your statement for the purpose of
19 > debate.
20 >
21 > Is there a better way we can have our cake and eat it too? I'll admit
22 > that a huge package.use on the minimal profile isn't a whole lot
23 > better than a huge package.use on all the other profiles.
24 >
25 > Do we need another form of syntax in individual ebuilds to try to
26 > separate out the various cases you cite? Does anybody care to
27 > actually suggest one?
28 >
29 > I still think that we shouldn't encourage users to lightly deviate
30 > from all the upstream defaults. There are of course legitimate
31 > reasons for doing so, and you and I can probably appreciate when we
32 > should do this, but for somebody starting out we're giving them a lot
33 > of rope to hang themselves with. It is like building a kernel
34 > answering no to the largest number of questions possible while still
35 > actually building something. I'd actually be curious as to what that
36 > kernel would even be capable of doing (there are a lot of fairly
37 > essential things you can turn off in the kernel).
38 >
39 > In the same way, we shouldn't be too quick to deviate from upstream
40 > defaults ourselves (#4 in your example), beyond actual integration
41 > work.
42 >
43 > I'll admit the current state is a bit of a compromise, but I don't
44 > think we should change it unless we're changing it to something
45 > significantly better. This is a pretty big-impact change.
46 >
47 > --
48 > Rich
49 >
50
51 If you want to keep this kind of thing in the ebuilds, IUSE="+blah" doesn't
52 allow any granularity. Another variable USE_PROFILE should be added
53 analogue to DEPENDS:
54 IUSE="gnome-keyring gtk-theme kwallet pulseuadio qt-theme
55 annoyingUpstreamDefault"
56 USE_PROFILE="
57 desktop? ( pulseaudio )
58 gtk? ( gtk-theme )
59 gnome? ( @gtk gnome-keyring)
60 kde? ( @qt kwallet )
61 qt? ( qt-theme )
62 upstream? ( annoyingUpstreamDefault )
63 "
64 @ is already used for sets, so "some other use_profile's set of defined
65 flags" seems reasonable. It should be additive only, so no +- prefixes
66 needed (or allowed). If a package is emerged without any USE_PROFILE set,
67 you might einfo "This package supports was emerged with no use profile. It
68 supports blah1, blah2, and blah3. Upstream recommends blah2." USE_PROFILE
69 should never have any default selected by an ebuild; if a flag is required
70 to build, is shouldn't be a flag. You get independent behavior per package
71 rather than listing every single package that ever existed in
72 profile/package.use, package behavior actually being with the package
73 instead of global profiles, and you get rid of the mess of uncustomizable
74 IUSE="+something" everywhere that makes people like me tend to start off
75 every new Gentoo install with echo "USE=\"-*\"" >> /etc/portage/make.conf.
76 Just need to come up with sane naming convention for common possibilities
77 like kde, gnome, and generic desktop.
78
79 If you want upstream, USE_PROFILE="upstream". If Gentoo as an organization
80 wants that to be the "friendly to new user" standard, put
81 USE_PROFILE="upstream" in the stage3 make.conf, where those of us who want
82 to can simply remove or change it instead of having to nuke everything with
83 USE="-*". You can still use e.g. RUBY_TARGETS="+ruby21" in an ebuild if you
84 want a default for things that really require an at-least-one-of choice.
85
86 Then instead of default/linux/amd64/13.0/desktop/kde listing any USE flags
87 itself, it just sets required USE_PROFILE and lets the packages do their
88 thing.

Replies

Subject Author
Re: [gentoo-dev] Guidelines for IUSE defaults Kent Fredric <kentnl@g.o>