Blog: 2022-11-14
Gonna try to compile a couple browsers
Note: would be good to try to do this on a fresh mac machine / vm. But I'll compile it on my macbook air with a bunch of junk on it for starters.
Gonna listen to https://musicforprogramming.net/latest/ episode 65 was not great; I didn't like all the futurist talking stuff, found it distracting
Firefox
Let's start with firefox. https://firefox-source-docs.mozilla.org/setup/macos_build.html
And we're off to the races... /Users/razzi/projects/browser-builds
They want me to install mercurial, ok, that's a bit odd. And a specific, older version, which isn't great.
Experiment: let's try running hg with the latest, version 6.2.3.
Ok now they want me to get the firefox source code with a bootstrap script. Wouldn't it be nice to just clone the source code using standard git/hg?
Now I've downloaded the script, and I'm reading it to see why they use a script at all.
Fun tip: curl can act like wget - download the file - with the -O option, with no parameter.
curl https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py -O
The script sets up generaldelta to be true, but it appears this is not necessary as of mercurial version 3.7
"format.generaldelta=true",
So let's skip that
Now for the actual merge command:
hg clone https://hg.mozilla.org/mozilla-unified
It's running, and it's taking a while. I wonder if there'd be a faster / easier way to do this, maybe using bittorrent?
So this is already a clear bother for users; slow ass cloning.
Found a broken link on https://firefox-source-docs.mozilla.org/contributing/directory_structure.html: "snapshot" links to https://developer.mozilla.org/docs/Mozilla/Developer_guide/Source_Code/Downloading_Source_Archives
Would be good to find how to clone with depth 1
It gave me a helpful warning:
(warning: large working directory being used without fsmonitor enabled; enable fsmonitor to improve performance; see "hg help -e fsmonitor")
The clone is done!!! 3:57pm
Now I'm stuck because I'm missing the rustup command; I guess I have rust version rustc 1.64.0 from homebrew
So I'm uninstalling rust from homebrew and reinstalling from rustup. It wants to add ~/.cargo/bin to my path, and did it for a bunch of non-fish shells I guess:
This path will then be added to your PATH environment variable by modifying the profile files located at: /Users/razzi/.profile /Users/razzi/.bashrc /Users/razzi/.zshenv
Well I added the path to ~/.profile manually and now I have rust installed at 1.65. But rustup which rust
fails with a weird error, let's see if ./mach build
complains. I guess not.
17 minutes in now and I'm going to pause to head out