| # syntax=docker/dockerfile:1.0.0-experimental |
| # |
| # Docker setup for running the "Coverity Scan" tools over the source |
| # tree and uploading them to the website, as per |
| # https://scan.coverity.com/projects/qemu/builds/new |
| # We do this on a fixed config (currently Fedora 30 with a known |
| # set of dependencies and a configure command that enables a specific |
| # set of options) so that random changes don't result in our accidentally |
| # dropping some files from the scan. |
| # |
| # We don't build on top of the fedora.docker file because we don't |
| # want to accidentally change or break the scan config when that |
| # is updated. |
| |
| # The work of actually doing the build is handled by the |
| # run-coverity-scan script. |
| |
| FROM registry.fedoraproject.org/fedora:37 |
| |
| RUN dnf install -y nosync && \ |
| echo -e '#!/bin/sh\n\ |
| if test -d /usr/lib64\n\ |
| then\n\ |
| export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ |
| else\n\ |
| export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ |
| fi\n\ |
| exec "$@"' > /usr/bin/nosync && \ |
| chmod +x /usr/bin/nosync && \ |
| nosync dnf update -y && \ |
| nosync dnf install -y \ |
| SDL2-devel \ |
| SDL2_image-devel \ |
| alsa-lib-devel \ |
| bash \ |
| bc \ |
| bison \ |
| brlapi-devel \ |
| bzip2 \ |
| bzip2-devel \ |
| ca-certificates \ |
| capstone-devel \ |
| ccache \ |
| clang \ |
| ctags \ |
| cyrus-sasl-devel \ |
| daxctl-devel \ |
| dbus-daemon \ |
| device-mapper-multipath-devel \ |
| diffutils \ |
| findutils \ |
| flex \ |
| fuse3-devel \ |
| gcc \ |
| gcc-c++ \ |
| gcovr \ |
| genisoimage \ |
| gettext \ |
| git \ |
| glib2-devel \ |
| glib2-static \ |
| glibc-langpack-en \ |
| glibc-static \ |
| glusterfs-api-devel \ |
| gnutls-devel \ |
| gtk3-devel \ |
| hostname \ |
| jemalloc-devel \ |
| json-c-devel \ |
| libaio-devel \ |
| libasan \ |
| libattr-devel \ |
| libbpf-devel \ |
| libcacard-devel \ |
| libcap-ng-devel \ |
| libcmocka-devel \ |
| libcurl-devel \ |
| libdrm-devel \ |
| libepoxy-devel \ |
| libfdt-devel \ |
| libffi-devel \ |
| libgcrypt-devel \ |
| libiscsi-devel \ |
| libjpeg-devel \ |
| libnfs-devel \ |
| libpmem-devel \ |
| libpng-devel \ |
| librbd-devel \ |
| libseccomp-devel \ |
| libselinux-devel \ |
| libslirp-devel \ |
| libssh-devel \ |
| libtasn1-devel \ |
| libubsan \ |
| liburing-devel \ |
| libusbx-devel \ |
| libzstd-devel \ |
| llvm \ |
| lttng-ust-devel \ |
| lzo-devel \ |
| make \ |
| mesa-libgbm-devel \ |
| meson \ |
| ncurses-devel \ |
| nettle-devel \ |
| ninja-build \ |
| nmap-ncat \ |
| numactl-devel \ |
| openssh-clients \ |
| pam-devel \ |
| pcre-static \ |
| pixman-devel \ |
| pkgconfig \ |
| pulseaudio-libs-devel \ |
| python3 \ |
| python3-PyYAML \ |
| python3-numpy \ |
| python3-opencv \ |
| python3-pillow \ |
| python3-pip \ |
| python3-sphinx \ |
| python3-sphinx_rtd_theme \ |
| rdma-core-devel \ |
| rpm \ |
| sed \ |
| snappy-devel \ |
| socat \ |
| sparse \ |
| spice-protocol \ |
| spice-server-devel \ |
| systemd-devel \ |
| systemtap-sdt-devel \ |
| tar \ |
| tesseract \ |
| tesseract-langpack-eng \ |
| usbredir-devel \ |
| util-linux \ |
| virglrenderer-devel \ |
| vte291-devel \ |
| which \ |
| xen-devel \ |
| xfsprogs-devel \ |
| zlib-devel \ |
| zlib-static \ |
| zstd && \ |
| nosync dnf autoremove -y && \ |
| nosync dnf clean all -y && \ |
| rpm -qa | sort > /packages.txt && \ |
| mkdir -p /usr/libexec/ccache-wrappers && \ |
| ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \ |
| ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ |
| ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \ |
| ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \ |
| ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc |
| |
| ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" |
| ENV LANG "en_US.UTF-8" |
| ENV MAKE "/usr/bin/make" |
| ENV NINJA "/usr/bin/ninja" |
| ENV PYTHON "/usr/bin/python3" |
| ENV QEMU_CONFIGURE_OPTS --meson=internal |
| |
| RUN dnf install -y curl wget |
| ENV COVERITY_TOOL_BASE=/coverity-tools |
| COPY coverity_tool.tgz coverity_tool.tgz |
| RUN mkdir -p /coverity-tools/coverity_tool && cd /coverity-tools/coverity_tool && tar xf /coverity_tool.tgz |
| COPY run-coverity-scan run-coverity-scan |