#!/bin/bash set -eux -o pipefail DNF=(dnf -y --setopt=install_weak_deps=False --setopt=tsflags=nodocs --exclude="kernel,kernel-core") RPMS=(bats git-core glibc-static golang jq libseccomp-devel make) # Work around dnf mirror failures by retrying a few times. for i in $(seq 0 2); do sleep "$i" "${DNF[@]}" update && "${DNF[@]}" install "${RPMS[@]}" && break done # criu-4.1-1 has a known bug (https://github.com/checkpoint-restore/criu/issues/2650) # which is fixed in criu-4.1-2 (currently in updates-testing). TODO: remove this later. if [[ $(rpm -q criu) == "criu-4.1-1.fc"* ]]; then "${DNF[@]}" --enablerepo=updates-testing update criu fi dnf clean all # To avoid "avc: denied { nosuid_transition }" from SELinux as we run tests on /tmp. mount -o remount,suid /tmp # Setup rootless user. "$(dirname "${BASH_SOURCE[0]}")"/setup_rootless.sh # Delegate cgroup v2 controllers to rootless user via --systemd-cgroup mkdir -p /etc/systemd/system/user@.service.d cat >/etc/systemd/system/user@.service.d/delegate.conf <= 244 (Fedora >= 32, Ubuntu >= 20.04). Delegate=yes EOF systemctl daemon-reload