This directory consumes tools from other repositories for use on the
bots. For a similarly-configured local checkout for testing, run:

   mkdir boringssl-gclient
   cd boringssl-gclient
   gclient config --unmanaged --deps-file=util/bot/DEPS https://boringssl.googlesource.com/boringssl/
   gclient sync

To update to newer revisions, follow these instructions:

DEPS: Update the variables as described in the comments.

go/bootstrap.py: Set TOOLSET_VERSION to the latest release of Go, found at
    https://golang.org/dl/.

update_clang.py: Set CLANG_REVISION and CLANG_SUB_REVISION to the values used in
    Chromium, found at
    https://chromium.googlesource.com/chromium/src/+/master/tools/clang/scripts/update.py

vs_toolchain.py: Update _GetDesiredVsToolchainHashes from Chromium, found at
    https://chromium.googlesource.com/chromium/src/+/master/build/vs_toolchain.py
    This may require taking other updates to that file. (Don't remove MSVC
    versions if BoringSSL still needs to support them.)

The .sha1 files correspond to files downloaded from Google Cloud Storage. To
update, place the updated files in their intended location and run:

    upload_to_google_storage.py -b chromium-tools FILE

cmake-win32.zip: Update to the latest prebuilt release of CMake, found at
    https://cmake.org/download/. Use the file labeled "Windows win64-x64
    ZIP". The download will be named cmake-VERSION-win64-x64.zip.

    The current revision is cmake-3.19.5-win64-x64.zip

nasm-win32.exe: Update to the appropriate release of NASM, found at
    https://www.nasm.us/. Use the same version as Chromium, found at
    https://chromium.googlesource.com/chromium/src/+/master/third_party/nasm/README.chromium
    Extract nasm.exe from the download named nasm-VERSION-win64.zip.

    The current revision is nasm-2.13.03-win64.zip.

    TODO(davidben): The Chromium link currently does not work. It will get
    filled in in the future. See https://crbug.com/766721.

perl-win32.zip: Update to the latest 64-bit prebuilt "Portable" edition of
    Strawberry Perl, found at http://strawberryperl.com/releases.html. The
    download will be named strawberry-perl-VERSION-64bit-portable.zip.

    The current revision is strawberry-perl-5.26.2.1-64bit-portable.zip.

Finally, update sde-linux64.tar.bz2 and sde-win32.tar.bz2 by downloading the
latet release from Intel at
https://software.intel.com/en-us/articles/intel-software-development-emulator,
but upload it with the following command. (Note the bucket is different.)

    upload_to_google_storage.py -b chrome-boringssl-sde sde-linux64.tar.bz2 sde-win32.tar.bz2

The current revision is sde-external-8.50.0-2020-03-26-*.tar.bz2.

When adding new files, remember to update .gitignore.
