Those are all very different levels of difficulty IMO:
Linux is almost trivially easy, only slightly harder than the usual configure && make and has very few dependencies.
Firefox is pretty painful but it's doable with a decent amount of care and bandwidth.
Chromium is a fairly typical google project where the recommended first step to building it is to become a google employee but some alternative workarounds are also available if that's not practical.
Nah building is fine, just follow the steps from Debian/Ubuntu/whateverdistro . But trying to contribute is fun. By the time you've danced all the hoops to allow you to contribute, some Google employee has already refactored the code around the bug. Then you have to be fast enough to get your updated patch applied before someone else has reorganized the code again...
At some point I started wondering if indeed I'd get the fix in faster by starting to practice whiteboard interviews.
> ...some Google employee has already refactored the code around the bug. Then you have to be fast enough to get your updated patch applied before someone else has reorganized the code again...
For what it's worth, this is how it work's if you're a Google employee too.
The first time I had a reason to build Chromium was ten years ago. I was using a 32-bit machine with 4 GB of RAM, and that's where the story ends.
Re:Engineering code quality in Firefox
by freeboson on Wednesday April 22, 2020 @09:24PM
(#22951927)
Do you have to build chromium with blaze? Or does it use e.g. cmake or something?
It's uses gn, a build system developed for Chromium. That said, on an Ubuntu system the steps to build Chromium are fairly well-documented and straightforward, as long as you have an appropriately beefy system (unfortunately it's a long wait and a fair amount of RAM is required, and Googlers tend to use a distributed build system).
https://chromium.googlesource.com/chromium/src/+/master/docs...
Re:Engineering code quality in Firefox
by tedmielczarek on Thursday April 23, 2020 @08:17AM
(#22955120)
gn is of course a meta-build system, the initials stand for "generate ninja". ninja does the actual build execution. The Firefox build system has a similar homegrown frontend called mozbuild, which generates Makefiles for the actual build.
I think at scale (according to Wikipedia the 5.6 release has ~33M lines of code) the Linux kernel might be one of the easiest (and quickest) projects to compile[1].
[1]: https://techgage.com/wp-content/uploads/2019/11/Compile-Perf...
Re:Engineering code quality in Firefox
by gpderetta on Wednesday April 22, 2020 @05:58AM
(#22943931)
I haven't compiled my own kernel in at least 15 year but I remember it was quite easy (is make menuconfig still the way to go?). I did have much more free time though.
Re:Engineering code quality in Firefox
by haihaibye on Wednesday April 22, 2020 @08:06AM
(#22944646)
Surely most of those lines of codes are optional modules and device drivers - so aren't compiled for most users or this test?
Re:Engineering code quality in Firefox
by Polylactic_acid on Wednesday April 22, 2020 @01:58AM
(#22942698)
I had to compile linux once and I found the process to be trivial. My distro had a guide for how to do it and then how load the kernel in to grub and it was basically just copy/paste
At first glance, this sounds terrible. But when compared to software projects of comparable size, Firefox is hardly unique. Compare to compiling Chromium for example, or even the Linux kernel.