ubuntu1804-test-system-setup-base.sh (4722B)
1 #!/usr/bin/env bash 2 3 set -ve 4 5 test "$(whoami)" == 'root' 6 7 # We do want to install recommended packages. 8 sed -i /APT::Install-Recommends/d /etc/apt/apt.conf.d/99taskcluster 9 10 # To speed up docker image build times as well as number of network/disk I/O 11 # build a list of packages to be installed nad call it in one go. 12 apt_packages=() 13 14 apt_packages+=('bluez-cups') 15 apt_packages+=('build-essential') 16 apt_packages+=('ca-certificates') 17 apt_packages+=('ccache') 18 apt_packages+=('compiz') 19 apt_packages+=('curl') 20 apt_packages+=('fontconfig') 21 apt_packages+=('fonts-kacst') 22 apt_packages+=('fonts-kacst-one') 23 apt_packages+=('fonts-liberation') 24 apt_packages+=('fonts-stix') 25 apt_packages+=('fonts-unfonts-core') 26 apt_packages+=('fonts-unfonts-extra') 27 apt_packages+=('fonts-vlgothic') 28 apt_packages+=('g++-multilib') 29 apt_packages+=('gcc-multilib') 30 apt_packages+=('gir1.2-gnomebluetooth-1.0') 31 apt_packages+=('git') 32 apt_packages+=('gnome-icon-theme') 33 apt_packages+=('gstreamer1.0-gtk3') 34 apt_packages+=('gstreamer1.0-plugins-base') 35 apt_packages+=('gstreamer1.0-plugins-good') 36 apt_packages+=('gstreamer1.0-tools') 37 apt_packages+=('gstreamer1.0-pulseaudio') 38 apt_packages+=('language-pack-en-base') 39 apt_packages+=('libc6-dbg') 40 apt_packages+=('libasound2-dev') 41 apt_packages+=('libavcodec-extra57') 42 apt_packages+=('libcanberra-gtk3-module') 43 apt_packages+=('libcanberra-pulse') 44 apt_packages+=('libcurl4-openssl-dev') 45 apt_packages+=('libdbus-1-dev') 46 apt_packages+=('libfreetype6') 47 apt_packages+=('libgconf2-dev') 48 apt_packages+=('libgl1-mesa-dri') 49 apt_packages+=('libgl1-mesa-glx') 50 apt_packages+=('libgstreamer-plugins-base1.0-dev') 51 apt_packages+=('libgstreamer1.0-dev') 52 apt_packages+=('libgtk-3-0') 53 apt_packages+=('libiw-dev') 54 apt_packages+=('libx11-xcb1') 55 apt_packages+=('libxcb1') 56 apt_packages+=('libxcb-render0') 57 apt_packages+=('libxcb-shm0') 58 apt_packages+=('libxcb-glx0') 59 apt_packages+=('libxcb-shape0') 60 apt_packages+=('libnotify-dev') 61 apt_packages+=('libpulse0') 62 apt_packages+=('libpulse-dev') 63 apt_packages+=('libxt-dev') 64 apt_packages+=('libxxf86vm1') 65 apt_packages+=('llvm') 66 apt_packages+=('llvm-dev') 67 apt_packages+=('llvm-runtime') 68 apt_packages+=('mesa-common-dev') 69 apt_packages+=('net-tools') 70 apt_packages+=('pulseaudio') 71 apt_packages+=('pulseaudio-module-bluetooth') 72 apt_packages+=('pulseaudio-module-gconf') 73 apt_packages+=('python-dev') 74 apt_packages+=('python-pip') 75 apt_packages+=('python3-pip') 76 apt_packages+=('python3-pyatspi') 77 apt_packages+=('qemu-kvm') 78 apt_packages+=('rlwrap') 79 apt_packages+=('screen') 80 apt_packages+=('software-properties-common') 81 apt_packages+=('sudo') 82 apt_packages+=('ttf-dejavu') 83 apt_packages+=('ubuntu-desktop') 84 apt_packages+=('unzip') 85 apt_packages+=('uuid') 86 apt_packages+=('wget') 87 apt_packages+=('xvfb') 88 apt_packages+=('xwit') 89 apt_packages+=('yasm') 90 apt_packages+=('zip') 91 92 # Bug 1232407 - this allows the user to start vnc 93 apt_packages+=('x11vnc') 94 95 # Bug 1176031 - need `xset` to disable screensavers 96 apt_packages+=('x11-xserver-utils') 97 98 # Build a list of packages to install from the multiverse repo. 99 apt_packages+=('ubuntu-restricted-extras') 100 101 # APT update takes very long on Ubuntu. Run it at the last possible minute. 102 apt-get update 103 104 # Also force the cleanup after installation of packages to reduce image size. 105 apt-get install --allow-downgrades "${apt_packages[@]}" 106 107 # Enable i386 packages 108 dpkg --add-architecture i386 109 apt-get update 110 111 # Make sure we have libraries for 32-bit tests 112 apt_packages=() 113 apt_packages+=('libavcodec-extra57:i386') 114 apt_packages+=('libpulse0:i386') 115 apt_packages+=('libxt6:i386') 116 apt_packages+=('libxtst6:i386') 117 apt_packages+=('libsecret-1-0:i386') 118 apt_packages+=('libgtk-3-0:i386') 119 apt_packages+=('libx11-xcb1:i386') 120 apt_packages+=('libxcb1:i386') 121 apt_packages+=('libasound2:i386') 122 123 apt-get install --allow-downgrades "${apt_packages[@]}" 124 rm -rf /var/lib/apt/lists/* 125 126 # Build a list of packages to purge from the image. 127 apt_packages=() 128 apt_packages+=('*cheese*') 129 apt_packages+=('example-content') 130 apt_packages+=('git') 131 apt_packages+=('gnome-calendar') 132 apt_packages+=('gnome-initial-setup') 133 apt_packages+=('gnome-mahjongg') 134 apt_packages+=('gnome-mines') 135 apt_packages+=('gnome-sudoku') 136 apt_packages+=('libx11-doc') 137 apt_packages+=('manpages-dev') 138 apt_packages+=('orca') 139 apt_packages+=('rhythmbox') 140 apt_packages+=('thunderbird') 141 apt_packages+=('ubuntu-release-upgrader*') 142 apt_packages+=('update-manager-core') 143 apt_packages+=('update-manager') 144 apt_packages+=('yelp') 145 146 # Purge unnecessary packages 147 apt-get purge "${apt_packages[@]}" 148 149 # We don't need no docs! 150 rm -rf /usr/share/help /usr/share/doc /usr/share/man 151 152 # Remove all locale files other than en_US.UTF-8 153 rm -rf /usr/share/locale/ /usr/share/locale-langpack/ /usr/share/locales/ 154 155 # Further cleanup 156 apt-get autoremove 157 158 rm -f "$0"