tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ubuntu2404-test-system-setup-base.sh (5675B)


      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 and call it in one go.
     12 apt_packages=()
     13 
     14 ARCH="${1:-amd64}"
     15 
     16 if [[ "$ARCH" == "amd64" ]]; then
     17    apt_packages+=('g++-multilib')
     18    apt_packages+=('gcc-multilib')
     19 fi
     20 
     21 apt_packages+=('bluez-cups')
     22 apt_packages+=('build-essential')
     23 apt_packages+=('ca-certificates')
     24 apt_packages+=('ccache')
     25 apt_packages+=('curl')
     26 apt_packages+=('dbus-x11')
     27 apt_packages+=('fontconfig')
     28 apt_packages+=('fonts-dejavu')
     29 apt_packages+=('fonts-kacst')
     30 apt_packages+=('fonts-kacst-one')
     31 apt_packages+=('fonts-liberation')
     32 apt_packages+=('fonts-stix')
     33 apt_packages+=('fonts-unfonts-core')
     34 apt_packages+=('fonts-unfonts-extra')
     35 apt_packages+=('fonts-vlgothic')
     36 apt_packages+=('gir1.2-gnomebluetooth-3.0')
     37 apt_packages+=('gnome-icon-theme')
     38 apt_packages+=('gnome-keyring')
     39 apt_packages+=('gstreamer1.0-gtk3')
     40 apt_packages+=('gstreamer1.0-plugins-base')
     41 apt_packages+=('gstreamer1.0-plugins-good')
     42 apt_packages+=('gstreamer1.0-tools')
     43 apt_packages+=('gstreamer1.0-pulseaudio')
     44 apt_packages+=('language-pack-en-base')
     45 apt_packages+=('libc6-dbg')
     46 apt_packages+=('libasound2-dev')
     47 apt_packages+=('libavcodec-extra60')
     48 apt_packages+=('libcanberra-gtk3-module')
     49 apt_packages+=('libcanberra-pulse')
     50 apt_packages+=('libcurl4-openssl-dev')
     51 apt_packages+=('libdbus-1-dev')
     52 apt_packages+=('libfreetype6')
     53 apt_packages+=('libgstreamer-plugins-base1.0-dev')
     54 apt_packages+=('libgstreamer1.0-dev')
     55 apt_packages+=('libgtk-3-0t64')
     56 apt_packages+=('libiw-dev')
     57 apt_packages+=('libx11-xcb1')
     58 apt_packages+=('libxcb1')
     59 apt_packages+=('libxcb-render0')
     60 apt_packages+=('libxcb-shm0')
     61 apt_packages+=('libxcb-glx0')
     62 apt_packages+=('libxcb-shape0')
     63 apt_packages+=('libnotify-dev')
     64 apt_packages+=('libpulse0')
     65 apt_packages+=('libpulse-dev')
     66 apt_packages+=('libxt-dev')
     67 apt_packages+=('libxxf86vm1')
     68 apt_packages+=('llvm')
     69 apt_packages+=('llvm-dev')
     70 apt_packages+=('llvm-runtime')
     71 apt_packages+=('mesa-common-dev')
     72 apt_packages+=('net-tools')
     73 apt_packages+=('pulseaudio-utils')
     74 apt_packages+=('python3-pip')
     75 apt_packages+=('python3-pyatspi')
     76 apt_packages+=('qemu-system-x86')
     77 apt_packages+=('rlwrap')
     78 apt_packages+=('screen')
     79 apt_packages+=('software-properties-common')
     80 apt_packages+=('sudo')
     81 apt_packages+=('ubuntu-desktop')
     82 apt_packages+=('unzip')
     83 apt_packages+=('uuid')
     84 apt_packages+=('wget')
     85 apt_packages+=('xvfb')
     86 apt_packages+=('xwit')
     87 apt_packages+=('yasm')
     88 apt_packages+=('zip')
     89 
     90 # Bug 1232407 - this allows the user to start vnc
     91 apt_packages+=('x11vnc')
     92 
     93 # Bug 1176031 - need `xset` to disable screensavers
     94 apt_packages+=('x11-xserver-utils')
     95 
     96 # Build a list of packages to install from the multiverse repo.
     97 apt_packages+=('ubuntu-restricted-extras')
     98 
     99 # APT update takes very long on Ubuntu. Run it at the last possible minute.
    100 apt-get update
    101 
    102 # Also force the cleanup after installation of packages to reduce image size.
    103 apt-get install --allow-downgrades "${apt_packages[@]}"
    104 
    105 # libgallium debug symbols
    106 wget -O /tmp/mesa-libgallium-dbgsym.ddeb "https://launchpad.net/ubuntu/+archive/primary/+files/mesa-libgallium-dbgsym_24.2.8-1ubuntu1~24.04.1_$ARCH.ddeb"
    107 dpkg -i /tmp/mesa-libgallium-dbgsym.ddeb
    108 
    109 # gsd-power can't start without logind, but it's marked as required in the
    110 # gnome-session config; remove it so the session doesn't start with the fail
    111 # whale
    112 sed -i 's/org.gnome.SettingsDaemon.Power;//' /usr/share/gnome-session/sessions/ubuntu.session
    113 
    114 if [[ "$ARCH" == "amd64" ]]; then
    115    # Enable i386 packages
    116    dpkg --add-architecture i386
    117    apt-get update
    118 
    119    # Make sure we have libraries for 32-bit tests
    120    apt_packages=()
    121    apt_packages+=('libavcodec-extra60:i386')
    122    apt_packages+=('libpulse0:i386')
    123    apt_packages+=('libxt6t64:i386')
    124    apt_packages+=('libxtst6:i386')
    125    apt_packages+=('libsecret-1-0:i386')
    126    apt_packages+=('libgtk-3-0t64:i386')
    127    apt_packages+=('libx11-xcb1:i386')
    128    apt_packages+=('libxcb1:i386')
    129    apt_packages+=('libasound2t64:i386')
    130    apt_packages+=('libnotify4:i386')
    131 
    132    apt-get install --allow-downgrades "${apt_packages[@]}"
    133 fi
    134 
    135 rm -rf /var/lib/apt/lists/*
    136 
    137 # enable audiotestsrc plugin in pipewire config
    138 # used by gecko media tests to create dummy sound sources
    139 install -d -o root -g root -m 755 /etc/pipewire
    140 sed -e '/^context.spa-libs = {/,/^}$/ s/#\(audiotestsrc\)/\1/' /usr/share/pipewire/pipewire.conf > /etc/pipewire/pipewire.conf
    141 
    142 # Build a list of packages to purge from the image.
    143 apt_packages=()
    144 apt_packages+=('gnome-calendar')
    145 apt_packages+=('gnome-initial-setup')
    146 apt_packages+=('libx11-doc')
    147 apt_packages+=('manpages-dev')
    148 apt_packages+=('orca')
    149 apt_packages+=('rhythmbox')
    150 apt_packages+=('thunderbird')
    151 apt_packages+=('ubuntu-release-upgrader*')
    152 apt_packages+=('update-manager-core')
    153 apt_packages+=('update-manager')
    154 apt_packages+=('yelp')
    155 
    156 # Purge unnecessary packages
    157 apt-get purge "${apt_packages[@]}"
    158 
    159 # We don't need no docs!
    160 rm -rf /usr/share/help /usr/share/doc /usr/share/man
    161 
    162 # Remove all locale files other than en_US.UTF-8
    163 rm -rf /usr/share/locale/   /usr/share/locale-langpack/     /usr/share/locales/
    164 
    165 # Remove systemd tmpfiles that confuse gnome-shell into thinking it should talk to logind
    166 rm -rf /run/systemd/seats
    167 
    168 # Further cleanup
    169 apt-get autoremove --purge
    170 
    171 # Overwrite Ubuntu's Yaru theme with GTK's default (Adwaita), for consistency
    172 cat > /etc/gtk-3.0/settings.ini <<EOF
    173 [Settings]
    174 gtk-theme-name = Adwaita
    175 gtk-icon-theme-name = Yaru
    176 gtk-sound-theme-name = Yaru
    177 gtk-icon-sizes = panel-menu-bar=24,24
    178 EOF
    179 
    180 rm -f "$0"