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

ENV ABI "s390x-linux-gnu"
ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=s390x-linux-gnu-
ENV DEF_TARGET_LIST s390x-softmmu,s390x-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
