Граф коммитов

4976 Коммитов

Автор SHA1 Сообщение Дата
Mitchell Hentges d60e22aec0 Bug 1723237: Allow empty lines in python requirements files r=ahal
This allows strategic grouping of dependencies, which can be convenient.

Differential Revision: https://phabricator.services.mozilla.com/D122895
2021-09-03 20:46:24 +00:00
Mitchell Hentges f3c64fd210 Bug 1712133: Add missing space to pypi-optional error message r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D122894
2021-09-03 20:46:24 +00:00
Mitchell Hentges c74698f4b4 Bug 1717051: Remove obsolete virtualenv code r=ahal
The "six"-related comment is no longer relevant, and `here` isn't used.

Differential Revision: https://phabricator.services.mozilla.com/D122885
2021-09-03 20:46:23 +00:00
Mitchell Hentges d9613ed9e7 Bug 1717051: Move arm64 rosetta check to bootstrap r=firefox-build-system-reviewers,glandium
It was originally added to "create-mach-environment" because that would
eventually be called by "./mach bootstrap".
However, as "create-mach-environment" is going away, this moves it
closer to the command that it's meant to impact.

Differential Revision: https://phabricator.services.mozilla.com/D120399
2021-09-03 20:46:23 +00:00
Mitchell Hentges ef3a0ed88c Bug 1717051: Validate if optional dependencies are out-of-date r=ahal
Though it's acceptable for an optional dependency to not be installed,
it *is* a problem if it's installed to the wrong version.

Differential Revision: https://phabricator.services.mozilla.com/D122886
2021-09-03 20:46:22 +00:00
Mitchell Hentges f5b0cb5bc1 Bug 1717051: Rename "mach_bootstrap.py" to "mach_initialize.py" r=firefox-build-system-reviewers,glandium
We've overloaded "bootstrap" to mean three different things:
* The "standalone bootstrap script": `python/mozboot/bin/bootstrap.py`.
  This is to freshly clone a new repo, then run `./mach bootstrap`.
* `./mach bootstrap`: Install necessary dependencies and set up the
  system for development.
* "Mach bootstrap": do the in-process initialization work Mach needs
  before it can run commands.

By using the term "initialize" instead, perhaps we can remove
ambiguity when discussing Mach.

I'm not attached to the name (or this change at all), but I'm interested
in reviewer thoughts :)

Differential Revision: https://phabricator.services.mozilla.com/D120410
2021-09-03 20:46:22 +00:00
Sandor Molnar ed29500ab4 Backed out changeset 150afb585fe2 (bug 1721463) for causing python unit test failures. CLOSED TREE 2021-09-03 23:24:15 +03:00
Cosmin Sabou f4575710bd Backed out 6 changesets (bug 1712151, bug 1725708, bug 1724465) for causing invalid handle xpcshell failures. CLOSED TREE
Backed out changeset 90b9ff20b311 (bug 1725708)
Backed out changeset 75336eb10063 (bug 1725708)
Backed out changeset f438e13f8986 (bug 1724465)
Backed out changeset 11de3a4312bd (bug 1725708)
Backed out changeset 2c6edefd8417 (bug 1712151)
Backed out changeset 9ccf99dae3c7 (bug 1712151)
2021-09-03 22:33:24 +03:00
Molly Howell ddce135a13 Bug 1493174 - Fix running Visual Studio using the mach ide command. r=firefox-build-system-reviewers,mhentges
There are two problems that this patch addresses:
1) The path to the VS solution file that we're using to launch it is malformed,
   because os.path.join is using backslash seperators, but we're passing it a
   path which already contains forward slash seperators, and mixing the two is
   not valid. This is preventing VS from being launched at all.
2) We're throwing if explorer.exe does not return 0 when we call it to launch
   VS, but explorer.exe always returns 1 when run this way, even if it
   succeeded, so we output a spurious exception to the console.

Differential Revision: https://phabricator.services.mozilla.com/D124488
2021-09-03 18:32:05 +00:00
Mitchell Hentges 1c5be829d7 Bug 1725708: `./mach vendor python` should populate from a clean state r=ahal
Rather than deleting the expected target directory of each package
that's being vendored, clear the whole `third_party/python` directory
and re-populate it from scratch.

As part of this, there's an "exclusion" list for packages that can't
be vendored from PyPI.

This has some benefits:
* It'll be harder to forget scraps of files and directories and leave
  them in `third_party/python`.
* The exclusion list makes it more clear which packages are managed
  manually, and the friction it adds to the workflow will guide
  developers to use "requirements.in" instead.

