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

FROM registry.opensuse.org/opensuse/leap:15.4

RUN zypper update -y && \
    zypper install -y \
           Mesa-devel \
           alsa-lib-devel \
           bash \
           bc \
           bison \
           brlapi-devel \
           bzip2 \
           ca-certificates \
           ccache \
           clang \
           ctags \
           cyrus-sasl-devel \
           dbus-1 \
           diffutils \
           findutils \
           flex \
           fuse3-devel \
           gcc \
           gcc-c++ \
           gcovr \
           gettext-runtime \
           git \
           glib2-devel \
           glibc-locale \
           glibc-static \
           glusterfs-devel \
           gtk3-devel \
           hostname \
           jemalloc-devel \
           libSDL2-devel \
           libSDL2_image-devel \
           libaio-devel \
           libasan6 \
           libattr-devel \
           libbpf-devel \
           libbz2-devel \
           libcacard-devel \
           libcap-ng-devel \
           libcmocka-devel \
           libcurl-devel \
           libdrm-devel \
           libepoxy-devel \
           libfdt-devel \
           libffi-devel \
           libgcrypt-devel \
           libgnutls-devel \
           libiscsi-devel \
           libjpeg8-devel \
           libjson-c-devel \
           libndctl-devel \
           libnettle-devel \
           libnfs-devel \
           libnuma-devel \
           libpixman-1-0-devel \
           libpmem-devel \
           libpng16-devel \
           libpulse-devel \
           librbd-devel \
           libseccomp-devel \
           libselinux-devel \
           libslirp-devel \
           libspice-server-devel \
           libssh-devel \
           libtasn1-devel \
           libubsan1 \
           libudev-devel \
           liburing-devel \
           libusb-1_0-devel \
           libzstd-devel \
           llvm \
           lttng-ust-devel \
           lzo-devel \
           make \
           mkisofs \
           ncat \
           ncurses-devel \
           ninja \
           openssh \
           pam-devel \
           pcre-devel-static \
           pkgconfig \
           python39-base \
           python39-pip \
           python39-setuptools \
           rdma-core-devel \
           sed \
           snappy-devel \
           sndio-devel \
           socat \
           sparse \
           spice-protocol-devel \
           systemd-devel \
           systemtap-sdt-devel \
           tar \
           tesseract-ocr \
           tesseract-ocr-traineddata-english \
           usbredir-devel \
           util-linux \
           virglrenderer-devel \
           vte-devel \
           which \
           xen-devel \
           xfsprogs-devel \
           zlib-devel \
           zlib-devel-static \
           zstd && \
    zypper clean --all && \
    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.9 install \
                    PyYAML \
                    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.9"
# 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
