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,55 @@
|
|
1
|
+
version: 1
|
2
|
+
cq_name: "infra"
|
3
|
+
cq_status_url: "https://chromium-cq-status.appspot.com"
|
4
|
+
hide_ref_in_committed_msg: true
|
5
|
+
commit_burst_delay: 600
|
6
|
+
max_commit_burst: 10
|
7
|
+
in_production: false
|
8
|
+
git_repo_url: "https://chromium.googlesource.com/infra/infra.git"
|
9
|
+
target_ref: "refs/pending/heads/master"
|
10
|
+
|
11
|
+
gerrit {
|
12
|
+
cq_verified_label: "Commit-Queue-Verified"
|
13
|
+
}
|
14
|
+
|
15
|
+
verifiers {
|
16
|
+
tree_status: {
|
17
|
+
tree_status_url: "https://infra-status.appspot.com"
|
18
|
+
}
|
19
|
+
|
20
|
+
try_job {
|
21
|
+
buckets {
|
22
|
+
name: "tryserver.blink"
|
23
|
+
builders { name: "android_blink_compile_dbg" }
|
24
|
+
builders { name: "android_blink_compile_rel" }
|
25
|
+
builders { name: "win_blink_rel" }
|
26
|
+
builders {
|
27
|
+
name: "win_blink_rel_triggered"
|
28
|
+
triggered_by: "win_blink_rel"
|
29
|
+
}
|
30
|
+
}
|
31
|
+
buckets {
|
32
|
+
name: "tryserver.chromium.linux"
|
33
|
+
builders {
|
34
|
+
name: "android_arm64_dbg_recipe"
|
35
|
+
}
|
36
|
+
builders {
|
37
|
+
name: "linux_chromium_rel_ng"
|
38
|
+
experiment_percentage: 10
|
39
|
+
}
|
40
|
+
}
|
41
|
+
buckets {
|
42
|
+
name: "tryserver.chromium.mac"
|
43
|
+
builders {
|
44
|
+
name: "ios_dbg_simulator_ninja"
|
45
|
+
experiment_percentage: 100
|
46
|
+
}
|
47
|
+
}
|
48
|
+
try_job_retry_config {
|
49
|
+
try_job_retry_quota: 10
|
50
|
+
global_retry_quota: 11
|
51
|
+
failure_retry_weight: 12
|
52
|
+
transient_failure_retry_weight: 13
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
data/vendor/depot_tools/third_party/cq_client/{test/cq_example.cfg → testdata/cq_rietveld.cfg}
RENAMED
@@ -15,7 +15,8 @@ rietveld {
|
|
15
15
|
|
16
16
|
verifiers {
|
17
17
|
reviewer_lgtm: {
|
18
|
-
committer_list: "chromium"
|
18
|
+
committer_list: "project-chromium-committers"
|
19
|
+
dry_run_access_list: "project-chromium-tryjob-access"
|
19
20
|
max_wait_secs: 600
|
20
21
|
no_lgtm_msg: "LGTM is missing"
|
21
22
|
}
|
@@ -29,9 +30,10 @@ verifiers {
|
|
29
30
|
name: "tryserver.blink"
|
30
31
|
builders { name: "android_blink_compile_dbg" }
|
31
32
|
builders { name: "android_blink_compile_rel" }
|
33
|
+
builders { name: "win_blink_rel" }
|
32
34
|
builders {
|
33
|
-
name: "
|
34
|
-
|
35
|
+
name: "win_blink_rel_triggered"
|
36
|
+
triggered_by: "win_blink_rel"
|
35
37
|
}
|
36
38
|
}
|
37
39
|
buckets {
|
@@ -41,15 +43,21 @@ verifiers {
|
|
41
43
|
}
|
42
44
|
builders {
|
43
45
|
name: "linux_chromium_rel_ng"
|
44
|
-
experiment_percentage:
|
46
|
+
experiment_percentage: 10
|
45
47
|
}
|
46
48
|
}
|
47
49
|
buckets {
|
48
50
|
name: "tryserver.chromium.mac"
|
49
51
|
builders {
|
50
52
|
name: "ios_dbg_simulator_ninja"
|
51
|
-
experiment_percentage:
|
53
|
+
experiment_percentage: 100
|
52
54
|
}
|
53
55
|
}
|
56
|
+
try_job_retry_config {
|
57
|
+
try_job_retry_quota: 10
|
58
|
+
global_retry_quota: 11
|
59
|
+
failure_retry_weight: 12
|
60
|
+
transient_failure_retry_weight: 13
|
61
|
+
}
|
54
62
|
}
|
55
|
-
}
|
63
|
+
}
|
@@ -1,7 +1,5 @@
|
|
1
|
-
The fancy_urllib library was obtained from
|
2
|
-
|
3
|
-
under the following license (http://googleappengine.googlecode.com/svn/trunk/python/LICENSE):
|
4
|
-
|
1
|
+
The fancy_urllib library was obtained from [1] under the following
|
2
|
+
license ([2]):
|
5
3
|
|
6
4
|
GOOGLE APP ENGINE SDK
|
7
5
|
=====================
|
@@ -19,3 +17,6 @@ distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
17
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
20
18
|
See the License for the specific language governing permissions and
|
21
19
|
limitations under the License.
|
20
|
+
|
21
|
+
[1] https://github.com/GoogleCloudPlatform/appengine-python-vm-runtime/blob/master/python_vm_runtime/lib/fancy_urllib/fancy_urllib/__init__.py
|
22
|
+
[2] https://github.com/GoogleCloudPlatform/appengine-python-vm-runtime/blob/master/python_vm_runtime/LICENSE
|
@@ -1,5 +1,3 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
#
|
3
1
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software
|
4
2
|
# Foundation; All Rights Reserved
|
5
3
|
|
@@ -14,13 +12,12 @@ __author__ = "{frew,nick.johnson}@google.com (Fred Wulff and Nick Johnson)"
|
|
14
12
|
import base64
|
15
13
|
import httplib
|
16
14
|
import logging
|
17
|
-
import re
|
18
15
|
import socket
|
19
|
-
import
|
20
|
-
|
16
|
+
from urllib import splitpasswd
|
21
17
|
from urllib import splittype
|
22
18
|
from urllib import splituser
|
23
|
-
|
19
|
+
import urllib2
|
20
|
+
|
24
21
|
|
25
22
|
class InvalidCertificateException(httplib.HTTPException):
|
26
23
|
"""Raised when a certificate is provided with an invalid hostname."""
|
@@ -31,6 +28,7 @@ class InvalidCertificateException(httplib.HTTPException):
|
|
31
28
|
Args:
|
32
29
|
host: The hostname the connection was made to.
|
33
30
|
cert: The SSL certificate (as a dictionary) the host returned.
|
31
|
+
reason: user readable error reason.
|
34
32
|
"""
|
35
33
|
httplib.HTTPException.__init__(self)
|
36
34
|
self.host = host
|
@@ -38,21 +36,35 @@ class InvalidCertificateException(httplib.HTTPException):
|
|
38
36
|
self.reason = reason
|
39
37
|
|
40
38
|
def __str__(self):
|
41
|
-
return (
|
42
|
-
|
43
|
-
|
39
|
+
return ("Host %s returned an invalid certificate (%s): %s\n"
|
40
|
+
"To learn more, see "
|
41
|
+
"http://code.google.com/appengine/kb/general.html#rpcssl" %
|
44
42
|
(self.host, self.reason, self.cert))
|
45
43
|
|
44
|
+
|
45
|
+
try:
|
46
|
+
import ssl
|
47
|
+
_CAN_VALIDATE_CERTS = True
|
48
|
+
except ImportError:
|
49
|
+
_CAN_VALIDATE_CERTS = False
|
50
|
+
|
51
|
+
|
46
52
|
def can_validate_certs():
|
47
53
|
"""Return True if we have the SSL package and can validate certificates."""
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
54
|
+
return _CAN_VALIDATE_CERTS
|
55
|
+
|
56
|
+
|
57
|
+
# Reexport SSLError so clients don't have to to do their own checking for ssl's
|
58
|
+
# existence.
|
59
|
+
if can_validate_certs():
|
60
|
+
SSLError = ssl.SSLError
|
61
|
+
else:
|
62
|
+
SSLError = None
|
63
|
+
|
64
|
+
|
65
|
+
def create_fancy_connection(tunnel_host=None, key_file=None,
|
66
|
+
cert_file=None, ca_certs=None,
|
67
|
+
proxy_authorization=None):
|
56
68
|
# This abomination brought to you by the fact that
|
57
69
|
# the HTTPHandler creates the connection instance in the middle
|
58
70
|
# of do_open so we need to add the tunnel host to the class.
|
@@ -70,28 +82,64 @@ def _create_fancy_connection(tunnel_host=None, key_file=None,
|
|
70
82
|
self.key_file = key_file
|
71
83
|
self.cert_file = cert_file
|
72
84
|
self.ca_certs = ca_certs
|
73
|
-
|
74
|
-
import ssl
|
85
|
+
if can_validate_certs():
|
75
86
|
if self.ca_certs:
|
76
87
|
self.cert_reqs = ssl.CERT_REQUIRED
|
77
88
|
else:
|
78
89
|
self.cert_reqs = ssl.CERT_NONE
|
79
|
-
|
80
|
-
|
90
|
+
|
91
|
+
def _get_hostport(self, host, port):
|
92
|
+
# Python 2.7.7rc1 (hg r90728:568041fd8090), 3.4.1 and 3.5 rename
|
93
|
+
# _set_hostport to _get_hostport and changes it's functionality. The
|
94
|
+
# Python 2.7.7rc1 version of this method is included here for
|
95
|
+
# compatibility with earlier versions of Python. Without this, HTTPS over
|
96
|
+
# HTTP CONNECT proxies cannot be used.
|
97
|
+
|
98
|
+
# This method may be removed if compatibility with Python <2.7.7rc1 is not
|
99
|
+
# required.
|
100
|
+
|
101
|
+
# Python bug: http://bugs.python.org/issue7776
|
102
|
+
if port is None:
|
103
|
+
i = host.rfind(":")
|
104
|
+
j = host.rfind("]") # ipv6 addresses have [...]
|
105
|
+
if i > j:
|
106
|
+
try:
|
107
|
+
port = int(host[i+1:])
|
108
|
+
except ValueError:
|
109
|
+
if host[i+1:] == "": # http://foo.com:/ == http://foo.com/
|
110
|
+
port = self.default_port
|
111
|
+
else:
|
112
|
+
raise httplib.InvalidURL("nonnumeric port: '%s'" % host[i+1:])
|
113
|
+
host = host[:i]
|
114
|
+
else:
|
115
|
+
port = self.default_port
|
116
|
+
if host and host[0] == "[" and host[-1] == "]":
|
117
|
+
host = host[1:-1]
|
118
|
+
|
119
|
+
return (host, port)
|
81
120
|
|
82
121
|
def _tunnel(self):
|
83
|
-
self.
|
122
|
+
self.host, self.port = self._get_hostport(self._tunnel_host, None)
|
84
123
|
logging.info("Connecting through tunnel to: %s:%d",
|
85
124
|
self.host, self.port)
|
86
|
-
|
125
|
+
|
126
|
+
self.send("CONNECT %s:%d HTTP/1.0\r\n" % (self.host, self.port))
|
127
|
+
|
128
|
+
if proxy_authorization:
|
129
|
+
self.send("Proxy-Authorization: %s\r\n" % proxy_authorization)
|
130
|
+
|
131
|
+
# blank line
|
132
|
+
self.send("\r\n")
|
133
|
+
|
87
134
|
response = self.response_class(self.sock, strict=self.strict,
|
88
135
|
method=self._method)
|
136
|
+
# pylint: disable=protected-access
|
89
137
|
(_, code, message) = response._read_status()
|
90
138
|
|
91
139
|
if code != 200:
|
92
140
|
self.close()
|
93
|
-
raise socket.error
|
94
|
-
|
141
|
+
raise socket.error("Tunnel connection failed: %d %s" %
|
142
|
+
(code, message.strip()))
|
95
143
|
|
96
144
|
while True:
|
97
145
|
line = response.fp.readline()
|
@@ -106,15 +154,15 @@ def _create_fancy_connection(tunnel_host=None, key_file=None,
|
|
106
154
|
Returns:
|
107
155
|
list: A list of valid host globs.
|
108
156
|
"""
|
109
|
-
if
|
110
|
-
return [x[1] for x in cert[
|
157
|
+
if "subjectAltName" in cert:
|
158
|
+
return [x[1] for x in cert["subjectAltName"] if x[0].lower() == "dns"]
|
111
159
|
else:
|
112
160
|
# Return a list of commonName fields
|
113
|
-
return [x[0][1] for x in cert[
|
114
|
-
if x[0][0].lower() ==
|
161
|
+
return [x[0][1] for x in cert["subject"]
|
162
|
+
if x[0][0].lower() == "commonname"]
|
115
163
|
|
116
164
|
def _validate_certificate_hostname(self, cert, hostname):
|
117
|
-
"""
|
165
|
+
"""Perform RFC2818/6125 validation against a cert and hostname.
|
118
166
|
|
119
167
|
Args:
|
120
168
|
cert: A dictionary representing an SSL certificate.
|
@@ -124,14 +172,19 @@ def _create_fancy_connection(tunnel_host=None, key_file=None,
|
|
124
172
|
"""
|
125
173
|
hosts = self._get_valid_hosts_for_cert(cert)
|
126
174
|
for host in hosts:
|
127
|
-
#
|
128
|
-
#
|
129
|
-
|
130
|
-
|
175
|
+
# Wildcards are only valid when the * exists at the end of the last
|
176
|
+
# (left-most) label, and there are at least 3 labels in the expression.
|
177
|
+
if ("*." in host and host.count("*") == 1 and
|
178
|
+
host.count(".") > 1 and "." in hostname):
|
179
|
+
left_expected, right_expected = host.split("*.")
|
180
|
+
left_hostname, right_hostname = hostname.split(".", 1)
|
181
|
+
if (left_hostname.startswith(left_expected) and
|
182
|
+
right_expected == right_hostname):
|
183
|
+
return True
|
184
|
+
elif host == hostname:
|
131
185
|
return True
|
132
186
|
return False
|
133
187
|
|
134
|
-
|
135
188
|
def connect(self):
|
136
189
|
# TODO(frew): When we drop support for <2.6 (in the far distant future),
|
137
190
|
# change this to socket.create_connection.
|
@@ -141,9 +194,11 @@ def _create_fancy_connection(tunnel_host=None, key_file=None,
|
|
141
194
|
self._tunnel()
|
142
195
|
|
143
196
|
# ssl and FakeSocket got deprecated. Try for the new hotness of wrap_ssl,
|
144
|
-
# with fallback.
|
145
|
-
|
146
|
-
|
197
|
+
# with fallback. Note: Since can_validate_certs() just checks for the
|
198
|
+
# ssl module, it's equivalent to attempting to import ssl from
|
199
|
+
# the function, but doesn't require a dynamic import, which doesn't
|
200
|
+
# play nicely with dev_appserver.
|
201
|
+
if can_validate_certs():
|
147
202
|
self.sock = ssl.wrap_socket(self.sock,
|
148
203
|
keyfile=self.key_file,
|
149
204
|
certfile=self.cert_file,
|
@@ -152,15 +207,15 @@ def _create_fancy_connection(tunnel_host=None, key_file=None,
|
|
152
207
|
|
153
208
|
if self.cert_reqs & ssl.CERT_REQUIRED:
|
154
209
|
cert = self.sock.getpeercert()
|
155
|
-
hostname = self.host.split(
|
210
|
+
hostname = self.host.split(":", 0)[0]
|
156
211
|
if not self._validate_certificate_hostname(cert, hostname):
|
157
212
|
raise InvalidCertificateException(hostname, cert,
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
self.sock = httplib.FakeSocket(self.sock,
|
213
|
+
"hostname mismatch")
|
214
|
+
else:
|
215
|
+
ssl_socket = socket.ssl(self.sock,
|
216
|
+
keyfile=self.key_file,
|
217
|
+
certfile=self.cert_file)
|
218
|
+
self.sock = httplib.FakeSocket(self.sock, ssl_socket)
|
164
219
|
|
165
220
|
return PresetProxyHTTPSConnection
|
166
221
|
|
@@ -329,17 +384,24 @@ class FancyProxyHandler(urllib2.ProxyHandler):
|
|
329
384
|
class FancyHTTPSHandler(urllib2.HTTPSHandler):
|
330
385
|
"""An HTTPSHandler that works with CONNECT-enabled proxies."""
|
331
386
|
|
332
|
-
def do_open(self, http_class, req):
|
387
|
+
def do_open(self, http_class, req, *args, **kwargs):
|
388
|
+
proxy_authorization = None
|
389
|
+
for header in req.headers:
|
390
|
+
if header.lower() == "proxy-authorization":
|
391
|
+
proxy_authorization = req.headers[header]
|
392
|
+
break
|
393
|
+
|
333
394
|
# Intentionally very specific so as to opt for false negatives
|
334
395
|
# rather than false positives.
|
335
396
|
try:
|
336
397
|
return urllib2.HTTPSHandler.do_open(
|
337
398
|
self,
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
399
|
+
create_fancy_connection(req._tunnel_host,
|
400
|
+
req._key_file,
|
401
|
+
req._cert_file,
|
402
|
+
req._ca_certs,
|
403
|
+
proxy_authorization),
|
404
|
+
req, *args, **kwargs)
|
343
405
|
except urllib2.URLError, url_error:
|
344
406
|
try:
|
345
407
|
import ssl
|
@@ -347,7 +409,7 @@ class FancyHTTPSHandler(urllib2.HTTPSHandler):
|
|
347
409
|
url_error.reason.args[0] == 1):
|
348
410
|
# Display the reason to the user. Need to use args for python2.5
|
349
411
|
# compat.
|
350
|
-
raise InvalidCertificateException(req.host,
|
412
|
+
raise InvalidCertificateException(req.host, "",
|
351
413
|
url_error.reason.args[1])
|
352
414
|
except ImportError:
|
353
415
|
pass
|
@@ -2,12 +2,12 @@ This directory contains google.protobuf module version 2.6.0 build 0.
|
|
2
2
|
|
3
3
|
sergiyb@: It has been manually renamed to protobuf26. This is needed to avoid
|
4
4
|
conflicts with a built-in google.protobuf module found on many developer
|
5
|
-
machines. The long-term solution to this problem
|
6
|
-
|
7
|
-
|
5
|
+
machines. The long-term solution to this problem was to use virtualenv and it
|
6
|
+
was implemented, but had to be reverted due to incompatibilities with ChromiumOS
|
7
|
+
builds (see http://crbug.com/542922).
|
8
8
|
|
9
|
-
If you need to update this package, please make sure that you replace all
|
10
|
-
|
9
|
+
If you need to update this package, please make sure that you replace all the
|
10
|
+
references to google.protobuf in the package itself with protobuf26, e.g.
|
11
11
|
|
12
12
|
from google.protobuf import text_format
|
13
13
|
import google.protobuf
|
@@ -17,4 +17,7 @@ becomes
|
|
17
17
|
from protobuf26 import text_format
|
18
18
|
import protobuf26
|
19
19
|
|
20
|
-
|
20
|
+
Original bug tracking setting up virtualenv for depot_tools was
|
21
|
+
http://crbug.com/503067, but it was closed as WontFix. If you believe that
|
22
|
+
virtualenv should be added to the current version of depot_tools, please re-open
|
23
|
+
that bug.
|
@@ -842,15 +842,12 @@ def GetContentType(filename):
|
|
842
842
|
# Use a shell for subcommands on Windows to get a PATH search.
|
843
843
|
use_shell = sys.platform.startswith("win")
|
844
844
|
|
845
|
-
def RunShellWithReturnCodeAndStderr(command,
|
846
|
-
|
847
|
-
env=os.environ):
|
845
|
+
def RunShellWithReturnCodeAndStderr(command, universal_newlines=True,
|
846
|
+
env=os.environ):
|
848
847
|
"""Run a command and return output from stdout, stderr and the return code.
|
849
848
|
|
850
849
|
Args:
|
851
850
|
command: Command to execute.
|
852
|
-
print_output: If True, the output is printed to stdout.
|
853
|
-
If False, both stdout and stderr are ignored.
|
854
851
|
universal_newlines: Use universal_newlines flag (default: True).
|
855
852
|
|
856
853
|
Returns:
|
@@ -862,37 +859,20 @@ def RunShellWithReturnCodeAndStderr(command, print_output=False,
|
|
862
859
|
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
|
863
860
|
shell=use_shell, universal_newlines=universal_newlines,
|
864
861
|
env=env)
|
865
|
-
|
866
|
-
output_array = []
|
867
|
-
while True:
|
868
|
-
line = p.stdout.readline()
|
869
|
-
if not line:
|
870
|
-
break
|
871
|
-
print line.strip("\n")
|
872
|
-
output_array.append(line)
|
873
|
-
output = "".join(output_array)
|
874
|
-
else:
|
875
|
-
output = p.stdout.read()
|
876
|
-
p.wait()
|
877
|
-
errout = p.stderr.read()
|
878
|
-
if print_output and errout:
|
879
|
-
print >> sys.stderr, errout
|
862
|
+
output, errout = p.communicate()
|
880
863
|
p.stdout.close()
|
881
864
|
p.stderr.close()
|
882
865
|
return output, errout, p.returncode
|
883
866
|
|
884
|
-
def RunShellWithReturnCode(command,
|
885
|
-
universal_newlines=True,
|
886
|
-
env=os.environ):
|
867
|
+
def RunShellWithReturnCode(command, universal_newlines=True, env=os.environ):
|
887
868
|
"""Run a command and return output from stdout and the return code."""
|
888
|
-
out, err, retcode = RunShellWithReturnCodeAndStderr(command,
|
869
|
+
out, err, retcode = RunShellWithReturnCodeAndStderr(command,
|
889
870
|
universal_newlines, env)
|
890
871
|
return out, retcode
|
891
872
|
|
892
873
|
def RunShell(command, silent_ok=False, universal_newlines=True,
|
893
|
-
|
894
|
-
data, retcode = RunShellWithReturnCode(command,
|
895
|
-
universal_newlines, env)
|
874
|
+
env=os.environ):
|
875
|
+
data, retcode = RunShellWithReturnCode(command, universal_newlines, env)
|
896
876
|
if retcode:
|
897
877
|
ErrorExit("Got error status from %s:\n%s" % (command, data))
|
898
878
|
if not silent_ok and not data:
|
@@ -1448,6 +1428,9 @@ class GitVCS(VersionControlSystem):
|
|
1448
1428
|
env = os.environ.copy()
|
1449
1429
|
if "GIT_EXTERNAL_DIFF" in env:
|
1450
1430
|
del env["GIT_EXTERNAL_DIFF"]
|
1431
|
+
# 'cat' is a magical git string that disables pagers on all platforms.
|
1432
|
+
env["GIT_PAGER"] = "cat"
|
1433
|
+
|
1451
1434
|
# -M/-C will not print the diff for the deleted file when a file is renamed.
|
1452
1435
|
# This is confusing because the original file will not be shown on the
|
1453
1436
|
# review when a file is renamed. So, get a diff with ONLY deletes, then
|
@@ -1762,7 +1745,7 @@ class PerforceVCS(VersionControlSystem):
|
|
1762
1745
|
args.extend(extra_args)
|
1763
1746
|
|
1764
1747
|
data, retcode = RunShellWithReturnCode(
|
1765
|
-
args,
|
1748
|
+
args, universal_newlines=universal_newlines)
|
1766
1749
|
if marshal_output and data:
|
1767
1750
|
data = marshal.loads(data)
|
1768
1751
|
return data, retcode
|
@@ -2501,12 +2484,15 @@ def RealMain(argv, data=None):
|
|
2501
2484
|
uploaded_diff_file = [("data", "data.diff", data)]
|
2502
2485
|
ctype, body = EncodeMultipartFormData(form_fields, uploaded_diff_file)
|
2503
2486
|
response_body = rpc_server.Send("/upload", body, content_type=ctype)
|
2504
|
-
patchset = None
|
2487
|
+
issue, patchset = None, None
|
2505
2488
|
if not options.download_base or not uploaded_diff_file:
|
2506
2489
|
lines = response_body.splitlines()
|
2507
2490
|
if len(lines) >= 2:
|
2508
|
-
|
2491
|
+
# lines[0] is "Issue (created|updated): <url>".
|
2492
|
+
issue = lines[0][lines[0].rfind("/")+1:]
|
2493
|
+
# lines[1] is just patchset number.
|
2509
2494
|
patchset = lines[1].strip()
|
2495
|
+
msg = '%s (patchset: %s)' % (lines[0], patchset)
|
2510
2496
|
patches = [x.split(" ", 1) for x in lines[2:]]
|
2511
2497
|
else:
|
2512
2498
|
msg = response_body
|
@@ -2516,7 +2502,7 @@ def RealMain(argv, data=None):
|
|
2516
2502
|
if not response_body.startswith("Issue created.") and \
|
2517
2503
|
not response_body.startswith("Issue updated."):
|
2518
2504
|
sys.exit(0)
|
2519
|
-
issue
|
2505
|
+
assert issue
|
2520
2506
|
|
2521
2507
|
if not uploaded_diff_file:
|
2522
2508
|
result = UploadSeparatePatches(issue, rpc_server, patchset, data, options)
|