blob: 1c2bede2ef4889af274004a9dc32e7ab8d89a722 [file] [log] [blame]
#!/bin/bash
# Copyright 2018 The Chromium OS 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 up a Debian container. This is run from inside the container as root.
set -eux
main() {
local release=$1
apt-get update
apt-get -q -y install apt-transport-https ca-certificates
# Use HTTPS repos.
sed -i 's|http:|https:|g' /etc/apt/sources.list
# Use deb.debian.org redirection; security.debian.org doesn't handle HTTPS.
sed -i 's|security.debian.org|deb.debian.org|g' /etc/apt/sources.list
echo "deb [trusted=yes] file:///run/apt ${release} main" >/etc/apt/sources.list.d/cros-staging.list
apt-get update
# python3 is used for integration testing.
apt-get -q -y --no-install-recommends install python3
if [ "${release}" = "stretch" ]; then
# gnome-icon-theme_3.12.0-2 sometimes gets checksum failures when
# installing from deb.debian.org, use our own known-good copy, with
# lots of extra debugging so we can try and figure out the cause,
# and retry up to 5 times to try and keep the build going.
# Buster has a newer version we haven't seen failures on, so this will
# go away when we can stop supporting Stretch.
set +e
for attempt in {1..5}; do
apt-get -q -y --no-install-recommends -o Debug::Hashes=true \
-o Debug::pkgAcquire::Auth=true -o Debug::pkgDPkgPM=true \
install /extra-debs/gnome-icon-theme_3.12.0-2_all.deb && break
done
set -e
if [[ "${attempt}" -eq 5 ]]; then
# Failed to install, try again without apt and even more verbose.
# Like, really verbose, but not quite the most verbose.
dpkg -D73333 -i /extra-debs/gnome-icon-theme_3.12.0-2_all.deb
fi
# The cros-gpu package installs more apt sources.
apt-get -q -y --allow-unauthenticated install cros-gpu
apt-get update
fi
apt-get -q -y --allow-unauthenticated install cros-guest-tools
apt-get -q -y install less
apt-get clean
rm /etc/apt/sources.list.d/cros-staging.list
apt-get update
# Don't run sshd out of the box.
touch /etc/ssh/sshd_not_to_be_run
# Add a placeholder cros.list. This will be replaced at boot time by
# tremplin.
echo "deb https://storage.googleapis.com/cros-packages/74 stretch main"
}
main "$@"