The `test_up_to_date_vendor` test will verify that the vendor directory
is always clean.

Differential Revision: https://phabricator.services.mozilla.com/D123124
2021-09-03 17:31:58 +00:00
Mitchell Hentges 4abd2ed050 Bug 1725708: Move all possible vendored deps to centralized system r=ahal
Note that, as part of adding this packages to the automated vendoring
system, some dependencies were automatically added - most notably,
dependencies of `taskcluster` that become visible with Python 3.6+.

Also, adds `**/.git` to the exclusions because:
* `.git` is part of our `.hgignore`, but
* `.git` is part of the `aiohttp` `tar.gz` file.

Since the file isn't needed for `pip install`-ing `aiohttp`,
and since we want `./mach vendor python` to be a no-op when there's
no requirement changes, we exclude it.

Differential Revision: https://phabricator.services.mozilla.com/D123122
2021-09-03 17:31:57 +00:00
Andrew Halberstadt 67cef7d1ab Bug 1721463 - Set ENABLE_TESTS when generating test backend with an EmptyConfig, r=firefox-build-system-reviewers,mhentges
In 'gen_test_backend.py' we fallback to an 'EmptyConfig' in the event there is
no build environment. We do this for the benefit of tests that don't need a
Firefox build (like Python unittests). Without it, we wouldn't be able to run
e.g |mach python-test python/mozversioncontrol| unless you had a build.

However since this 'EmptyConfig' doesn't have 'ENABLE_TESTS' set, it means any
manifests defined in a 'moz.build' behind the 'TEST_DIRS' variables will not be
discovered.

Differential Revision: https://phabricator.services.mozilla.com/D120386
2021-09-03 17:10:16 +00:00
Mitchell Hentges 894b32dc18 Bug 1723237: Remove `vendor` argument from `install_pip_package()` r=ahal
Now that `piptools` is no longer installed from the vendored location,
there are no remaining cases where we are doing `install_pip_package()`
with a vendored package.

Differential Revision: https://phabricator.services.mozilla.com/D123241
2021-09-03 17:06:05 +00:00
Mitchell Hentges 78827b7e2c Bug 1723237: Use pip-compile directly from vendored location r=ahal
We've been installing `piptools` so that we can use the `pip-compile`
binary. However, we can just as easily do
`python -m piptools compile ...` instead, which also allows us to
skip a redundant install.

Differential Revision: https://phabricator.services.mozilla.com/D123240
2021-09-03 17:06:05 +00:00
Mitchell Hentges 80ed655270 Bug 1728671: Use gettempdir() instead of tempdir r=firefox-build-system-reviewers,glandium
The `tempfile.tempdir` cache value isn't always populated, but
`tempfile.gettempdir()` always is. They both provide the same result.

Differential Revision: https://phabricator.services.mozilla.com/D124261
2021-09-03 13:13:21 +00:00
Dan Minor 18d37eb7a8 Bug 1715232 - Add ICU4X license sha256 to vendor_rust.py r=glandium,mhoye
This adds the sha256 for the ICU4X license as a variable to vendor_rust.py,
so it can be used as we add ICU4X crates. Since there are several projects
ongoing that want to use ICU4X, I think it makes sense to get the license
review done once, early, so that whoever is ready to land code that uses
ICU4X first is not blocked waiting on license review.

Differential Revision: https://phabricator.services.mozilla.com/D123776
2021-09-01 21:55:38 +00:00
Alex Lopez 600206e89e Bug 1696251: Change method names in mach commands to avoid scoping issues when de-classing. r=mhentges
The affected functions would cause an UnboundLocalError if they are moved
to module-level, because using an assignment inside a function makes a
variable local in Python, making it illegal to have a local variable name
be the same as a function name that is called within the same function.
The adopted solution is to rename those functions in preparation for the
future de-classing.

Differential Revision: https://phabricator.services.mozilla.com/D123867
2021-08-30 15:11:43 +00:00
Andi-Bogdan Postelnicu c509382d69 Bug 1717801 - Determine the number of developer who are currently running vscode. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D118587
2021-08-26 07:24:19 +00:00
Andi-Bogdan Postelnicu 0ac52aa9d7 Bug 1725125 - Make a hybrid build system combining non-unified with unified. CLOSED TREE
By hybrid unified system we understand a system that encapsulates modules that are built in the unified mode
but also other modules, like `dom/Animation`, as an example, in the non unified environment.

This approach is desirable since we already have most of the modules transitioned to the non unified system but there are
still some that are not yet compatible, but in the long term this will be done by each module owner and can be also tested
locally using the build system.

