On Mon, Jan 3, 2022 at 12:16 PM Alec Warner <anta...@gentoo.org> wrote:
>
> On Sat, Jan 1, 2022 at 2:22 PM Piotr Karbowski <slashbe...@gentoo.org> wrote:
> >
> > Hi,
> >
> > I'd like to get some insight how others see the concept of narrowing the
> > scope of USE flags in Gentoo.
> >
> > Taking a quote from devmanual:
> >
> >    > USE flags are to control optional dependencies and settings which
> > the user may reasonably want to select.
> >
> > I'd like to focus on the 'reasonably want' here. While it is commonly
> > agreed on that we interface as USE flags only things that make sense to
> > be togglable, it is not always the case. It is not uncommon to see
> > packages that puts every possible option as USE flag which hardly
> > benefit anyone in some cases.
> >
> > It creates artificial choice of USE flag that makes as much sense as
> > building and trying to use solar-powered night vision googles. Possible
> > to be engineered, but makes absolute no sense to exist, yet, there will
> > be someone who will go with it and then things will not work in desired
> > way, bugs will be reported, effort will be wasted on investigation and
> > patching things up.
> >
> > As example I'd like to use 'ipv6' USE flag, at the moment of writing
> > this email there's 351 ebuilds in tree that expose ipv6 as USE flag,
> > allow it to be disabled.
> >
> > The thing is, it's 2022, and it does not make any sense to *not* support
> > IPv6, even if one does not connect to any network with IPv6, there's no
> > harm to just have it there.
> >
> > While I am all for choice, I am for choice on things that do make sense.
> > For instance, Linux kernel can be built with CONFIG_MULTIUSER=n, someone
> > could argue that since Linux kernel, that is user-configured in Gentoo,
> > can be built without support for other than UID 0, then Gentoo should
> > support it. One of the extreme examples of not supporting something that
> > does not make sense to be supported.
> >
> > Beside 'ipv6', there are other USE flags that I have on mind. 'pam'
> > being another of them.
> >
> > Whats your view on it?
>
> I'm trying to understand your principles here. Like on what basis do
> you remove or add flags (in general).
>
> I want to remove:
>  - bash-completion
>  - acl
>  - ldap
>  - policykit
>  - readline
>  - sound
>
> (Part of this is just to have a meta discussion so we settle on some
> driving principles on why we keep one flag over the other.)
>
> I can easily craft a narrative for getting rid of ipv6, for example,
> but I cannot really craft a good narrative for getting rid of pam, or
> policykit, or ldap as flags. So why do we keep some and remove others?

The devmanual has a section on this topic:

https://devmanual.gentoo.org/general-concepts/use-flags/index.html#when-not-to-use-use-flags

Personally, I use the following principles:

Is there an optional build time dependency, and is the package still
useful without said dependency? If so, a USE flag is warranted.

Is there some optional feature/behavior that can only be toggled at
build time? If so, a USE flag is probably warranted.

Is there some optional feature/behavior that can be toggled at run
time (via config)? Does disabling it at build time have a minimal
effect on the installed size? If so, I will NOT add a USE flag.

Reply via email to