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
pgpdkiVtAMXgB.pgp
Description: OpenPGP digital signature