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