Back to stories

Comments

6 total · 6 loaded

Ranked by HN
rmunn1hon HN
Also worth noting https://lwn.net/Articles/1097760/ - Gentoo has given up on building Chromium from source, because upstream "do not test their builds with any of their allegedly 'optional' features disabled" and "[i]n the case of Chromium, keeping all the toggle switches working (despite chronic neglect from upstream) is a monumental, nigh-insurmountable task." One maintainer said he could not possibly test all the combinations of USE flags in the Gentoo build, since his laptop took 15-16 hours to compile Chromium (I presume for just one build, which would have to be repeated 2^N times to test all possible flag combinations).

Much more in the LWN article, I'm not going to quote everything.

msdz28mon HN
I wonder how the Helium [0] project solves this, since they also work off of an opinionated-ish Chromium base.

[0] https://helium.computer

I only glanced at Helium's site, but I suspect from what I saw that they pick a status (enabled/disabled) for all those optional features, meaning they just have to test one (or maybe two or four) combinations of `--enable-foo` / `--enable-bar` flags. Whereas Gentoo tried to allow users to set whatever combination they wanted, and that wasn't working so well when upstream wasn't helping.
Mic9243mon HN
Well. Maybe they should just not have so many flags than?
What you're saying is "maybe they should stop being Gentoo". The whole point of Gentoo is customization of your built-from-source packages. (As I recall, but it's been over a decade since I tried it so I might be remembering things wrong). Every optional feature in a piece of software, that would be controlled by some `--with-foo` option to `configure`, gets turned into a USE flag in Gentoo. Packages that have `--with-foo`, `--with-bar`, `--with-baz`, and `--with-quux` then have four USE flags, with 16 possible combinations of enabled or disabled. And the Gentoo maintainers team tries to make sure that all those combinations work, except for ones that obviously contradict each other.

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.

upstream "do not test their builds with any of their allegedly 'optional' features disabled"

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.