# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all --cross-arch aarch64 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 \
                      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 \
                      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 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 \
                      libasan6: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 \
                      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 \
                      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 \
                      libspice-server-dev:arm64 \
                      libssh-gcrypt-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
