diff --git a/.cipd_version b/.cipd_version
deleted file mode 100644
index 9583670..0000000
--- a/.cipd_version
+++ /dev/null
@@ -1 +0,0 @@
-git_revision:03c4e813e09a23cd7004aca03aba32ad546d9202
diff --git a/.cipd_version.digests b/.cipd_version.digests
deleted file mode 100644
index fabcb31..0000000
--- a/.cipd_version.digests
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by
-#
-#  cipd selfupdate-roll -version-file .cipd_version \
-#      -version git_revision:03c4e813e09a23cd7004aca03aba32ad546d9202
-#
-# Do not modify manually. All changes will be overwritten.
-# Use 'cipd selfupdate-roll ...' to modify.
-
-linux-386       sha256  714bea642415e1c175eddce505e019a704a4f2acc1a21afa140d6318fb8d0401
-linux-amd64     sha256  8b2ce92994355c61e3693ccfd4f598b3cca685a1fa309051b871557d30d98da1
-linux-arm64     sha256  51ad96a8a31d6817a1fe9cfaaef39aa17ac50b426c9df5dc59138e9a8d571566
-linux-armv6l    sha256  fb7a3cd208f934b7d155db81ea54f3ea66512aafd6bc76d8930eb8750d1b8c52
-linux-mips64    sha256  ef5bb7d096822059b0f93dfb1d27156f44f201e5c96b577f8768e86dd71432b6
-linux-mips64le  sha256  6a7e8dd559db2e3c5e816874051f5c7191711f2d795eee7f832a721ae0db8315
-linux-mipsle    sha256  8a33ca853ce7ce9da0e9e2884e1ed3c8cea22c315a5c2ef53c8b40309e1cc5ab
-linux-ppc64     sha256  95213f2c5ed6048bd3cef026356f2eec13dfb1a26823b945bfef1c5bd6ece855
-linux-ppc64le   sha256  96548353376c97885ac6de2761dd9c9b4aee0a7b2a34ea056ba0a0f509be65be
-linux-s390x     sha256  0fc9d2f9324338122a22c7085e93bfee9a242d64fe95a0bd36a01818f39126b5
-mac-amd64       sha256  17671867253317f33af6363440a2cb0d881fe12ed6d24956d56322a38cfbdaae
-windows-386     sha256  2261420498cf0bf71a9f8e03a54f0e08033151d6f5f81d779aa78e553b586234
-windows-amd64   sha256  f7a3269f4d18c902f8a9b0954f4090d46f5c4f271381c3e563c5109043d552bb
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index f34ce3c..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/.cipd_client*
-/.versions
-/linux-x64/
-/mac-x64/
-*.DS_Store
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index c2a4eac..0000000
--- a/AUTHORS
+++ /dev/null
@@ -1,8 +0,0 @@
-# This is the list of Fuchsia Authors.
-
-# Names should be added to this file as one of
-#     Organization's name
-#     Individual's name <submission email address>
-#     Individual's name <submission email address> <email2> <emailN>
-
-Google Inc.
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index ac6402f..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2016 The Fuchsia Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//    * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//    * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//    * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/MAINTAINERS b/MAINTAINERS
deleted file mode 100644
index e15d459..0000000
--- a/MAINTAINERS
+++ /dev/null
@@ -1,2 +0,0 @@
-phosek@google.com
-mcgrathr@google.com
diff --git a/PATENTS b/PATENTS
deleted file mode 100644
index 2746e78..0000000
--- a/PATENTS
+++ /dev/null
@@ -1,22 +0,0 @@
-Additional IP Rights Grant (Patents)
-
-"This implementation" means the copyrightable works distributed by
-Google as part of the Fuchsia project.
-
-Google hereby grants to you a perpetual, worldwide, non-exclusive,
-no-charge, royalty-free, irrevocable (except as stated in this
-section) patent license to make, have made, use, offer to sell, sell,
-import, transfer, and otherwise run, modify and propagate the contents
-of this implementation of Fuchsia, where such license applies only to
-those patent claims, both currently owned by Google and acquired in
-the future, licensable by Google that are necessarily infringed by
-this implementation. This grant does not include claims that would be
-infringed only as a consequence of further modification of this
-implementation. If you or your agent or exclusive licensee institute
-or order or agree to the institution of patent litigation or any other
-patent enforcement activity against any entity (including a
-cross-claim or counterclaim in a lawsuit) alleging that this
-implementation of Fuchsia constitutes direct or contributory patent
-infringement, or inducement of patent infringement, then any patent
-rights granted to you under this License for this implementation of
-Fuchsia shall terminate as of the date such litigation is filed.
diff --git a/README.md b/README.md
index 2f34585..3cc8b3b 100644
--- a/README.md
+++ b/README.md
@@ -1,70 +1,5 @@
-# Fuchsia Build Tools
+# Obsolete
 
