# 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 \
                      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 \
                      g++-s390x-linux-gnu \
                      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 \
                      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 \
                      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 \
                      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
