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

FROM docker.io/library/alpine:3.16

RUN apk update && \
    apk upgrade && \
    apk add \
        alsa-lib-dev \
        attr-dev \
        bash \
        bc \
        bison \
        bzip2 \
        bzip2-dev \
        ca-certificates \
        capstone-dev \
        ccache \
        cdrkit \
        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 \
        linux-pam-dev \
        llvm \
        lttng-ust-dev \
        lzo-dev \
        make \
        mesa-dev \
        meson \
        multipath-tools \
        musl-dev \
        ncurses-dev \
        ndctl-dev \
        net-tools \
        nettle-dev \
        nmap-ncat \
        numactl-dev \
        openssh-client \
        pcre-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 \
        tar \
        tesseract-ocr \
        usbredir-dev \
        util-linux \
        vde2-dev \
        virglrenderer-dev \
        vte3-dev \
        which \
        xen-dev \
        xfsprogs-dev \
        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
