qemu with hax to log dma reads & writes
jcs.org/2018/11/12/vfio
1# syntax=docker/dockerfile:1.0.0-experimental
2#
3# Docker setup for running the "Coverity Scan" tools over the source
4# tree and uploading them to the website, as per
5# https://scan.coverity.com/projects/qemu/builds/new
6# We do this on a fixed config (currently Fedora 30 with a known
7# set of dependencies and a configure command that enables a specific
8# set of options) so that random changes don't result in our accidentally
9# dropping some files from the scan.
10#
11# We don't build on top of the fedora.docker file because we don't
12# want to accidentally change or break the scan config when that
13# is updated.
14
15# The work of actually doing the build is handled by the
16# run-coverity-scan script.
17
18FROM fedora:30
19ENV PACKAGES \
20 alsa-lib-devel \
21 bc \
22 brlapi-devel \
23 bzip2 \
24 bzip2-devel \
25 ccache \
26 clang \
27 curl \
28 cyrus-sasl-devel \
29 dbus-daemon \
30 device-mapper-multipath-devel \
31 findutils \
32 gcc \
33 gcc-c++ \
34 gettext \
35 git \
36 glib2-devel \
37 glusterfs-api-devel \
38 gnutls-devel \
39 gtk3-devel \
40 hostname \
41 libaio-devel \
42 libasan \
43 libattr-devel \
44 libblockdev-mpath-devel \
45 libcap-devel \
46 libcap-ng-devel \
47 libcurl-devel \
48 libepoxy-devel \
49 libfdt-devel \
50 libgbm-devel \
51 libiscsi-devel \
52 libjpeg-devel \
53 libpmem-devel \
54 libnfs-devel \
55 libpng-devel \
56 librbd-devel \
57 libseccomp-devel \
58 libssh-devel \
59 libubsan \
60 libudev-devel \
61 libusbx-devel \
62 libxml2-devel \
63 libzstd-devel \
64 llvm \
65 lzo-devel \
66 make \
67 mingw32-bzip2 \
68 mingw32-curl \
69 mingw32-glib2 \
70 mingw32-gmp \
71 mingw32-gnutls \
72 mingw32-gtk3 \
73 mingw32-libjpeg-turbo \
74 mingw32-libpng \
75 mingw32-libtasn1 \
76 mingw32-nettle \
77 mingw32-nsis \
78 mingw32-pixman \
79 mingw32-pkg-config \
80 mingw32-SDL2 \
81 mingw64-bzip2 \
82 mingw64-curl \
83 mingw64-glib2 \
84 mingw64-gmp \
85 mingw64-gnutls \
86 mingw64-gtk3 \
87 mingw64-libjpeg-turbo \
88 mingw64-libpng \
89 mingw64-libtasn1 \
90 mingw64-nettle \
91 mingw64-pixman \
92 mingw64-pkg-config \
93 mingw64-SDL2 \
94 ncurses-devel \
95 nettle-devel \
96 nss-devel \
97 numactl-devel \
98 perl \
99 perl-Test-Harness \
100 pixman-devel \
101 pulseaudio-libs-devel \
102 python3 \
103 python3-sphinx \
104 PyYAML \
105 rdma-core-devel \
106 SDL2-devel \
107 snappy-devel \
108 sparse \
109 spice-server-devel \
110 systemd-devel \
111 systemtap-sdt-devel \
112 tar \
113 texinfo \
114 usbredir-devel \
115 virglrenderer-devel \
116 vte291-devel \
117 wget \
118 which \
119 xen-devel \
120 xfsprogs-devel \
121 zlib-devel
122ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3
123
124RUN dnf install -y $PACKAGES
125RUN rpm -q $PACKAGES | sort > /packages.txt
126ENV PATH $PATH:/usr/libexec/python3-sphinx/
127ENV COVERITY_TOOL_BASE=/coverity-tools
128COPY coverity_tool.tgz coverity_tool.tgz
129RUN mkdir -p /coverity-tools/coverity_tool && cd /coverity-tools/coverity_tool && tar xf /coverity_tool.tgz
130COPY run-coverity-scan run-coverity-scan