da9000784c
Bios bits avocado tests need mformat (provided by the mtools package) and xorriso tools in order to run within gitlab CI containers. Add those dependencies within the Dockerfiles so that containers can be built with those tools present and bios bits avocado tests can be run there. xorriso package conflicts with genisoimage package on some distributions. Therefore, it is not possible to have both the packages at the same time in the container image uniformly for all distribution flavors. Further, on some distributions like RHEL, both xorriso and genisoimage packages provide /usr/bin/genisoimage and on some other distributions like Fedora, only genisoimage package provides the same utility. Therefore, this change removes the dependency on geninsoimage for building container images altogether keeping only xorriso package. At the same time, cdrom-test.c is updated to use and check for existence of only xorrisofs. Signed-off-by: Ani Sinha <anisinha@redhat.com> Message-Id: <20230504154611.85854-3-anisinha@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
179 lines
6.9 KiB
Docker
179 lines
6.9 KiB
Docker
# THIS FILE WAS AUTO-GENERATED
|
|
#
|
|
# $ lcitool dockerfile --layers all --cross x86_64 debian-11 qemu
|
|
#
|
|
# https://gitlab.com/libvirt/libvirt-ci
|
|
|
|
FROM docker.io/library/debian:11-slim
|
|
|
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
apt-get update && \
|
|
apt-get install -y eatmydata && \
|
|
eatmydata apt-get dist-upgrade -y && \
|
|
eatmydata apt-get install --no-install-recommends -y \
|
|
bash \
|
|
bc \
|
|
bison \
|
|
bsdextrautils \
|
|
bzip2 \
|
|
ca-certificates \
|
|
ccache \
|
|
dbus \
|
|
debianutils \
|
|
diffutils \
|
|
exuberant-ctags \
|
|
findutils \
|
|
flex \
|
|
gcovr \
|
|
gettext \
|
|
git \
|
|
hostname \
|
|
libglib2.0-dev \
|
|
libpcre2-dev \
|
|
libsndio-dev \
|
|
libspice-protocol-dev \
|
|
llvm \
|
|
locales \
|
|
make \
|
|
meson \
|
|
mtools \
|
|
ncat \
|
|
ninja-build \
|
|
openssh-client \
|
|
pkgconf \
|
|
python3 \
|
|
python3-numpy \
|
|
python3-opencv \
|
|
python3-pillow \
|
|
python3-pip \
|
|
python3-sphinx \
|
|
python3-sphinx-rtd-theme \
|
|
python3-venv \
|
|
python3-yaml \
|
|
rpm2cpio \
|
|
sed \
|
|
socat \
|
|
sparse \
|
|
tar \
|
|
tesseract-ocr \
|
|
tesseract-ocr-eng \
|
|
xorriso \
|
|
zstd && \
|
|
eatmydata apt-get autoremove -y && \
|
|
eatmydata apt-get autoclean -y && \
|
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
|
dpkg-reconfigure locales
|
|
|
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
|
ENV LANG "en_US.UTF-8"
|
|
ENV MAKE "/usr/bin/make"
|
|
ENV NINJA "/usr/bin/ninja"
|
|
ENV PYTHON "/usr/bin/python3"
|
|
|
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
|
dpkg --add-architecture amd64 && \
|
|
eatmydata apt-get update && \
|
|
eatmydata apt-get dist-upgrade -y && \
|
|
eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
|
|
eatmydata apt-get install --no-install-recommends -y \
|
|
g++-x86-64-linux-gnu \
|
|
gcc-x86-64-linux-gnu \
|
|
libaio-dev:amd64 \
|
|
libasan5:amd64 \
|
|
libasound2-dev:amd64 \
|
|
libattr1-dev:amd64 \
|
|
libbpf-dev:amd64 \
|
|
libbrlapi-dev:amd64 \
|
|
libbz2-dev:amd64 \
|
|
libc6-dev:amd64 \
|
|
libcacard-dev:amd64 \
|
|
libcap-ng-dev:amd64 \
|
|
libcapstone-dev:amd64 \
|
|
libcmocka-dev:amd64 \
|
|
libcurl4-gnutls-dev:amd64 \
|
|
libdaxctl-dev:amd64 \
|
|
libdrm-dev:amd64 \
|
|
libepoxy-dev:amd64 \
|
|
libfdt-dev:amd64 \
|
|
libffi-dev:amd64 \
|
|
libfuse3-dev:amd64 \
|
|
libgbm-dev:amd64 \
|
|
libgcrypt20-dev:amd64 \
|
|
libglib2.0-dev:amd64 \
|
|
libglusterfs-dev:amd64 \
|
|
libgnutls28-dev:amd64 \
|
|
libgtk-3-dev:amd64 \
|
|
libibumad-dev:amd64 \
|
|
libibverbs-dev:amd64 \
|
|
libiscsi-dev:amd64 \
|
|
libjemalloc-dev:amd64 \
|
|
libjpeg62-turbo-dev:amd64 \
|
|
libjson-c-dev:amd64 \
|
|
liblttng-ust-dev:amd64 \
|
|
liblzo2-dev:amd64 \
|
|
libncursesw5-dev:amd64 \
|
|
libnfs-dev:amd64 \
|
|
libnuma-dev:amd64 \
|
|
libpam0g-dev:amd64 \
|
|
libpixman-1-dev:amd64 \
|
|
libpmem-dev:amd64 \
|
|
libpng-dev:amd64 \
|
|
libpulse-dev:amd64 \
|
|
librbd-dev:amd64 \
|
|
librdmacm-dev:amd64 \
|
|
libsasl2-dev:amd64 \
|
|
libsdl2-dev:amd64 \
|
|
libsdl2-image-dev:amd64 \
|
|
libseccomp-dev:amd64 \
|
|
libselinux1-dev:amd64 \
|
|
libslirp-dev:amd64 \
|
|
libsnappy-dev:amd64 \
|
|
libspice-server-dev:amd64 \
|
|
libssh-gcrypt-dev:amd64 \
|
|
libsystemd-dev:amd64 \
|
|
libtasn1-6-dev:amd64 \
|
|
libubsan1:amd64 \
|
|
libudev-dev:amd64 \
|
|
liburing-dev:amd64 \
|
|
libusb-1.0-0-dev:amd64 \
|
|
libusbredirhost-dev:amd64 \
|
|
libvdeplug-dev:amd64 \
|
|
libvirglrenderer-dev:amd64 \
|
|
libvte-2.91-dev:amd64 \
|
|
libxen-dev:amd64 \
|
|
libzstd-dev:amd64 \
|
|
nettle-dev:amd64 \
|
|
systemtap-sdt-dev:amd64 \
|
|
xfslibs-dev:amd64 \
|
|
zlib1g-dev:amd64 && \
|
|
eatmydata apt-get autoremove -y && \
|
|
eatmydata apt-get autoclean -y && \
|
|
mkdir -p /usr/local/share/meson/cross && \
|
|
printf "[binaries]\n\
|
|
c = '/usr/bin/x86_64-linux-gnu-gcc'\n\
|
|
ar = '/usr/bin/x86_64-linux-gnu-gcc-ar'\n\
|
|
strip = '/usr/bin/x86_64-linux-gnu-strip'\n\
|
|
pkgconfig = '/usr/bin/x86_64-linux-gnu-pkg-config'\n\
|
|
\n\
|
|
[host_machine]\n\
|
|
system = 'linux'\n\
|
|
cpu_family = 'x86_64'\n\
|
|
cpu = 'x86_64'\n\
|
|
endian = 'little'\n" > /usr/local/share/meson/cross/x86_64-linux-gnu && \
|
|
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/x86_64-linux-gnu-c++ && \
|
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-cc && \
|
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-g++ && \
|
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-gcc
|
|
|
|
ENV ABI "x86_64-linux-gnu"
|
|
ENV MESON_OPTS "--cross-file=x86_64-linux-gnu"
|
|
ENV QEMU_CONFIGURE_OPTS --cross-prefix=x86_64-linux-gnu-
|
|
ENV DEF_TARGET_LIST x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user
|
|
# As a final step configure the user (if env is defined)
|
|
ARG USER
|
|
ARG UID
|
|
RUN if [ "${USER}" ]; then \
|
|
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
|