Comparing Chromium Development at Google and Igalia
lwn.netMuch more in the LWN article, I'm not going to quote everything.
So it's not Gentoo's decision to have so many flags, it's upstream's decision. I bet the Gentoo maintainers would love it if upstream acknowledged "okay, this 'optional' feature isn't really optional any longer". But they don't, and they continue to have dozens of flags, which Gentoo (due to their build philosophy) dutifully copied and tried to test — an overwhelming task.
That's a weird statement to make though. I would say that it was Gentoo's decision to test for all functionality.
But, even ignoring this for the moment: how does this apply to the linux kernel? Because the config file has TONS of options. Does Gentoo support all of these via use flags? If not, why not? Because that distinction to me would be totally arbitrary.
Because Gentoo has basically three options; let me know if you can think of a fourth option I'm missing.
1. Turn every optional feature from upstream into a USE flag, and test them. Which means testing all the 2^N combinations.
2. Turn every optional feature from upstream into a USE flag, but do not test them. Which means users can end up with untested combinations, some of which have proven in the past to be buggy.
3. Stop turning every optional feature from upstream into a USE flag. Which means giving up on Gentoo's distinguishing characteristics for this package.
Okay, I guess there's a fourth option:
4. Stop packaging the Chromium package at all. Which is what they've ended up doing.
I've noticed this too and it's really annoying. Their CI doesn't even run `gn` for the use-flag permutations, which would take a trivial amount of compute. They could easily compile-but-not-link for every combination of flags in CI too at only a modest compute expenditure. At least that way people who break the #ifdef maze would be forced to fix it.