FROM rust:1.92-slim-bookworm

LABEL org.opencontainers.image.source="https://scm.bstein.dev/bstein/lesavka"
LABEL org.opencontainers.image.description="Lesavka Jenkins CI toolchain"

RUN apt-get update \
  && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
    python3 \
    build-essential \
    curl \
    file \
    git \
    clang \
    llvm \
    pkg-config \
    libssl-dev \
    ca-certificates \
    libgstreamer1.0-dev \
    libgstreamer-plugins-base1.0-dev \
    gstreamer1.0-tools \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-bad \
    gstreamer1.0-plugins-ugly \
    gstreamer1.0-libav \
    protobuf-compiler \
    libpango1.0-dev \
    libcairo2-dev \
    libgdk-pixbuf-2.0-dev \
    libgtk-4-dev \
  && rm -rf /var/lib/apt/lists/*

RUN rustup component add rustfmt llvm-tools-preview clippy \
  && cargo install --locked cargo-llvm-cov
