The Fedora CI and coverity runs are using a slightly different set of packages. Copy most of the content over from tests/docker while keeping the commands at the end that unpack the tools. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20230331174844.376300-1-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			168 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# 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
 |