# Configuration file to install the recipe dependencies inside the Podman container

FROM docker.io/library/debian:trixie

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        appstream \
        appstream-compose \
        autoconf \
        autoconf2.69 \
        automake \
        autopoint \
        bison \
        bsdextrautils \
        build-essential \
        cmake \
        curl \
        dos2unix \
        doxygen \
        expect \
        file \
        flex \
        fuse3 \
        g++ \
        genisoimage \
        git \
        git-lfs \
        gobject-introspection \
        gtk-doc-tools \
        gtk-update-icon-cache \
        help2man \
        ipxe-qemu \
        intltool \
        itstool \
        libaudiofile-dev \
        libdbus-glib-1-dev-bin \
        libfuse3-dev \
        libgdk-pixbuf2.0-bin \
        libglib2.0-dev-bin \
        libhtml-parser-perl \
        libjpeg-dev \
        libparse-yapp-perl \
        librsvg2-common \
        libsdl1.2-dev \
        libsdl2-ttf-dev \
        libxml2-utils \
        lzip \
        m4 \
        make \
        meson \
        nano \
        nasm \
        ninja-build \
        patch \
        patchelf \
        perl \
        pkg-config \
        po4a \
        protobuf-compiler \
        qemu-system-x86 \
        qemu-system-arm \
        qemu-efi-aarch64 \
        python3 \
        python3-dev \
        python3-mako \
        python3-venv \
        rsync \
        ruby \
        scons \
        ssh \
        texinfo \
        unifdef \
        unzip \
        wget \
        xdg-utils \
        xfonts-utils \
        xorg-dev \
        xutils-dev \
        xxd \
        zip \
        zstd \
    && if [ "$(uname -m)" = "x86_64" ]; then \
         apt-get install -y --no-install-recommends \
            libc6-dev-i386 \
            syslinux-utils \
    ; fi

RUN echo "Installing rust..." && \
    curl "https://sh.rustup.rs" -sSf | sh -s -- -y --default-toolchain stable --profile minimal

RUN echo "Downloading sccache..." && \
    SCCACHE_URL="https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-$(uname -m)-unknown-linux-musl.tar.gz" && \
    wget -qO- --show-progress "${SCCACHE_URL}" | tar -xz -C ~/.cargo/bin --strip-components=1 --wildcards '*/sccache'

RUN echo "Downloading just..." && \
    JUST_URL="https://github.com/casey/just/releases/download/1.45.0/just-1.45.0-$(uname -m)-unknown-linux-musl.tar.gz" && \
    wget -qO- --show-progress "${JUST_URL}" | tar -xz -C ~/.cargo/bin --wildcards 'just'

RUN echo "Downloading cbindgen..." && \
    CBINDGEN_NAME="$( [ "$(uname -m)" = "x86_64" ] && echo "ubuntu22.04" || echo "ubuntu22.04-aarch64" )" && \
    CBINDGEN_URL="https://github.com/mozilla/cbindgen/releases/download/0.29.0/cbindgen-${CBINDGEN_NAME}" && \
    wget -qO- --show-progress "${CBINDGEN_URL}" > ~/.cargo/bin/cbindgen && \
    chmod +x ~/.cargo/bin/cbindgen
