MozillaBuild: Difference between revisions

No edit summary
(→‎Windows Terminal: Add setting the environment variable "USE_MINTTY": "0" since the MozillaBuild 4.1 requires that set to not escape the Windows terminal.)
 
(8 intermediate revisions by 2 users not shown)
Line 3: Line 3:


=== Current Version ===
=== Current Version ===
The current version of MozillaBuild is 4.0. 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 11: Line 11:
# 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.
# 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.
# 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 tools are up-to-date. Ensure that you agree to run the Mercurial configuration wizard to ensure that its extensions are 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.
Line 23: Line 22:
     "name": "MozillaBuild",
     "name": "MozillaBuild",
     "commandline": "C:/mozilla-build/start-shell.bat -here",
     "commandline": "C:/mozilla-build/start-shell.bat -here",
    "environment":
    {
        "USE_MINTTY": "0"
    },
  }
  }


Line 28: Line 31:
* 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.
* 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.
* 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 ===
=== Technical Details ===
Line 35: Line 37:
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.
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 does not modify the Windows registry.
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 =====
===== Command Prompt Tips and Caveats =====
Line 54: Line 56:


=== 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/0GHhML7tY6c MozillaBuild 4.0]
* [https://groups.google.com/a/mozilla.org/g/dev-platform/c/MzWYQ0NtXos MozillaBuild 3.4]
* [https://groups.google.com/a/mozilla.org/g/dev-platform/c/MzWYQ0NtXos MozillaBuild 3.4]

Latest revision as of 23:08, 26 January 2024

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 mozilla.org :: MozillaBuild. For information about building Mozilla on Win32, see the Firefox Source Docs page.

Current Version

The current version of MozillaBuild is 4.1. It is available on ftp.mozilla.org.

To Upgrade From A Previous Version

Upgrading from an earlier MozillaBuild installation is straightforward but each step is important.

  1. 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.
  2. Install the new MozillaBuild release.
  3. Clobber any trees you have by running ./mach clobber (build errors may occur otherwise).
  4. Re-run ./mach bootstrap 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:

Technical Details

The MozillaBuild package contains other software prerequisites necessary for building Mozilla, including an MSYS2 environment, Mercurial, 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: HKEY_CURRENT_USER\Console\VirtualTerminalLevel=1. This is set to ensure that Virtual Terminal Processing is enabled for all terminals so that 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/c/mozilla-build/msys2/ (assuming the default installation directory).
    • For MozillaBuild 3.4 and older, the MSYS root directory can be found at /c/mozilla-build/msys/ instead.
  • As of MozillaBuild 4.0, cygpath 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 hg (remember to use single-quotes here!)

$ 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

There are no release notes for 1.1 and below.

Historic Versions

Old versions of MozillaBuild can also be found on ftp.mozilla.org.