Bug 1324998 - Error out when a in-tree mozconfig is included. r=gps

Many people have been shooting themselves in the foot for too long by
including in-tree mozconfigs.

This change adds a guard that makes it an error when this happens on
builds not running on automation.

Analysis of the in-tree mozconfigs indicate that
build/mozconfig.automation is properly included by the in-tree
mozconfig that matter, directly or indirectly.

The only ones that don't include it are:
  b2g/config/mozconfigs/common.override
  b2g/graphene/config/mozconfigs/common.override
  browser/config/mozconfigs/linux64/source
  browser/config/mozconfigs/win64/common-win64
  build/mozconfig.cache
  build/mozconfig.clang-cl
  build/mozconfig.common.override
  build/mozconfig.rust
  build/mozconfig.vs-common
  build/mozconfig.win-common
  build/unix/mozconfig.gtk
  build/unix/mozconfig.stdcxx
  build/win32/mozconfig.vs-latest
  build/win32/mozconfig.vs2015-win64
  build/win64/mozconfig.vs-latest
  build/win64/mozconfig.vs2015
  mobile/android/config/mozconfigs/common.override

which are either empty for use in try builds (override files), or would
already cause great pain if they were directly included, so there's
little chance they would be.

--HG--
extra : rebase_source : 0e6accf241759f8d44868f253874f6546dbadb52
This commit is contained in:
Mike Hommey 2016-12-21 16:58:38 +09:00
Родитель 1ede24adb4
Коммит 6b392d8d0c
2 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -228,12 +228,20 @@ def early_options():
early_options = early_options()
@depends(mozconfig, '--help')
@depends(mozconfig, 'MOZ_AUTOMATION', '--help')
# This gives access to the sandbox. Don't copy this blindly.
@imports('__sandbox__')
@imports('os')
def mozconfig_options(mozconfig, help):
def mozconfig_options(mozconfig, automation, help):
if mozconfig['path']:
if 'MOZ_AUTOMATION_MOZCONFIG' in mozconfig['env']['added']:
if not automation:
log.error('%s directly or indirectly includes an in-tree '
'mozconfig.', mozconfig['path'])
log.error('In-tree mozconfigs make strong assumptions about '
'and are only meant to be used by Mozilla'
'automation.')
die("Please don't use them.")
helper = __sandbox__._helper
log.info('Adding configure options from %s' % mozconfig['path'])
for arg in mozconfig['configure_args']:

Просмотреть файл

@ -31,3 +31,5 @@ if test "$MOZ_AUTOMATION_PRETTY" = "1"; then
# we don't build it without, so this is set to 1.
mk_add_options "export MOZ_AUTOMATION_PRETTY_UPDATE_PACKAGING=1"
fi
export MOZ_AUTOMATION_MOZCONFIG=1