Everything on this page happens in the config/chroot_local-includes/usr/src/iuk directory.

Pre-requisites

  • a Debian Stretch (or newer) system
  • a user that has sudo credentials
  • Environment:
    • Export location of a checkout of the stable branch of the main Tails Git repository:

      export TAILS_GIT_CHECKOUT="/path/to/your/tails/git/repo"
      

Install dependencies needed to generate IUKs, UDFs, and to run the test suite

cat $(git rev-parse --show-toplevel)/config/chroot_local-packageslists/tails-iuk.list \
   | grep -E -v '^#' \
   | xargs sudo apt install && \
sudo apt install \
   libdist-zilla-app-command-authordebs-perl && \
dzil authordebs --install && \
sudo apt install \
   bsdtar \
   libdevice-cdio-perl \
   dosfstools \
   faketime \
   gdisk \
   genisoimage \
   gnutls-bin \
   kpartx \
   libdata-dumper-concise-perl \
   libdatetime-perl \
   libfile-copy-recursive-perl \
   rsync \
   squashfs-tools \
   syslinux

Run the test suite

Prepare your environment (which includes getting a sudo authentication token, that's needed by the test suite, and setting a umask that runs the tests in conditions closer to production):

export SOURCE_DATE_EPOCH=$(date --utc +%s)
sudo true
umask 077

Run the upstream test suite with aufs:

export UNION_TYPE=aufs
NODE_PATH="${TAILS_GIT_CHECKOUT}/submodules/mirror-pool-dispatcher/lib/js" \
PATH="${TAILS_GIT_CHECKOUT}/submodules/mirror-pool-dispatcher/bin:$PATH" \
   RELEASE_TESTING=1 \
   LC_ALL=C \
   dzil test

Run the upstream test suite with overlayfs:

export UNION_TYPE=overlayfs
NODE_PATH="${TAILS_GIT_CHECKOUT}/submodules/mirror-pool-dispatcher/lib/js" \
PATH="${TAILS_GIT_CHECKOUT}/submodules/mirror-pool-dispatcher/bin:$PATH" \
   RELEASE_TESTING=1 \
   LC_ALL=C \
   dzil test