# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all --cross-arch mipsel 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 \
                      bindgen \
                      bison \
                      bsdextrautils \
                      bzip2 \
                      ca-certificates \
                      ccache \
                      dbus \
                      debianutils \
                      diffutils \
                      exuberant-ctags \
                      findutils \
                      flex \
                      gcc \
                      gcovr \
                      gettext \
                      git \
                      hostname \
                      libglib2.0-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 \
                      rustc \
                      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 mipsel && \
    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-mipsel-linux-gnu \
                      libaio-dev:mipsel \
                      libasound2-dev:mipsel \
                      libattr1-dev:mipsel \
                      libbpf-dev:mipsel \
                      libbrlapi-dev:mipsel \
                      libbz2-dev:mipsel \
                      libc6-dev:mipsel \
                      libcacard-dev:mipsel \
                      libcap-ng-dev:mipsel \
                      libcapstone-dev:mipsel \
                      libcbor-dev:mipsel \
                      libcmocka-dev:mipsel \
                      libcurl4-gnutls-dev:mipsel \
                      libdaxctl-dev:mipsel \
                      libdrm-dev:mipsel \
                      libepoxy-dev:mipsel \
                      libfdt-dev:mipsel \
                      libffi-dev:mipsel \
                      libfuse3-dev:mipsel \
                      libgbm-dev:mipsel \
                      libgcrypt20-dev:mipsel \
                      libglib2.0-dev:mipsel \
                      libglusterfs-dev:mipsel \
                      libgnutls28-dev:mipsel \
                      libgtk-3-dev:mipsel \
                      libgtk-vnc-2.0-dev:mipsel \
                      libibverbs-dev:mipsel \
                      libiscsi-dev:mipsel \
                      libjemalloc-dev:mipsel \
                      libjpeg62-turbo-dev:mipsel \
                      libjson-c-dev:mipsel \
                      liblttng-ust-dev:mipsel \
                      liblzo2-dev:mipsel \
                      libncursesw5-dev:mipsel \
                      libnfs-dev:mipsel \
                      libnuma-dev:mipsel \
                      libpam0g-dev:mipsel \
                      libpcre2-dev:mipsel \
                      libpipewire-0.3-dev:mipsel \
                      libpixman-1-dev:mipsel \
                      libpng-dev:mipsel \
                      libpulse-dev:mipsel \
                      librbd-dev:mipsel \
                      librdmacm-dev:mipsel \
                      libsasl2-dev:mipsel \
                      libsdl2-dev:mipsel \
                      libsdl2-image-dev:mipsel \
                      libseccomp-dev:mipsel \
                      libselinux1-dev:mipsel \
                      libslirp-dev:mipsel \
                      libsnappy-dev:mipsel \
                      libsndio-dev:mipsel \
                      libspice-protocol-dev:mipsel \
                      libspice-server-dev:mipsel \
                      libssh-gcrypt-dev:mipsel \
                      libsystemd-dev:mipsel \
                      libtasn1-6-dev:mipsel \
                      libudev-dev:mipsel \
                      liburing-dev:mipsel \
                      libusb-1.0-0-dev:mipsel \
                      libusbredirhost-dev:mipsel \
                      libvdeplug-dev:mipsel \
                      libvirglrenderer-dev:mipsel \
                      libvte-2.91-dev:mipsel \
                      libxdp-dev:mipsel \
                      libzstd-dev:mipsel \
                      nettle-dev:mipsel \
                      systemtap-sdt-dev:mipsel \
                      zlib1g-dev:mipsel && \
    eatmydata apt-get autoremove -y && \
    eatmydata apt-get autoclean -y && \
    mkdir -p /usr/local/share/meson/cross && \
    printf "[binaries]\n\
c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
\n\
[host_machine]\n\
system = 'linux'\n\
cpu_family = 'mips'\n\
cpu = 'mipsel'\n\
endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-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/mipsel-linux-gnu-cc && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc

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