FROM almalinux:8
MAINTAINER tea@brass.host
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++ \
        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 \
        libxdp-devel \
        libzstd-devel \
        llvm \
        lttng-ust-devel \
        lzo-devel \
        make \
        mesa-libgbm-devel \
        mtools \
        ncurses-devel \
        nettle-devel \
        ninja-build \
        nmap-ncat \
        numactl-devel \
        openssh-clients \
        pam-devel \
        pcre-static \
        pipewire-devel \
        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 \
        swtpm \
        systemd-devel \
        systemtap-sdt-devel \
        tar \
        usbredir-devel \
        util-linux \
        virglrenderer-devel \
        vte291-devel \
        which \
        xfsprogs-devel \
        xorriso \
        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 \
                    tomli

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"
WORKDIR /src