mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
b383d6bc2f
- Bug 1161101 - Use JS_GetOwnPropertyDescriptor instead of GetPropertyDescriptor in dom/bindings. r=bz (918d7961c) - Bug 1119387 part 5: Update docker images. (0d47fde65) - Bug 1144463 - Add dolphin-512 and update docker. r=jlal,wcosta (aa6a55cab) - Bug 1134226: Add lightsaber nightly builds. (7926eff96) - Bug 1151981 - Properly check for MSVC (mingw fixup). (d95e17266) - Bug 1154947 part 3: Add aries nightly user, userdebug and eng builds. (45e096ed6) - Bug 1178932 - Implement Reflect.construct. r=Waldo. (4c5f0e72e) - Bug 1131206 - Remove the less useful commands from taskcluster mach r=garndt (e4c8ed78a) - Bug 1131206 - Select mozharness version from in tree r=garndt (fdab5140d) - bug 1156816 - Fix scopes for aws-provisioner. Switch nightly builds to production balrog. r=garndt (561d5cd58) - Bug 1166073 - change docker registry to hub r=garndt (17faea355) - Bug 1166233: Bring taskcluster-build mach command back. (c0a719c6b) - Bug 1142779 - Add buildbot steps for cloning and running tests r=lightsofapollo (304235375) - Bug 1142779 - Update job tasks to include functional unit and dual sim r=lightsofapollo (09b320602) - Bug 1147605 - Disable tests on phone builds r=me CLOSED TREE (0912de6ba) - Bug 1142779 - Update job tasks to use new chunking logic r=lightsofapollo (70c531920) - Bug 1144994 part 1: Update provisioner. (2447affa4) - Bug 1144994 part 2: Switch aries nightlies from cypress to m-c. (3019a6878) - Bug 1164939: Provide flame-kk user, userdebug and eng builds. (ab7ad22a7) - goanna->gecko (70b49bb18) - Bug 1166745: Reorganize tasks. (d3090e0a9) - Bug 1170378: Create tasks timestamps in UTC. r=jonasfj a=jonasfj (60160f061) - Bug 987902 - Add a "doctor" mach command; r=gps (be60e7df6) - Bug 985857 - Automatically log mach output and add a command to display it. r=gps (90993b77f) - Bug 991983 - Add a ContextDerivedTypedListWithItems type. r=gps (ad9482c7b) - Bug 991983 - Don't pass template paths to contexts. r=gps (30a4f2038) - Bug 991983 - Refactor SourcePath handling for moz.build, add new classes and extensive tests. r=gps (00aeb401b) - Bug 1142494 - Only package the steeplechase tests if webrtc is enabled. r=ted, f=drno (760943034) - Bug 1142494 - Fix OSX packaging mistake. r=glandium, a=bustage (03cd3ca35) - Bug 1147029 - Land luciddream in-tree, r=ted (8a4d2651b) - Bug 1147031 - Write mach command for luciddream. r=jgriffin (b913c4df4) - Bug 1171446 - Add a description to the luciddream mach target r=ochameau (c807799b6) - Bug 1176642 - Remove unused imports; r=glandium (b0e458f5d) - Bug 1151080: Rewrite NR_async_timer_set(0) to use direct dispatch. r=mt (6c3dda54d) - Bug 1152185 - Include port/generic/include also for mtransport/test and webrtc/signaling/test. r=ekr (969ce4205) - Bug 1156621 - Don't assume --without-system-nspr. r=glandium (4cf9c3e76) - Bug 1035468: A NAT simulator based on NrSocket, and integrate into ice_unittest. r=ekr (903d8f6c8) - Bug 1162026 - move WrapRunnable &co over to variadic templates; r=ekr (6224de8e9) - Bug 1163328 - Add a Tuple class to MFBT. r=froydnj (ba3276ef3) - Bug 1163328 - Add an And<...> class to TemplateLib.h which performs logical and on a variadic number of booleans known at compile time. r=froydnj (ac3afcabd) - Bug 1175621 - make WrapRunnable* more efficient by utilizing moves in wrapper functions; r=ekr (15cf9f55a)
220 lines
7.3 KiB
Python
220 lines
7.3 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from __future__ import print_function, unicode_literals
|
|
|
|
import os
|
|
import platform
|
|
import sys
|
|
import time
|
|
|
|
|
|
STATE_DIR_FIRST_RUN = '''
|
|
mach and the build system store shared state in a common directory on the
|
|
filesystem. The following directory will be created:
|
|
|
|
{userdir}
|
|
|
|
If you would like to use a different directory, hit CTRL+c and set the
|
|
MOZBUILD_STATE_PATH environment variable to the directory you would like to
|
|
use and re-run mach. For this change to take effect forever, you'll likely
|
|
want to export this environment variable from your shell's init scripts.
|
|
'''.lstrip()
|
|
|
|
|
|
# TODO Bug 794506 Integrate with the in-tree virtualenv configuration.
|
|
SEARCH_PATHS = [
|
|
'python/mach',
|
|
'python/mozboot',
|
|
'python/mozbuild',
|
|
'python/mozversioncontrol',
|
|
'python/blessings',
|
|
'python/configobj',
|
|
'python/jsmin',
|
|
'python/psutil',
|
|
'python/which',
|
|
'python/pystache',
|
|
'python/pyyaml/lib',
|
|
'build',
|
|
'build/pymake',
|
|
'config',
|
|
'dom/bindings',
|
|
'dom/bindings/parser',
|
|
'layout/tools/reftest',
|
|
'other-licenses/ply',
|
|
'xpcom/idl-parser',
|
|
'testing',
|
|
'testing/tools/autotry',
|
|
'testing/taskcluster',
|
|
'testing/xpcshell',
|
|
'testing/web-platform',
|
|
'testing/web-platform/harness',
|
|
'testing/marionette/client',
|
|
'testing/marionette/transport',
|
|
'testing/marionette/driver',
|
|
'testing/luciddream',
|
|
'testing/mozbase/mozcrash',
|
|
'testing/mozbase/mozdebug',
|
|
'testing/mozbase/mozdevice',
|
|
'testing/mozbase/mozfile',
|
|
'testing/mozbase/mozhttpd',
|
|
'testing/mozbase/mozlog',
|
|
'testing/mozbase/moznetwork',
|
|
'testing/mozbase/mozprocess',
|
|
'testing/mozbase/mozprofile',
|
|
'testing/mozbase/mozrunner',
|
|
'testing/mozbase/mozsystemmonitor',
|
|
'testing/mozbase/mozinfo',
|
|
'testing/mozbase/moztest',
|
|
'testing/mozbase/mozversion',
|
|
'testing/mozbase/manifestparser',
|
|
'xpcom/idl-parser',
|
|
]
|
|
|
|
# Individual files providing mach commands.
|
|
MACH_MODULES = [
|
|
'build/valgrind/mach_commands.py',
|
|
'dom/bindings/mach_commands.py',
|
|
'layout/tools/reftest/mach_commands.py',
|
|
'python/mach_commands.py',
|
|
'python/mach/mach/commands/commandinfo.py',
|
|
'python/mozboot/mozboot/mach_commands.py',
|
|
'python/mozbuild/mozbuild/mach_commands.py',
|
|
'python/mozbuild/mozbuild/backend/mach_commands.py',
|
|
'python/mozbuild/mozbuild/compilation/codecomplete.py',
|
|
'python/mozbuild/mozbuild/frontend/mach_commands.py',
|
|
'services/common/tests/mach_commands.py',
|
|
'testing/luciddream/mach_commands.py',
|
|
'testing/mach_commands.py',
|
|
'testing/taskcluster/mach_commands.py',
|
|
'testing/marionette/mach_commands.py',
|
|
'testing/mochitest/mach_commands.py',
|
|
'testing/xpcshell/mach_commands.py',
|
|
'testing/talos/mach_commands.py',
|
|
'testing/web-platform/mach_commands.py',
|
|
'testing/xpcshell/mach_commands.py',
|
|
'tools/docs/mach_commands.py',
|
|
'tools/mercurial/mach_commands.py',
|
|
'tools/mach_commands.py',
|
|
]
|
|
|
|
|
|
CATEGORIES = {
|
|
'build': {
|
|
'short': 'Build Commands',
|
|
'long': 'Interact with the build system',
|
|
'priority': 80,
|
|
},
|
|
'post-build': {
|
|
'short': 'Post-build Commands',
|
|
'long': 'Common actions performed after completing a build.',
|
|
'priority': 70,
|
|
},
|
|
'testing': {
|
|
'short': 'Testing',
|
|
'long': 'Run tests.',
|
|
'priority': 60,
|
|
},
|
|
'ci': {
|
|
'short': 'CI',
|
|
'long': 'Taskcluster commands',
|
|
'priority': 59
|
|
},
|
|
'devenv': {
|
|
'short': 'Development Environment',
|
|
'long': 'Set up and configure your development environment.',
|
|
'priority': 50,
|
|
},
|
|
'build-dev': {
|
|
'short': 'Low-level Build System Interaction',
|
|
'long': 'Interact with specific parts of the build system.',
|
|
'priority': 20,
|
|
},
|
|
'misc': {
|
|
'short': 'Potpourri',
|
|
'long': 'Potent potables and assorted snacks.',
|
|
'priority': 10,
|
|
},
|
|
'disabled': {
|
|
'short': 'Disabled',
|
|
'long': 'The disabled commands are hidden by default. Use -v to display them. These commands are unavailable for your current context, run "mach <command>" to see why.',
|
|
'priority': 0,
|
|
}
|
|
}
|
|
|
|
|
|
def bootstrap(topsrcdir, mozilla_dir=None):
|
|
if mozilla_dir is None:
|
|
mozilla_dir = topsrcdir
|
|
|
|
# Ensure we are running Python 2.7+. We put this check here so we generate a
|
|
# user-friendly error message rather than a cryptic stack trace on module
|
|
# import.
|
|
if sys.version_info[0] != 2 or sys.version_info[1] < 7:
|
|
print('Python 2.7 or above (but not Python 3) is required to run mach.')
|
|
print('You are running Python', platform.python_version())
|
|
sys.exit(1)
|
|
|
|
# Global build system and mach state is stored in a central directory. By
|
|
# default, this is ~/.mozbuild. However, it can be defined via an
|
|
# environment variable. We detect first run (by lack of this directory
|
|
# existing) and notify the user that it will be created. The logic for
|
|
# creation is much simpler for the "advanced" environment variable use
|
|
# case. For default behavior, we educate users and give them an opportunity
|
|
# to react. We always exit after creating the directory because users don't
|
|
# like surprises.
|
|
try:
|
|
import mach.main
|
|
except ImportError:
|
|
sys.path[0:0] = [os.path.join(mozilla_dir, path) for path in SEARCH_PATHS]
|
|
import mach.main
|
|
|
|
def populate_context(context, key=None):
|
|
if key is None:
|
|
return
|
|
if key == 'state_dir':
|
|
state_user_dir = os.path.expanduser('~/.mozbuild')
|
|
state_env_dir = os.environ.get('MOZBUILD_STATE_PATH', None)
|
|
if state_env_dir:
|
|
if not os.path.exists(state_env_dir):
|
|
print('Creating global state directory from environment variable: %s'
|
|
% state_env_dir)
|
|
os.makedirs(state_env_dir, mode=0o770)
|
|
print('Please re-run mach.')
|
|
sys.exit(1)
|
|
state_dir = state_env_dir
|
|
else:
|
|
if not os.path.exists(state_user_dir):
|
|
print(STATE_DIR_FIRST_RUN.format(userdir=state_user_dir))
|
|
try:
|
|
for i in range(20, -1, -1):
|
|
time.sleep(1)
|
|
sys.stdout.write('%d ' % i)
|
|
sys.stdout.flush()
|
|
except KeyboardInterrupt:
|
|
sys.exit(1)
|
|
|
|
print('\nCreating default state directory: %s' % state_user_dir)
|
|
os.mkdir(state_user_dir)
|
|
print('Please re-run mach.')
|
|
sys.exit(1)
|
|
state_dir = state_user_dir
|
|
|
|
return state_dir
|
|
if key == 'topdir':
|
|
return topsrcdir
|
|
raise AttributeError(key)
|
|
|
|
mach = mach.main.Mach(os.getcwd())
|
|
mach.populate_context_handler = populate_context
|
|
|
|
for category, meta in CATEGORIES.items():
|
|
mach.define_category(category, meta['short'], meta['long'],
|
|
meta['priority'])
|
|
|
|
for path in MACH_MODULES:
|
|
mach.load_commands_from_file(os.path.join(mozilla_dir, path))
|
|
|
|
return mach
|