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

FROM docker.io/library/alpine:3.18

RUN apk update && \
    apk upgrade && \
    apk add \
        alsa-lib-dev \
        attr-dev \
        bash \
        bc \
        bison \
        bzip2 \
        bzip2-dev \
        ca-certificates \
        capstone-dev \
        ccache \
        ceph-dev \
        clang \
        cmocka-dev \
        ctags \
        curl-dev \
        cyrus-sasl-dev \
        dbus \
        diffutils \
        dtc-dev \
        eudev-dev \
        findutils \
        flex \
        fuse3-dev \
        g++ \
        gcc \
        gcovr \
        gettext \
        git \
        glib-dev \
        glib-static \
        gnutls-dev \
        gtk+3.0-dev \
        json-c-dev \
        libaio-dev \
        libbpf-dev \
        libcap-ng-dev \
        libdrm-dev \
        libepoxy-dev \
        libffi-dev \
        libgcrypt-dev \
        libjpeg-turbo-dev \
        libnfs-dev \
        libpng-dev \
        libseccomp-dev \
        libselinux-dev \
        libslirp-dev \
        libssh-dev \
        libtasn1-dev \
        liburing-dev \
        libusb-dev \
        libxdp-dev \
        linux-pam-dev \
        llvm \
        lttng-ust-dev \
        lzo-dev \
        make \
        mesa-dev \
        meson \
        mtools \
        multipath-tools \
        musl-dev \
        ncurses-dev \
        ndctl-dev \
        net-tools \
        nettle-dev \
        nmap-ncat \
        numactl-dev \
        openssh-client \
        pcre-dev \
        pipewire-dev \
        pixman-dev \
        pkgconf \
        pulseaudio-dev \
        py3-numpy \
        py3-pillow \
        py3-pip \
        py3-sphinx \
        py3-sphinx_rtd_theme \
        py3-yaml \
        python3 \
        rpm2cpio \
        samurai \
        sdl2-dev \
        sdl2_image-dev \
        sed \
        snappy-dev \
        sndio-dev \
        socat \
        sparse \
        spice-dev \
        spice-protocol \
        swtpm \
        tar \
        tesseract-ocr \
        usbredir-dev \
        util-linux \
        vde2-dev \
        virglrenderer-dev \
        vte3-dev \
        which \
        xen-dev \
        xfsprogs-dev \
        xorriso \
        zlib-dev \
        zlib-static \
        zstd \
        zstd-dev && \
    apk list | 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
