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.