# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all centos-stream-8 qemu
#
# https://gitlab.com/libvirt/libvirt-ci

FROM quay.io/centos/centos:stream8

RUN dnf distro-sync -y && \
    dnf install 'dnf-command(config-manager)' -y && \
    dnf config-manager --set-enabled -y powertools && \
    dnf install -y centos-release-advanced-virtualization && \
    dnf install -y epel-release && \
    dnf install -y epel-next-release && \
    dnf install -y \
        SDL2-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++ \
        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 \
        ncurses-devel \
        nettle-devel \
        ninja-build \
        nmap-ncat \
        numactl-devel \
        openssh-clients \
        pam-devel \
        pcre-static \
        pixman-devel \
        pkgconfig \
        pulseaudio-libs-devel \
        python38 \
        python38-PyYAML \
        python38-numpy \
        python38-pip \
        python38-setuptools \
        python38-wheel \
        rdma-core-devel \
        sed \
        snappy-devel \
        socat \
        spice-protocol \
        spice-server-devel \
        systemd-devel \
        systemtap-sdt-devel \
        tar \
        usbredir-devel \
        util-linux \
        virglrenderer-devel \
        vte291-devel \
        which \
        xfsprogs-devel \
        zlib-devel \
        zlib-static \
        zstd && \
    dnf autoremove -y && \
    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

RUN /usr/bin/pip3.8 install \
                    meson==0.63.2 \
                    pillow \
                    sphinx \
                    sphinx-rtd-theme

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.8"
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
