Files
chromium_depot_tools/bootstrap_python3
Nico Weber 6900c00a1a depot_tools bootstrap: Don't try to pull non-existent binaries on mac/arm64
With this, `gclient` completes bootstrap after running

    echo "mac-arm64" > .cipd_client_platform

as long as you also run

    export VPYTHON_BYPASS="manually managed python not supported by chrome operations"

Things work enough that you can `fetch chromium`. You can then build
all of chrome (if you want to build all tests, you also need to
`echo "mac-arm64" > third_party/depot_tools/.cipd_client_platform`
in your chromium checkout).

Parts of depot_tools that actually need the env managed by vpython,
such as `git cl`, don't work. So you can't `git cl upload` for now.

Bug: 1184768,1103326,1184766,1184765,1103236
Change-Id: Ib559c35e9665b826db9841dd8a4fe0dea16f37ec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2807956
Auto-Submit: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@google.com>
2021-04-06 21:00:40 +00:00

41 lines
1.2 KiB
Bash

#!/usr/bin/env bash
function bootstrap_python3 {
base_dir=$(dirname "${BASH_SOURCE[0]}")
cd "${base_dir}"
if [ -e ".bleeding_edge" ]; then
CIPD_MANIFEST="bootstrap/manifest_bleeding_edge.txt"
else
CIPD_MANIFEST="bootstrap/manifest.txt"
fi
while IFS= read -r line; do
if [[ $line =~ ^[^#].*cpython3/.*version:(.*)$ ]]; then
PYTHON3_VERSION=${BASH_REMATCH[1]}
PYTHON3_VERSION=${PYTHON3_VERSION//[[:space:]]/}
fi
done < $CIPD_MANIFEST
if [ "X$PYTHON3_VERSION" == "X" ]; then
echo Could not extract Python 3 version from manifest.
return 1
fi
BOOTSTRAP_PATH="bootstrap-${PYTHON3_VERSION}_bin"
# Install CIPD packages. The CIPD client self-bootstraps.
"cipd" ensure -log-level warning -ensure-file "${CIPD_MANIFEST}" \
-root "$BOOTSTRAP_PATH"
BOOTSTRAP_PYTHON_BIN="${BOOTSTRAP_PATH}/python3/bin/python3"
if [[ ! -x "$BOOTSTRAP_PYTHON_BIN" && $(uname -sm) == "Darwin arm64" ]]; then
# There's no CIPD python3 package on mac/arm64. fall back to system python3.
# TODO(https://crbug.com/1103326): Remove once mac/arm64 python3 exists.
BOOTSTRAP_PYTHON_BIN=python3
fi
"$BOOTSTRAP_PYTHON_BIN" "bootstrap/bootstrap.py" --bootstrap-name "$BOOTSTRAP_PATH"
cd - > /dev/null
}