While here, remove the unused clippyProcess.config. And because we need
to manipulate `$PATH` before running `cargo`, use the same wrapping
function in `get_clippy_version`.
Differential Revision: https://phabricator.services.mozilla.com/D113902
Newer versions of Windows don't allow un-elevated processes to access
the list of Windows Defender exclusions.
Rather than incorrectly falling back to assuming that there's no
exclusions, we now instead skip the exclusion check.
Differential Revision: https://phabricator.services.mozilla.com/D112648
Since Python 3, attempting to fetch a registry key that doesn't exist
throws `FileNotFoundError`, not `WindowsError: [Error 2]`.
Differential Revision: https://phabricator.services.mozilla.com/D112647
As an intermediate step to allow mach commands as standalone functions, the MachCommandBase
subclass instance that currently corresponds to self has to be made available as a separate
argument (named command_context).
Differential Revision: https://phabricator.services.mozilla.com/D109650
Check if a user is a Mozilla employee by checking their
Bugzilla groups, or checking if their VCS email ends
with "@mozilla.com".
When a user is setting up a new build environment, telemetry
will be automatically enabled for them if they are an
employee. If they're not an employee, they'll be asked
if they want to opt in.
Differential Revision: https://phabricator.services.mozilla.com/D106315
As an intermediate step to allow mach commands as standalone functions, the MachCommandBase
subclass instance that currently corresponds to self has to be made available as a separate
argument (named command_context).
Differential Revision: https://phabricator.services.mozilla.com/D109650
During `mach bootstrap` for Firefox desktop, m4 is installed via `libgtk2.0-dev`.
Since we don't install that package for Android bootstrap, this causes
configure failures.
Install `m4` as a common package to fix configure on Android. Since we plan
to remove `libgtk2.0-dev` soon, this will also avoid breakage when that change
lands.
Differential Revision: https://phabricator.services.mozilla.com/D108692
Bootstrap runs mach create-mach-environment, which may or may not
successfully install glean. When it doesn't, it's not useful to ask
whether to enable telemetry when it's not going to work.
Differential Revision: https://phabricator.services.mozilla.com/D108131
Updates `./mach bootstrap` to use `--no-interactive` from global args.
Ensures all bootstrap prompts have a default option.
Differential Revision: https://phabricator.services.mozilla.com/D106814
The retry limit doesn't add much value - if user doesn't want
to answer a prompt, they can CTRL-C.
Additionally, `prompt_yesno` doesn't have a retry limit, so
this increases prompt behaviour consistency.
Differential Revision: https://phabricator.services.mozilla.com/D107122
Xcode hasn't been necessary to build Firefox for a while. Command line
tools are enough, but if Xcode is available, that's also sufficient.
Mach bootstrap, however, for historic reasons, mostly, ends up wanting
to install both, which is a waste of time and disk space.
Differential Revision: https://phabricator.services.mozilla.com/D107770
- Replace urllib2.urlopen with requests.get. We use requests because
http_download_and_hash, which is also used by __main__ uses it already.
- Convert byte strings to unicode strings.
- Don't wrap sys.stdout, and instead explicitly flush when wanted.
Differential Revision: https://phabricator.services.mozilla.com/D107026
Removes MacPorts as an option for package management on OSX. Changes
most error messages to be Homebrew specific, and rips out the `getattr`
based function resolution used to support both managers.
Differential Revision: https://phabricator.services.mozilla.com/D107277
NDK 21 includes `lldb-server`, which we need in order to support
`./mach run --debug` with `lldb`.
The Android SDK manager no longer includes a standalone `lldb` package; perhaps
it was deprecated? Anyway, this appears to currently be the best way to get
`lldb-server` into a location that is easy to find during build configuration.
Differential Revision: https://phabricator.services.mozilla.com/D94379
* Puts the docs in order, so that contributors aren't jumping to the
middle of the page to install system tools, then back to the top to
clone Firefox.
* Removes docs on MacPorts since it's being removed in bug 1688263.
* Removes step to manually install brew packages since that happens
automatically in bootstrap now.
* Simplifies mercurial installation docs
* Removes unnecessary mozconfig-tweaking instructions
* Removes almost-always-unnecessary DEFINE and troubleshooting
information.
Differential Revision: https://phabricator.services.mozilla.com/D102973
Bug 1553230 made configure automatically get toolchain artifacts in some
cases. The artifacts for clang-cl builds are clang.tar.zst, and extract to
clang/. Configure derives the task name from that knowledge, and fails
to find clang-cl tasks because of that.
For consistency, these tasks should be called clang. They are clang
builds anyways, and like any other clang builds, they also contain
clang-cl.
Differential Revision: https://phabricator.services.mozilla.com/D103150
Since zstandard has native code that must be compiled, and that code
uses Python headers, we should be installing those headers as part
of bootstrap.
Most users will have these packages on their machines through various
other means (notably installing `pip`, ie `sudo apt install python3-pip`),
but since it is possible to avoid a pip installation (for example
by installing Mercurial through `yum` and then running bootstrap
immediately after cloning) we should specify these packages as required
by bootstrap.
Differential Revision: https://phabricator.services.mozilla.com/D101479
The current recommendation fails while waiting on user input. Instead, just
save the script to disk as an intermediate step, then invoke it.
Differential Revision: https://phabricator.services.mozilla.com/D101228
Knowing whether `brew` or `macports` is available isn't necessary
to generate the android mozconfig.
This should fix the generation of android mozconfig when a package
manager isn't available.
Differential Revision: https://phabricator.services.mozilla.com/D99496
Knowing whether `brew` or `macports` is available isn't necessary
to generate the android mozconfig.
This should fix the generation of android mozconfig when a package
manager isn't available.
Differential Revision: https://phabricator.services.mozilla.com/D99496