# 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.6

RUN zypper update -y && \
    zypper addrepo -fc https://download.opensuse.org/update/leap/15.6/backports/openSUSE:Backports:SLE-15-SP6:Update.repo && \
    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 \
           gcovr \
           gettext-runtime \
           git \
           glib2-devel \
           glibc-locale \
           glibc-static \
           glusterfs-devel \
           gtk-vnc-devel \
           gtk3-devel \
           hostname \
           jemalloc-devel \
           libSDL2-devel \
           libSDL2_image-devel \
           libaio-devel \
           libasan8 \
           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 \
           mtools \
           ncat \
           ncurses-devel \
           ninja \
           openssh \
           pam-devel \
           pcre-devel-static \
           pipewire-devel \
           pkgconfig \
           python311 \
           python311-base \
           python311-pip \
           python311-setuptools \
           rdma-core-devel \
           sed \
           snappy-devel \
           sndio-devel \
           socat \
           sparse \
           spice-protocol-devel \
           swtpm \
           systemd-devel \
           systemtap-sdt-devel \
           tar \
           tesseract-ocr \
           tesseract-ocr-traineddata-english \
           usbredir-devel \
           util-linux \
           virglrenderer-devel \
           vte-devel \
           which \
           xen-devel \
           xorriso \
           zlib-devel \
           zlib-devel-static \
           zstd && \
    zypper clean --all && \
    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/cc && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc

RUN /usr/bin/pip3.11 install \
                     PyYAML \
                     meson==1.5.0 \
                     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.11"
# 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
