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 libzstd-devel \ 63 llvm \ 64 lzo-devel \ 65 make \ 66 mingw32-bzip2 \ 67 mingw32-curl \ 68 mingw32-glib2 \ 69 mingw32-gmp \ 70 mingw32-gnutls \ 71 mingw32-gtk3 \ 72 mingw32-libjpeg-turbo \ 73 mingw32-libpng \ 74 mingw32-libtasn1 \ 75 mingw32-nettle \ 76 mingw32-nsis \ 77 mingw32-pixman \ 78 mingw32-pkg-config \ 79 mingw32-SDL2 \ 80 mingw64-bzip2 \ 81 mingw64-curl \ 82 mingw64-glib2 \ 83 mingw64-gmp \ 84 mingw64-gnutls \ 85 mingw64-gtk3 \ 86 mingw64-libjpeg-turbo \ 87 mingw64-libpng \ 88 mingw64-libtasn1 \ 89 mingw64-nettle \ 90 mingw64-pixman \ 91 mingw64-pkg-config \ 92 mingw64-SDL2 \ 93 ncurses-devel \ 94 nettle-devel \ 95 numactl-devel \ 96 perl \ 97 perl-Test-Harness \ 98 pixman-devel \ 99 pulseaudio-libs-devel \ 100 python3 \ 101 python3-sphinx \ 102 PyYAML \ 103 rdma-core-devel \ 104 SDL2-devel \ 105 snappy-devel \ 106 sparse \ 107 spice-server-devel \ 108 systemd-devel \ 109 systemtap-sdt-devel \ 110 tar \ 111 usbredir-devel \ 112 virglrenderer-devel \ 113 vte291-devel \ 114 wget \ 115 which \ 116 xen-devel \ 117 xfsprogs-devel \ 118 zlib-devel 119ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3 120 121RUN dnf install -y $PACKAGES 122RUN rpm -q $PACKAGES | sort > /packages.txt 123ENV PATH $PATH:/usr/libexec/python3-sphinx/ 124ENV COVERITY_TOOL_BASE=/coverity-tools 125COPY coverity_tool.tgz coverity_tool.tgz 126RUN mkdir -p /coverity-tools/coverity_tool && cd /coverity-tools/coverity_tool && tar xf /coverity_tool.tgz 127COPY run-coverity-scan run-coverity-scan 128