If a module can't be built outside the unified method it's `moz.build` config file needs to have `REQUIRES_UNIFIED_BUILD = False`

To also enable this we need to have a flag from `mozconfig`, like:

```
ac_add_options --disable-unified-build
```

Differential Revision: https://phabricator.services.mozilla.com/D122328
2021-08-25 11:21:42 +00:00
Narcis Beleuzu 50dd0540cd Backed out changeset 29d7e91fe721 (bug 1725125) for plain Bp-hybrid bustages 2021-08-25 14:42:09 +03:00
Andi-Bogdan Postelnicu 4b8a4fc95a Bug 1725125 - Make a hybrid build system combining non-unified with unified r=firefox-build-system-reviewers,mhentges,glandium
By hybrid unified system we understand a system that encapsulates modules that are built in the unified mode
but also other modules, like `dom/Animation`, as an example, in the non unified environment.

This approach is desirable since we already have most of the modules transitioned to the non unified system but there are
still some that are not yet compatible, but in the long term this will be done by each module owner and can be also tested
locally using the build system.

If a module can't be built outside the unified method it's `moz.build` config file needs to have `REQUIRES_UNIFIED_BUILD = False`

To also enable this we need to have a flag from `mozconfig`, like:

```
ac_add_options --disable-unified-build
```

Differential Revision: https://phabricator.services.mozilla.com/D122328
2021-08-25 10:46:18 +00:00
Andi-Bogdan Postelnicu 2fc4f70e9b Bug 1725145 - Preparation for the hybrid build env. r=necko-reviewers,firefox-build-system-reviewers,valentin,glandium
Automatically generated path that adds flag `REQUIRES_UNIFIED_BUILD = True` to `moz.build`
when the module governed by the build config file is not buildable outside on the unified environment.

This needs to be done in order to have a hybrid build system that adds the possibility of combing
unified build components with ones that are built outside of the unified eco system.

Differential Revision: https://phabricator.services.mozilla.com/D122345
2021-08-25 10:46:17 +00:00
Mike Hommey f6e2b469e7 Bug 1726474 - Enable wasm sandboxing on 64-bits Windows. r=firefox-build-system-reviewers,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D123042
2021-08-25 07:39:02 +00:00
Mike Hommey b7bcda87f0 Bug 1726474 - Always use clang-type flags when targeting wasm. r=firefox-build-system-reviewers,mhentges
The build system assumes the target compiler is of the same type as the
wasm compiler, but that's not true for wasm32-wasi, which we compile
with clang, while targeting windows, which we compile with clang-cl.
We handle the duality for host/target in a compiler-specific way, but
here, the wasm compiler is always going to be clang.

Differential Revision: https://phabricator.services.mozilla.com/D123041
2021-08-25 07:39:01 +00:00
Mike Hommey 7e072d6610 Bug 1726474 - Remove unrelevant flags from wasm builds. r=firefox-build-system-reviewers,mhentges
RTL flags are flags that chooses which C/C++ runtime library to use
(multi-threaded, debug, etc.). They're only relevant when targeting
Windows, not when targeting wasi.

Frame pointer flags are not relevant to wasm (as a matter of fact,
the same wasm code is generated whether using -fomit-frame-pointer
or -fno-omit-frame-pointer)

Differential Revision: https://phabricator.services.mozilla.com/D123040
2021-08-25 07:39:00 +00:00
Alex Lopez 4ae24b1f1b Bug 1696251: Refactor docstrings in mach commands. r=mhentges,webdriver-reviewers,geckoview-reviewers,agi
The purpose of this is to remove as many docstrings from CommandProvider
classes to make the step of moving commands out of classes simpler.
Where possible, the docstring has been moved to or merged with the function.

Differential Revision: https://phabricator.services.mozilla.com/D123288
2021-08-24 20:16:05 +00:00
Tom Ritter 5c6d7aa348 Bug 1726587: Fix ./mach doc r=mhentges
For whatever reason, ./mach doc is sourcing rewrite_mozbuild.py
causing the ast.get_source_segment function to get redefined.

(We do this redefinition because it is very easy to accidently
use get_source_segment in this code and forget it doesn't
work on Taskcluster.)

So add an exemption for sphinx to pass through to the original
function, but also fix an inifnite loop where we weren't calling
the original function.