-This repository contains the hashes of a number of prebuilt tools that are used
-to build Fuchsia-related projects. The actual tools themselves are located in
-Google Storage.
+This repository has moved into Fuchsia's main repository:
+https://fuchsia.googlesource.com/fuchsia/
 
-In most cases, the `jiri` tool will download the build tools automatically
-during its `update` step. To download the tools manually, run `update.sh`.
-
-## Uploading a tool
-
-NOTE: These instructions are for Googlers only.
-
-TODO: These instructions are out of date.  Use CIPD for everything.
-
-### Installing gsutil
-
-The tarballs are uploaded with the "gsutil" program.
-See https://cloud.google.com/storage/docs/gsutil
-
-There's a link there to download and install the Google Cloud SDK:
-https://cloud.google.com/sdk/docs/
-
-After installing the SDK you need to initialize/authenticate:
-https://cloud.google.com/storage/docs/gsutil_install#authenticate
-
-One of the steps will ask you for a cloud project. Choose loas-fuchsia-team.
-
-At this point you can use gsutil to upload/download tarballs, view
-cloud directory contents, and so on.
-
-### Tarballs
-
-Tarballs must have the tool name as the top level directory.
-E.g.,
-
-```
-bash$ tar tvf qemu.tar.bz2
-drwxr-xr-x ... qemu/
-drwxr-xr-x ... qemu/libexec/
-...
-```
-
-The uploaded file name is the sha1 hash of the tarball.
-It could also be a sha1 hash of the tarball contents, avoiding
-unnecessary spurious differences in uploads.
-
-To compute the latter, one can do something like:
-
-```
-bash$ LC_ALL=POSIX cat $(find qemu/ -type f | sort) | shasum -a1
-```
-
-The sha1 hash is checked into the buildtools repo and supports
-adding new tarballs or rolling back to a previous one.
-See the *.sha1 files in buildtools/{mac,linux64}.
-
-There are separate directories for mac and linux tarballs.
-E.g.,
-
-```
-bash$ ./bin/gsutil ls gs://fuchsia-build/fuchsia/qemu/mac
-gs://fuchsia-build/fuchsia/qemu/mac/
-gs://fuchsia-build/fuchsia/qemu/mac/10d77d7df5b39440148ac3aab1a401ff42337a76
-...
-bash$ ./bin/gsutil ls gs://fuchsia-build/fuchsia/qemu/linux64
-gs://fuchsia-build/fuchsia/qemu/linux64/
-gs://fuchsia-build/fuchsia/qemu/linux64/10d77d7df5b39440148ac3aab1a401ff42337a76
-...
-```
diff --git a/cipd b/cipd
deleted file mode 100755
index 57d1652..0000000
--- a/cipd
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -eo pipefail; [[ "${TRACE}" ]] && set -x
-
-readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-
-readonly VERSION_FILE="${SCRIPT_DIR}/.cipd_version"
-readonly CIPD_BACKEND="https://chrome-infra-packages.appspot.com"
-
-declare HOST_PLATFORM="$(uname -s | tr '[:upper:]' '[:lower:]')"
-case "${HOST_PLATFORM}" in
-  linux)
-    readonly HOST_PLATFORM="linux"
-    ;;
-  darwin)
-    readonly HOST_PLATFORM="mac"
-    ;;
-  *)
-    echo "Unknown operating system." >&2
-    exit 1
-esac
-
-HOST_ARCH="$(uname -m | tr '[:upper:]' '[:lower:]')"
-case "${HOST_ARCH}" in
-  x86_64|amd64)
-    readonly HOST_ARCH="amd64"
-    ;;
-  arm*)
-    readonly HOST_ARCH="${HOST_ARCH}"
-    ;;
-  aarch64)
-    readonly HOST_ARCH="arm64"
-    ;;
-  *86)
-    readonly HOST_ARCH=386
-    ;;
-  *)
-    echo "Unknown machine architecture." >&2
-    exit 1
-esac
-
-readonly PLATFORM="${HOST_PLATFORM}-${HOST_ARCH}"
-readonly VERSION="$(cat ${VERSION_FILE})"
-readonly URL="${CIPD_BACKEND}/client?platform=${PLATFORM}&version=${VERSION}"
-readonly CLIENT="${SCRIPT_DIR}/.cipd_client"
-
-readonly USER_AGENT="buildtools/$(git -C ${SCRIPT_DIR} rev-parse HEAD 2>/dev/null || echo "???")"
-
-function actual_sha256() {
-  if type shasum >/dev/null ; then
-    shasum -a 256 "$1" | cut -d' ' -f1
-  else
-    echo "The \`shasum\` command is missing. Please use your package manager to install it." >&2
-    return 1
-  fi
-}
-
-function expected_sha256() {
-  local line
-  while read -r line; do
-    if [[ "${line}" =~ ^([0-9a-z\-]+)[[:blank:]]+sha256[[:blank:]]+([0-9a-f]+)$ ]] ; then
-      local platform="${BASH_REMATCH[1]}"
-      local hash="${BASH_REMATCH[2]}"
-      if [[ "${platform}" ==  "$1" ]]; then
-        echo "${hash}"
-        return 0
-      fi
-    fi
-  done < "${VERSION_FILE}.digests"
-
-  echo "Platform $1 is not supported by the CIPD client bootstrap. There's no pinned hash for it in the *.digests file." >&2
-
-  return 1
-}
-
-# bootstraps the client from scratch using 'curl'.
-function bootstrap() {
-  local expected_hash="$(expected_sha256 "${PLATFORM}")"
-  if [[ -z "${expected_hash}" ]] ; then
-    exit 1
-  fi
-
-  echo "Bootstrapping cipd client for ${HOST_PLATFORM}-${HOST_ARCH}..."
-  local CLIENT_TMP="$(mktemp -p "${SCRIPT_DIR}" 2>/dev/null || mktemp "${SCRIPT_DIR}/.cipd_client.XXXXXXX")"
-  if type curl >/dev/null ; then
-    curl -f --progress-bar "${URL}" -A "${USER_AGENT}"  -L -o "${CLIENT_TMP}"
-  else
-    echo "The \`curl\` command is missing. Please use your package manager to install it." >&2
-    exit 1
-  fi
-  trap "rm -f '${CLIENT_TMP}'" EXIT ERR HUP INT TERM
-
-  local actual_hash="$(actual_sha256 "${CLIENT_TMP}")"
-  if [[ -z "${actual_hash}" ]] ; then
-    exit 1
-  fi
-
-  if [[ "${actual_hash}" != "${expected_hash}" ]]; then
-    echo "SHA256 digest of the downloaded CIPD client is incorrect. Check that *.digests file is up-to-date." >&2
-    exit 1
-  fi
-
-  chmod +x "${CLIENT_TMP}"
-  mv -f "${CLIENT_TMP}" "${CLIENT}"
-  trap - EXIT
-}
-
-# self_update asks the existing client to update itself, if necessary.
-function self_update() {
-  "${CLIENT}" selfupdate -version-file "${VERSION_FILE}" -service-url "${CIPD_BACKEND}"
-}
-
-if [[ ! -x "${CLIENT}" ]]; then
-  bootstrap
-fi
-
-export CIPD_HTTP_USER_AGENT_PREFIX="${USER_AGENT}"
-if ! self_update ; then
-  echo "CIPD selfupdate failed. Trying to bootstrap the CIPD client from scratch..." >&2
-  bootstrap
-  if ! self_update ; then  # we need to run it again to setup .cipd_version file
-    echo "Bootstrap from scratch failed. Run \`CIPD_HTTP_USER_AGENT_PREFIX=${USER_AGENT}/manual ${CLIENT} selfupdate -version-file '${VERSION_FILE}'\` to diagnose if this is repeating." >&2
-  fi
-fi
-
-exec "${CLIENT}" "${@}"
diff --git a/download.sh b/download.sh
deleted file mode 100644
index 086f0a2..0000000
--- a/download.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# download <url> <path>
-function download() {
-  local url="${1}"
-  local path="${2}"
-  curl -f --progress-bar -continue-at=- --location --output "${path}" "${url}"
-}
-
-# download_file_if_needed <name> <url> <base path> <extension>
-function download_file_if_needed() {
-  local name="${1}"
-  local url="${2}"
-  local base_path="${3}"
-  local extension="${4}"
-
-  local path="${base_path}${extension}"
-  local stamp_path="${base_path}.stamp"
-  local requested_hash="$(<${base_path}.sha1)"
-
-  if [[ ! -f "${stamp_path}" ]] || [[ "${requested_hash}" != "$(<${stamp_path})" ]]; then
-    echo "Downloading ${name}..."
-    rm -f -- "${path}"
-    download "${url}/${requested_hash}" "${path}"
-    echo "${requested_hash}" > "${stamp_path}"
-  fi
-}
-
-# download_executable <name> <base url> <path>
-function download_executable() {
-  local name="${1}"
-  local base_url="${2}"
-  local tool_path="${3}"
-  download_file_if_needed "${name}" "${base_url}" "${tool_path}"
-  chmod a+x "${tool_path}"
-}
-
-# download_zip <name> <base url> <unzip directory> <base path>
-function download_zip() {
-  local name="${1}"
-  local base_url="${2}"
-  local unzip_dir="${3}"
-  local base_path="${4}"
-  local zip_path="${base_path}.zip"
-
-  download_file_if_needed "${name}" "${base_url}" "${base_path}" ".zip"
-  if [[ -f "${zip_path}" ]]; then
-    rm -rf -- "${unzip_dir}"
-    mkdir -p -- "${unzip_dir}"
-    (cd -- "${unzip_dir}" && unzip -o -q "${zip_path}")
-    rm -f -- "${zip_path}"
-  fi
-}
-
-# download_tarball <name> <base url> <untar directory> <base path>
-function download_tarball() {
-  local name="${1}"
-  local base_url="${2}"
-  local untar_dir="${3}"
-  local base_path="${4}"
-  local tar_path="${base_path}.tar.bz2"
-
-  download_file_if_needed "${name}" "${base_url}" "${base_path}" ".tar.bz2"
-  if [[ -f "${tar_path}" ]]; then
-    mkdir -p -- "${untar_dir}"
-    (cd -- "${untar_dir}" && rm -rf -- "${name}" && tar xf "${tar_path}")
-    rm -f -- "${tar_path}"
-  fi
-}
-
-# download_zipfile <name> <base url> <unzip directory>
-function download_zipfile() {
-  local name="${1}"
-  local base_url="${2}"
-  local unzip_dir="${3}"
-  local base_path="${SCRIPT_ROOT}/${name}"
-  local zip_path="${base_path}.zip"
-
-  download_file_if_needed "${name}" "${base_url}" "${base_path}" ".zip"
-  if [[ -f "${zip_path}" ]]; then
-    mkdir -p -- "${unzip_dir}"
-    (cd -- "${unzip_dir}" && rm -rf -- "${name}" && unzip -o -q "${zip_path}")
-    rm -f -- "${zip_path}"
-  fi
-}
diff --git a/exec_tool.sh b/exec_tool.sh
deleted file mode 100644
index a1c9f2d..0000000
--- a/exec_tool.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2016 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-if [[ -z "${TOOL_NAME}" ]]; then
-  echo "This script is not intended to be run directly.";
-  echo "Consider using one of the tool wrappers (e.g., gn, ninja) instead."
-  exit 1
-fi
-
-case "$(uname -s)" in
-  Darwin)
-    readonly HOST_PLATFORM="mac-x64"
-    ;;
-  Linux)
-    readonly HOST_PLATFORM="linux-x64"
-    ;;
-  *)
-    echo "Unknown operating system. Cannot run ${TOOL_NAME}."
-    exit 1
-    ;;
-esac
-
-readonly TOOL_PATH="${SCRIPT_ROOT}/${HOST_PLATFORM}/${TOOL_NAME}"
-
-if [[ ! -x "${TOOL_PATH}" ]]; then
-  echo "Cannot find ${TOOL_PATH}"
-  echo "Did you run update.sh?"
-  exit 1
-fi
-
-exec "${TOOL_PATH}" "$@"
diff --git a/fuchsia.ensure b/fuchsia.ensure
deleted file mode 100644
index b066ff4..0000000
--- a/fuchsia.ensure
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright 2017 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Note: changes to this file will require updating fuchsia.versions, which
-# can be done by running `./cipd ensure-file-resolve -ensure-file fuchsia.ensure`
-# from this directory.
-
-$VerifiedPlatform linux-amd64
-$VerifiedPlatform mac-amd64
-
-$ParanoidMode CheckPresence
-$ResolvedVersions fuchsia.versions
-
-# GN
-gn/gn/${platform} git_revision:45314e29d54cc2e4a6501eaec860f1b09740eb9c
-
-# Ninja
-infra/ninja/${platform} version:1.8.2
-
-# Breakpad
-fuchsia/tools/breakpad/${os=linux}-${arch} git_revision:9eac2058b70615519b2c4d8c6bdbfca1bd079e39
-
-# dump_breakpad_symbols
-fuchsia/tools/dump_breakpad_symbols/${os=linux}-${arch} git_revision:078c34aaee784ec4737e5fe71c0392d54de0f02d
-
-# godepfile
-fuchsia/tools/godepfile/${platform} git_revision:6922d7833617841e853a0be52a285f6cd07a0a10
-
-# CMake
-@Subdir cmake
-infra/cmake/${platform} version:3.10.0
-
-# Clang
-@Subdir clang
-fuchsia/clang/${platform} git_revision:f81edba34ddf2e70300baa227b136dcdb8aecb6e
-
-# Go
-@Subdir go
-fuchsia/go/${platform} git_revision:b8bd7d94a2ae6c80ab8b6ed5900d3eeba8a777c3
-
-# Rust
-@Subdir rust
-fuchsia/rust/${platform} git_revision:0b1669d96cee9dec9035a50fdf0a967a68605f98
-
-# QEMU
-@Subdir qemu
-fuchsia/qemu/${platform} git_revision:0f0027d617976b4cbb7b937d5836f8ef0ac25ba1
diff --git a/fuchsia.versions b/fuchsia.versions
deleted file mode 100644
index 013d1e9..0000000
--- a/fuchsia.versions
+++ /dev/null
@@ -1,74 +0,0 @@
-# This file is auto-generated by 'cipd ensure-file-resolve'.
-# Do not modify manually. All changes will be overwritten.
-
-fuchsia/clang/linux-amd64
-	git_revision:f81edba34ddf2e70300baa227b136dcdb8aecb6e
-	CeRLdLqlWbyBOARjwRLxbKnkFuIbxdZ4NZBzjNJs51kC
-
-fuchsia/clang/mac-amd64
-	git_revision:f81edba34ddf2e70300baa227b136dcdb8aecb6e
-	mDVqf5WozPsZZAwCJ3DSTRY9XeOF5knxX6VpcHlbQe8C
-
-fuchsia/go/linux-amd64
-	git_revision:b8bd7d94a2ae6c80ab8b6ed5900d3eeba8a777c3
-	47ecedd9b12f160104aeece9ae750bffde45e93b
-
-fuchsia/go/mac-amd64
-	git_revision:b8bd7d94a2ae6c80ab8b6ed5900d3eeba8a777c3
-	3c33b55c1a75b900536c91181805bb8668857341
-
-fuchsia/qemu/linux-amd64
-	git_revision:0f0027d617976b4cbb7b937d5836f8ef0ac25ba1
-	9cc486c5b18a0be515c39a280ca9a309c54cf994
-
-fuchsia/qemu/mac-amd64
-	git_revision:0f0027d617976b4cbb7b937d5836f8ef0ac25ba1
-	2d3358ae9a569b2d4a474f498b32b202a152134f
-
-fuchsia/rust/linux-amd64
-	git_revision:0b1669d96cee9dec9035a50fdf0a967a68605f98
-	vIgk2yF5yi6YF69GmEtdTwsMn3g_WPmN3JdYo4pvnE0C
-
-fuchsia/rust/mac-amd64
-	git_revision:0b1669d96cee9dec9035a50fdf0a967a68605f98
-	MUdVTuigKS0F05P-sujMet8d-KpDq6Ds3PPrOTdgkeIC
-
-fuchsia/tools/breakpad/linux-amd64
-	git_revision:9eac2058b70615519b2c4d8c6bdbfca1bd079e39
-	06a7be742e031741bedb5fc71b5fc389374aabfd
-
-fuchsia/tools/dump_breakpad_symbols/linux-amd64
-	git_revision:078c34aaee784ec4737e5fe71c0392d54de0f02d
-	Ydzhx1QSmK9d8IG83TVY_cPQmYkk2dMY3vjmA5yNy64C
-
-fuchsia/tools/godepfile/linux-amd64
-	git_revision:6922d7833617841e853a0be52a285f6cd07a0a10
-	e88949b1d099e53e967c53558917383fcb1764b7
-
-fuchsia/tools/godepfile/mac-amd64
-	git_revision:6922d7833617841e853a0be52a285f6cd07a0a10
-	1dab9f74af2bee9727594a65fca29498e56b7ed2
-
-gn/gn/linux-amd64
-	git_revision:45314e29d54cc2e4a6501eaec860f1b09740eb9c
-	a3Mx_U5jJsvp0XNS7lfQI0cDSib4XjFkIajzZqGTzg8C
-
-gn/gn/mac-amd64
-	git_revision:45314e29d54cc2e4a6501eaec860f1b09740eb9c
-	F5CLo3CVLBz-MUaRzrIbJJiXp2nLEqeaCb3cPluZ88AC
-
-infra/cmake/linux-amd64
-	version:3.10.0
-	282e1817c361a6da7f06bcf5e0f6e3371c9975ce
-
-infra/cmake/mac-amd64
-	version:3.10.0
-	f591a36253ced04ba03d6d160ae250d51a6ca06f
-
-infra/ninja/linux-amd64
-	version:1.8.2
-	74ac124bfbbaabf1fd700cc821fd604effbdd918
-
-infra/ninja/mac-amd64
-	version:1.8.2
-	04d426fab9a5bd493dc03ce7274c30c4148a1cbe
diff --git a/gn b/gn
deleted file mode 100755
index 777d388..0000000
--- a/gn
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2016 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
-readonly TOOL_NAME=$(basename "$0")
-
-source "${SCRIPT_ROOT}/exec_tool.sh"
diff --git a/go b/go
deleted file mode 100755
index 8cb14c2..0000000
--- a/go
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2016 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# This script is only used in building the Fuchsia Go toolchain.
-# See //third_party/go/BUILD.gn.
-
-set -e
-
-readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
-
-# Setting GOROOT is a workaround for https://golang.org/issue/18678.
-# Basically, early Go toolchains were not self-relocating.
-# Remove this when we're using Go 1.9.
-source "$SCRIPT_ROOT/vars.sh"
-export GOROOT="$BUILDTOOLS_GO_DIR"
-
-readonly TOOL_NAME="go/bin/go"
-source "${SCRIPT_ROOT}/exec_tool.sh"
diff --git a/godepfile b/godepfile
deleted file mode 100755
index 777d388..0000000
--- a/godepfile
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2016 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
-readonly TOOL_NAME=$(basename "$0")
-
-source "${SCRIPT_ROOT}/exec_tool.sh"
diff --git a/manifest/buildtools b/manifest/buildtools
deleted file mode 100644
index 1098449..0000000
--- a/manifest/buildtools
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<manifest>
-  <imports>
-    <localimport file="minimal"/>
-  </imports>
-</manifest>
diff --git a/manifest/minimal b/manifest/minimal
deleted file mode 100644
index a7a163d..0000000
--- a/manifest/minimal
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<manifest>
-  <projects>
-    <project name="buildtools"
-             path="buildtools"
-             remote="https://fuchsia.googlesource.com/buildtools"
-             gerrithost="https://fuchsia-review.googlesource.com"/>
-  </projects>
-  <hooks>
-    <hook name="update"
-          project="buildtools"
-          action="update.sh"/>
-  </hooks>
-</manifest>
diff --git a/ninja b/ninja
deleted file mode 100755
index 777d388..0000000
--- a/ninja
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2016 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
-readonly TOOL_NAME=$(basename "$0")
-
-source "${SCRIPT_ROOT}/exec_tool.sh"
diff --git a/update.sh b/update.sh
deleted file mode 100755
index d63017d..0000000
--- a/update.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2016 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-set -e
-
-readonly SCRIPT_ROOT="$(cd $(dirname ${BASH_SOURCE[0]} ) && pwd)"
-
-source "${SCRIPT_ROOT}/vars.sh"
-
-# TODO(phosek): remove this after we finish migration to CIPD
-rm -rf "${BUILDTOOLS_DIR}/linux64" "${BUILDTOOLS_DIR}/mac" "${BUILDTOOLS_DIR}/win"
-if [[ ! -d "${BUILDTOOLS_DIR}/${BUILDTOOLS_PLATFORM}/.cipd" ]]; then
-  rm -rf "${BUILDTOOLS_DIR}/${BUILDTOOLS_PLATFORM}"
-fi
-
-${SCRIPT_ROOT}/cipd ensure -ensure-file "${SCRIPT_ROOT}/fuchsia.ensure" -root "${BUILDTOOLS_DIR}/${BUILDTOOLS_PLATFORM}" -log-level warning
diff --git a/vars.sh b/vars.sh
deleted file mode 100755
index c7e1a59..0000000
--- a/vars.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 2016 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-if [[ -n "${ZSH_VERSION}" ]]; then
-  BUILDTOOLS_DIR=${${(%):-%x}:a:h}
-else
-  BUILDTOOLS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-fi
-
-case "$(uname -s)" in
-  Darwin)
-    BUILDTOOLS_PLATFORM="mac-x64"
-    ;;
-  Linux)
-    BUILDTOOLS_PLATFORM="linux-x64"
-    ;;
-  *)
-    echo "Unknown operating system."
-    exit 1
-    ;;
-esac
-
-BUILDTOOLS_CLANG_DIR="${BUILDTOOLS_DIR}/${BUILDTOOLS_PLATFORM}/clang"
-BUILDTOOLS_RUST_DIR="${BUILDTOOLS_DIR}/${BUILDTOOLS_PLATFORM}/rust"
-BUILDTOOLS_GO_DIR="${BUILDTOOLS_DIR}/${BUILDTOOLS_PLATFORM}/go"
-BUILDTOOLS_QEMU_DIR="${BUILDTOOLS_DIR}/${BUILDTOOLS_PLATFORM}/qemu"
