tests/docker: update debian-amd64 with lcitool

The one minor wrinkle we need to account for is the netmap support
still requires building from source. We also include cscope and GNU
global as they are used in one of the builds.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: Luigi Rizzo <rizzo@iet.unipi.it>
Cc: Giuseppe Lettieri <g.lettieri@iet.unipi.it>
Cc: Vincenzo Maffione <v.maffione@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20220527153603.887929-12-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2022-05-27 16:35:41 +01:00
parent 4ec740e12d
commit 9e19fd7d4a
3 changed files with 164 additions and 52 deletions

View File

@ -14,8 +14,7 @@ amd64-debian11-container:
amd64-debian-container: amd64-debian-container:
extends: .container_job_template extends: .container_job_template
stage: containers-layer2 stage: containers
needs: ['amd64-debian10-container']
variables: variables:
NAME: debian-amd64 NAME: debian-amd64

View File

@ -1,59 +1,153 @@
# THIS FILE WAS AUTO-GENERATED
# #
# Docker x86_64 target # $ lcitool dockerfile --layers all debian-11 qemu
# #
# This docker target builds on the Debian Buster base image. Further # https://gitlab.com/libvirt/libvirt-ci
# libraries which are not widely available are installed by hand.
#
FROM qemu/debian10
MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
RUN apt update && \ FROM docker.io/library/debian:11-slim
DEBIAN_FRONTEND=noninteractive eatmydata \
apt build-dep -yy qemu
RUN apt update && \ RUN export DEBIAN_FRONTEND=noninteractive && \
DEBIAN_FRONTEND=noninteractive eatmydata \ apt-get update && \
apt install -y --no-install-recommends \ apt-get install -y eatmydata && \
cscope \ eatmydata apt-get dist-upgrade -y && \
genisoimage \ eatmydata apt-get install --no-install-recommends -y \
exuberant-ctags \ bash \
global \ bc \
libbz2-dev \ bsdextrautils \
liblzo2-dev \ bzip2 \
libgcrypt20-dev \ ca-certificates \
libfdt-dev \ ccache \
librdmacm-dev \ clang \
libsasl2-dev \ dbus \
libsnappy-dev \ debianutils \
libvte-dev \ diffutils \
netcat-openbsd \ exuberant-ctags \
openssh-client \ findutils \
python3-numpy \ g++ \
python3-opencv \ gcc \
python3-venv gcovr \
genisoimage \
gettext \
git \
hostname \
libaio-dev \
libasan5 \
libasound2-dev \
libattr1-dev \
libbpf-dev \
libbrlapi-dev \
libbz2-dev \
libc6-dev \
libcacard-dev \
libcap-ng-dev \
libcapstone-dev \
libcurl4-gnutls-dev \
libdaxctl-dev \
libdrm-dev \
libepoxy-dev \
libfdt-dev \
libffi-dev \
libfuse3-dev \
libgbm-dev \
libgcrypt20-dev \
libglib2.0-dev \
libglusterfs-dev \
libgnutls28-dev \
libgtk-3-dev \
libibumad-dev \
libibverbs-dev \
libiscsi-dev \
libjemalloc-dev \
libjpeg62-turbo-dev \
liblttng-ust-dev \
liblzo2-dev \
libncursesw5-dev \
libnfs-dev \
libnuma-dev \
libpam0g-dev \
libpcre2-dev \
libpixman-1-dev \
libpmem-dev \
libpng-dev \
libpulse-dev \
librbd-dev \
librdmacm-dev \
libsasl2-dev \
libsdl2-dev \
libsdl2-image-dev \
libseccomp-dev \
libselinux1-dev \
libslirp-dev \
libsnappy-dev \
libspice-protocol-dev \
libspice-server-dev \
libssh-gcrypt-dev \
libsystemd-dev \
libtasn1-6-dev \
libubsan1 \
libudev-dev \
liburing-dev \
libusb-1.0-0-dev \
libusbredirhost-dev \
libvdeplug-dev \
libvirglrenderer-dev \
libvte-2.91-dev \
libxen-dev \
libzstd-dev \
llvm \
locales \
make \
meson \
multipath-tools \
ncat \
nettle-dev \
ninja-build \
openssh-client \
perl-base \
pkgconf \
python3 \
python3-numpy \
python3-opencv \
python3-pillow \
python3-pip \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-venv \
python3-yaml \
rpm2cpio \
sed \
sparse \
systemtap-sdt-dev \
tar \
tesseract-ocr \
tesseract-ocr-eng \
texinfo \
xfslibs-dev \
zlib1g-dev && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
mkdir -p /usr/libexec/ccache-wrappers && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
# virgl ENV LANG "en_US.UTF-8"
RUN apt update && \ ENV MAKE "/usr/bin/make"
DEBIAN_FRONTEND=noninteractive eatmydata \ ENV NINJA "/usr/bin/ninja"
apt install -y --no-install-recommends \ ENV PYTHON "/usr/bin/python3"
libegl1-mesa-dev \ ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
libepoxy-dev \ # netmap/cscope/global
libgbm-dev RUN DEBIAN_FRONTEND=noninteractive eatmydata \
RUN git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git /usr/src/virglrenderer && \ apt install -y --no-install-recommends \
cd /usr/src/virglrenderer && git checkout virglrenderer-0.8.0 cscope\
RUN cd /usr/src/virglrenderer && ./autogen.sh && ./configure --disable-tests && make install global\
linux-headers-amd64
# netmap
RUN apt update && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends \
linux-headers-amd64
RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap
RUN cd /usr/src/netmap && git checkout v11.3 RUN cd /usr/src/netmap && git checkout v11.3
RUN cd /usr/src/netmap/LINUX && ./configure --no-drivers --no-apps --kernel-dir=$(ls -d /usr/src/linux-headers-*-amd64) && make install RUN cd /usr/src/netmap/LINUX && ./configure --no-drivers --no-apps --kernel-dir=$(ls -d /usr/src/linux-headers-*-amd64) && make install
ENV QEMU_CONFIGURE_OPTS --enable-netmap ENV QEMU_CONFIGURE_OPTS --enable-netmap
RUN ldconfig
# gcrypt
ENV QEMU_CONFIGURE_OPTS $QEMU_CONFIGURE_OPTS --enable-gcrypt

