FROM ubuntu:24.04@sha256:224a1869083a311ef3f13648a154ba79832fbef6364d31493642ca03082da254

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        binwalk \
        build-essential \
        ca-certificates \
        curl \
        mtd-utils \
        openssl \
        patch \
        python3 \
        python3-pip \
    && pip3 install --break-system-packages --no-cache-dir ubi_reader==0.8.12 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /opt/nb6vac

COPY scripts/extract-wfi/ ./extract-wfi/
COPY scripts/make-wfi/ ./make-wfi/
COPY container/firmware-patches/ ./firmware-patches/
COPY container/firmware-files/ ./firmware-files/
COPY container/sipconfigd/ ./sipconfigd/
COPY container/root-firmware-userspace /usr/local/bin/root-firmware-userspace

RUN curl -fL --retry 3 \
        -o /tmp/mips32-musl-toolchain.tar.xz \
        https://toolchains.bootlin.com/downloads/releases/toolchains/mips32/tarballs/mips32--musl--stable-2024.05-1.tar.xz \
    && echo 'f553aec760bfc9f452f1ab071b25b84fd36ed56ab4c75149b351144561b4e0b5  /tmp/mips32-musl-toolchain.tar.xz' | sha256sum -c - \
    && tar -C /opt -xf /tmp/mips32-musl-toolchain.tar.xz \
    && mkdir -p /opt/nb6vac/firmware-files/usr/sbin \
    && /opt/mips32--musl--stable-2024.05-1/bin/mips-linux-gcc \
       -Os -static -s -Wall -Wextra -Werror \
       -o /opt/nb6vac/firmware-files/usr/sbin/sipconfigd \
       /opt/nb6vac/sipconfigd/sipconfigd.c \
    && rm -rf /tmp/mips32-musl-toolchain.tar.xz /opt/mips32--musl--stable-2024.05-1 \
    && make -C extract-wfi all \
    && make -C make-wfi all \
    && chmod 0755 /opt/nb6vac/firmware-files/usr/sbin/sipconfigd \
                  /opt/nb6vac/firmware-files/usr/sbin/voip-local-apply \
                  /opt/nb6vac/firmware-files/usr/sbin/voip-sip-filter \
                  /opt/nb6vac/firmware-files/etc/init.d/sipconfigd \
                  /opt/nb6vac/sipconfigd/check-no-embedded-key.sh \
    && chmod 0755 /usr/local/bin/root-firmware-userspace

ENTRYPOINT ["/usr/local/bin/root-firmware-userspace"]
