For some reason, we ended up using -Xclang -std=c++17, when we could
just have used -std:c++17, which simplifies things.
Differential Revision: https://phabricator.services.mozilla.com/D213537
On clang-cl builds, the compiler and the linker are two completely different
things. The linker thankfully ignores the flags it doesn't know but
it's not optimal that it has to complain about them.
The historical reason we add compiler flags to linker flags is that some
flags, mostly related to optimization, such as -flto or --profile-generate,
need to be applied to both. This generally keeps being true for builds
using clang or GCC, although ideally we'd set things separately.
Anyways, generally speaking, we don't expect such flags to be necessary
for host linking, so let's start by cleaning up those. This does affect
all builds, but shouldn't matter.
It is worth noting that commands to link target things on clang-cl
builds actually use a different set of flags, so the linker doesn't end
up complaining about unknown arguments there.
Differential Revision: https://phabricator.services.mozilla.com/D213524
We can't use `shutil.copy_tree` here, since we need the `update=True`
functionality implemented by the `distutils` variant, but not by the
`shutil` one. This looks like the only place in the repo we use this
functionality, so it seems fine to implement an equivalent ourselves
here directly.
Differential Revision: https://phabricator.services.mozilla.com/D211632
This patch contains everything we need to flip all the l10n consumers in the tree to the new github repository:
* Enable fetching strings for builds (`desktop_l10n.py` for Desktop, `android-mozharness-build.json` for Android)
* l10n bumper (`l10n-bump/kind.yml`)
* merge automation (`merge-automation/kind.yml`)
* deb repackages (`repackaging/deb.py`)
* Switch `l10n-changesets` files to git refs to avoid breaking repacks before l10n bumper runs
This will need a final update because it will no doubt be bitrotted by the l10n bumper.
Differential Revision: https://phabricator.services.mozilla.com/D212462
This patch adds a couple additional variable that shell scripts can use. One of them is the name of the app being tested, and the other is a temporary directory for the script that is removed once the script finishes. At the same time, the logging from the script is changed to use print directly instead of the logger due to bug 1900056.
Differential Revision: https://phabricator.services.mozilla.com/D212628
A regression was introduced in the startup tests accidentally when re-formatting the android_startup file.
This patch resolves that issue, which was forgetting a sleep timer of 4 seconds to allow the skip on-boarding flag to propagate
Differential Revision: https://phabricator.services.mozilla.com/D212645
This adds the command `mach repackage snap`, which packages the current
build as a Snap (with the app name firefox_devel, to not interfere with
installs of the normal firefox package). It can also accept a tar file
as input, for example to repack a build from Taskcluster.
It also adds `mach repackage snap-install`, which installs the package
and connects its plugs with `snap connect` (normally done by default,
but not for an unsigned package like this).
Building a Snap package requires the `snapcraft` command, which is
available as a Snap (and maybe from other package managers).
Depends on D182615
Differential Revision: https://phabricator.services.mozilla.com/D182616
The debug flag for ml.exe and ml64.exe is -Zi instead of -Z7,
which is used with clang-cl.
Set this when CC_TYPE is "clang-cl" to match the if-statements in
`default_debug_flags` and `as_info` in toolchain.configure.
Fixes warning A4018: invalid command-line option.
Differential Revision: https://phabricator.services.mozilla.com/D211480
This patch adds a new layer that will allow us to run custom/adhoc bash scripts in mozperftest. Currently, the layer can only handle bash scripts. At the same time, a new flavor is added for this, and additional script parsing capabilities are added.
Differential Revision: https://phabricator.services.mozilla.com/D211740
This patch adds a layer to gather the version of a given binary. The layer makes use of the tooling from `setups.py` to do this.
Differential Revision: https://phabricator.services.mozilla.com/D211739
This patch adds a layer to setup the binary, and provide a single interface for specifying it and using it through the metadata. At the same time, some changes were made to the perfherder metrics production to gather the application name, and version from the metadata. The intermediate results are also properly passed into the perfherder blob production step as they were previously being ignored.
Differential Revision: https://phabricator.services.mozilla.com/D211738
This patch adds a set of classes that will be used for gathering the binary path, and binary version in the VersionProducer, and BinarySetup layers.
Differential Revision: https://phabricator.services.mozilla.com/D211737
While nothing explicitly prompted updating this, letting `pip` and
`pip-tools` diverage too greatly in version release dates seems like
a bad idea, especially with the various deprecations in
`pip` and `python3.12`.
This also vendors the implicit dependencies `build`, `tomli`, and
`pyproject_hooks`.
Differential Revision: https://phabricator.services.mozilla.com/D210526
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