# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all ubuntu-2204 qemu
#
# https://gitlab.com/libvirt/libvirt-ci

FROM docker.io/library/ubuntu:22.04

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 \
                      bison \
                      bsdextrautils \
                      bzip2 \
                      ca-certificates \
                      ccache \
                      clang \
                      coreutils \
                      dbus \
                      debianutils \
                      diffutils \
                      exuberant-ctags \
                      findutils \
                      flex \
                      gcc \
                      gcovr \
                      gettext \
                      git \
                      hostname \
                      libaio-dev \
                      libasan6 \
                      libasound2-dev \
                      libattr1-dev \
                      libbpf-dev \
                      libbrlapi-dev \
                      libbz2-dev \
                      libc6-dev \
                      libcacard-dev \
                      libcap-ng-dev \
                      libcapstone-dev \
                      libcbor-dev \
                      libclang-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 \
                      libglusterfs-dev \
                      libgnutls28-dev \
                      libgtk-3-dev \
                      libgtk-vnc-2.0-dev \
                      libibverbs-dev \
                      libiscsi-dev \
                      libjemalloc-dev \
                      libjpeg-turbo8-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 \
                      libxen-dev \
                      libzstd-dev \
                      llvm \
                      locales \
                      make \
                      mtools \
                      multipath-tools \
                      ncat \
                      nettle-dev \
                      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-1.83 \
                      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.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"
ENV RUSTC=/usr/bin/rustc-1.83
ENV RUSTDOC=/usr/bin/rustdoc-1.83
ENV CARGO_HOME=/usr/local/cargo
ENV PATH=$CARGO_HOME/bin:$PATH
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
  apt install -y --no-install-recommends cargo
RUN cargo install bindgen-cli
# 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
