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

4 Коммитов

Автор SHA1 Сообщение Дата
Rob Lemley 74c6535302 Bug 1672798 - Run black formatting on mozbuild and mozconfigure files. r=mkmelin
Bringing some sanity to our Python scripts.

Differential Revision: https://phabricator.services.mozilla.com/D95402

--HG--
extra : rebase_source : 7eed46d79663fa1f261bd64d9bc1c83c4867bfc4
extra : histedit_source : b8b700c76ab2fee92eb426b5a5b69dc86376e60f
2020-10-30 14:28:33 -04:00
Rob Lemley ad8b83b437 Bug 1628506 - Port bug 1622972: Switch mach configure to Python 3. rs=bustage-fix
Replace the use of system_encoding with six.ensure_text.
2020-04-08 18:29:48 -04:00
Rob Lemley e6cebe9f6a Bug 1578920 - Bug 1507754 follow-up: fix mach configure failures on local builds. r=darkrojan DONTBUILD
- Change the "hg" command used to identify a revision to the one used by
  Firefox in build/variables.py.
- If "hg" still fails, don't abort the entire configure process.
- Only terminate configure in automation when source repository information
  cannot be determined.
2019-09-04 17:39:40 -04:00
Rob Lemley cf7c68b7b8 Bug 1507754 - Check source repositories and changesets during configure. r=darktrojan
PACKAGERS: if you update application.ini, platform.ini, or source-repo.h
in some way during your process, you might need to change something.

Make sure that the source repositories for both Mozilla and Comm can be found
during mach configure and abort if they cannot.

For Taskcluster builds, there are various environment variables that can be
relied upon.

Local builds present a challenge. Chances are those variables are not set.

I came up with a set of checks and keep trying until something works.
For comm-* code:
 - Look for MOZ_SOURCE_REPO and MOZ_SOURCE_CHANGESET environment vars. This
   is counter-intuitive, but it's the current status-quo for Taskcluster
   builds. Those variables are set to the comm values.
 - Next, try use the Mercurial source checkout itself. Uses the same technique
   as Mozilla code does in build/variables.py.
 - Last, try to use a file named "sourcestamp.txt". That file is part of
   our source tar files that get built for releases.
 - Finally, if those MOZ_SOURCE environment variables were not set, set them.
   This is needed because old-configure will look for them and set buildconfig
   variables with them when it runs later during the configure process.
 - Additionally, set MOZ_COMM_SOURCE_REPO and MOZ_COMM_SOURCE_CHANGESET in
   buildconfig. Code in the comm- tree should prefer those values over the
   generic MOZ_SOURCE_* values that the Mozilla code will look at.

For the Gecko/Mozilla source repository information, it's almost the same
process.
- Check for GECKO_SOURCE_REPO and GECKO_SOURCE_REV environment variables first.
  Taskcluster sets these based on comm/.gecko_rev.yml.
- Next, try comm/.gecko_rev.yml itself. PyYAML is not required as the file is
  pretty simple to parse. Release builds are pinned to a specific revision hash,
  so we can use that. Builds from comm-central pin to "default" though, so
  next try running "hg id" in $topsrcdir to get the revision hash.
- If for some reason there's no .gecko_rev.yml and it's not a Mercurial checkout,
  try the sourcestamp.txt file.
- Set MOZ_GECKO_SOURCE_REPO and MOZ_GECKO_SOURCE_CHANGESET in buildconfig.

mach configure should fail if any one of those values cannot be determined.
The error message will suggest setting the environment variables; ideally
that is not necessary.

--HG--
extra : rebase_source : 0f17f25956c679f63b775b15d5a0f0726bb659cb
2019-08-26 21:20:54 -04:00