MozillaBuild: Difference between revisions

3,342 bytes added ,  26 January 2024
→‎Windows Terminal: Add setting the environment variable "USE_MINTTY": "0" since the MozillaBuild 4.1 requires that set to not escape the Windows terminal.
(Update for MozillaBuild 3.2)
(→‎Windows Terminal: Add setting the environment variable "USE_MINTTY": "0" since the MozillaBuild 4.1 requires that set to not escape the Windows terminal.)
 
(19 intermediate revisions by 7 users not shown)
Line 1: Line 1:
=== Overview ===
=== Overview ===
MozillaBuild is a meta-installer that provides everything needed to build Mozilla on Windows, sans Visual C++. Its source lives in https://hg.mozilla.org/mozilla-build/. Bugs should be filed in [https://bugzilla.mozilla.org/enter_bug.cgi?product=mozilla.org&component=MozillaBuild mozilla.org :: MozillaBuild].  For information about building Mozilla on Win32, [https://developer.mozilla.org/en/docs/Windows_Build_Prerequisites see the Mozilla Developer Center page].
MozillaBuild is a meta-installer that provides everything needed to build Mozilla on Windows, sans Visual C++. Its source lives in https://hg.mozilla.org/mozilla-build/. Bugs should be filed in [https://bugzilla.mozilla.org/enter_bug.cgi?product=mozilla.org&component=MozillaBuild mozilla.org :: MozillaBuild].  For information about building Mozilla on Win32, [https://firefox-source-docs.mozilla.org/setup/windows_build.html#building-firefox-on-windows see the Firefox Source Docs page].


=== Current Version ===
=== Current Version ===
The current version of MozillaBuild is 3.2. It is available on [https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe ftp.mozilla.org].
The current version of MozillaBuild is 4.1. It is available on [https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe ftp.mozilla.org].


=== To Upgrade From A Previous Version ===
=== To Upgrade From A Previous Version ===
Line 9: Line 9:
Upgrading from an earlier MozillaBuild installation is straightforward but each step is important.
Upgrading from an earlier MozillaBuild installation is straightforward but each step is important.


# Delete your current MozillaBuild environment by moving your MozillaBuild folder into the trash. If you can't remove the existing installation, you probably have a terminal open or ssh-agent running. Terminate that process and try again.
# Delete your current MozillaBuild environment by moving your MozillaBuild folder into the trash. If you can't remove the existing installation, you probably have a terminal open or watchman or ssh-agent running. Terminate that process and try again.
# Install the new MozillaBuild release.  
# Install the new MozillaBuild release.  
# If you had previously enabled Mintty, you will need to do so again by adding <tt>SET USE_MINTTY=1</tt> to the top of start-shell.bat.
# Run <tt>./mach mercurial-setup --update-only</tt> to ensure that the version-control-tools repository is current (<b>Mercurial extensions may break otherwise</b>).
# Clobber any trees you have by running <tt>./mach clobber</tt> (<b>build errors may occur otherwise</b>).
# Clobber any trees you have by running <tt>./mach clobber</tt> (<b>build errors may occur otherwise</b>).
# Re-run <tt>./mach bootstrap</tt> to ensure that your Rust toolchain is up-to-date.
# Re-run <tt>./mach bootstrap</tt> to ensure that your tools are up-to-date. Ensure that you agree to run the Mercurial configuration wizard to ensure that its extensions are up-to-date.
 
=== Windows Terminal ===
 
It's possible to use Windows Terminal instead of the Command Prompt when using MozillaBuild.
To do so, add the following profile to the Windows Terminal settings JSON file:
 
{
    "name": "MozillaBuild",
    "commandline": "C:/mozilla-build/start-shell.bat -here",
    "environment":
    {
        "USE_MINTTY": "0"
    },
}
 
