diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md')
-rw-r--r-- | devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md b/devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md new file mode 100644 index 0000000000..4159bedea6 --- /dev/null +++ b/devtools/docs/getting-started/setting-up-mozilla-central-for-macOS.md @@ -0,0 +1,191 @@ +## Table of contents + +To set up `mozilla-central`, follow parts 1-6. Part 7 is for debugging common errors that may pop up during the process. + +1) Before you start +2) Bootstrapping your modules +3) Cloning mozilla-central +4) Bootstrapping mozilla-central +5) Setting up arcanist and moz-phab +6) Making your first practice patch +7) Common errors + +## Before you start + +1) Install [Xcode](https://developer.apple.com/xcode/). +2) Install [Homebrew](https://brew.sh/). + +## Bootstrapping your modules + +1) Create a "src" directory for yourself under your home directory: +``` +mkdir src && cd src +``` + +2) Download the [bootstrap.py](https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py) script and save it in your `src/` directory. + +3) Run the bootstrap script with: +``` +python bootstrap.py +``` + +4) Follow the prompts, which should be mostly Yes (`Y`). One of the prompts will ask you if you want to clone mozilla-unified. Leave the destination field empty and hit Enter. + +## Cloning mozilla-central + +In your `src` folder run the following: +``` +hg clone https://hg.mozilla.org/mozilla-central/ mozilla-central +``` + +Your directory should now look something like this: +``` +src + |--- mozilla-central + |--- bootstrap.py +``` + +Go ahead and open your cloned `mozilla-central` folder: +``` +cd mozilla-central +``` + +## Bootstrapping mozilla-central + +1. Run the command below to bootstrap your mozilla-central: +``` +./mach bootstrap +``` + +2. At the end of the bootstrapping process, it will ask you to create a `mozconfig` file. Create a file named `mozconfig` in the `mozilla-central` folder, and paste the following. Afterwards, save that file: +``` +ac_add_options --enable-artifact-builds +``` + +3. Run the command below to build mozilla-central +``` +./mach build +``` + +4. If your build is successful, it should tell you that you can now run `./mach run`. Go ahead and do that to run Firefox! +``` +./mach run +``` + +## Setting up arcanist and moz-phab + +Follow these instructions here: https://moz-conduit.readthedocs.io/en/latest/arcanist-macos.html. + +If at the end of the instructions you try to run `moz-phab -h` and it can't find the command, edit your `.bash_profile`: +``` +sudo nano ~/.bash_profile +``` + +Enter your password, and then paste the string below into that file: +``` +export PATH="$HOME/.mozbuild/arcanist/bin:$HOME/.mozbuild/moz-phab:$PATH" +``` + +Restart your terminal, and `moz-phab -h` should now work as expected. + +## Making your first practice patch + +To verify that everything works correctly, try submitting a practice patch. These steps are primarily based off of https://moz-conduit.readthedocs.io/en/latest/arcanist-user.html. + +Before proceeding, make sure to create a [Phabricator account](https://phabricator.services.mozilla.com). + +1) Go into your mozilla-central folder and setup arc: +``` +cd mozilla-central +arc install-certificate +``` + +2) Using your editor, create a test file named `testfile`. + +3) Check to see if your `testfile` is detected and identified as an untracked file: +``` +hg status +# `? testfile` should be logged in PINK +``` + +4) Track your `testfile`: +``` +hg add testfile +``` + +5) Check that the `testfile` is now identified as a tracked file: +``` +hg status +# `A testfile` should be logged in GREEN +``` + +6) Commit the tracked changes: +``` +hg commit -m "Bug N/A - first test patch, please ignore r=davidwalsh" +``` + +7) Verify the commit by checking your commit logs: +``` +hg log +# Your "Added test file" should appear at the top of the log +``` + +8) Submit your patch: +``` +arc diff +# this should open a text file with VIM, just fill it similarly to the one below +``` + +``` +Bug N/A - first test patch, please ignore r=davidwalsh + +Summary: Test patch to see if I set MC correctly. Referring to a benign bug that's CLOSED WONTFIX + +Test Plan: N/A + +Reviewers: davidwalsh + +Subscribers: + +Bug #: 1395261 +``` + +### Finished submitting your patch? +Double check in Phabricator that it did go through: https://phabricator.services.mozilla.com + +## Common Errors + +### Checking for rustc... not found +``` +checking for rustc... not found +checking for cargo... not found +``` + +Install rust and cargo with `curl https://sh.rustup.rs -sSf | sh` and then restart your terminal. Afterwards, install cbindgen with `cargo install cbindgen`. + +### Baldrdash +``` +`Common error: failed to run custom build command for `baldrdash v0.1.0 (directory here)` +``` +First, delete any existing `gecko-dev` folder that you might have cloned. Afterwards, delete your `mozilla-central` folder and repeat the **Cloning Mozilla Central** steps above. + +If you still run into the same error, reinstall llvm with `brew uninstall llvm && brew install llvm`. Again, delete your `mozilla-central` folder and repeat the **Cloning Mozilla Central** steps above. + +### Error running mach +``` + 0:00.73 /usr/bin/make -f client.mk -s + 0:16.13 Error running mach: + 0:16.13 ['--log-no-times', 'artifact', 'install'] +``` +Delete your `mozilla-central` folder and repeat the **Cloning Mozilla Central** steps above. + +### Packaging specialpowers@mozilla.org.xpi... +``` +1:28.71 Packaging specialpowers@mozilla.org.xpi... + 1:29.14 Traceback (most recent call last): + 1:29.14 File "/Users/jarilvalenciano/Desktop/src/mozilla-central/config/nsinstall.py", line 188, in <module> + 1:29.14 sys.exit(_nsinstall_internal(argv[1:])) + 1:29.14 File "/Users/jarilvalenciano/Desktop/src/mozilla-central/config/nsinstall.py", line 149, in _nsinstall_internal + 1:29.14 copy_all_entries(args, target) +``` +Just run `./mach build` again.
\ No newline at end of file |