blob: 018b19e21ea092030417f0ae34e614538e6bcbf4 [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 for test.
# This is run from inside the container as root.
set -eux
main() {
local release=$1
local job_name=$2
# Add non-free repository to apt sources.list.
sed -E -i 's|^(deb.*main)$|\1 non-free|g' /etc/apt/sources.list
# Add buster specific packages
if [ "${release}" = "buster" ]; then
cat > /etc/apt/preferences.d/waffle.pref << EOD
Package: *
Pin: release a=testing
Pin-Priority: 400
Explanation: Prioritize testing version
Package: libwaffle-1-0
Pin: release a=testing
Pin-Priority: 505
Explanation: Prioritize testing version
Package: libwaffle-dev
Pin: release a=testing
Pin-Priority: 505
Explanation: Prioritize testing version
EOD
echo "deb [trusted=yes] http://deb.debian.org/debian/ testing main" > /etc/apt/sources.list.d/testing.list
echo "deb [trusted=yes] file:///run/apt ${release} main" > /etc/apt/sources.list.d/cros-mesa.list
fi
apt-get update
# For crostini.AudioSanity.
apt-get -q -y install alsa-utils
# For crostini.CpuPerf.
apt-get -q -y install lmbench
# For crostini.DiskIOPerf.
apt-get -q -y install fio
# For crostini.InputLatency.
apt-get -q -y install python2.7
# For crostini.NetworkPerf.
apt-get -q -y install iperf3 iputils-ping
# For crostini.Toolkit.*.
apt-get -q -y install python3-gi python3-gi-cairo gir1.2-gtk-3.0 # GTK3
apt-get -q -y install python3-pyqt5 # Qt5
apt-get -q -y install python3-tk # Tkinter
# For crostini.VimCompile.
apt-get -q -y install gcc make libncurses5-dev libncursesw5-dev # Compilation toolchain
# For crostini.Webserver.
apt-get -q -y install busybox
# For graphics.CrostiniTrace*.
apt-get -q -y install mesa-utils apitrace zstd
# For filemanager.SMB.
echo "samba-common samba-common/workgroup string WORKGROUP" \
| debconf-set-selections
echo "samba-common samba-common/dhcp boolean true" \
| debconf-set-selections
echo "samba-common samba-common/do_debconf boolean true" \
| debconf-set-selections
apt-get -q -y install samba
# For crostini.Notify
apt-get -q -y install libnotify-bin
# For graphics.GLBench
if [ "${release}" = "buster" ]; then
# presubmit isn't pulling debs built by mesa. Skip the installation for presubmit only.
# TODO(crbug.com/1021304): remove it once we are pulling debs in presubmit.
if [[ "${job_name}" != *"presubmit"* ]]; then
apt-get -q -y install glbench
fi
apt-get clean
rm /etc/apt/sources.list.d/cros-mesa.list
apt-get update
fi
}
main "$@"