| # 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 |