boringssl/util/bot/DEPS

232 lines
7.1 KiB
Plaintext
Raw Normal View History

# Copyright (c) 2015, Google Inc.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
vars = {
'chromium_git': 'https://chromium.googlesource.com',
'checkout_clang': False,
'checkout_sde': False,
'checkout_nasm': False,
'checkout_libcxx': False,
}
deps = {
'boringssl/util/bot/android_ndk': {
'url': Var('chromium_git') + '/android_ndk.git' + '@' + '4e2cea441bfd43f0863d14f57b1e1844260b9884',
'condition': 'checkout_android',
},
'boringssl/util/bot/android_tools': {
'url': Var('chromium_git') + '/android_tools.git' + '@' + '347a7c8078a009e98995985b7ab6ec6b35696dea',
'condition': 'checkout_android',
},
'boringssl/util/bot/gyp':
Var('chromium_git') + '/external/gyp.git' + '@' + 'd61a9397e668fa9843c4aa7da9e79460fe590bfb',
Update tools. Unfortunately, this requires partially reverting https://boringssl-review.googlesource.com/31324. This is a mess. While clang proper includes a fuzzer driver, Chromium doesn't use it. Chromium builds exclusively with fuzzer-no-link and links to its own copy of the fuzzer runtime[1]. As of [2], Chromium's clang (which we use on bots) no longer includes the driver, so we must mimic them. However, Chromium's setup is somewhat questionable because fuzzer-no-link pulls in libclang_rt.fuzzer_no_main which still includes most of libclang_rt.fuzzer, just not the one main function[3]. It appears Chromium is actually linking two copies of libclang_rt.fuzzer_no_main. Hopefully this mostly works out as Chromium's clang and libFuzzer should be relatively aligned, but it's not a good assumption for our build, which can take other Clangs too. Thus, if you pass -DFUZZ=1 as-is, we will assume you are using a "normal" Clang with all its relevant runtimes intact. If, however, you are using Chromium clang, you must drop the matching libFuzzer where the bots expected it and build with -DLIBFUZZER_FROM_DEPS=1. This involves no changes to the bots because we never actually unwound all the LIBFUZZER_FROM_DEPS bits before. [1] https://cs.chromium.org/chromium/src/testing/libfuzzer/BUILD.gn?rcl=d21c49585f262e851e2984f96f52905782706325&l=14 [2] https://chromium.googlesource.com/chromium/src/+/c79bf2ea4cf65431dccb57cb2a44528c284645a1 [3] https://github.com/llvm-mirror/compiler-rt/blob/8ebc3668b07fc5cca6010265cd4795443f1c1bea/lib/fuzzer/CMakeLists.txt#L93-L107 https://github.com/llvm-mirror/compiler-rt/blob/8ebc3668b07fc5cca6010265cd4795443f1c1bea/lib/fuzzer/FuzzerMain.cpp Change-Id: I946b3c821c3d7e6def7e07f1381f58241611ba3d Reviewed-on: https://boringssl-review.googlesource.com/c/34184 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com>
2019-01-07 21:13:04 +00:00
'boringssl/util/bot/libFuzzer': {
'url': Var('chromium_git') + '/chromium/llvm-project/compiler-rt/lib/fuzzer.git' +'@' + 'e847d8a9b47158695593d5693b0f69250472b229',
Update tools. Unfortunately, this requires partially reverting https://boringssl-review.googlesource.com/31324. This is a mess. While clang proper includes a fuzzer driver, Chromium doesn't use it. Chromium builds exclusively with fuzzer-no-link and links to its own copy of the fuzzer runtime[1]. As of [2], Chromium's clang (which we use on bots) no longer includes the driver, so we must mimic them. However, Chromium's setup is somewhat questionable because fuzzer-no-link pulls in libclang_rt.fuzzer_no_main which still includes most of libclang_rt.fuzzer, just not the one main function[3]. It appears Chromium is actually linking two copies of libclang_rt.fuzzer_no_main. Hopefully this mostly works out as Chromium's clang and libFuzzer should be relatively aligned, but it's not a good assumption for our build, which can take other Clangs too. Thus, if you pass -DFUZZ=1 as-is, we will assume you are using a "normal" Clang with all its relevant runtimes intact. If, however, you are using Chromium clang, you must drop the matching libFuzzer where the bots expected it and build with -DLIBFUZZER_FROM_DEPS=1. This involves no changes to the bots because we never actually unwound all the LIBFUZZER_FROM_DEPS bits before. [1] https://cs.chromium.org/chromium/src/testing/libfuzzer/BUILD.gn?rcl=d21c49585f262e851e2984f96f52905782706325&l=14 [2] https://chromium.googlesource.com/chromium/src/+/c79bf2ea4cf65431dccb57cb2a44528c284645a1 [3] https://github.com/llvm-mirror/compiler-rt/blob/8ebc3668b07fc5cca6010265cd4795443f1c1bea/lib/fuzzer/CMakeLists.txt#L93-L107 https://github.com/llvm-mirror/compiler-rt/blob/8ebc3668b07fc5cca6010265cd4795443f1c1bea/lib/fuzzer/FuzzerMain.cpp Change-Id: I946b3c821c3d7e6def7e07f1381f58241611ba3d Reviewed-on: https://boringssl-review.googlesource.com/c/34184 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com>
2019-01-07 21:13:04 +00:00
'condition': 'checkout_fuzzer',
},
# Update the following revisions from
# https://chromium.googlesource.com/chromium/src/+/master/buildtools/DEPS
'boringssl/util/bot/libcxx': {
'url': Var('chromium_git') + '/chromium/llvm-project/libcxx.git' + '@' + '955113db37563c8632e31ddcff2047845553d7ff',
'condition': 'checkout_libcxx',
},
'boringssl/util/bot/libcxxabi': {
'url': Var('chromium_git') + '/chromium/llvm-project/libcxxabi.git' + '@' + '0d529660e32d77d9111912d73f2c74fc5fa2a858',
'condition': 'checkout_libcxx',
},
}
recursedeps = [
# android_tools pulls in the NDK from a separate repository.
'boringssl/util/bot/android_tools',
]
hooks = [
{
'name': 'cmake_linux64',
'pattern': '.',
'condition': 'host_os == "linux"',
'action': [ 'download_from_google_storage',
'--no_resume',
'--platform=linux*',
'--no_auth',
'--bucket', 'chromium-tools',
'-s', 'boringssl/util/bot/cmake-linux64.tar.gz.sha1',
],
},
{
'name': 'cmake_linux64_extract',
'pattern': '.',
'condition': 'host_os == "linux"',
'action': [ 'python',
'boringssl/util/bot/extract.py',
'boringssl/util/bot/cmake-linux64.tar.gz',
'boringssl/util/bot/cmake-linux64/',
],
},
{
'name': 'cmake_mac',
'pattern': '.',
'condition': 'host_os == "mac"',
'action': [ 'download_from_google_storage',
'--no_resume',
'--platform=darwin',
'--no_auth',
'--bucket', 'chromium-tools',
'-s', 'boringssl/util/bot/cmake-mac.tar.gz.sha1',
],
},
{
'name': 'cmake_mac_extract',
'pattern': '.',
'condition': 'host_os == "mac"',
'action': [ 'python',
'boringssl/util/bot/extract.py',
'boringssl/util/bot/cmake-mac.tar.gz',
'boringssl/util/bot/cmake-mac/',
],
},
{
'name': 'cmake_win32',
'pattern': '.',
'condition': 'host_os == "win"',
'action': [ 'download_from_google_storage',
'--no_resume',
'--platform=win32',
'--no_auth',
'--bucket', 'chromium-tools',
'-s', 'boringssl/util/bot/cmake-win32.zip.sha1',
],
},
{
'name': 'cmake_win32_extract',
'pattern': '.',
'condition': 'host_os == "win"',
'action': [ 'python',
'boringssl/util/bot/extract.py',
'boringssl/util/bot/cmake-win32.zip',
'boringssl/util/bot/cmake-win32/',
],
},
{
'name': 'perl_win32',
'pattern': '.',
'condition': 'host_os == "win"',
'action': [ 'download_from_google_storage',
'--no_resume',
'--platform=win32',
'--no_auth',
'--bucket', 'chromium-tools',
'-s', 'boringssl/util/bot/perl-win32.zip.sha1',
],
},
{
'name': 'perl_win32_extract',
'pattern': '.',
'condition': 'host_os == "win"',
'action': [ 'python',
'boringssl/util/bot/extract.py',
'--no-prefix',
'boringssl/util/bot/perl-win32.zip',
'boringssl/util/bot/perl-win32/',
],
},
{
'name': 'yasm_win32',
'pattern': '.',
'condition': 'host_os == "win" and not checkout_nasm',
'action': [ 'download_from_google_storage',
'--no_resume',
'--platform=win32',
'--no_auth',
'--bucket', 'chromium-tools',
'-s', 'boringssl/util/bot/yasm-win32.exe.sha1',
],
},
{
'name': 'nasm_win32',
'pattern': '.',
'condition': 'host_os == "win" and checkout_nasm',
'action': [ 'download_from_google_storage',
'--no_resume',
'--platform=win32',
'--no_auth',
'--bucket', 'chromium-tools',
'-s', 'boringssl/util/bot/nasm-win32.exe.sha1',
],
},
{
'name': 'win_toolchain',
'pattern': '.',
'condition': 'host_os == "win"',
'action': [ 'python',
'boringssl/util/bot/vs_toolchain.py',
'update',
],
},
{
'name': 'clang',
'pattern': '.',
'condition': 'checkout_clang',
'action': [ 'python',
'boringssl/util/bot/update_clang.py',
],
},
{
'name': 'sde_linux64',
'pattern': '.',
'condition': 'checkout_sde and host_os == "linux"',
'action': [ 'download_from_google_storage',
'--no_resume',
'--bucket', 'chrome-boringssl-sde',
'-s', 'boringssl/util/bot/sde-linux64.tar.bz2.sha1'
],
},
{
'name': 'sde_linux64_extract',
'pattern': '.',
'condition': 'checkout_sde and host_os == "linux"',
'action': [ 'python',
'boringssl/util/bot/extract.py',
'boringssl/util/bot/sde-linux64.tar.bz2',
'boringssl/util/bot/sde-linux64/',
],
},
{
'name': 'sde_win32',
'pattern': '.',
'condition': 'checkout_sde and host_os == "win"',
'action': [ 'download_from_google_storage',
'--no_resume',
'--bucket', 'chrome-boringssl-sde',
'-s', 'boringssl/util/bot/sde-win32.tar.bz2.sha1'
],
},
{
'name': 'sde_win32_extract',
'pattern': '.',
'condition': 'checkout_sde and host_os == "win"',
'action': [ 'python',
'boringssl/util/bot/extract.py',
'boringssl/util/bot/sde-win32.tar.bz2',
'boringssl/util/bot/sde-win32/',
],
},
]