#
# Latest Ubuntu Release
#
# Useful for testing against relatively bleeding edge libraries and
# compilers. We also have seperate recipe for the most recent LTS
# release.
#
# When updating use the full tag not :latest otherwise the build
# system won't pick up that it has changed.
#

FROM ubuntu:19.04
ENV PACKAGES flex bison \
    ccache \
    clang \
    dbus \
    gcc \
    gettext \
    git \
    glusterfs-common \
    libaio-dev \
    libattr1-dev \
    libbrlapi-dev \
    libbz2-dev \
    libcacard-dev \
    libcap-ng-dev \
    libcurl4-gnutls-dev \
    libdrm-dev \
    libepoxy-dev \
    libfdt-dev \
    libgbm-dev \
    libgnutls28-dev \
    libgtk-3-dev \
    libibverbs-dev \
    libiscsi-dev \
    libjemalloc-dev \
    libjpeg-turbo8-dev \
    liblzo2-dev \
    libncurses5-dev \
    libncursesw5-dev \
    libnfs-dev \
    libnss3-dev \
    libnuma-dev \
    libpixman-1-dev \
    libpng-dev \
    librados-dev \
    librbd-dev \
    librdmacm-dev \
    libsasl2-dev \
    libsdl2-dev \
    libseccomp-dev \
    libsnappy-dev \
    libspice-protocol-dev \
    libspice-server-dev \
    libssh-dev \
    libusb-1.0-0-dev \
    libusbredirhost-dev \
    libvdeplug-dev \
    libvte-2.91-dev \
    libxen-dev \
    libzstd-dev \
    make \
    python3-yaml \
    python3-sphinx \
    sparse \
    texinfo \
    xfslibs-dev
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get -y install $PACKAGES
RUN dpkg -l $PACKAGES | sort > /packages.txt
ENV FEATURES clang pyyaml sdl2
