mirror of
https://git.code.sf.net/p/linux-ima/ima-evm-utils
synced 2025-05-01 08:03:38 +02:00

openSUSE Tumbleweed build fails due broken permission detection due faccessat2() incompatibility in libseccomp/runc used in old docker with old kernel on Ubuntu Focal on hosts in Travis CI together with guests with the newest glibc 2.33. Fixing Tumbleweed required switch to podman and downloading newest runc release (v1.0.0-rc93) which contains the fix [1], because proposed glibc fix [2] aren't going to merged to upstream [3] nor to Tumbleweed downstream glibc [4]. Sooner or later it will be required for more distros (Fedora, Debian Ubuntu), but don't waste build time until required. [1] https://github.com/opencontainers/runc/pull/2750 [2] https://sourceware.org/pipermail/libc-alpha/2020-November/119955.html [3] https://sourceware.org/pipermail/libc-alpha/2020-November/119978.html [4] https://bugzilla.opensuse.org/1182451 Signed-off-by: Petr Vorel <pvorel@suse.cz> [zohar@linux.ibm.com: actually remove sudo, as per Changelog] Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
97 lines
3.3 KiB
YAML
97 lines
3.3 KiB
YAML
# Copyright (c) 2017-2021 Petr Vorel <pvorel@suse.cz>
|
|
|
|
dist: bionic
|
|
language: C
|
|
services:
|
|
- docker
|
|
|
|
matrix:
|
|
include:
|
|
# 32 bit build
|
|
- os: linux
|
|
env: DISTRO=debian:stable VARIANT=i386 ARCH=i386 TSS=tpm2-tss
|
|
compiler: gcc
|
|
|
|
# cross compilation builds
|
|
- os: linux
|
|
env: DISTRO=debian:stable VARIANT=cross-compile ARCH=ppc64el TSS=ibmtss
|
|
compiler: powerpc64le-linux-gnu-gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=debian:stable VARIANT=cross-compile ARCH=arm64 TSS=tpm2-tss
|
|
compiler: aarch64-linux-gnu-gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=debian:stable VARIANT=cross-compile ARCH=s390x TSS=ibmtss
|
|
compiler: s390x-linux-gnu-gcc
|
|
|
|
# musl
|
|
- os: linux
|
|
env: DISTRO=alpine:latest TSS=tpm2-tss
|
|
compiler: gcc
|
|
|
|
# glibc (gcc/clang)
|
|
- os: linux
|
|
env: DISTRO=opensuse/tumbleweed TSS=ibmtss CONTAINER=podman CONTAINER_ARGS="--runtime=/usr/bin/runc --network=host"
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=opensuse/leap TSS=tpm2-tss
|
|
compiler: gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=ubuntu:groovy TSS=ibmtss
|
|
compiler: gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=ubuntu:xenial TSS=tpm2-tss
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=fedora:latest TSS=ibmtss
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=centos:7 TSS=tpm2-tss
|
|
compiler: gcc
|
|
|
|
- os: linux
|
|
env: DISTRO=centos:latest TSS=tpm2-tss
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=debian:testing TSS=tpm2-tss
|
|
compiler: clang
|
|
|
|
- os: linux
|
|
env: DISTRO=debian:stable TSS=ibmtss
|
|
compiler: gcc
|
|
|
|
before_install:
|
|
# Tumbleweed requires podman and newest runc due docker incompatible with glibc 2.33 (faccessat2)
|
|
- CONTAINER="${CONTAINER:-docker}"
|
|
- >
|
|
if [ "$CONTAINER" = "podman" ]; then
|
|
# podman
|
|
. /etc/os-release
|
|
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
|
|
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key -O- | sudo apt-key add -
|
|
sudo apt update
|
|
sudo apt -y install podman slirp4netns
|
|
|
|
# runc
|
|
sudo curl -L https://github.com/opencontainers/runc/releases/download/v1.0.0-rc93/runc.amd64 -o /usr/bin/runc
|
|
sudo chmod +x /usr/bin/runc
|
|
fi
|
|
- $CONTAINER info
|
|
|
|
- DIR="/usr/src/ima-evm-utils"
|
|
- printf "FROM $DISTRO\nRUN mkdir -p $DIR\nWORKDIR $DIR\nCOPY . $DIR\n" > Dockerfile
|
|
- cat Dockerfile
|
|
- $CONTAINER build $CONTAINER_ARGS -t ima-evm-utils .
|
|
|
|
script:
|
|
- INSTALL="${DISTRO%%:*}"
|
|
- INSTALL="${INSTALL%%/*}"
|
|
- $CONTAINER run $CONTAINER_ARGS -t ima-evm-utils /bin/sh -c "cd travis && if [ \"$VARIANT\" ]; then ARCH=\"$ARCH\" ./$INSTALL.$VARIANT.sh; fi && ARCH=\"$ARCH\" CC=\"$CC\" TSS=\"$TSS\" ./$INSTALL.sh && if [ ! \"$VARIANT\" ]; then which tpm_server || which swtpm || ../tests/install-swtpm.sh; fi && CC=\"$CC\" VARIANT=\"$VARIANT\" ../build.sh"
|