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

FROM registry.fedoraproject.org/fedora:38

RUN dnf install -y nosync && \
    printf '#!/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 "$@"\n' > /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 \
               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 \
               meson \
               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 \
               python3 \
               python3-PyYAML \
               python3-numpy \
               python3-opencv \
               python3-pillow \
               python3-pip \
               python3-sphinx \
               python3-sphinx_rtd_theme \
               rdma-core-devel \
               sed \
               snappy-devel \
               socat \
               sparse \
               spice-protocol \
               spice-server-devel \
               swtpm \
               systemd-devel \
               systemtap-sdt-devel \
               tar \
               tesseract \
               tesseract-langpack-eng \
               usbredir-devel \
               util-linux \
               virglrenderer-devel \
               vte291-devel \
               which \
               xen-devel \
               xfsprogs-devel \
               xorriso \
               zlib-devel \
               zlib-static \
               zstd && \
    nosync dnf autoremove -y && \
    nosync dnf clean all -y && \
    rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
    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"
# 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