View File

@ -76,6 +76,23 @@ ubuntu2004_tsanhack = [
] ]
# Netmap still needs to be manually built as it is yet to be packaged
# into a distro. We also add cscope and gtags which are used in the CI
# test
debian11_extras = [
"# netmap/cscope/global\n",
"RUN DEBIAN_FRONTEND=noninteractive eatmydata \\\n",
" apt install -y --no-install-recommends \\\n",
" cscope\\\n",
" global\\\n",
" linux-headers-amd64\n",
"RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap\n",
"RUN cd /usr/src/netmap && git checkout v11.3\n",
"RUN cd /usr/src/netmap/LINUX && ./configure --no-drivers --no-apps --kernel-dir=$(ls -d /usr/src/linux-headers-*-amd64) && make install\n",
"ENV QEMU_CONFIGURE_OPTS --enable-netmap\n"
]
def debian_cross_build(prefix, targets): def debian_cross_build(prefix, targets):
conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix) conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix)
targets = "ENV DEF_TARGET_LIST %s\n" % (targets) targets = "ENV DEF_TARGET_LIST %s\n" % (targets)
@ -92,6 +109,8 @@ try:
# #
generate_dockerfile("alpine", "alpine-edge") generate_dockerfile("alpine", "alpine-edge")
generate_dockerfile("centos8", "centos-stream-8") generate_dockerfile("centos8", "centos-stream-8")
generate_dockerfile("debian-amd64", "debian-11",
trailer="".join(debian11_extras))
generate_dockerfile("fedora", "fedora-35") generate_dockerfile("fedora", "fedora-35")
generate_dockerfile("opensuse-leap", "opensuse-leap-152") generate_dockerfile("opensuse-leap", "opensuse-leap-152")
generate_dockerfile("ubuntu2004", "ubuntu-2004", generate_dockerfile("ubuntu2004", "ubuntu-2004",