# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all --cross-arch s390x debian-12 qemu
#
# https://gitlab.com/libvirt/libvirt-ci

FROM docker.io/library/debian:12-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-sphinx \
                      python3-sphinx-rtd-theme \
                      python3-venv \
                      python3-yaml \
                      rpm2cpio \
                      sed \
                      socat \
                      sparse \
                      swtpm \
                      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

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 \
                      gcc-s390x-linux-gnu \
                      libaio-dev:s390x \
                      libasan6: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 \
                      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 \
                      libpipewire-0.3-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 \
                      libxdp-dev:s390x \
                      libzstd-dev:s390x \
                      nettle-dev:s390x \
                      systemtap-sdt-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-cc && \
    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
