libv8 4.5.95.5 → 5.0.71.48.0beta2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +45 -19
- data/CHANGELOG.md +14 -0
- data/README.md +30 -15
- data/Rakefile +7 -6
- data/ext/libv8/arch.rb +5 -4
- data/ext/libv8/builder.rb +25 -19
- data/ext/libv8/compiler.rb +6 -33
- data/ext/libv8/location.rb +7 -8
- data/lib/libv8/version.rb +1 -1
- data/libv8.gemspec +1 -1
- data/patches/build-standalone-static-library.patch +14 -0
- data/patches/disable-building-tests.patch +48 -10
- data/patches/fPIC-for-static.patch +3 -3
- data/release/x86-linux/Vagrantfile +8 -4
- data/release/x86_64-freebsd10/Vagrantfile +86 -0
- data/release/x86_64-linux/Vagrantfile +8 -4
- data/spec/compiler_spec.rb +5 -29
- data/spec/support/compiler_helpers.rb +2 -4
- data/vendor/depot_tools/.gitignore +15 -3
- data/vendor/depot_tools/OWNERS +2 -2
- data/vendor/depot_tools/PRESUBMIT.py +4 -2
- data/vendor/depot_tools/WATCHLISTS +6 -0
- data/vendor/depot_tools/apply_issue.py +70 -38
- data/vendor/depot_tools/bootstrap/win/README.md +66 -0
- data/vendor/depot_tools/bootstrap/win/git-bash.template.sh +12 -0
- data/vendor/depot_tools/bootstrap/win/git.template.bat +5 -0
- data/vendor/depot_tools/bootstrap/win/profile.d.python.sh +20 -0
- data/vendor/depot_tools/bootstrap/win/win_tools.bat +96 -45
- data/vendor/depot_tools/breakpad.py +6 -141
- data/vendor/depot_tools/buildbucket.py +45 -31
- data/vendor/depot_tools/cbuildbot +1 -0
- data/vendor/depot_tools/checkout.py +2 -1
- data/vendor/depot_tools/chrome_set_ver +1 -0
- data/vendor/depot_tools/cit +8 -0
- data/vendor/depot_tools/cit.bat +11 -0
- data/vendor/depot_tools/cit.py +120 -0
- data/vendor/depot_tools/codereview.settings +0 -2
- data/vendor/depot_tools/commit_queue +1 -5
- data/vendor/depot_tools/commit_queue.bat +1 -4
- data/vendor/depot_tools/commit_queue.py +78 -29
- data/vendor/depot_tools/cpplint.py +22 -14
- data/vendor/depot_tools/cros +1 -0
- data/vendor/depot_tools/cros_sdk +1 -0
- data/vendor/depot_tools/depot-tools-auth.py +3 -3
- data/vendor/depot_tools/download_from_google_storage.py +101 -21
- data/vendor/depot_tools/drover.py +2 -3
- data/vendor/depot_tools/fetch.py +31 -27
- data/vendor/depot_tools/{recipes → fetch_configs}/android.py +4 -4
- data/vendor/depot_tools/fetch_configs/breakpad.py +45 -0
- data/vendor/depot_tools/{recipes → fetch_configs}/chromium.py +3 -3
- data/vendor/depot_tools/{recipes/recipe_util.py → fetch_configs/config_util.py} +3 -3
- data/vendor/depot_tools/fetch_configs/crashpad.py +41 -0
- data/vendor/depot_tools/{recipes → fetch_configs}/dart.py +3 -3
- data/vendor/depot_tools/{recipes/pdfium.py → fetch_configs/dartino.py} +14 -13
- data/vendor/depot_tools/{recipes → fetch_configs}/dartium.py +3 -3
- data/vendor/depot_tools/{recipes → fetch_configs}/depot_tools.py +3 -3
- data/vendor/depot_tools/fetch_configs/gyp.py +42 -0
- data/vendor/depot_tools/{recipes → fetch_configs}/infra.py +3 -3
- data/vendor/depot_tools/{recipes → fetch_configs}/infra_internal.py +3 -3
- data/vendor/depot_tools/{recipes → fetch_configs}/ios.py +4 -4
- data/vendor/depot_tools/{recipes → fetch_configs}/mojo.py +3 -3
- data/vendor/depot_tools/{recipes → fetch_configs}/nacl.py +3 -3
- data/vendor/depot_tools/{recipes → fetch_configs}/naclports.py +3 -3
- data/vendor/depot_tools/fetch_configs/pdfium.py +40 -0
- data/vendor/depot_tools/{recipes → fetch_configs}/skia.py +3 -3
- data/vendor/depot_tools/{recipes → fetch_configs}/skia_buildbot.py +3 -3
- data/vendor/depot_tools/fetch_configs/syzygy.py +41 -0
- data/vendor/depot_tools/{recipes → fetch_configs}/v8.py +3 -3
- data/vendor/depot_tools/{recipes → fetch_configs}/webrtc.py +3 -3
- data/vendor/depot_tools/{recipes → fetch_configs}/webrtc_android.py +4 -4
- data/vendor/depot_tools/{recipes → fetch_configs}/webrtc_ios.py +4 -4
- data/vendor/depot_tools/fix_encoding.py +6 -6
- data/vendor/depot_tools/gcl.py +11 -21
- data/vendor/depot_tools/gclient +10 -0
- data/vendor/depot_tools/gclient-new-workdir.py +7 -38
- data/vendor/depot_tools/gclient.bat +2 -2
- data/vendor/depot_tools/gclient.py +85 -65
- data/vendor/depot_tools/gclient_scm.py +83 -10
- data/vendor/depot_tools/gclient_utils.py +5 -1
- data/vendor/depot_tools/gerrit_util.py +243 -26
- data/vendor/depot_tools/git-auto-svn +1 -1
- data/vendor/depot_tools/git-cache +1 -1
- data/vendor/depot_tools/git-cherry-pick-upload +1 -1
- data/vendor/depot_tools/git-cl +1 -1
- data/vendor/depot_tools/git-drover +6 -0
- data/vendor/depot_tools/git-find-releases +6 -0
- data/vendor/depot_tools/git-footers +1 -1
- data/vendor/depot_tools/git-freeze +1 -1
- data/vendor/depot_tools/git-gs +1 -1
- data/vendor/depot_tools/git-hyper-blame +6 -0
- data/vendor/depot_tools/git-map +1 -1
- data/vendor/depot_tools/git-map-branches +1 -1
- data/vendor/depot_tools/git-mark-merge-base +1 -1
- data/vendor/depot_tools/git-nav-downstream +1 -1
- data/vendor/depot_tools/git-new-branch +1 -1
- data/vendor/depot_tools/git-number +1 -1
- data/vendor/depot_tools/git-rebase-update +1 -1
- data/vendor/depot_tools/git-rename-branch +1 -1
- data/vendor/depot_tools/git-reparent-branch +1 -1
- data/vendor/depot_tools/git-retry +1 -1
- data/vendor/depot_tools/git-squash-branch +1 -1
- data/vendor/depot_tools/git-thaw +1 -1
- data/vendor/depot_tools/git-try +1 -1
- data/vendor/depot_tools/git-upstream-diff +1 -1
- data/vendor/depot_tools/git_auto_svn.py +24 -6
- data/vendor/depot_tools/git_cache.py +74 -27
- data/vendor/depot_tools/git_cl.py +2118 -747
- data/vendor/depot_tools/git_common.py +100 -6
- data/vendor/depot_tools/git_dates.py +62 -0
- data/vendor/depot_tools/git_drover.py +424 -0
- data/vendor/depot_tools/git_find_releases.py +65 -0
- data/vendor/depot_tools/git_footers.py +42 -0
- data/vendor/depot_tools/git_hyper_blame.py +391 -0
- data/vendor/depot_tools/git_map_branches.py +8 -6
- data/vendor/depot_tools/git_new_branch.py +6 -1
- data/vendor/depot_tools/git_rebase_update.py +56 -16
- data/vendor/depot_tools/git_reparent_branch.py +13 -0
- data/vendor/depot_tools/git_try.py +0 -2
- data/vendor/depot_tools/gsutil.py +51 -20
- data/vendor/depot_tools/infra/config/OWNERS +3 -1
- data/vendor/depot_tools/infra/config/cq.cfg +7 -3
- data/vendor/depot_tools/infra/config/recipes.cfg +9 -0
- data/vendor/depot_tools/luci_hacks/README.md +35 -0
- data/vendor/depot_tools/{bootstrap/virtualenv/tests → luci_hacks}/__init__.py +0 -0
- data/vendor/depot_tools/luci_hacks/luci_recipe_run.isolate +12 -0
- data/vendor/depot_tools/luci_hacks/luci_recipe_run.py +81 -0
- data/vendor/depot_tools/luci_hacks/trigger_luci_job.py +128 -0
- data/vendor/depot_tools/man/html/depot_tools.html +9 -1
- data/vendor/depot_tools/man/html/depot_tools_tutorial.html +4 -4
- data/vendor/depot_tools/man/html/git-drover.html +191 -35
- data/vendor/depot_tools/man/html/git-hyper-blame.html +878 -0
- data/vendor/depot_tools/man/html/git-rebase-update.html +9 -4
- data/vendor/depot_tools/man/man1/git-drover.1 +189 -36
- data/vendor/depot_tools/man/man1/git-hyper-blame.1 +128 -0
- data/vendor/depot_tools/man/man1/git-rebase-update.1 +8 -6
- data/vendor/depot_tools/man/man7/depot_tools.7 +9 -4
- data/vendor/depot_tools/man/src/_git-hyper-blame_desc.helper.txt +1 -0
- data/vendor/depot_tools/man/src/common_demo_functions.sh +5 -0
- data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +1 -1
- data/vendor/depot_tools/man/src/git-drover.demo.1.sh +11 -16
- data/vendor/depot_tools/man/src/git-drover.demo.3.sh +27 -0
- data/vendor/depot_tools/man/src/git-drover.demo.4.sh +39 -0
- data/vendor/depot_tools/man/src/git-drover.txt +49 -3
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.1.sh +3 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.2.sh +4 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.demo.common.sh +57 -0
- data/vendor/depot_tools/man/src/git-hyper-blame.txt +85 -0
- data/vendor/depot_tools/man/src/git-rebase-update.txt +5 -1
- data/vendor/depot_tools/my_activity.py +6 -21
- data/vendor/depot_tools/ninja +2 -2
- data/vendor/depot_tools/ninja-linux32 +0 -0
- data/vendor/depot_tools/ninja-linux64 +0 -0
- data/vendor/depot_tools/ninja-mac +0 -0
- data/vendor/depot_tools/ninja.exe +0 -0
- data/vendor/depot_tools/presubmit_canned_checks.py +83 -69
- data/vendor/depot_tools/presubmit_support.py +126 -42
- data/vendor/depot_tools/pylint.py +5 -1
- data/vendor/depot_tools/python_runner.sh +55 -0
- data/vendor/depot_tools/recipe_modules/bot_update/__init__.py +32 -0
- data/vendor/depot_tools/recipe_modules/bot_update/api.py +283 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic.json +56 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_output_manifest.json +63 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_with_branch_heads.json +57 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/clobber.json +44 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/forced.json +57 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/gerrit_no_reset.json +44 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/no_shallow.json +44 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/off.json +43 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/reset_root_solution_revision.json +43 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/svn_mode.json +59 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange.json +58 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange_oauth2.json +60 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob.json +58 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail.json +60 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch.json +81 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch_download.json +81 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle.json +49 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8.json +61 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8_head_by_default.json +51 -0
- data/vendor/depot_tools/recipe_modules/bot_update/example.py +172 -0
- data/vendor/depot_tools/{bootstrap/virtualenv/virtualenv_support → recipe_modules/bot_update/resources}/__init__.py +0 -0
- data/vendor/depot_tools/recipe_modules/bot_update/resources/bot_update.py +1764 -0
- data/vendor/depot_tools/recipe_modules/bot_update/test_api.py +86 -0
- data/vendor/depot_tools/recipe_modules/depot_tools/__init__.py +3 -0
- data/vendor/depot_tools/recipe_modules/depot_tools/api.py +27 -0
- data/vendor/depot_tools/recipe_modules/gclient/__init__.py +10 -0
- data/vendor/depot_tools/recipe_modules/gclient/api.py +378 -0
- data/vendor/depot_tools/recipe_modules/gclient/config.py +671 -0
- data/vendor/depot_tools/recipe_modules/gclient/example.expected/basic.json +172 -0
- data/vendor/depot_tools/recipe_modules/gclient/example.expected/revision.json +174 -0
- data/vendor/depot_tools/recipe_modules/gclient/example.expected/tryserver.json +185 -0
- data/vendor/depot_tools/recipe_modules/gclient/example.py +100 -0
- data/vendor/depot_tools/recipe_modules/gclient/test_api.py +37 -0
- data/vendor/depot_tools/recipe_modules/git/__init__.py +9 -0
- data/vendor/depot_tools/recipe_modules/git/api.py +377 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic.json +177 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_branch.json +177 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_file_name.json +179 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_hash.json +176 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_ref.json +177 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/basic_submodule_update_force.json +178 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/can_fail_build.json +153 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/cannot_fail_build.json +181 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/cat-file_test.json +199 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_delta.json +250 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_failed.json +181 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output.json +182 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output_fails_build.json +102 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/curl_trace_file.json +181 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/platform_win.json +186 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/rebase_failed.json +179 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/remote_not_origin.json +179 -0
- data/vendor/depot_tools/recipe_modules/git/example.expected/set_got_revision.json +178 -0
- data/vendor/depot_tools/recipe_modules/git/example.py +147 -0
- data/vendor/depot_tools/recipe_modules/git/resources/git_setup.py +61 -0
- data/vendor/depot_tools/recipe_modules/git/test_api.py +18 -0
- data/vendor/depot_tools/recipe_modules/git_cl/__init__.py +4 -0
- data/vendor/depot_tools/recipe_modules/git_cl/api.py +25 -0
- data/vendor/depot_tools/recipe_modules/git_cl/config.py +22 -0
- data/vendor/depot_tools/recipe_modules/git_cl/example.expected/basic.json +66 -0
- data/vendor/depot_tools/recipe_modules/git_cl/example.py +41 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/__init__.py +4 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/api.py +12 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/basic.json +14 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_linux.json +14 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_mac.json +14 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_buildbot_win.json +14 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_linux.json +14 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_mac.json +14 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/example.expected/paths_kitchen_win.json +14 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/example.py +28 -0
- data/vendor/depot_tools/recipe_modules/infra_paths/path_config.py +45 -0
- data/vendor/depot_tools/recipe_modules/presubmit/__init__.py +4 -0
- data/vendor/depot_tools/recipe_modules/presubmit/api.py +20 -0
- data/vendor/depot_tools/recipe_modules/presubmit/example.expected/basic.json +18 -0
- data/vendor/depot_tools/recipe_modules/presubmit/example.py +15 -0
- data/vendor/depot_tools/recipe_modules/rietveld/__init__.py +5 -0
- data/vendor/depot_tools/recipe_modules/rietveld/api.py +94 -0
- data/vendor/depot_tools/recipe_modules/rietveld/example.expected/basic.json +30 -0
- data/vendor/depot_tools/recipe_modules/rietveld/example.py +24 -0
- data/vendor/depot_tools/recipe_modules/tryserver/__init__.py +15 -0
- data/vendor/depot_tools/recipe_modules/tryserver/api.py +280 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_git_patch.json +104 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_rietveld_patch.json +58 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_rietveld_patch_new.json +58 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_svn_patch.json +68 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch.json +43 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch_new.json +43 -0
- data/vendor/depot_tools/recipe_modules/tryserver/example.py +53 -0
- data/vendor/depot_tools/recipe_modules/tryserver/test_api.py +7 -0
- data/vendor/depot_tools/recipes.py +136 -0
- data/vendor/depot_tools/repo +1 -1
- data/vendor/depot_tools/rietveld.py +46 -15
- data/vendor/depot_tools/roll_dep.py +97 -36
- data/vendor/depot_tools/scm.py +3 -3
- data/vendor/depot_tools/setup_color.py +94 -0
- data/vendor/depot_tools/subprocess2.py +10 -1
- data/vendor/depot_tools/third_party/cq_client/OWNERS +0 -1
- data/vendor/depot_tools/third_party/cq_client/README.md +47 -9
- data/vendor/depot_tools/third_party/cq_client/cq.pb.go +617 -0
- data/vendor/depot_tools/third_party/cq_client/cq.proto +75 -17
- data/vendor/depot_tools/third_party/cq_client/cq_pb2.py +168 -41
- data/vendor/depot_tools/third_party/cq_client/testdata/cq_gerrit.cfg +55 -0
- data/vendor/depot_tools/third_party/cq_client/{test/cq_example.cfg → testdata/cq_rietveld.cfg} +14 -6
- data/vendor/depot_tools/third_party/fancy_urllib/README +5 -4
- data/vendor/depot_tools/third_party/fancy_urllib/__init__.py +114 -52
- data/vendor/depot_tools/third_party/protobuf26/README.chromium +9 -6
- data/vendor/depot_tools/third_party/upload.py +17 -31
- data/vendor/depot_tools/trychange.py +0 -2
- data/vendor/depot_tools/update_depot_tools +29 -11
- data/vendor/depot_tools/update_depot_tools.bat +4 -9
- data/vendor/depot_tools/upload_to_google_storage.py +42 -5
- data/vendor/depot_tools/win_toolchain/OWNERS +1 -0
- data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +227 -52
- data/vendor/depot_tools/win_toolchain/package_from_installed.py +203 -88
- metadata +161 -81
- data/patches/arm/do-not-imply-vfp3-and-armv7.patch +0 -16
- data/patches/arm/do-not-use-vfp2.patch +0 -13
- data/patches/clang51/no-unused-variable.patch +0 -12
- data/vendor/depot_tools/bootstrap/.gitignore +0 -2
- data/vendor/depot_tools/bootstrap/bootstrap.py +0 -234
- data/vendor/depot_tools/bootstrap/deps.pyl +0 -15
- data/vendor/depot_tools/bootstrap/util.py +0 -87
- data/vendor/depot_tools/bootstrap/virtualenv/.gitignore +0 -10
- data/vendor/depot_tools/bootstrap/virtualenv/.travis.yml +0 -28
- data/vendor/depot_tools/bootstrap/virtualenv/AUTHORS.txt +0 -91
- data/vendor/depot_tools/bootstrap/virtualenv/CONTRIBUTING.rst +0 -21
- data/vendor/depot_tools/bootstrap/virtualenv/LICENSE.txt +0 -22
- data/vendor/depot_tools/bootstrap/virtualenv/MANIFEST.in +0 -11
- data/vendor/depot_tools/bootstrap/virtualenv/README.rst +0 -10
- data/vendor/depot_tools/bootstrap/virtualenv/bin/rebuild-script.py +0 -71
- data/vendor/depot_tools/bootstrap/virtualenv/docs/changes.rst +0 -747
- data/vendor/depot_tools/bootstrap/virtualenv/docs/conf.py +0 -149
- data/vendor/depot_tools/bootstrap/virtualenv/docs/development.rst +0 -61
- data/vendor/depot_tools/bootstrap/virtualenv/docs/index.rst +0 -137
- data/vendor/depot_tools/bootstrap/virtualenv/docs/installation.rst +0 -58
- data/vendor/depot_tools/bootstrap/virtualenv/docs/make.bat +0 -170
- data/vendor/depot_tools/bootstrap/virtualenv/docs/reference.rst +0 -256
- data/vendor/depot_tools/bootstrap/virtualenv/docs/userguide.rst +0 -249
- data/vendor/depot_tools/bootstrap/virtualenv/scripts/virtualenv +0 -3
- data/vendor/depot_tools/bootstrap/virtualenv/setup.py +0 -111
- data/vendor/depot_tools/bootstrap/virtualenv/tests/test_activate.sh +0 -94
- data/vendor/depot_tools/bootstrap/virtualenv/tests/test_activate_expected.output +0 -2
- data/vendor/depot_tools/bootstrap/virtualenv/tests/test_virtualenv.py +0 -139
- data/vendor/depot_tools/bootstrap/virtualenv/tests/tox.ini +0 -12
- data/vendor/depot_tools/bootstrap/virtualenv/tox.ini +0 -17
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv.py +0 -2367
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.bat +0 -26
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.csh +0 -42
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.fish +0 -74
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.ps1 +0 -150
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate.sh +0 -80
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/activate_this.py +0 -34
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/deactivate.bat +0 -20
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/distutils-init.py +0 -101
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/distutils.cfg +0 -6
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_embedded/site.py +0 -758
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_support/pip-6.0-py2.py3-none-any.whl +0 -0
- data/vendor/depot_tools/bootstrap/virtualenv/virtualenv_support/setuptools-8.2.1-py2.py3-none-any.whl +0 -0
- data/vendor/depot_tools/bootstrap/win/README.google +0 -16
- data/vendor/depot_tools/cbuildbot +0 -96
- data/vendor/depot_tools/chrome_set_ver +0 -96
- data/vendor/depot_tools/cros +0 -96
- data/vendor/depot_tools/cros_sdk +0 -96
- data/vendor/depot_tools/git-cl-upload-hook +0 -52
- data/vendor/depot_tools/git-crup +0 -45
- data/vendor/depot_tools/python_git_runner.sh +0 -36
- data/vendor/depot_tools/recipes/blink.py +0 -59
- data/vendor/depot_tools/third_party/cq_client/test/validate_config_test.py +0 -52
- data/vendor/depot_tools/third_party/cq_client/validate_config.py +0 -108
- data/vendor/depot_tools/win_toolchain/toolchain2013.py +0 -494
@@ -0,0 +1,86 @@
|
|
1
|
+
# Copyright 2014 The Chromium Authors. All rights reserved.
|
2
|
+
# Use of this source code is governed by a BSD-style license that can be
|
3
|
+
# found in the LICENSE file.
|
4
|
+
|
5
|
+
import hashlib
|
6
|
+
import os
|
7
|
+
import struct
|
8
|
+
import sys
|
9
|
+
from recipe_engine import recipe_test_api
|
10
|
+
|
11
|
+
# TODO(phajdan.jr): Clean up this somewhat ugly import.
|
12
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'resources'))
|
13
|
+
import bot_update
|
14
|
+
|
15
|
+
|
16
|
+
class BotUpdateTestApi(recipe_test_api.RecipeTestApi):
|
17
|
+
def output_json(self, master, builder, slave, root, first_sln,
|
18
|
+
revision_mapping, git_mode, force=False, fail_patch=False,
|
19
|
+
output_manifest=False, fixed_revisions=None):
|
20
|
+
"""Deterministically synthesize json.output test data for gclient's
|
21
|
+
--output-json option.
|
22
|
+
"""
|
23
|
+
active = bot_update.check_valid_host(master, builder, slave) or force
|
24
|
+
|
25
|
+
output = {
|
26
|
+
'did_run': active,
|
27
|
+
'patch_failure': False
|
28
|
+
}
|
29
|
+
|
30
|
+
# Add in extra json output if active.
|
31
|
+
if active:
|
32
|
+
properties = {
|
33
|
+
property_name: self.gen_revision(project_name, git_mode)
|
34
|
+
for project_name, property_name in revision_mapping.iteritems()
|
35
|
+
}
|
36
|
+
properties.update({
|
37
|
+
'%s_cp' % property_name: ('refs/heads/master@{#%s}' %
|
38
|
+
self.gen_revision(project_name, False))
|
39
|
+
for project_name, property_name in revision_mapping.iteritems()
|
40
|
+
})
|
41
|
+
|
42
|
+
# We also want to simulate outputting "got_revision_git": ...
|
43
|
+
# when git mode is off to match what bot_update.py does.
|
44
|
+
if not git_mode:
|
45
|
+
properties.update({
|
46
|
+
'%s_git' % property_name: self.gen_revision(project_name, True)
|
47
|
+
for project_name, property_name in revision_mapping.iteritems()
|
48
|
+
})
|
49
|
+
|
50
|
+
output.update({
|
51
|
+
'patch_root': root or first_sln,
|
52
|
+
'root': first_sln,
|
53
|
+
'properties': properties,
|
54
|
+
'step_text': 'Some step text'
|
55
|
+
})
|
56
|
+
|
57
|
+
if output_manifest:
|
58
|
+
output.update({
|
59
|
+
'manifest': {
|
60
|
+
project_name: {
|
61
|
+
'repository': 'https://fake.org/%s.git' % project_name,
|
62
|
+
'revision': self.gen_revision(project_name, git_mode),
|
63
|
+
}
|
64
|
+
for project_name in revision_mapping
|
65
|
+
}
|
66
|
+
})
|
67
|
+
|
68
|
+
if fixed_revisions:
|
69
|
+
output['fixed_revisions'] = fixed_revisions
|
70
|
+
|
71
|
+
if fail_patch:
|
72
|
+
output['log_lines'] = [('patch error', 'Patch failed to apply'),]
|
73
|
+
output['patch_failure'] = True
|
74
|
+
output['patch_apply_return_code'] = 1
|
75
|
+
if fail_patch == 'download':
|
76
|
+
output['patch_apply_return_code'] = 3
|
77
|
+
return self.m.json.output(output)
|
78
|
+
|
79
|
+
@staticmethod
|
80
|
+
def gen_revision(project, GIT_MODE):
|
81
|
+
"""Hash project to bogus deterministic revision values."""
|
82
|
+
h = hashlib.sha1(project)
|
83
|
+
if GIT_MODE:
|
84
|
+
return h.hexdigest()
|
85
|
+
else:
|
86
|
+
return struct.unpack('!I', h.digest()[:4])[0] % 300000
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Copyright 2016 The Chromium Authors. All rights reserved.
|
2
|
+
# Use of this source code is governed by a BSD-style license that can be
|
3
|
+
# found in the LICENSE file.
|
4
|
+
|
5
|
+
from recipe_engine import recipe_api
|
6
|
+
|
7
|
+
class DepotToolsApi(recipe_api.RecipeApi):
|
8
|
+
@property
|
9
|
+
def download_from_google_storage_path(self):
|
10
|
+
return self.package_repo_resource('download_from_google_storage.py')
|
11
|
+
|
12
|
+
@property
|
13
|
+
def cros_path(self):
|
14
|
+
return self.package_repo_resource('cros')
|
15
|
+
|
16
|
+
@property
|
17
|
+
def gn_py_path(self):
|
18
|
+
return self.package_repo_resource('gn.py')
|
19
|
+
|
20
|
+
@property
|
21
|
+
def gsutil_py_path(self):
|
22
|
+
return self.package_repo_resource('gsutil.py')
|
23
|
+
|
24
|
+
@property
|
25
|
+
def ninja_path(self):
|
26
|
+
ninja_exe = 'ninja.exe' if self.m.platform.is_win else 'ninja'
|
27
|
+
return self.package_repo_resource(ninja_exe)
|
@@ -0,0 +1,378 @@
|
|
1
|
+
# Copyright 2013 The Chromium Authors. All rights reserved.
|
2
|
+
# Use of this source code is governed by a BSD-style license that can be
|
3
|
+
# found in the LICENSE file.
|
4
|
+
|
5
|
+
from recipe_engine import recipe_api
|
6
|
+
|
7
|
+
|
8
|
+
class RevisionResolver(object):
|
9
|
+
"""Resolves the revision based on build properties."""
|
10
|
+
|
11
|
+
def resolve(self, properties): # pragma: no cover
|
12
|
+
raise NotImplementedError()
|
13
|
+
|
14
|
+
|
15
|
+
class RevisionFallbackChain(RevisionResolver):
|
16
|
+
"""Specify that a given project's sync revision follows the fallback chain."""
|
17
|
+
def __init__(self, default=None):
|
18
|
+
self._default = default
|
19
|
+
|
20
|
+
def resolve(self, properties):
|
21
|
+
"""Resolve the revision via the revision fallback chain.
|
22
|
+
|
23
|
+
If the given revision was set using the revision_fallback_chain() function,
|
24
|
+
this function will follow the chain, looking at relevant build properties
|
25
|
+
until it finds one set or reaches the end of the chain and returns the
|
26
|
+
default. If the given revision was not set using revision_fallback_chain(),
|
27
|
+
this function just returns it as-is.
|
28
|
+
"""
|
29
|
+
return (properties.get('parent_got_revision') or
|
30
|
+
properties.get('orig_revision') or
|
31
|
+
properties.get('revision') or
|
32
|
+
self._default)
|
33
|
+
|
34
|
+
|
35
|
+
class ProjectRevisionResolver(RevisionResolver):
|
36
|
+
"""Revision resolver that takes into account the project."""
|
37
|
+
def __init__(self, project, parent_got_revision=None):
|
38
|
+
self.project = project
|
39
|
+
self.parent_got_revision = parent_got_revision or 'parent_got_revision'
|
40
|
+
|
41
|
+
# TODO(phajdan.jr): Move to proper repo and add coverage.
|
42
|
+
def resolve(self, properties): # pragma: no cover
|
43
|
+
"""Resolve the revision if project matches, otherwise default to HEAD."""
|
44
|
+
if properties.get('project') == self.project:
|
45
|
+
return (properties.get(self.parent_got_revision) or
|
46
|
+
properties.get('revision') or
|
47
|
+
'HEAD')
|
48
|
+
return (properties.get(self.parent_got_revision) or
|
49
|
+
'HEAD')
|
50
|
+
|
51
|
+
|
52
|
+
def jsonish_to_python(spec, is_top=False):
|
53
|
+
"""Turn a json spec into a python parsable object.
|
54
|
+
|
55
|
+
This exists because Gclient specs, while resembling json, is actually
|
56
|
+
ingested using a python "eval()". Therefore a bit of plumming is required
|
57
|
+
to turn our newly constructed Gclient spec into a gclient-readable spec.
|
58
|
+
"""
|
59
|
+
ret = ''
|
60
|
+
if is_top: # We're the 'top' level, so treat this dict as a suite.
|
61
|
+
ret = '\n'.join(
|
62
|
+
'%s = %s' % (k, jsonish_to_python(spec[k])) for k in sorted(spec)
|
63
|
+
)
|
64
|
+
else:
|
65
|
+
if isinstance(spec, dict):
|
66
|
+
ret += '{'
|
67
|
+
ret += ', '.join(
|
68
|
+
"%s: %s" % (repr(str(k)), jsonish_to_python(spec[k]))
|
69
|
+
for k in sorted(spec)
|
70
|
+
)
|
71
|
+
ret += '}'
|
72
|
+
elif isinstance(spec, list):
|
73
|
+
ret += '['
|
74
|
+
ret += ', '.join(jsonish_to_python(x) for x in spec)
|
75
|
+
ret += ']'
|
76
|
+
elif isinstance(spec, basestring):
|
77
|
+
ret = repr(str(spec))
|
78
|
+
else:
|
79
|
+
ret = repr(spec)
|
80
|
+
return ret
|
81
|
+
|
82
|
+
class GclientApi(recipe_api.RecipeApi):
|
83
|
+
# Singleton object to indicate to checkout() that we should run a revert if
|
84
|
+
# we detect that we're on the tryserver.
|
85
|
+
RevertOnTryserver = object()
|
86
|
+
|
87
|
+
def __init__(self, **kwargs):
|
88
|
+
super(GclientApi, self).__init__(**kwargs)
|
89
|
+
self.USE_MIRROR = None
|
90
|
+
self._spec_alias = None
|
91
|
+
|
92
|
+
def __call__(self, name, cmd, infra_step=True, **kwargs):
|
93
|
+
"""Wrapper for easy calling of gclient steps."""
|
94
|
+
assert isinstance(cmd, (list, tuple))
|
95
|
+
prefix = 'gclient '
|
96
|
+
if self.spec_alias:
|
97
|
+
prefix = ('[spec: %s] ' % self.spec_alias) + prefix
|
98
|
+
|
99
|
+
kwargs.setdefault('env', {})
|
100
|
+
kwargs['env'].setdefault('PATH', '%(PATH)s')
|
101
|
+
kwargs['env']['PATH'] = self.m.path.pathsep.join([
|
102
|
+
kwargs['env']['PATH'], str(self._module.PACKAGE_REPO_ROOT)])
|
103
|
+
|
104
|
+
return self.m.python(prefix + name,
|
105
|
+
self.package_repo_resource('gclient.py'),
|
106
|
+
cmd,
|
107
|
+
infra_step=infra_step,
|
108
|
+
**kwargs)
|
109
|
+
|
110
|
+
@property
|
111
|
+
def use_mirror(self):
|
112
|
+
"""Indicates if gclient will use mirrors in its configuration."""
|
113
|
+
if self.USE_MIRROR is None:
|
114
|
+
self.USE_MIRROR = self.m.properties.get('use_mirror', True)
|
115
|
+
return self.USE_MIRROR
|
116
|
+
|
117
|
+
@use_mirror.setter
|
118
|
+
def use_mirror(self, val): # pragma: no cover
|
119
|
+
self.USE_MIRROR = val
|
120
|
+
|
121
|
+
@property
|
122
|
+
def spec_alias(self):
|
123
|
+
"""Optional name for the current spec for step naming."""
|
124
|
+
return self._spec_alias
|
125
|
+
|
126
|
+
@spec_alias.setter
|
127
|
+
def spec_alias(self, name):
|
128
|
+
self._spec_alias = name
|
129
|
+
|
130
|
+
@spec_alias.deleter
|
131
|
+
def spec_alias(self):
|
132
|
+
self._spec_alias = None
|
133
|
+
|
134
|
+
def get_config_defaults(self):
|
135
|
+
return {
|
136
|
+
'USE_MIRROR': self.use_mirror,
|
137
|
+
'CACHE_DIR': self.m.path['git_cache'],
|
138
|
+
}
|
139
|
+
|
140
|
+
@staticmethod
|
141
|
+
def config_to_pythonish(cfg):
|
142
|
+
return jsonish_to_python(cfg.as_jsonish(), True)
|
143
|
+
|
144
|
+
def resolve_revision(self, revision):
|
145
|
+
if hasattr(revision, 'resolve'):
|
146
|
+
return revision.resolve(self.m.properties)
|
147
|
+
return revision
|
148
|
+
|
149
|
+
def sync(self, cfg, with_branch_heads=False, **kwargs):
|
150
|
+
revisions = []
|
151
|
+
self.set_patch_project_revision(self.m.properties.get('patch_project'), cfg)
|
152
|
+
for i, s in enumerate(cfg.solutions):
|
153
|
+
if s.safesync_url: # prefer safesync_url in gclient mode
|
154
|
+
continue
|
155
|
+
if i == 0 and s.revision is None:
|
156
|
+
s.revision = RevisionFallbackChain()
|
157
|
+
|
158
|
+
if s.revision is not None and s.revision != '':
|
159
|
+
fixed_revision = self.resolve_revision(s.revision)
|
160
|
+
if fixed_revision:
|
161
|
+
revisions.extend(['--revision', '%s@%s' % (s.name, fixed_revision)])
|
162
|
+
|
163
|
+
for name, revision in sorted(cfg.revisions.items()):
|
164
|
+
fixed_revision = self.resolve_revision(revision)
|
165
|
+
if fixed_revision:
|
166
|
+
revisions.extend(['--revision', '%s@%s' % (name, fixed_revision)])
|
167
|
+
|
168
|
+
test_data_paths = set(cfg.got_revision_mapping.keys() +
|
169
|
+
[s.name for s in cfg.solutions])
|
170
|
+
step_test_data = lambda: (
|
171
|
+
self.test_api.output_json(test_data_paths, cfg.GIT_MODE))
|
172
|
+
try:
|
173
|
+
if not cfg.GIT_MODE:
|
174
|
+
args = ['sync', '--nohooks', '--force', '--verbose']
|
175
|
+
if cfg.delete_unversioned_trees:
|
176
|
+
args.append('--delete_unversioned_trees')
|
177
|
+
if with_branch_heads:
|
178
|
+
args.append('--with_branch_heads')
|
179
|
+
self('sync', args + revisions + ['--output-json', self.m.json.output()],
|
180
|
+
step_test_data=step_test_data,
|
181
|
+
**kwargs)
|
182
|
+
else:
|
183
|
+
# clean() isn't used because the gclient sync flags passed in checkout()
|
184
|
+
# do much the same thing, and they're more correct than doing a separate
|
185
|
+
# 'gclient revert' because it makes sure the other args are correct when
|
186
|
+
# a repo was deleted and needs to be re-cloned (notably
|
187
|
+
# --with_branch_heads), whereas 'revert' uses default args for clone
|
188
|
+
# operations.
|
189
|
+
#
|
190
|
+
# TODO(mmoss): To be like current official builders, this step could
|
191
|
+
# just delete the whole <slave_name>/build/ directory and start each
|
192
|
+
# build from scratch. That might be the least bad solution, at least
|
193
|
+
# until we have a reliable gclient method to produce a pristine working
|
194
|
+
# dir for git-based builds (e.g. maybe some combination of 'git
|
195
|
+
# reset/clean -fx' and removing the 'out' directory).
|
196
|
+
j = '-j2' if self.m.platform.is_win else '-j8'
|
197
|
+
args = ['sync', '--verbose', '--with_branch_heads', '--nohooks', j,
|
198
|
+
'--reset', '--force', '--upstream', '--no-nag-max']
|
199
|
+
if cfg.delete_unversioned_trees:
|
200
|
+
args.append('--delete_unversioned_trees')
|
201
|
+
self('sync', args + revisions +
|
202
|
+
['--output-json', self.m.json.output()],
|
203
|
+
step_test_data=step_test_data,
|
204
|
+
**kwargs)
|
205
|
+
finally:
|
206
|
+
result = self.m.step.active_result
|
207
|
+
data = result.json.output
|
208
|
+
for path, info in data['solutions'].iteritems():
|
209
|
+
# gclient json paths always end with a slash
|
210
|
+
path = path.rstrip('/')
|
211
|
+
if path in cfg.got_revision_mapping:
|
212
|
+
propname = cfg.got_revision_mapping[path]
|
213
|
+
result.presentation.properties[propname] = info['revision']
|
214
|
+
|
215
|
+
return result
|
216
|
+
|
217
|
+
def inject_parent_got_revision(self, gclient_config=None, override=False):
|
218
|
+
"""Match gclient config to build revisions obtained from build_properties.
|
219
|
+
|
220
|
+
Args:
|
221
|
+
gclient_config (gclient config object) - The config to manipulate. A value
|
222
|
+
of None manipulates the module's built-in config (self.c).
|
223
|
+
override (bool) - If True, will forcibly set revision and custom_vars
|
224
|
+
even if the config already contains values for them.
|
225
|
+
"""
|
226
|
+
cfg = gclient_config or self.c
|
227
|
+
|
228
|
+
for prop, custom_var in cfg.parent_got_revision_mapping.iteritems():
|
229
|
+
val = str(self.m.properties.get(prop, ''))
|
230
|
+
# TODO(infra): Fix coverage.
|
231
|
+
if val: # pragma: no cover
|
232
|
+
# Special case for 'src', inject into solutions[0]
|
233
|
+
if custom_var is None:
|
234
|
+
# This is not covered because we are deprecating this feature and
|
235
|
+
# it is no longer used by the public recipes.
|
236
|
+
if cfg.solutions[0].revision is None or override: # pragma: no cover
|
237
|
+
cfg.solutions[0].revision = val
|
238
|
+
else:
|
239
|
+
if custom_var not in cfg.solutions[0].custom_vars or override:
|
240
|
+
cfg.solutions[0].custom_vars[custom_var] = val
|
241
|
+
|
242
|
+
def checkout(self, gclient_config=None, revert=RevertOnTryserver,
|
243
|
+
inject_parent_got_revision=True, with_branch_heads=False,
|
244
|
+
**kwargs):
|
245
|
+
"""Return a step generator function for gclient checkouts."""
|
246
|
+
cfg = gclient_config or self.c
|
247
|
+
assert cfg.complete()
|
248
|
+
|
249
|
+
if revert is self.RevertOnTryserver:
|
250
|
+
revert = self.m.tryserver.is_tryserver
|
251
|
+
|
252
|
+
if inject_parent_got_revision:
|
253
|
+
self.inject_parent_got_revision(cfg, override=True)
|
254
|
+
|
255
|
+
self('setup', ['config', '--spec', self.config_to_pythonish(cfg)], **kwargs)
|
256
|
+
|
257
|
+
sync_step = None
|
258
|
+
try:
|
259
|
+
if not cfg.GIT_MODE:
|
260
|
+
try:
|
261
|
+
if revert:
|
262
|
+
self.revert(**kwargs)
|
263
|
+
finally:
|
264
|
+
sync_step = self.sync(cfg, with_branch_heads=with_branch_heads,
|
265
|
+
**kwargs)
|
266
|
+
else:
|
267
|
+
sync_step = self.sync(cfg, with_branch_heads=with_branch_heads,
|
268
|
+
**kwargs)
|
269
|
+
|
270
|
+
cfg_cmds = [
|
271
|
+
('user.name', 'local_bot'),
|
272
|
+
('user.email', 'local_bot@example.com'),
|
273
|
+
]
|
274
|
+
for var, val in cfg_cmds:
|
275
|
+
name = 'recurse (git config %s)' % var
|
276
|
+
self(name, ['recurse', 'git', 'config', var, val], **kwargs)
|
277
|
+
|
278
|
+
finally:
|
279
|
+
cwd = kwargs.get('cwd', self.m.path['slave_build'])
|
280
|
+
if 'checkout' not in self.m.path:
|
281
|
+
self.m.path['checkout'] = cwd.join(
|
282
|
+
*cfg.solutions[0].name.split(self.m.path.sep))
|
283
|
+
|
284
|
+
return sync_step
|
285
|
+
|
286
|
+
def revert(self, **kwargs):
|
287
|
+
"""Return a gclient_safe_revert step."""
|
288
|
+
# Not directly calling gclient, so don't use self().
|
289
|
+
alias = self.spec_alias
|
290
|
+
prefix = '%sgclient ' % (('[spec: %s] ' % alias) if alias else '')
|
291
|
+
|
292
|
+
return self.m.python(prefix + 'revert',
|
293
|
+
self.m.path['build'].join('scripts', 'slave', 'gclient_safe_revert.py'),
|
294
|
+
['.', self.m.path['depot_tools'].join('gclient',
|
295
|
+
platform_ext={'win': '.bat'})],
|
296
|
+
infra_step=True,
|
297
|
+
**kwargs
|
298
|
+
)
|
299
|
+
|
300
|
+
def runhooks(self, args=None, name='runhooks', **kwargs):
|
301
|
+
args = args or []
|
302
|
+
assert isinstance(args, (list, tuple))
|
303
|
+
return self(
|
304
|
+
name, ['runhooks'] + list(args), infra_step=False, **kwargs)
|
305
|
+
|
306
|
+
@property
|
307
|
+
def is_blink_mode(self):
|
308
|
+
""" Indicates wether the caller is to use the Blink config rather than the
|
309
|
+
Chromium config. This may happen for one of two reasons:
|
310
|
+
1. The builder is configured to always use TOT Blink. (factory property
|
311
|
+
top_of_tree_blink=True)
|
312
|
+
2. A try job comes in that applies to the Blink tree. (patch_project is
|
313
|
+
blink)
|
314
|
+
"""
|
315
|
+
return (
|
316
|
+
self.m.properties.get('top_of_tree_blink') or
|
317
|
+
self.m.properties.get('patch_project') == 'blink')
|
318
|
+
|
319
|
+
def break_locks(self):
|
320
|
+
"""Remove all index.lock files. If a previous run of git crashed, bot was
|
321
|
+
reset, etc... we might end up with leftover index.lock files.
|
322
|
+
"""
|
323
|
+
self.m.python.inline(
|
324
|
+
'cleanup index.lock',
|
325
|
+
"""
|
326
|
+
import os, sys
|
327
|
+
|
328
|
+
build_path = sys.argv[1]
|
329
|
+
if os.path.exists(build_path):
|
330
|
+
for (path, dir, files) in os.walk(build_path):
|
331
|
+
for cur_file in files:
|
332
|
+
if cur_file.endswith('index.lock'):
|
333
|
+
path_to_file = os.path.join(path, cur_file)
|
334
|
+
print 'deleting %s' % path_to_file
|
335
|
+
os.remove(path_to_file)
|
336
|
+
""",
|
337
|
+
args=[self.m.path['slave_build']],
|
338
|
+
infra_step=True,
|
339
|
+
)
|
340
|
+
|
341
|
+
def calculate_patch_root(self, patch_project, gclient_config=None):
|
342
|
+
"""Returns path where a patch should be applied to based patch_project.
|
343
|
+
|
344
|
+
Maps "patch_project" to a path of directories relative to checkout's root,
|
345
|
+
which describe where to place the patch.
|
346
|
+
|
347
|
+
For now, considers only first solution (c.solutions[0]), but in theory can
|
348
|
+
be extended to all of them.
|
349
|
+
|
350
|
+
See patch_projects solution config property.
|
351
|
+
|
352
|
+
Returns:
|
353
|
+
Relative path, including solution's root.
|
354
|
+
If patch_project is not given or not recognized, it'll be just first
|
355
|
+
solution root.
|
356
|
+
"""
|
357
|
+
cfg = gclient_config or self.c
|
358
|
+
root, _ = cfg.patch_projects.get(patch_project, ('', ''))
|
359
|
+
if root:
|
360
|
+
# Note, that c.patch_projects contains patch roots as
|
361
|
+
# slash(/)-separated path, which are roots of the respective project repos
|
362
|
+
# and include actual solution name in them.
|
363
|
+
return self.m.path.join(*root.split('/'))
|
364
|
+
# Default case - assume patch is for first solution, as this is what most
|
365
|
+
# projects rely on.
|
366
|
+
return cfg.solutions[0].name
|
367
|
+
|
368
|
+
def set_patch_project_revision(self, patch_project, gclient_config=None):
|
369
|
+
"""Updates config revision corresponding to patch_project.
|
370
|
+
|
371
|
+
Useful for bot_update only, as this is the only consumer of gclient's config
|
372
|
+
revision map. This doesn't overwrite the revision if it was already set.
|
373
|
+
"""
|
374
|
+
assert patch_project is None or isinstance(patch_project, basestring)
|
375
|
+
cfg = gclient_config or self.c
|
376
|
+
path, revision = cfg.patch_projects.get(patch_project, (None, None))
|
377
|
+
if path and revision and path not in cfg.revisions:
|
378
|
+
cfg.revisions[path] = revision
|