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 |