Gentoo Archives: gentoo-dev

From: Christopher Head <chead@×××××.ca>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] REQUIRED_USE, global USE flags, user-friendliness...
Date: Sat, 04 Feb 2017 06:40:58
Message-Id: 20170203224047.3eec1f50@amdahl.home.chead.ca
In Reply to: Re: [gentoo-dev] REQUIRED_USE, global USE flags, user-friendliness... by "Róbert Čerňanský"
1 On Sun, 29 Jan 2017 15:11:43 +0100
2 Róbert Čerňanský <openhs@×××××××××.com> wrote:
3
4 > If I may add a user opinion. I agree with you but I would choose
5 > different solution for user-friendliness. Instead of _adding_
6 > interactivity to PM I would _remove_ it. So if there would be
7 > multiple choices the user would not be prompted, but some default
8 > option would be selected by PM. To the user, such behaviour would be
9 > similar to current handling of virtuals - if a package depends on a
10 > virtual the user is not prompted to make a choice but the default is
11 > selected instead.
12
13 This. Exactly this. In fact, I would go even further. Let’s look at two
14 parallel situations.
15
16 Situation 1: app-cat/foo DEPENDs on dev-libs/bar. I want app-cat/foo. I
17 emerge app-cat/foo. Portage automatically installs dev-libs/bar. It
18 doesn’t require me to say anything about dev-libs/bar (though if I ask
19 to confirm before starting the build then it will mention it). I never
20 have to add dev-libs/bar to any user-maintained files
21 (i.e. /etc/portage/* or /var/lib/portage/world). If I ever uninstall
22 app-cat/foo, then dev-libs/bar will go away on its own when I depclean.
23
24 Situation 2: app-cat/foo DEPENDs on dev-libs/bar[baz]. I want
25 app-cat/foo. I emerge app-cat/foo. Portage… fails. It requires me to
26 manually add “dev-libs/bar baz” to /etc/portage/package.use/* (it will
27 do it itself, if desired, due to autounmask, but of course it puts it
28 in the wrong file because I like to keep things organized with multiple
29 files). That setting goes on living in /etc/portage, a user-maintained
30 area, forever. If I ever uninstall app-cat/foo, baz will stay set until
31 I eventually get around to slogging through /etc/portage/package.use
32 looking for things I can turn off because I don’t need them any more.
33
34 Why? It’s just another dependency. Why does DEPEND="dev-libs/bar" work
35 so beautifully but DEPEND="dev-libs/bar[baz]" work so horribly? If I
36 haven’t explicitly said I want baz, and I haven’t explicitly said I
37 *don’t* want baz, and enabling baz doesn’t conflict with any other
38 packages I have installed, Portage should just rebuild dev-libs/bar
39 with USE=+baz. If I eventually uninstall app-cat/foo, something like
40 depclean should reinstall dev-libs/bar with USE=-baz. Just like all the
41 other dependencies, if I don’t care to make a manual choice, it should
42 be automatic and dynamic.
43 --
44 Christopher Head

Replies