FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential clang libclang-dev cmake ninja-build pkg-config git curl ca-certificates \
    unzip xz-utils zip python3 nasm yasm automake autoconf libtool \
    libgtk-3-dev libayatana-appindicator3-dev libasound2-dev libpulse-dev \
    libxcb-randr0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxdo-dev libxfixes-dev \
    libxtst-dev libxrandr-dev libudev-dev libdbus-1-dev libpam0g-dev libssl-dev \
    libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libva-dev \
    libvpx-dev libaom-dev libopus-dev libyuv-dev libsecret-1-dev xvfb \
    && rm -rf /var/lib/apt/lists/*
ENV RUSTUP_HOME=/opt/rustup CARGO_HOME=/opt/cargo PUB_CACHE=/opt/pub-cache
ENV PATH=/opt/cargo/bin:/opt/flutter/bin:$PATH
RUN curl --fail --location https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init -o /tmp/rustup-init \
    && curl --fail --location https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init.sha256 -o /tmp/rustup-init.sha256 \
    && cd /tmp && sha256sum -c rustup-init.sha256 && chmod +x rustup-init \
    && ./rustup-init -y --profile minimal --default-toolchain 1.98.1
COPY install_flutter.py /tmp/install_flutter.py
RUN python3 /tmp/install_flutter.py && flutter config --no-analytics && flutter precache --linux
RUN printf 'prefix=/usr\nlibdir=/usr/lib/x86_64-linux-gnu\nincludedir=/usr/include\nName: libyuv\nDescription: Ubuntu libyuv\nVersion: 0.0.1888\nLibs: -L${libdir} -lyuv\nCflags: -I${includedir}\n' > /usr/lib/x86_64-linux-gnu/pkgconfig/libyuv.pc
WORKDIR /build
