# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all --cross-arch i686 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 \
                      gcc \
                      gcovr \
                      gettext \
                      git \
                      hostname \
                      libglib2.0-dev \
                      libgtk-vnc-2.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-setuptools \
                      python3-sphinx \
                      python3-sphinx-rtd-theme \
                      python3-venv \
                      python3-wheel \
                      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 && \
    rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED

RUN /usr/bin/pip3 install tomli

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 i386 && \
    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 \
                      gcc-i686-linux-gnu \
                      libaio-dev:i386 \
                      libasan6:i386 \
                      libasound2-dev:i386 \
                      libattr1-dev:i386 \
                      libbpf-dev:i386 \
                      libbrlapi-dev:i386 \
                      libbz2-dev:i386 \
                      libc6-dev:i386 \
                      libcacard-dev:i386 \
                      libcap-ng-dev:i386 \
                      libcapstone-dev:i386 \
                      libcmocka-dev:i386 \
                      libcurl4-gnutls-dev:i386 \
                      libdaxctl-dev:i386 \
                      libdrm-dev:i386 \
                      libepoxy-dev:i386 \
                      libfdt-dev:i386 \
                      libffi-dev:i386 \
                      libfuse3-dev:i386 \
                      libgbm-dev:i386 \
                      libgcrypt20-dev:i386 \
                      libglib2.0-dev:i386 \
                      libglusterfs-dev:i386 \
                      libgnutls28-dev:i386 \
                      libgtk-3-dev:i386 \
                      libibverbs-dev:i386 \
                      libiscsi-dev:i386 \
                      libjemalloc-dev:i386 \
                      libjpeg62-turbo-dev:i386 \
                      libjson-c-dev:i386 \
                      liblttng-ust-dev:i386 \
                      liblzo2-dev:i386 \
                      libncursesw5-dev:i386 \
                      libnfs-dev:i386 \
                      libnuma-dev:i386 \
                      libpam0g-dev:i386 \
                      libpipewire-0.3-dev:i386 \
                      libpixman-1-dev:i386 \
                      libpng-dev:i386 \
                      libpulse-dev:i386 \
                      librbd-dev:i386 \
                      librdmacm-dev:i386 \
                      libsasl2-dev:i386 \
                      libsdl2-dev:i386 \
                      libsdl2-image-dev:i386 \
                      libseccomp-dev:i386 \
                      libselinux1-dev:i386 \
                      libslirp-dev:i386 \
                      libsnappy-dev:i386 \
                      libspice-server-dev:i386 \
                      libssh-gcrypt-dev:i386 \
                      libsystemd-dev:i386 \
                      libtasn1-6-dev:i386 \
                      libubsan1:i386 \
                      libudev-dev:i386 \
                      liburing-dev:i386 \
                      libusb-1.0-0-dev:i386 \
                      libusbredirhost-dev:i386 \
                      libvdeplug-dev:i386 \
                      libvirglrenderer-dev:i386 \
                      libvte-2.91-dev:i386 \
                      libzstd-dev:i386 \
                      nettle-dev:i386 \
                      systemtap-sdt-dev:i386 \
                      zlib1g-dev:i386 && \
    eatmydata apt-get autoremove -y && \
    eatmydata apt-get autoclean -y && \
    mkdir -p /usr/local/share/meson/cross && \
    printf "[binaries]\n\
c = '/usr/bin/i686-linux-gnu-gcc'\n\
ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
strip = '/usr/bin/i686-linux-gnu-strip'\n\
pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
\n\
[host_machine]\n\
system = 'linux'\n\
cpu_family = 'x86'\n\
cpu = 'i686'\n\
endian = 'little'\n" > /usr/local/share/meson/cross/i686-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/i686-linux-gnu-cc && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc

ENV ABI "i686-linux-gnu"
ENV MESON_OPTS "--cross-file=i686-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=i686-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