Differential Revision: https://phabricator.services.mozilla.com/D123487
2021-08-24 15:31:11 +00:00
Cosmin Sabou 1958e4b9fe Backed out 4 changesets (bug 1726474) for causing windows build bustages. CLOSED TREE
Backed out changeset c7fcc6914b7c (bug 1726474)
Backed out changeset 1dcd8069568e (bug 1726474)
Backed out changeset 938043bb1ca2 (bug 1726474)
Backed out changeset e12c90f66a6c (bug 1726474)
2021-08-24 06:12:08 +03:00
Mike Hommey 7279280783 Bug 1726474 - Always use clang-type flags when targeting wasm. r=firefox-build-system-reviewers,mhentges
The build system assumes the target compiler is of the same type as the
wasm compiler, but that's not true for wasm32-wasi, which we compile
with clang, while targeting windows, which we compile with clang-cl.
We handle the duality for host/target in a compiler-specific way, but
here, the wasm compiler is always going to be clang.

Differential Revision: https://phabricator.services.mozilla.com/D123041
2021-08-24 02:52:19 +00:00
Mike Hommey 79b70bfd95 Bug 1726474 - Remove unrelevant flags from wasm builds. r=firefox-build-system-reviewers,mhentges
RTL flags are flags that chooses which C/C++ runtime library to use
(multi-threaded, debug, etc.). They're only relevant when targeting
Windows, not when targeting wasi.

Frame pointer flags are not relevant to wasm (as a matter of fact,
the same wasm code is generated whether using -fomit-frame-pointer
or -fno-omit-frame-pointer)

Differential Revision: https://phabricator.services.mozilla.com/D123040
2021-08-24 02:52:18 +00:00
Csoregi Natalia 84d67f5d03 Backed out 4 changesets (bug 1726474) for causing crashes. CLOSED TREE
Backed out changeset 5add6784a784 (bug 1726474)
Backed out changeset e2047ab95703 (bug 1726474)
Backed out changeset d53f62933fd0 (bug 1726474)
Backed out changeset 796a54dcb5f0 (bug 1726474)
2021-08-24 04:49:04 +03:00
Mike Hommey 0c793d860d Bug 1726474 - Always use clang-type flags when targeting wasm. r=firefox-build-system-reviewers,mhentges
The build system assumes the target compiler is of the same type as the
wasm compiler, but that's not true for wasm32-wasi, which we compile
with clang, while targeting windows, which we compile with clang-cl.
We handle the duality for host/target in a compiler-specific way, but
here, the wasm compiler is always going to be clang.

Differential Revision: https://phabricator.services.mozilla.com/D123041
2021-08-24 01:01:39 +00:00
Mike Hommey 4fa3c6cc59 Bug 1726474 - Remove unrelevant flags from wasm builds. r=firefox-build-system-reviewers,mhentges
RTL flags are flags that chooses which C/C++ runtime library to use
(multi-threaded, debug, etc.). They're only relevant when targeting
Windows, not when targeting wasi.

Frame pointer flags are not relevant to wasm (as a matter of fact,
the same wasm code is generated whether using -fomit-frame-pointer
or -fno-omit-frame-pointer)

Differential Revision: https://phabricator.services.mozilla.com/D123040
2021-08-24 01:01:38 +00:00
Mike Hommey 909d7d6787 Bug 1726315 - Force `mach build` to be verbose on automation. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D122953
2021-08-18 22:01:32 +00:00
Mike Hommey 50c875f45c Bug 1725855 - Don't set PKG_CONFIG_* on macOS. r=firefox-build-system-reviewers,andi
The sysroot setup on macOS is different from Linux, and pkg-config
files, if there are, would be coming from e.g. homebrew rather than
the macOS SDK.

Differential Revision: https://phabricator.services.mozilla.com/D122793
2021-08-17 09:38:23 +00:00
Tom Ritter 616bff5b05 Bug 1712817: Do not add newly added header files to EXPORTS automatically r=jewilde
Differential Revision: https://phabricator.services.mozilla.com/D122238
2021-08-14 02:28:09 +00:00
Tom Ritter ba6db969f0 Bug 1712817: Add tests for mozbuild file editing r=jewilde
Depends on D120481

Differential Revision: https://phabricator.services.mozilla.com/D121379
2021-08-14 02:28:08 +00:00
Tom Ritter e603a5f57c Bug 1712817: Support adding header files to EXPORTS in mozbuild rewriting r=jewilde
Depends on D120480

Differential Revision: https://phabricator.services.mozilla.com/D120481
2021-08-14 02:28:08 +00:00
Tom Ritter efc5d64593 Bug 1721247: Lift some repeated code into a function r=jewilde
Depends on D120479

