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>
178 lines
6.9 KiB
Docker
178 lines
6.9 KiB
Docker
# THIS FILE WAS AUTO-GENERATED
|
|
#
|
|
# $ lcitool dockerfile --layers all --cross armv7l 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 armhf && \
|
|
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++-arm-linux-gnueabihf \
|
|
gcc-arm-linux-gnueabihf \
|
|
libaio-dev:armhf \
|
|
libasan5:armhf \
|
|
libasound2-dev:armhf \
|
|
libattr1-dev:armhf \
|
|
libbpf-dev:armhf \
|
|
libbrlapi-dev:armhf \
|
|
libbz2-dev:armhf \
|
|
libc6-dev:armhf \
|
|
libcacard-dev:armhf \
|
|
libcap-ng-dev:armhf \
|
|
libcapstone-dev:armhf \
|
|
libcmocka-dev:armhf \
|
|
libcurl4-gnutls-dev:armhf \
|
|
libdaxctl-dev:armhf \
|
|
libdrm-dev:armhf \
|
|
libepoxy-dev:armhf \
|
|
libfdt-dev:armhf \
|
|
libffi-dev:armhf \
|
|
libfuse3-dev:armhf \
|
|
libgbm-dev:armhf \
|
|
libgcrypt20-dev:armhf \
|
|
libglib2.0-dev:armhf \
|
|
libglusterfs-dev:armhf \
|
|
libgnutls28-dev:armhf \
|
|
libgtk-3-dev:armhf \
|
|
libibumad-dev:armhf \
|
|
libibverbs-dev:armhf \
|
|
libiscsi-dev:armhf \
|
|
libjemalloc-dev:armhf \
|
|
libjpeg62-turbo-dev:armhf \
|
|
libjson-c-dev:armhf \
|
|
liblttng-ust-dev:armhf \
|
|
liblzo2-dev:armhf \
|
|
libncursesw5-dev:armhf \
|
|
libnfs-dev:armhf \
|
|
libnuma-dev:armhf \
|
|
libpam0g-dev:armhf \
|
|
libpixman-1-dev:armhf \
|
|
libpng-dev:armhf \
|
|
libpulse-dev:armhf \
|
|
librbd-dev:armhf \
|
|
librdmacm-dev:armhf \
|
|
libsasl2-dev:armhf \
|
|
libsdl2-dev:armhf \
|
|
libsdl2-image-dev:armhf \
|
|
libseccomp-dev:armhf \
|
|
libselinux1-dev:armhf \
|
|
libslirp-dev:armhf \
|
|
libsnappy-dev:armhf \
|
|
libspice-server-dev:armhf \
|
|
libssh-gcrypt-dev:armhf \
|
|
libsystemd-dev:armhf \
|
|
libtasn1-6-dev:armhf \
|
|
libubsan1:armhf \
|
|
libudev-dev:armhf \
|
|
liburing-dev:armhf \
|
|
libusb-1.0-0-dev:armhf \
|
|
libusbredirhost-dev:armhf \
|
|
libvdeplug-dev:armhf \
|
|
libvirglrenderer-dev:armhf \
|
|
libvte-2.91-dev:armhf \
|
|
libxen-dev:armhf \
|
|
libzstd-dev:armhf \
|
|
nettle-dev:armhf \
|
|
systemtap-sdt-dev:armhf \
|
|
xfslibs-dev:armhf \
|
|
zlib1g-dev:armhf && \
|
|
eatmydata apt-get autoremove -y && \
|
|
eatmydata apt-get autoclean -y && \
|
|
mkdir -p /usr/local/share/meson/cross && \
|
|
printf "[binaries]\n\
|
|
c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
|
|
ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
|
|
strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
|
|
pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
|
|
\n\
|
|
[host_machine]\n\
|
|
system = 'linux'\n\
|
|
cpu_family = 'arm'\n\
|
|
cpu = 'armhf'\n\
|
|
endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
|
|
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/arm-linux-gnueabihf-c++ && \
|
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
|
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-g++ && \
|
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
|
|
|
|
ENV ABI "arm-linux-gnueabihf"
|
|
ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
|
|
ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf-
|
|
ENV DEF_TARGET_LIST arm-softmmu,arm-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
|