1# THIS FILE WAS AUTO-GENERATED
2#
3#  $ lcitool dockerfile --layers all ubuntu-2004 qemu
4#
5# https://gitlab.com/libvirt/libvirt-ci
6
7FROM docker.io/library/ubuntu:20.04
8
9RUN export DEBIAN_FRONTEND=noninteractive && \
10    apt-get update && \
11    apt-get install -y eatmydata && \
12    eatmydata apt-get dist-upgrade -y && \
13    eatmydata apt-get install --no-install-recommends -y \
14            bash \
15            bc \
16            bsdmainutils \
17            bzip2 \
18            ca-certificates \
19            ccache \
20            clang \
21            dbus \
22            debianutils \
23            diffutils \
24            exuberant-ctags \
25            findutils \
26            g++ \
27            gcc \
28            gcovr \
29            genisoimage \
30            gettext \
31            git \
32            hostname \
33            libaio-dev \
34            libasan5 \
35            libasound2-dev \
36            libattr1-dev \
37            libbrlapi-dev \
38            libbz2-dev \
39            libc6-dev \
40            libcacard-dev \
41            libcap-ng-dev \
42            libcapstone-dev \
43            libcurl4-gnutls-dev \
44            libdaxctl-dev \
45            libdrm-dev \
46            libepoxy-dev \
47            libfdt-dev \
48            libffi-dev \
49            libfuse3-dev \
50            libgbm-dev \
51            libgcrypt20-dev \
52            libglib2.0-dev \
53            libglusterfs-dev \
54            libgnutls28-dev \
55            libgtk-3-dev \
56            libibumad-dev \
57            libibverbs-dev \
58            libiscsi-dev \
59            libjemalloc-dev \
60            libjpeg-turbo8-dev \
61            liblttng-ust-dev \
62            liblzo2-dev \
63            libncursesw5-dev \
64            libnfs-dev \
65            libnuma-dev \
66            libpam0g-dev \
67            libpcre2-dev \
68            libpixman-1-dev \
69            libpmem-dev \
70            libpng-dev \
71            libpulse-dev \
72            librbd-dev \
73            librdmacm-dev \
74            libsasl2-dev \
75            libsdl2-dev \
76            libsdl2-image-dev \
77            libseccomp-dev \
78            libselinux1-dev \
79            libslirp-dev \
80            libsnappy-dev \
81            libspice-protocol-dev \
82            libspice-server-dev \
83            libssh-dev \
84            libsystemd-dev \
85            libtasn1-6-dev \
86            libtest-harness-perl \
87            libubsan1 \
88            libudev-dev \
89            libusb-1.0-0-dev \
90            libusbredirhost-dev \
91            libvdeplug-dev \
92            libvirglrenderer-dev \
93            libvte-2.91-dev \
94            libxen-dev \
95            libzstd-dev \
96            llvm \
97            locales \
98            make \
99            multipath-tools \
100            ncat \
101            nettle-dev \
102            ninja-build \
103            openssh-client \
104            perl-base \
105            pkgconf \
106            python3 \
107            python3-numpy \
108            python3-opencv \
109            python3-pillow \
110            python3-pip \
111            python3-setuptools \
112            python3-sphinx \
113            python3-sphinx-rtd-theme \
114            python3-venv \
115            python3-wheel \
116            python3-yaml \
117            rpm2cpio \
118            sed \
119            sparse \
120            systemtap-sdt-dev \
121            tar \
122            tesseract-ocr \
123            tesseract-ocr-eng \
124            texinfo \
125            xfslibs-dev \
126            zlib1g-dev && \
127    eatmydata apt-get autoremove -y && \
128    eatmydata apt-get autoclean -y && \
129    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
130    dpkg-reconfigure locales && \
131    dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
132    mkdir -p /usr/libexec/ccache-wrappers && \
133    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
134    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
135    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
136    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
137    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
138
139RUN pip3 install \
140         meson==0.56.0
141
142ENV LANG "en_US.UTF-8"
143ENV MAKE "/usr/bin/make"
144ENV NINJA "/usr/bin/ninja"
145ENV PYTHON "/usr/bin/python3"
146ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
147# Apply patch https://reviews.llvm.org/D75820
148# This is required for TSan in clang-10 to compile with QEMU.
149RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h
150