Differential Revision: https://phabricator.services.mozilla.com/D120480
2021-08-14 02:28:07 +00:00
Tom Ritter 2ef8731b6b Bug 1721247: Ensure that only failure to add/remove exceptions are swallowed r=jewilde
Depends on D120478

Differential Revision: https://phabricator.services.mozilla.com/D120479
2021-08-14 02:28:07 +00:00
Tom Ritter 97d1270362 Bug 1721247: Improve the mozbuild rewriting logic for different path types r=jewilde
libdav1d only has relative paths. Like ../../third_party/foo/bar.c
libjpeg-xl has absolute paths like /third_party/bar/foo.c

This handles the second case by not doing our relative path
correction logic if we don't need to.

It will find all of the types of ways a file is included in a
moz.build file* and iterate over them, trying the slightly
different logic.  This is okay, because the failure scenario
for trying an incorrect mode is just that we don't get a match.

By trying all the modes we can increase our chances of finding a
match.

* For SOURCES/UNIFIED_SOURCES there aren't actually any situations
where we have mixed-modes in a moz.build file. But a future patch
will add support for editing EXPORTS and they do have mixed-modes.

Depends on D120477

Differential Revision: https://phabricator.services.mozilla.com/D120478
2021-08-14 02:28:07 +00:00
Tom Ritter f96ded73c8 Bug 1721247: Improve/fix the local testing logic for mach vendor mozbuild rewriting r=jewilde
Differential Revision: https://phabricator.services.mozilla.com/D120477
2021-08-14 02:28:06 +00:00
Nick Alexander 7d7e4d990b Bug 1724885 - Fix broken icons; differentiate Beta. r=mhowell
When relanding Bug 1709697, all of the icons ended up as 0-byte files.
I can't explain this; it's hard to achieve this with a rebase.  We
regenerate `Resources.pri` following the instructions in the
documentation.

This commit also moves to represent the package as "Mozilla Firefox",
which is consistent with how unpackaged versions appear in the Windows
UI.  In the start menu, the application continues to be represented as
"Firefox" (no "Mozilla" vendor).

Finally, this commit also differentiates "Firefox Beta" from "Firefox"
in a few select places (while not changing branding and iconography).

Differential Revision: https://phabricator.services.mozilla.com/D122411
2021-08-12 16:18:32 +00:00
Mike Hommey a054bdd0de Bug 1723953 - Fix using the bootstrapped sysroot with GCC. r=firefox-build-system-reviewers,andi
While some custom builds of GCC work successfully, system GCC builds
usually don't, because of several factors:
- they don't use the C++ headers or libstdc++.so from the sysroot
- they don't necessarily know to use the multiarch directories in the
  sysroot

Differential Revision: https://phabricator.services.mozilla.com/D121946
2021-08-11 21:51:11 +00:00
Mike Hommey e5492f70e1 Bug 1723953 - pre: Add min/max to the python configure sandbox. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D121945
2021-08-11 21:51:11 +00:00
Marian-Vasile Laza 2585ca8b0d Bug 1724606 - Fix lint failure a=lint-fix CLOSED TREE 2021-08-11 11:21:50 +03:00
Mike Hommey a673ae0901 Bug 1724374 - Handle the macos SDK through the same code paths as sysroots. r=firefox-build-system-reviewers,andi
Differential Revision: https://phabricator.services.mozilla.com/D121944
2021-08-11 07:47:14 +00:00
Mike Hommey d784654760 Bug 1724374 - Use --sysroot on mac builds. r=firefox-build-system-reviewers,andi
We're currently using -isysroot as a preprocessor flag and
-Wl,--syslibroot/-Wl,--sysroot as a linker flag, but --sysroot is
generalization of both, so we can use that instead.

Differential Revision: https://phabricator.services.mozilla.com/D121943
2021-08-11 07:47:13 +00:00
Mike Hommey d873082139 Bug 1724606 - Replace uses of MACOSX_DEPLOYMENT_TARGET env variable with -mmacosx-version-min flag. r=firefox-build-system-reviewers,andi
They are equivalent, except for the fact that MACOSX_DEPLOYMENT_TARGET
may apply to more processes in a normal build. In practice, all the
processes that matter are covered through compiler flags.

On the opposite end, MACOSX_DEPLOYMENT_TARGET isn't necessary passed in
all cases (like clangd, mach static-analysis, etc.), while compiler
flags are.

Differential Revision: https://phabricator.services.mozilla.com/D122145
2021-08-11 07:40:57 +00:00
Butkovits Atila 1213e1bc84 Bug 1724830 - Lint fix. a=lint-fix 2021-08-11 01:01:12 +03:00