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

FROM docker.io/library/debian:13-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 \
                      coreutils \
                      dbus \
                      debianutils \
                      diffutils \
                      exuberant-ctags \
                      findutils \
                      flex \
                      gcc \
                      gcovr \
                      gettext \
                      git \
                      hostname \
                      libclang-rt-dev \
                      libglib2.0-dev \
                      llvm \
                      locales \
                      make \
                      mtools \
                      ncat \
                      ninja-build \
                      openssh-client \
                      pkgconf \
                      python3 \
                      python3-numpy \
                      python3-opencv \
                      python3-pillow \
                      python3-pip \
                      python3-setuptools \
                      python3-sphinx \
                      python3-sphinx-rtd-theme \
                      python3-tomli \
                      python3-venv \
                      python3-wheel \
                      python3-yaml \
                      rpm2cpio \
                      rustc \
                      sed \
                      socat \
                      sparse \
                      swtpm \
                      tar \
                      tesseract-ocr \
                      tesseract-ocr-eng \
                      vulkan-tools \
                      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

RUN /usr/bin/pip3 install meson==1.8.1

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 arm64 && \
    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-aarch64-linux-gnu \
                      libaio-dev:arm64 \
                      libasan8:arm64 \
                      libasound2-dev:arm64 \
                      libattr1-dev:arm64 \
                      libbpf-dev:arm64 \
                      libbrlapi-dev:arm64 \
                      libbz2-dev:arm64 \
                      libc6-dev:arm64 \
                      libcacard-dev:arm64 \
                      libcap-ng-dev:arm64 \
                      libcapstone-dev:arm64 \
                      libcbor-dev:arm64 \
                      libcmocka-dev:arm64 \
                      libcurl4-gnutls-dev:arm64 \
                      libdaxctl-dev:arm64 \
                      libdrm-dev:arm64 \
                      libepoxy-dev:arm64 \
                      libfdt-dev:arm64 \
                      libffi-dev:arm64 \
                      libfuse3-dev:arm64 \
                      libgbm-dev:arm64 \
                      libgcrypt20-dev:arm64 \
                      libglib2.0-dev:arm64 \
                      libglusterfs-dev:arm64 \
                      libgnutls28-dev:arm64 \
                      libgtk-3-dev:arm64 \
                      libgtk-vnc-2.0-dev:arm64 \
                      libibverbs-dev:arm64 \
                      libiscsi-dev:arm64 \
                      libjemalloc-dev:arm64 \
                      libjpeg62-turbo-dev:arm64 \
                      libjson-c-dev:arm64 \
                      liblttng-ust-dev:arm64 \
                      liblzo2-dev:arm64 \
                      libncursesw5-dev:arm64 \
                      libnfs-dev:arm64 \
                      libnuma-dev:arm64 \
                      libpam0g-dev:arm64 \
                      libpcre2-dev:arm64 \
                      libpipewire-0.3-dev:arm64 \
                      libpixman-1-dev:arm64 \
                      libpng-dev:arm64 \
                      libpulse-dev:arm64 \
                      librbd-dev:arm64 \
                      librdmacm-dev:arm64 \
                      libsasl2-dev:arm64 \
                      libsdl2-dev:arm64 \
                      libsdl2-image-dev:arm64 \
                      libseccomp-dev:arm64 \
                      libselinux1-dev:arm64 \
                      libslirp-dev:arm64 \
                      libsnappy-dev:arm64 \
                      libsndio-dev:arm64 \
                      libspice-protocol-dev:arm64 \
                      libspice-server-dev:arm64 \
                      libssh-dev:arm64 \
                      libstd-rust-dev:arm64 \
                      libsystemd-dev:arm64 \
                      libtasn1-6-dev:arm64 \
                      libubsan1:arm64 \
                      libudev-dev:arm64 \
                      liburing-dev:arm64 \
                      libusb-1.0-0-dev:arm64 \
                      libusbredirhost-dev:arm64 \
                      libvdeplug-dev:arm64 \
                      libvirglrenderer-dev:arm64 \
                      libvte-2.91-dev:arm64 \
                      libxdp-dev:arm64 \
                      libxen-dev:arm64 \
                      libzstd-dev:arm64 \
                      nettle-dev:arm64 \
                      systemtap-sdt-dev:arm64 \
                      zlib1g-dev:arm64 && \
    eatmydata apt-get autoremove -y && \
    eatmydata apt-get autoclean -y && \
    mkdir -p /usr/local/share/meson/cross && \
    printf "[binaries]\n\
c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
\n\
[host_machine]\n\
system = 'linux'\n\
cpu_family = 'aarch64'\n\
cpu = 'aarch64'\n\
endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-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/aarch64-linux-gnu-cc && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc

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

ENV ENABLE_RUST 1
