We don't check for pkg-config on some platforms (Windows, OSX, Android).
On those platforms, calling 'pkg_check_modules' will not work. Adding
the same 'when' used for the 'pkg_config' check to all the options that
end up calling 'pkg_check_modules' effectively disables them, and prevents
'pkg_check_modules' from being called.
Differential Revision: https://phabricator.services.mozilla.com/D150649
If the destination file doesn't exist, we don't need to check the
current file's time, and we can just write or symlink regardless.
Differential Revision: https://phabricator.services.mozilla.com/D210330
Thunderbird has a separate config.toml.in file at comm/rust/.cargo/config.in that
cargo vet needs to use. It's set in the config variable MOZ_OVERRIDE_CARGO_CONFIG.
Before running cargo vet for Thunderbird, mach configure must run first.
Additionally, cargo vet's working directory needs to be `comm/rust`.
This change has no effect on how `mach cargo vet` works for Firefox.
To verify, `mach cargo vet suggest --verbose debug` shows the supply-chain path
in use.
Differential Revision: https://phabricator.services.mozilla.com/D205896
We are about to change the hgignore to remove the lookahead expression. This
means the "*.egg-info/" directories will be ignored everywhere again. To
prevent this causing issue with the vendoring logic, we add a new call to
add-remove explicitly listing file in ".egg-info" directories to override the
ignore pattern.
Once tracked, the ignore pattern will no longer affects these file and all will
be good.
Check the next commit for more information on the motivation.
Differential Revision: https://phabricator.services.mozilla.com/D208968
Mach can currently only run on Python version 3.8 or higher, so it
doesn't make sense to continue having dead code that provides support
for Python2.
Differential Revision: https://phabricator.services.mozilla.com/D209030
Mitch has been inactive for ~2 years now. I don't necessarily needs to
add myself in his stead, but I think it makes sense to have me on there
as the current triage owner.
Differential Revision: https://phabricator.services.mozilla.com/D209031
@file are supported by gcc since gcc 7 and by clang since clang 3.x,
which removes the need for linker script to list input files.
We cannot directly use @file from the compiler driver (it would expand
to a large number of arguments and hit the linker limit) so pass
-Wl,@FILE instead, which is supported since binutils 2.17.
As a side effect this removes the LTO dependency from the check.
Differential Revision: https://phabricator.services.mozilla.com/D207839
We don't want the packaged update frameworks, we only want the
localbuild variants fetched from the `update_framework_artifacts`
extra archive. These don't impact builds, but they clutter the object
directory and are misleading.
Differential Revision: https://phabricator.services.mozilla.com/D208662
This patch:
1. Produces additional frameworks as part of every build. In compile
builds, the frameworks are built; in artifact builds, the frameworks
binaries are taken from fetched artifacts. It's not easy to compile a
single framework with the same name twice in the `moz.build` DSL, so
some file shuffling is done in `Makefile.in` files to arrange the
correct layout.
2. Packages and uploads a new `update_framework_artifacts` extra
archive for artifact builds to consume.
3. Consumes the new extra archive in artifact builds.
Produced frameworks live in
`dist/macos_framework_artifacts/xyz.framework/**`.
Consumed frameworks are made availabe to artifact builds in
`dist/macos_framework_artifacts`.
Bug 1885985 - Part 2:
Differential Revision: https://phabricator.services.mozilla.com/D205936
@file are supported by gcc since gcc 7 and by clang since clang 3.x,
which removes the need for linker script to list input files.
We cannot directly use @file from the compiler driver (it would expand
to a large number of arguments and hit the linker limit) so pass
-Wl,@FILE instead, which is supported since binutils 2.17.
As a side effect this removes the LTO dependency from the check.
Differential Revision: https://phabricator.services.mozilla.com/D207839
This patch:
1. Produces additional frameworks as part of every build. In compile
builds, the frameworks are built; in artifact builds, the frameworks
binaries are taken from fetched artifacts. It's not easy to compile a
single framework with the same name twice in the `moz.build` DSL, so
some file shuffling is done in `Makefile.in` files to arrange the
correct layout.
2. Packages and uploads a new `update_framework_artifacts` extra
archive for artifact builds to consume.
3. Consumes the new extra archive in artifact builds.
Produced frameworks live in
`dist/macos_framework_artifacts/xyz.framework/**`.
Consumed frameworks are made availabe to artifact builds in
`dist/macos_framework_artifacts`.
Bug 1885985 - Part 2:
Differential Revision: https://phabricator.services.mozilla.com/D205936
The hasattr(self, "handler") was added in bug 889963, and back then
self.handler *was* set. That changed in bug 883209, which changed the
setting of self.handler to self._handler, but left out the ones from
this code.
Differential Revision: https://phabricator.services.mozilla.com/D207649
This patch:
1. Produces additional frameworks as part of every build. In compile
builds, the frameworks are built; in artifact builds, the frameworks
binaries are taken from fetched artifacts. It's not easy to compile
the same framework twice in the `moz.build` DSL, so some file
shuffling is done in `Makefile.in` files to arrange the correct
layout.
2. Packages and uploads a new `macos_framework_artifacts` extra
archive for artifact builds to consume.
3. Consumes the new extra archive in artifact builds.
Produced frameworks live in
`$(topobjdir)/macos_framework_artifacts/xyz.framework/**`.
Consumed frameworks are made availabe to artifact builds in
`$(distdir)/macos_framework_artifacts`.
Bug 1885985 - Part 2:
Differential Revision: https://phabricator.services.mozilla.com/D205936
Once the configure step is built, each backend processes it independently,
there was a parallelization opportunity here. Most of the gain comes
from clangd backend and RecursiveMake backend being run concurrently.
Only active when multiprocessing's fork starting method is used due to
incompatibility with pickling fo some of our internal structures.
Differential Revision: https://phabricator.services.mozilla.com/D205992
Some micro-optimization in the mozbuild/shellutil.py quoting function,
and use it at a finer grain to avoid some extra list creation.
This saves time in the configure step.
Differential Revision: https://phabricator.services.mozilla.com/D205861
Thunderbird has a separate .cargo/config.in file at comm/rust/.cargo/config.in that
cargo vet needs to use. It's set in the config variable MOZ_OVERRIDE_CARGO_CONFIG.
Additionally, cargo vet's working directory needs to be `comm/rust`.
This change has no effect on how `mach cargo vet` works for Firefox.
To verify, `mach cargo vet suggest --verbose debug` shows the supply-chain path
in use.
Differential Revision: https://phabricator.services.mozilla.com/D205896
The source-host-path option can be set to let mach vendor find a python
module/class next to moz.yaml, that is then used as source host.
Differential Revision: https://phabricator.services.mozilla.com/D205710