Note that:
* The <code>-here</code> flag can only be provided for MozillaBuild 4.0 and newer. Remove it from <code>commandline</code> if you're using MozillaBuild 3.4 or earlier.
* Additionally, [https://bugzilla.mozilla.org/show_bug.cgi?id=1748762 the <code>"startingDirectory"</code> option and the <code>wt -d</code> flag don't work] unless <code>-here</code> is provided.
 
=== Technical Details ===
The MozillaBuild package contains other software prerequisites necessary for building Mozilla, including [https://www.msys2.org/ an MSYS2 environment],
[https://www.mercurial-scm.org/ <code>Mercurial</code>], Python, NSIS, and UPX, as well as optional but useful tools such as wget and emacs.
Note that the "UNIX-like" environment provided by MozillaBuild is only really useful for building and committing to the Mozilla source. Many command line tools you would expect in a modern Linux distribution are not present, and it's not possible to install them with a package manager.
 
MozillaBuild (As of 4.0.2) modifies only one Windows registry value: <code>HKEY_CURRENT_USER\Console\VirtualTerminalLevel=1</code>. This is set to ensure that [https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences Virtual Terminal Processing] is enabled for all terminals so that [https://en.wikipedia.org/wiki/ANSI_escape_code ANSI escape sequences] are parsed correctly.
 
===== Command Prompt Tips and Caveats =====
* To paste into this window, you must right-click on the window's title bar, move your cursor to the “Edit” menu, and click “Paste”. You can also set “Quick Edit Mode” in the “Properties” menu and right-click the window to paste your selection.
* The MSYS2 root directory is located at<code>/c/mozilla-build/msys2/</code> (assuming the default installation directory).
** For MozillaBuild 3.4 and older, the MSYS root directory can be found at <code>/c/mozilla-build/msys/</code> instead.
* As of MozillaBuild 4.0, [https://cygwin.com/cygwin-ug-net/cygpath.html <code>cygpath</code>] can be used to convert between path types:
 
To convert from a Windows path to a Unix-y one, such as using MozillaBuild to edit a file printed by <code>hg</code> (<b>remember to use single-quotes here!</b>)
 
$ cygpath -u 'C:\mozilla-source\mozilla-unified\README.txt'
/c/mozilla-source/mozilla-unified/README.txt
 
To convert from a Unix-y path to a Windows one, such as for copying a path printed by MozillaBuild to open in your Windows-native IDE:
 
$ cygpath -w '/c/mozilla-source/mozilla-unified/README.txt'
C:\mozilla-source\mozilla-unified\README.txt


=== Release Notes ===
=== Release Notes ===
* [https://groups.google.com/a/mozilla.org/g/dev-platform/c/hF51Q3j6ca8 MozillaBuild 4.1]
* [https://groups.google.com/a/mozilla.org/g/dev-platform/c/E9E53vZBfZI MozillaBuild 4.0.2]
* [https://groups.google.com/a/mozilla.org/g/dev-platform/c/R4RyMxexyU8 MozillaBuild 4.0.1]
* [https://groups.google.com/a/mozilla.org/g/dev-platform/c/0GHhML7tY6c MozillaBuild 4.0]
* [https://groups.google.com/a/mozilla.org/g/dev-platform/c/MzWYQ0NtXos MozillaBuild 3.4]
* [https://groups.google.com/d/msg/mozilla.dev.platform/oQk9k9-co54/k5FaAMg2BwAJ MozillaBuild 3.3]
* [https://groups.google.com/d/msg/mozilla.dev.platform/yJY5Ra0vJLQ/SsK9O-eoDgAJ MozillaBuild 3.2]
* [https://groups.google.com/d/msg/mozilla.dev.platform/yJY5Ra0vJLQ/SsK9O-eoDgAJ MozillaBuild 3.2]
* [https://groups.google.com/d/msg/mozilla.dev.platform/Hy-LPWqJxd8/N1-AzRfhBAAJ MozillaBuild 3.1.1]
* [https://groups.google.com/d/msg/mozilla.dev.platform/Hy-LPWqJxd8/N1-AzRfhBAAJ MozillaBuild 3.1.1]