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 usbredir-devel \ 114 virglrenderer-devel \ 115 vte291-devel \ 116 wget \ 117 which \ 118 xen-devel \ 119 xfsprogs-devel \ 120 zlib-devel 121ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3 122 123RUN dnf install -y $PACKAGES 124RUN rpm -q $PACKAGES | sort > /packages.txt 125ENV PATH $PATH:/usr/libexec/python3-sphinx/ 126ENV COVERITY_TOOL_BASE=/coverity-tools 127COPY coverity_tool.tgz coverity_tool.tgz 128RUN mkdir -p /coverity-tools/coverity_tool && cd /coverity-tools/coverity_tool && tar xf /coverity_tool.tgz 129COPY run-coverity-scan run-coverity-scan 130