# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all 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 \
                      clang \
                      coreutils \
                      dbus \
                      debianutils \
                      diffutils \
                      exuberant-ctags \
                      findutils \
                      flex \
                      gcc \
                      gcovr \
                      gettext \
                      git \
                      hostname \
                      libaio-dev \
                      libasan8 \
                      libasound2-dev \
                      libattr1-dev \
                      libbpf-dev \
                      libbrlapi-dev \
                      libbz2-dev \
                      libc6-dev \
                      libcacard-dev \
                      libcap-ng-dev \
                      libcapstone-dev \
                      libcbor-dev \
                      libclang-rt-dev \
                      libcmocka-dev \
                      libcurl4-gnutls-dev \
                      libdaxctl-dev \
                      libdrm-dev \
                      libepoxy-dev \
                      libfdt-dev \
                      libffi-dev \
                      libfuse3-dev \
                      libgbm-dev \
                      libgcrypt20-dev \
                      libglib2.0-dev \
                      libgnutls28-dev \
                      libgtk-3-dev \
                      libgtk-vnc-2.0-dev \
                      libibverbs-dev \
                      libiscsi-dev \
                      libjemalloc-dev \
                      libjpeg62-turbo-dev \
                      libjson-c-dev \
                      liblttng-ust-dev \
                      liblzo2-dev \
                      libncursesw5-dev \
                      libnfs-dev \
                      libnuma-dev \
                      libpam0g-dev \
                      libpcre2-dev \
                      libpipewire-0.3-dev \
                      libpixman-1-dev \
                      libpmem-dev \
                      libpng-dev \
                      libpulse-dev \
                      librbd-dev \
                      librdmacm-dev \
                      libsasl2-dev \
                      libsdl2-dev \
                      libsdl2-image-dev \
                      libseccomp-dev \
                      libselinux1-dev \
                      libslirp-dev \
                      libsnappy-dev \
                      libsndio-dev \
                      libspice-protocol-dev \
                      libspice-server-dev \
                      libssh-dev \
                      libstd-rust-dev \
                      libsystemd-dev \
                      libtasn1-6-dev \
                      libubsan1 \
                      libudev-dev \
                      liburing-dev \
                      libusb-1.0-0-dev \
                      libusbredirhost-dev \
                      libvdeplug-dev \
                      libvirglrenderer-dev \
                      libvte-2.91-dev \
                      libxdp-dev \
                      libxen-dev \
                      libzstd-dev \
                      llvm \
                      locales \
                      make \
                      mtools \
                      multipath-tools \
                      nettle-dev \
                      ninja-build \
                      openssh-client \
                      pkgconf \
                      python3 \
                      python3-pip \
                      python3-setuptools \
                      python3-sphinx \
                      python3-sphinx-rtd-theme \
                      python3-tomli \
                      python3-venv \
                      python3-wheel \
                      rpm2cpio \
                      rustc \
                      sed \
                      socat \
                      sparse \
                      swtpm \
                      systemtap-sdt-dev \
                      tar \
                      tesseract-ocr \
                      tesseract-ocr-eng \
                      vulkan-tools \
                      xorriso \
                      zlib1g-dev \
                      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 && \
    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/cc && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc

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

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"
# netmap/cscope/global
RUN apt update && \
  DEBIAN_FRONTEND=noninteractive eatmydata \
  apt install -y --no-install-recommends \
  cscope\
  global\
  linux-headers-generic
RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap
RUN cd /usr/src/netmap && git checkout v11.3
RUN cd /usr/src/netmap/LINUX && \
  ./configure --no-drivers --no-apps \
  --kernel-dir=$(ls -d /usr/src/linux-headers-*-$(dpkg --print-architecture)) \
  && make install
ENV QEMU_CONFIGURE_OPTS=--enable-netmap
# 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
