# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all --cross-arch mips64el 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 mips64el && \
    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-mips64el-linux-gnuabi64 \
                      libaio-dev:mips64el \
                      libasound2-dev:mips64el \
                      libattr1-dev:mips64el \
                      libbpf-dev:mips64el \
                      libbrlapi-dev:mips64el \
                      libbz2-dev:mips64el \
                      libc6-dev:mips64el \
                      libcacard-dev:mips64el \
                      libcap-ng-dev:mips64el \
                      libcapstone-dev:mips64el \
                      libcbor-dev:mips64el \
                      libcmocka-dev:mips64el \
                      libcurl4-gnutls-dev:mips64el \
                      libdaxctl-dev:mips64el \
                      libfdt-dev:mips64el \
                      libffi-dev:mips64el \
                      libfuse3-dev:mips64el \
                      libgcrypt20-dev:mips64el \
                      libglib2.0-dev:mips64el \
                      libglusterfs-dev:mips64el \
                      libgnutls28-dev:mips64el \
                      libibverbs-dev:mips64el \
                      libiscsi-dev:mips64el \
                      libjemalloc-dev:mips64el \
                      libjpeg62-turbo-dev:mips64el \
                      libjson-c-dev:mips64el \
                      liblttng-ust-dev:mips64el \
                      liblzo2-dev:mips64el \
                      libncursesw5-dev:mips64el \
                      libnfs-dev:mips64el \
                      libnuma-dev:mips64el \
                      libpam0g-dev:mips64el \
                      libpcre2-dev:mips64el \
                      libpipewire-0.3-dev:mips64el \
                      libpixman-1-dev:mips64el \
                      libpng-dev:mips64el \
                      libpulse-dev:mips64el \
                      librbd-dev:mips64el \
                      librdmacm-dev:mips64el \
                      libsasl2-dev:mips64el \
                      libseccomp-dev:mips64el \
                      libselinux1-dev:mips64el \
                      libslirp-dev:mips64el \
                      libsnappy-dev:mips64el \
                      libsndio-dev:mips64el \
                      libspice-protocol-dev:mips64el \
                      libspice-server-dev:mips64el \
                      libssh-gcrypt-dev:mips64el \
                      libsystemd-dev:mips64el \
                      libtasn1-6-dev:mips64el \
                      libudev-dev:mips64el \
                      liburing-dev:mips64el \
                      libusb-1.0-0-dev:mips64el \
                      libusbredirhost-dev:mips64el \
                      libvdeplug-dev:mips64el \
                      libxdp-dev:mips64el \
                      libzstd-dev:mips64el \
                      nettle-dev:mips64el \
                      systemtap-sdt-dev:mips64el \
                      zlib1g-dev:mips64el && \
    eatmydata apt-get autoremove -y && \
    eatmydata apt-get autoclean -y && \
    mkdir -p /usr/local/share/meson/cross && \
    printf "[binaries]\n\
c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
\n\
[host_machine]\n\
system = 'linux'\n\
cpu_family = 'mips64'\n\
cpu = 'mips64el'\n\
endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
    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/mips64el-linux-gnuabi64-cc && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc

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