1FROM docker.io/library/ubuntu:20.04
2ENV PACKAGES \
3    bc \
4    bsdmainutils \
5    bzip2 \
6    ca-certificates \
7    ccache \
8    clang \
9    dbus \
10    debianutils \
11    diffutils \
12    exuberant-ctags \
13    findutils \
14    g++ \
15    gcc \
16    gcovr \
17    genisoimage \
18    gettext \
19    git \
20    hostname \
21    libaio-dev \
22    libasan5 \
23    libasound2-dev \
24    libattr1-dev \
25    libbrlapi-dev \
26    libbz2-dev \
27    libc6-dev \
28    libcacard-dev \
29    libcap-ng-dev \
30    libcapstone-dev \
31    libcurl4-gnutls-dev \
32    libdaxctl-dev \
33    libdrm-dev \
34    libepoxy-dev \
35    libfdt-dev \
36    libffi-dev \
37    libgbm-dev \
38    libgcrypt20-dev \
39    libglib2.0-dev \
40    libglusterfs-dev \
41    libgnutls28-dev \
42    libgtk-3-dev \
43    libibverbs-dev \
44    libiscsi-dev \
45    libjemalloc-dev \
46    libjpeg-turbo8-dev \
47    liblttng-ust-dev \
48    liblzo2-dev \
49    libncursesw5-dev \
50    libnfs-dev \
51    libnuma-dev \
52    libpam0g-dev \
53    libpixman-1-dev \
54    libpmem-dev \
55    libpng-dev \
56    libpulse-dev \
57    librbd-dev \
58    librdmacm-dev \
59    libsasl2-dev \
60    libsdl2-dev \
61    libsdl2-image-dev \
62    libseccomp-dev \
63    libslirp-dev \
64    libsnappy-dev \
65    libspice-protocol-dev \
66    libspice-server-dev \
67    libssh-dev \
68    libsystemd-dev \
69    libtasn1-6-dev \
70    libtest-harness-perl \
71    libubsan1 \
72    libudev-dev \
73    libusb-1.0-0-dev \
74    libusbredirhost-dev \
75    libvdeplug-dev \
76    libvirglrenderer-dev \
77    libvte-2.91-dev \
78    libxen-dev \
79    libxml2-dev \
80    libzstd-dev \
81    llvm \
82    locales \
83    make \
84    multipath-tools \
85    ncat \
86    nettle-dev \
87    ninja-build \
88    openssh-client \
89    perl-base \
90    pkgconf \
91    python3 \
92    python3-numpy \
93    python3-opencv \
94    python3-pillow \
95    python3-pip \
96    python3-setuptools \
97    python3-sphinx \
98    python3-sphinx-rtd-theme \
99    python3-venv \
100    python3-wheel \
101    python3-yaml \
102    rpm2cpio \
103    sed \
104    sparse \
105    systemtap-sdt-dev \
106    tar \
107    tesseract-ocr \
108    tesseract-ocr-eng \
109    texinfo \
110    xfslibs-dev \
111    zlib1g-dev
112RUN apt-get update && \
113    DEBIAN_FRONTEND=noninteractive apt-get -y install $PACKAGES
114RUN dpkg -l $PACKAGES | sort > /packages.txt
115
116# Apply patch https://reviews.llvm.org/D75820
117# This is required for TSan in clang-10 to compile with QEMU.
118RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h
119