On Sun, 29 Jan 2017 15:11:43 +0100
Róbert Čerňanský <ope...@tightmail.com> wrote:

> If I may add a user opinion.  I agree with you but I would choose
> different solution for user-friendliness.  Instead of _adding_
> interactivity to PM I would _remove_ it.  So if there would be
> multiple choices the user would not be prompted, but some default
> option would be selected by PM.  To the user, such behaviour would be
> similar to current handling of virtuals - if a package depends on a
> virtual the user is not prompted to make a choice but the default is
> selected instead.

This. Exactly this. In fact, I would go even further. Let’s look at two
parallel situations.

Situation 1: app-cat/foo DEPENDs on dev-libs/bar. I want app-cat/foo. I
emerge app-cat/foo. Portage automatically installs dev-libs/bar. It
doesn’t require me to say anything about dev-libs/bar (though if I ask
to confirm before starting the build then it will mention it). I never
have to add dev-libs/bar to any user-maintained files
(i.e. /etc/portage/* or /var/lib/portage/world). If I ever uninstall
app-cat/foo, then dev-libs/bar will go away on its own when I depclean.

Situation 2: app-cat/foo DEPENDs on dev-libs/bar[baz]. I want
app-cat/foo. I emerge app-cat/foo. Portage… fails. It requires me to
manually add “dev-libs/bar baz” to /etc/portage/package.use/* (it will
do it itself, if desired, due to autounmask, but of course it puts it
in the wrong file because I like to keep things organized with multiple
files). That setting goes on living in /etc/portage, a user-maintained
area, forever. If I ever uninstall app-cat/foo, baz will stay set until
I eventually get around to slogging through /etc/portage/package.use
looking for things I can turn off because I don’t need them any more.

Why? It’s just another dependency. Why does DEPEND="dev-libs/bar" work
so beautifully but DEPEND="dev-libs/bar[baz]" work so horribly? If I
haven’t explicitly said I want baz, and I haven’t explicitly said I
*don’t* want baz, and enabling baz doesn’t conflict with any other
packages I have installed, Portage should just rebuild dev-libs/bar
with USE=+baz. If I eventually uninstall app-cat/foo, something like
depclean should reinstall dev-libs/bar with USE=-baz. Just like all the
other dependencies, if I don’t care to make a manual choice, it should
be automatic and dynamic.
-- 
Christopher Head

Attachment: pgpdkiVtAMXgB.pgp
Description: OpenPGP digital signature

Reply via email to