Commit graph

6649 commits

Author SHA1 Message Date
Mike Conley
161d8c6503 Bug 1568133 - Migrate the rest of the menubar to Fluent. r=fluent-reviewers,flod,Gijs
Original patch by Brendan Dahl <bdahl@mozilla.com>.

Differential Revision: https://phabricator.services.mozilla.com/D46203
2021-01-18 18:23:18 +00:00
Mike Hommey
66a79a59fe Bug 1553230 - Allow to opt-in to automatically update some bootstrapped toolchains. r=firefox-build-system-reviewers,nalexander,mhentges
This adds a --enable-bootstrap build flag that will automatically update
cbindgen, node, clang, sccache, nasm, wine, lucetc, dump_syms, pdbstr,
and winchecksec if they are already installed in ~/.mozbuild.

Eventually, we'll want to allow to install toolchains that weren't
already install, but one step at a time.

This explicitly doesn't cover rustc, which is its own can of worms, or
android-{ndk,sdk}, which are not installed via toolchain artifacts
currently.

Differential Revision: https://phabricator.services.mozilla.com/D101723
2021-01-15 22:15:51 +00:00
Mike Hommey
e4bf32e4f8 Bug 1686888 - Stop building dump_syms. r=gsvelto
Now that we use an external dump_syms, we don't need to build
breakpad's.

This means we also don't need the dump_syms_rust_demangle crate anymore.

Differential Revision: https://phabricator.services.mozilla.com/D101865
2021-01-15 10:31:48 +00:00
june wilde
6c0883d216 Bug 1686629 - Remove extra / from mach vendor's github url construction; r=tjr
Differential Revision: https://phabricator.services.mozilla.com/D101696
2021-01-14 14:48:12 +00:00
Aaron Klotz
8892b9c2f6 Bug 1611554: Part 1 - Add capability for build system to generate files during pre-export tier when building GeckoView; r=nalexander,rstewart
These are the minimum changes that we need to make to common build system code
to allow us to generate files during pre-export.

We add a `required_before_export` flag to `GeneratedFile` to indicate when a
particular file must be generated in `pre-export`. We set that flag when there
are `.jinja` input files and we're configured for a GeckoView build, otherwise
it is set to `False`.

Then the recursive `make` backend assigns any `GeneratedFile`s that have
`required_before_export` set to run in the `pre-export` tier.

Differential Revision: https://phabricator.services.mozilla.com/D82576
2021-01-13 01:19:20 +00:00
Butkovits Atila
bcdf48f6d6 Backed out 3 changesets (bug 1611554) for causing bustage on recurse.mk. CLOSED TREE
Backed out changeset bb1ce63d73ec (bug 1611554)
Backed out changeset 0d4317da1006 (bug 1611554)
Backed out changeset dc905e5db0cc (bug 1611554)
2021-01-13 03:16:17 +02:00
Aaron Klotz
a0981d658b Bug 1611554: Part 1 - Add capability for build system to generate files during pre-export tier when building GeckoView; r=nalexander,rstewart
These are the minimum changes that we need to make to common build system code
to allow us to generate files during pre-export.

We add a `required_before_export` flag to `GeneratedFile` to indicate when a
particular file must be generated in `pre-export`. We set that flag when there
are `.jinja` input files and we're configured for a GeckoView build, otherwise
it is set to `False`.

Then the recursive `make` backend assigns any `GeneratedFile`s that have
`required_before_export` set to run in the `pre-export` tier.

