FROM ubuntu:24.04

ARG DEBIAN_FRONTEND=noninteractive
#
#  Install build tools
#

COPY local-noble.list /etc/apt/sources.list.d/ubuntu.sources

RUN apt-get update && apt-get install -y devscripts equivs git quilt gcc

#
#  Setup build envs.
#  Defaults match the repo-wide /VERSION (3.2.8). CI overrides RADIUS_TAG
#  from VERSION; RLM_RAW_BRANCH is the rlm_raw module branch for this release.
ARG RADIUS_TAG="release_3_2_8"
ARG RLM_RAW_BRANCH="v3.2.4"

ENV RADIUS_REPO="https://github.com/FreeRADIUS/freeradius-server.git"
ENV RADIUS_TAG=${RADIUS_TAG}
ENV RLM_RAW_REPO="https://github.com/jar3b/rlm_raw.git"
ENV RLM_RAW_BRANCH=${RLM_RAW_BRANCH}

#
#  Create build directory
#
RUN mkdir -p /usr/local/src/repositories
WORKDIR /usr/local/src/repositories

RUN git clone --depth 1 --single-branch --branch ${RADIUS_TAG} ${RADIUS_REPO}
RUN git clone --depth 1 --single-branch --branch ${RLM_RAW_BRANCH} ${RLM_RAW_REPO}
RUN mv rlm_raw/rlm_raw freeradius-server/src/modules

WORKDIR freeradius-server

#
#  Install build dependencies
#
RUN git checkout ${RADIUS_TAG}; cat VERSION; \
    if [ -e ./debian/control.in ]; then \
        debian/rules debian/control; \
    fi; \
    echo 'y' | mk-build-deps -irt'apt-get -yV' debian/control

#
#  Build the server
#
RUN make -j2 deb

WORKDIR /usr/local/src/repositories
ADD upload.sh .
RUN chmod a+x upload.sh