2020-03-19 22:33:23 +03:00
|
|
|
# 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.
|
|
|
|
|
2023-03-31 20:48:44 +03:00
|
|
|
FROM registry.fedoraproject.org/fedora:37
|
2020-03-19 22:33:23 +03:00
|
|
|
|
2023-03-31 20:48:44 +03:00
|
|
|
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
|
2020-03-19 22:33:23 +03:00
|
|
|
ENV COVERITY_TOOL_BASE=/coverity-tools
|
2020-04-22 18:49:40 +03:00
|
|
|
COPY coverity_tool.tgz coverity_tool.tgz
|
|
|
|
RUN mkdir -p /coverity-tools/coverity_tool && cd /coverity-tools/coverity_tool && tar xf /coverity_tool.tgz
|
2020-03-19 22:33:23 +03:00
|
|
|
COPY run-coverity-scan run-coverity-scan
|