Differential Revision: https://phabricator.services.mozilla.com/D82576
2021-01-13 00:24:03 +00:00
Nick Alexander
e74edb8950 Bug 1686089 - Make mach package-multi-locale handle Desktop on macOS. r=zbraniecki
There's a macOS-specific wrinkle for browser/ that populates the
`.app` directory.  This makes that happen as part of `mach
package-multi-locale`.  It's the equivalent, I suppose, of `mach
android assemble-app` for Desktop.

Differential Revision: https://phabricator.services.mozilla.com/D101502
2021-01-12 23:12:40 +00:00
Connor Sheehan
57d304dec4 Bug 1686333: don't install libpython2-dev r=firefox-build-system-reviewers,mhentges
Seems it isn't always available. Since Py2 is optional anyways, it
shouldn't cause failures in `mach bootstrap`.

Differential Revision: https://phabricator.services.mozilla.com/D101499
2021-01-12 21:55:57 +00:00
Connor Sheehan
5f3ac9bc5b Bug 1684915: install Python development headers during bootstrap on Fedora/Debian flavors r=firefox-build-system-reviewers,mhentges
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
2021-01-12 20:35:24 +00:00
Dan Mosedale
e91d8deeea Bug 1684936 - update NodeJS to 10.23.1 for latest sec fixes r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D100810
2021-01-07 17:06:42 +00:00
Connor Sheehan
44d4f310aa Bug 1685811: recommend saving bootstrap.py to disk instead of piping directly to python r=mhentges DONTBUILD
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
2021-01-11 16:53:32 +00:00
ankushduacodes
fd084434a1 Bug 1684348 - Patching error occuring while running brew cask list as this method has been deprecated by homebrew r=mhentges
Differential Revision: https://phabricator.services.mozilla.com/D100496
2021-01-08 19:51:41 +00:00
Mitchell Hentges
633efc7476 Bug 1680630: Generate android mozconfig without pkg manager r=nalexander
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
2021-01-05 20:30:56 +00:00
Mitchell Hentges
f4a03e538f Bug 1680802: Install pylint requirements with legacy resolver r=firefox-build-system-reviewers,sheehan,glandium
pylint_requirements.txt fail to install with the new pip resolver due
to a conflict between astroid and lazy-object-proxy.
Rather than bumping those packages and handling the potential fallout,
the package-upgrade has been deferred and we will use the legacy
resolver in the interrim.

Differential Revision: https://phabricator.services.mozilla.com/D99940
2021-01-05 20:14:25 +00:00
Connor Sheehan
1266f6cfb7 Bug 1684584: move call to _check_clobber to mach build instead of running in _run_client_mk r=firefox-build-system-reviewers,mhentges
The `AUTOCLOBBER` mozconfig option is reliably causing builds to fail when
a clobber is triggered. When we auto-clobber a build we do so after running
`configure` but before running `make client.mk`. This means we destroy all
the gathered information from the `configure` step in the objdir and then
attempt to run `make` using the previously destroyed information.

This commit moves the call to `_check_clobber` to an earlier stage in the
build process, before `configure` is called, so any clobber that takes place
will happen before setting up the objdir via `configure`.

Since `_check_clobber` is only called once in the codebase, and both cases
are now adding clobber metrics one after another, we remove the metrics
gathering from `_check_clobber` and rely on callers to set metrics instead.

Also clean up some nested `if` statements that can be flattened.

Differential Revision: https://phabricator.services.mozilla.com/D100794
2021-01-06 17:19:34 +00:00
Connor Sheehan
3d9fb0766a Bug 1684584: add a comment describing what _check_clobber does r=firefox-build-system-reviewers,mhentges
This function has a few code paths and has a slightly confusing return value.
Add a comment describing what it does and what the return value actually
means.

Differential Revision: https://phabricator.services.mozilla.com/D100793
2021-01-06 17:07:51 +00:00
Connor Sheehan
0e3bf9f599 Bug 1684584: do not encode topobjdir before printing to screen during clobber r=firefox-build-system-reviewers,mhentges
Since the printed value is a `str` anyways, this causes the converted `bytes`
to be printed to the terminal as `b'/path/to/topobjdir'`. Just print the `str`
version to the screen instead.

Differential Revision: https://phabricator.services.mozilla.com/D100792
2021-01-06 01:53:13 +00:00
Mike Conley
1dcbb9ec4d Bug 1682022 - Fork strings from the context menu and browser.dtd for use in the AppMenu. r=flod,fluent-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D100832
2021-01-06 08:04:06 +00:00
Andi-Bogdan Postelnicu
d7fb68e56d Bug 1683613 - For non-unified build have a task that runs checks when merging to mozilla-central r=mhentges
Differential Revision: https://phabricator.services.mozilla.com/D100796
2021-01-05 19:40:23 +00:00
Connor Sheehan
813445ccd8 Bug 1678668: print sentry error report number on mach command failure r=firefox-build-system-reviewers,mhentges
When mach errors out, an error report is sent to Sentry. This error
report contains information about the state of the interpreter during
the failure, details about the environment, installed packages and more.
Having this information available immediately when attempting to resolve
a bug report is generally desirable, instead of going through a back-and-forth
needinfo tag on Bugzilla or spending time asking the reporter questions on
Matrix.

This commit captures the Sentry ID returned from `sentry_sdk.capture_exception`
and prints it to the screen. If a user adds this line to their bug report (as
the error messages suggest) a build team member can enter this number into
Sentry to identify the exact report and debug the error. At minimum this will
reduce the amount of back-and-forth between the reporter and the assignee
required to resolve a bug. Optimally it should make bugs easier to spot and
reduce the time spent on end user support requests.

To use the Sentry ID to identify information about a specific bug report, the
bug assignee should open the Mozilla Sentry page for the `mach` project and
paste the ID into the search box, which will produce the full stack trace with
all submitted information.

Differential Revision: https://phabricator.services.mozilla.com/D100247
2021-01-05 16:39:22 +00:00
Sylvestre Ledru
afb5a86375 no bug - doc: disable flake8 check on the long line. r=rmaries CLOSED TREE DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D100795
2021-01-05 16:03:45 +00:00
Sylvestre Ledru
635ee5f1cd no bug - doc: replaces mdn links by in-tree docs r=marco,andi DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D100782
2021-01-05 15:46:00 +00:00
Cosmin Sabou
8a46d2e9d6 Backed out 3 changesets (bug 1680802, bug 1680630) for turning Bug 1521378 into permafail. CLOSED TREE
Backed out changeset 3464c8f10994 (bug 1680630)
Backed out changeset 591d32364c0f (bug 1680802)
Backed out changeset 3e9350fd509d (bug 1680802)
2021-01-04 18:47:44 +02:00
Mitchell Hentges
043990b9c4 Bug 1680630: Generate android mozconfig without pkg manager r=nalexander
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
2020-12-17 17:41:39 +00:00
Mitchell Hentges
cdf668d1ae Bug 1680802: Install pylint requirements with legacy resolver r=firefox-build-system-reviewers,sheehan,glandium
pylint_requirements.txt fail to install with the new pip resolver due
to a conflict between astroid and lazy-object-proxy.
Rather than bumping those packages and handling the potential fallout,
the package-upgrade has been deferred and we will use the legacy
resolver in the interrim.

Differential Revision: https://phabricator.services.mozilla.com/D99940
2021-01-04 15:20:21 +00:00
Mitchell Hentges
e370b9e0e8 Bug 1677994: Clarify that configure executes progs without using shell r=firefox-build-system-reviewers,dmajor,glandium
Some distros include flags when they specify the location of a binary,
such as: `XARGS=xargs -r`.
This was confusing in `configure`, since:
* We require that environment variables contain only path
  overrides (without flags).
* The error message thrown when configure chokes was unclear: "why
  would `$ xargs -r` fail?"

This patch should make our "path-only" requirement more clear.

Differential Revision: https://phabricator.services.mozilla.com/D100044
2021-01-04 15:18:33 +00:00
Andi-Bogdan Postelnicu
8f74adf68e Bug 1683479 - for clangd pass arguments to clang-tidy as string instead as list. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D100184
2020-12-21 10:01:59 +00:00
longsonr
5bc0a7bf2c Bug 1683929 - fix brew list r=mhentges
Differential Revision: https://phabricator.services.mozilla.com/D100347
2020-12-22 19:38:46 +00:00
Mike Conley
5785d877ce Bug 1682022 - Fluent migrations for bookmarks and menubar string changes. r=flod
Differential Revision: https://phabricator.services.mozilla.com/D100062
2020-12-18 19:56:45 +00:00
Andi-Bogdan Postelnicu
da4ccdb84c Bug 1675417 - static-analysis autotest for clang-tidy should filter out colours. r=sylvestre
Differential Revision: https://phabricator.services.mozilla.com/D100028
2020-12-18 17:56:57 +00:00
Tarek Ziadé
4c874857ed Bug 1682829 - Automate a fuzzing smoke test in the CI r=decoder
Adds a smoke test script we can use in the CI to smoke test Firefox prior to
bigger tests.

Differential Revision: https://phabricator.services.mozilla.com/D100008
2020-12-17 13:22:16 +00:00
Connor Sheehan
7e2347b01a Bug 1681560: install native packages using requirements files with pinned hashes r=firefox-build-system-reviewers,mhentges
At the moment installing Python packages with native code is done by calling
`pip install <package>` and does not enforce any SHA hash for installed
dependencies, nor does it enforce a specific version to be installed.

This commit adds `requirements.in` and `requirements.txt` files for native
packages and changes these packages to be installed by running `pip install`
and passing the requirements file for the package. This allows us to pin the
SHA of the various dependencies. The `.txt` files are generated using
`pip-compile`.

We also add the new requirements files to the sparse profile for `mach`.

Differential Revision: https://phabricator.services.mozilla.com/D99912
2020-12-16 21:02:02 +00:00
Dorel Luca
780ce73d25 Backed out 2 changesets (bug 1680802, bug 1680630) for Linting failure. CLOSED TREE
Backed out changeset 9385e7989433 (bug 1680630)
Backed out changeset 19db3f7eb204 (bug 1680802)
2020-12-16 01:07:11 +02:00
Mitchell Hentges
1a678bc9e3 Bug 1680630: Generate android mozconfig without pkg manager r=nalexander
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
2020-12-15 21:14:01 +00:00
Narcis Beleuzu
074a2d3400 Backed out 2 changesets (bug 1680802, bug 1680630) for linting failure. CLOSED TREE
Backed out changeset 14747923c401 (bug 1680630)
Backed out changeset 3fbd3ae18e3f (bug 1680802)
2020-12-15 22:39:07 +02:00
Mitchell Hentges
85956749dc Bug 1680630: Generate android mozconfig without pkg manager r=nalexander
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.

Depends on D99482

Differential Revision: https://phabricator.services.mozilla.com/D99496
2020-12-11 19:08:02 +00:00
Bob Clary
24d00e310e Bug 1681112 - python3 - python/mozbuild/mozbuild/configure/lint.py fix types.CodeType arguments. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D98983
2020-12-09 00:52:39 +00:00
Butkovits Atila
c05a4ae674 Bug 1533760- lint fix. a=fix. CLOSED TREE 2020-12-10 10:48:22 +02:00
Petr Sumbera
f595ff8f0f Bug 1533760 - Solaris should use linker symbols file too r=glandium
This was missed from fix for:
  Bug 1651082 - Add support for Solaris linker

Differential Revision: https://phabricator.services.mozilla.com/D97876
2020-12-10 07:50:32 +00:00
Mitchell Hentges
e69bd745e0 Bug 1680306: Don't set LLVM_PROFDATA for non-clang PGO builds r=firefox-build-system-reviewers,dmajor
LLVM_PROFDATA is only relevant when LLVM is being used.

Differential Revision: https://phabricator.services.mozilla.com/D99116
2020-12-08 21:43:10 +00:00
june wilde
1dc0b456da Bug 1681173 - Add updatebot key to moz.yaml file schema; r=tjr
Differential Revision: https://phabricator.services.mozilla.com/D98966
2020-12-08 18:25:37 +00:00
Mitchell Hentges
c2ca80d71f Bug 1680547: Bump glean_sdk to a version with a source package r=firefox-build-system-reviewers,glandium
Our old version of `glean_sdk` only had pip wheels, which meant that
un-wheeled machines had no option for building the package.

Differential Revision: https://phabricator.services.mozilla.com/D98795
2020-12-08 15:50:08 +00:00
Mitchell Hentges
16222ee4ed Bug 1680162: Install python packages after system packages r=firefox-build-system-reviewers,glandium
Native python packages will probably require python headers. For some
systems, these are available in a separate system package (such as
python[3]-dev).

If the user is bootstrapping with "--no-system-changes", we just
try to install these native packages and fail gracefully if required
headers aren't installed.

Differential Revision: https://phabricator.services.mozilla.com/D98530
2020-12-08 15:35:05 +00:00
Mitchell Hentges
1480e86815 Bug 1680675: Re-adds manual zstandard installation for CI r=firefox-build-system-reviewers,dmajor
The CI environment doesn't bootstrap/`create-mach-environment`, so
native modules (such as zstandard) aren't installed.
`./mach artifact install` is run in CI and needs `zstandard`, so we
must install it ad-hoc.

Differential Revision: https://phabricator.services.mozilla.com/D98794
2020-12-07 22:19:29 +00:00
Sylvestre Ledru
c4d12fb790 Bug 1680635 - clang-format: to help with debugging, show the version used in the CI r=linter-reviewers,andi DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D98812
2020-12-07 10:08:32 +00:00
Kevin Jacobs
c27baf9ddb Bug 1678079 - Add PSM support and xpcshell tests for ECH. r=keeler,kershaw
This patch enables PSM and Firefox to use TLS 1.3 Encrypted Client Hello (draft -08). Specifically:
  - Compile NSS with NSS_ENABLE_DRAFT_HPKE=1
  - Add ECH "public_name" handling in SSLServerCertVerification.cpp (see: https://tools.ietf.org/html/draft-ietf-tls-esni-08#section-6.3.2)
  - Adds `mIsAcceptedEch` to TransportSecurityInfo, and xpcshell tests for ECH use cases
  - Adds EncryptedClientHelloServer to facilitate the xpcshell tests
  - Un-ifdef Set/GetEchConfigs code in nsNSSIOLayer.cpp. Also reverted the Base64 encoding and decoding, as the data returned from DNS is already decoded (wire-format).

Differential Revision: https://phabricator.services.mozilla.com/D92651
2020-12-04 15:26:17 +00:00
Gregory Mierzwinski
50dfc2cb3a Bug 1672142 - Update mozperftest perfdocs to include new test. r=tarek,perftest-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D98773
2020-12-04 15:47:22 +00:00
Tarek Ziadé
0269049986 Bug 1672142 - Add perf test for the controlled website r=sparky,dragana
Differential Revision: https://phabricator.services.mozilla.com/D94089
2020-12-04 14:56:43 +00:00
Emilio Cobos Álvarez
106ebf10ec Bug 1680654 - Update rustc version used in test_toolchain_configure. r=glandium,firefox-build-system-reviewers DONTBUILD
The min version was updated to 1.47.0 in bug 1680080.

Differential Revision: https://phabricator.services.mozilla.com/D98707
2020-12-04 05:12:08 +00:00