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