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