On Wed, Jun 5, 2024 at 6:41 AM Dr Rainer Woitok <rainer.woi...@gmail.com> wrote:
>
> And no,  I don't buy  the point of view  that it's the responsibility of
> the developers  when my personal set  of USE flags suddenly  causes con-
> flicts.
>

Agree, but keep in mind that having personal sets of USE flags is
basically a necessity in Gentoo, and not a choice, because Gentoo does
not dynamically manage USE dependencies.

On any distro, including Gentoo, if you manually installed the
dependencies of every package you use explicitly, you'd probably end
up with a hopeless mess of dependency conflicts within a few months.
Everybody who has used Linux for any period of time understands that
this is a bad practice, and you should explicitly install the packages
you directly use, and let the package manager dynamically manage their
dependencies.  Then when a dependency becomes obsolete and is
replaced, the updates will happen automatically without the user
needing to worry about them.

Gentoo does this with package/version dependencies, but not with USE
flag dependencies.  If a package requires some other package to be
built with a particular USE flag, then portage will output an error,
and you will need to put an entry in package.use to manually specify
the USE configuration, and that will resolve the conflict. Then 5
years later you'll get some mysterious error due to that USE flag
setting being obsolete, and you have no idea why you even had it in
the first place unless you took meticulous notes, because the setting
doesn't reflect your own preference, but the requirements of some
package, which might be so far down the dependency tree that you don't
even know what it does.

Python version settings are just fancy ways of expressing USE
dependencies.  Unless you develop things in Python, you probably don't
care what versions of Python you have installed, and it is reasonable
to expect that the package manager or distro just takes care of this
for you.  Gentoo does not.

Implementing dynamic USE management would take somebody a fair bit of
effort, and for all I know it would make every emerge you run take an
hour to recompute the dependency tree.  The ability to configure USE
flags, along with the ability to dynamically decide the version of
dynamically linked packages, makes Gentoo have a dependency tree that
is MUCH larger than basically any other distro out there.  This is why
portage takes so long to decide what to install compared to basically
everything else.

It is this clash of expectations vs reality that causes many
frustration, and this is understandable.  That said, improving the
situation is a lot of work, whether this is in the form of a lot of
coordination to deal with the lack of dynamic USE dependencies, or the
effort to implement this feature in the package manager (which has
been discussed here and there for a decade or so).  You can't fault
volunteers for not working on things that they aren't interested in
working on.  That said, I do appreciate the frustration people have,
personally.  This is just one of those things you need to understand
about Gentoo, and then weigh the pros vs the cons when you choose what
distro to use.  If you want a distro that will just accept daily
updates with zero fuss, that isn't Gentoo.

-- 
Rich

Reply via email to