FROM debian:12
ARG VERSION
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt,sharing=locked \
    apt-get update && apt-get upgrade
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt,sharing=locked \
    apt-get install -y bc binutils bzip2 ca-certificates cliquer cmake curl \
        ecl eclib-tools fflas-ffpack flex g++ gap gcc gengetopt gfan gfortran \
        glpk-utils gmp-ecm lcalc libatomic-ops-dev libboost-dev \
        libbraiding-dev libbrial-dev libbrial-groebner-dev libbz2-dev \
        libcdd-dev libcdd-tools libcliquer-dev libcurl4-openssl-dev libec-dev \
        libecm-dev libffi-dev libflint-dev libfplll-dev libfreetype-dev \
        libgap-dev libgc-dev libgd-dev libgf2x-dev libgivaro-dev libglpk-dev \
        libgmp-dev libgsl-dev libhomfly-dev libiml-dev liblfunction-dev \
        liblinbox-dev liblrcalc-dev liblzma-dev libm4ri-dev libm4rie-dev \
        libmpc-dev libmpfi-dev libmpfr-dev libncurses5-dev libntl-dev \
        libopenblas-dev libpari-dev libplanarity-dev libppl-dev \
        libprimecount-dev libprimesieve-dev libpython3-dev libqhull-dev \
        libreadline-dev librw-dev libsingular4-dev libsqlite3-dev libssl-dev \
        libsuitesparse-dev libsymmetrica2-dev libz-dev libzmq3-dev m4 make \
        maxima maxima-sage meson nauty ninja-build openssl palp pari-doc \
        pari-elldata pari-galdata pari-galpol pari-gp2c pari-seadata patch \
        patchelf perl pkg-config planarity ppl-dev python3 python3-setuptools \
        python3-venv qhull-bin singular singular-doc sqlite3 sympow tachyon \
        tar texinfo tox xz-utils
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
    --mount=type=cache,target=/var/lib/apt,sharing=locked \
    apt-get install -y default-jdk dvipng ffmpeg fonts-freefont-otf \
        imagemagick latexmk libavdevice-dev libjpeg-dev pandoc tex-gyre \
        texlive-fonts-recommended texlive-lang-cyrillic texlive-lang-english \
        texlive-lang-european texlive-lang-french texlive-lang-german \
        texlive-lang-italian texlive-lang-japanese texlive-lang-polish \
        texlive-lang-portuguese texlive-lang-spanish texlive-latex-extra \
        texlive-luatex texlive-xetex xindy
RUN useradd jovyan -u 1000 -s /bin/bash -m
USER jovyan
WORKDIR /home/jovyan
COPY build.sh build.sh
ADD --chown=luser:luser git@github.com:sagemath/sage.git#${VERSION} sage
WORKDIR /home/jovyan/sage
ENV srcdir=/homejovyan/sage
RUN ./build.sh
