Blog: 2022-11-14

From razwiki
Jump to navigation Jump to search

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