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

FROM docker.io/library/ubuntu:20.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 \
                      bsdmainutils \
                      bzip2 \
                      ca-certificates \
                      ccache \
                      clang \
                      dbus \
                      debianutils \
                      diffutils \
                      exuberant-ctags \
                      findutils \
                      flex \
                      g++ \
                      gcc \
                      gcovr \
                      genisoimage \
                      gettext \
                      git \
                      hostname \
                      libaio-dev \
                      libasan5 \
                      libasound2-dev \
                      libattr1-dev \
                      libbrlapi-dev \
                      libbz2-dev \
                      libc6-dev \
                      libcacard-dev \
                      libcap-ng-dev \
                      libcapstone-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 \
                      libibumad-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 \
                      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 \
                      libsystemd-dev \
                      libtasn1-6-dev \
                      libubsan1 \
                      libudev-dev \
                      libusb-1.0-0-dev \
                      libusbredirhost-dev \
                      libvdeplug-dev \
                      libvirglrenderer-dev \
                      libvte-2.91-dev \
                      libxen-dev \
                      libzstd-dev \
                      llvm \
                      locales \
                      make \
                      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-venv \
                      python3-wheel \
                      python3-yaml \
                      rpm2cpio \
                      sed \
                      sparse \
                      systemtap-sdt-dev \
                      tar \
                      tesseract-ocr \
                      tesseract-ocr-eng \
                      xfslibs-dev \
                      zlib1g-dev && \
    eatmydata apt-get autoremove -y && \
    eatmydata apt-get autoclean -y && \
    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
    dpkg-reconfigure locales && \
    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/c++ && \
    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/g++ && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc

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

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"
# Apply patch https://reviews.llvm.org/D75820
# This is required for TSan in clang-10 to compile with QEMU.
RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h
