# The CI toolchain, baked. Installing this package set at the top of every run
# cost 3m19s of a 7m05s job — nearly half the wall clock, to reinstall the same
# bytes each time.
#
# Debian *stable* on purpose: Qt 6.8 is the supported floor, and building against
# it every push is what keeps the floor honest. Do not bump this to testing/sid to
# get a newer Qt — see the CMakeLists Qt version note.
#
# The gstreamer1.0-* runtime plugins are NOT optional: the -dev packages only ship
# headers, and without the plugins there is no playbin element, so the whole
# GstAudioEngine integration suite dies with "failed to create playbin".
#
# Rebuild and push when this file changes:
#   docker build -t git.int.xeyes.org/bsdf/freewave-ci:trixie freewave/.forgejo/ci-image
#   docker push  git.int.xeyes.org/bsdf/freewave-ci:trixie
FROM debian:trixie

RUN apt-get update -qq \
    && apt-get install -y --no-install-recommends \
        build-essential cmake ninja-build ccache git ca-certificates pkg-config nodejs \
        qt6-base-dev qt6-base-dev-tools qt6-declarative-dev qt6-shadertools-dev \
        qtkeychain-qt6-dev libmpdclient-dev \
        libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpipewire-0.3-dev \
        gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-libav \
        gstreamer1.0-pulseaudio pulseaudio pulseaudio-utils \
    && rm -rf /var/lib/apt/lists/*
