--- /dev/null
+# Auto generated for debian13
+# from scripts/docker/m4/docker.deb.m4
+#
+# Rebuild this file with `make docker.debian13.regen`
+#
+ARG from=debian:trixie
+FROM ${from} AS build
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+#
+# Install build tools
+#
+RUN apt-get update
+RUN apt-get install -y devscripts equivs git quilt gcc curl
+
+#
+# Set up NetworkRADIUS extras repository
+#
+RUN install -d -o root -g root -m 0755 /etc/apt/keyrings \
+ && curl -o /etc/apt/keyrings/packages.networkradius.com.asc "https://packages.inkbridgenetworks.com/pgp/packages%40networkradius.com" \
+ && echo "deb [signed-by=/etc/apt/keyrings/packages.networkradius.com.asc] http://packages.networkradius.com/extras/debian/trixie trixie main" > /etc/apt/sources.list.d/networkradius-extras.list \
+ && apt-get update
+
+#
+# Create build directory
+#
+RUN mkdir -p /usr/local/src/repositories/freeradius-server
+WORKDIR /usr/local/src/repositories/freeradius-server/
+
+#
+# Copy the FreeRADIUS directory in
+#
+COPY . .
+
+#
+# Clean up tree - we want to build from the latest commit, not from
+# any cruft left around on the local system
+#
+RUN git clean -fdxx \
+ && git reset --hard HEAD
+
+#
+# Install build dependencies
+#
+RUN 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 -j$(nproc) deb
+
+#
+# Clean environment and run the server
+#
+FROM ${from}
+ARG DEBIAN_FRONTEND=noninteractive
+
+COPY --from=build /usr/local/src/repositories/*.deb /tmp/
+
+#
+# We need curl to get the signing key
+#
+RUN apt-get update \
+ && apt-get install -y curl \
+ && apt-get clean \
+ && rm -r /var/lib/apt/lists/*
+
+#
+# Set up NetworkRADIUS extras repository
+#
+RUN install -d -o root -g root -m 0755 /etc/apt/keyrings \
+ && curl -o /etc/apt/keyrings/packages.networkradius.com.asc "https://packages.inkbridgenetworks.com/pgp/packages%40networkradius.com" \
+ && echo "deb [signed-by=/etc/apt/keyrings/packages.networkradius.com.asc] http://packages.networkradius.com/extras/debian/trixie trixie main" > /etc/apt/sources.list.d/networkradius-extras.list
+
+ARG freerad_uid=101
+ARG freerad_gid=101
+
+RUN groupadd -g ${freerad_gid} -r freerad \
+ && useradd -u ${freerad_uid} -g freerad -r -M -d /etc/freeradius -s /usr/sbin/nologin freerad \
+ && apt-get update \
+ && apt-get install -y /tmp/*.deb \
+ && apt-get clean \
+ && rm -r /var/lib/apt/lists/* /tmp/*.deb \
+ \
+ && ln -s /etc/freeradius /etc/raddb
+
+WORKDIR /
+COPY scripts/docker/etc/docker-entrypoint.sh.deb docker-entrypoint.sh
+RUN chmod +x docker-entrypoint.sh
+
+EXPOSE 1812/udp 1813/udp
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["freeradius"]
--- /dev/null
+# Auto generated for debian13
+# from scripts/docker/m4/crossbuild.deb.m4
+#
+# Rebuild this file with `make crossbuild.debian13.regen`
+#
+ARG from=debian:trixie
+FROM ${from} AS build
+
+SHELL ["/usr/bin/nice", "-n", "5", "/usr/bin/ionice", "-c", "3", "/bin/sh", "-x", "-c"]
+
+ARG APT_OPTS="-y --option=Dpkg::options::=--force-unsafe-io --no-install-recommends"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+
+#
+# Install add-apt-repository (may be needed for clang) and
+# package development utilities
+#
+RUN apt-get update && \
+ apt-get install $APT_OPTS \
+ devscripts \
+ equivs \
+ git \
+ gnupg2 \
+ lsb-release \
+ procps \
+ quilt \
+ rsync \
+ wget && \
+ apt-get clean && \
+ rm -r /var/lib/apt/lists/*
+
+
+#
+# Set up NetworkRADIUS extras repository
+#
+RUN install -d -o root -g root -m 0755 /etc/apt/keyrings && \
+ wget -O /etc/apt/keyrings/packages.networkradius.com.asc "https://packages.networkradius.com/pgp/packages%40networkradius.com" && \
+ echo "deb [signed-by=/etc/apt/keyrings/packages.networkradius.com.asc] http://packages.networkradius.com/extras/debian/trixie trixie main" > /etc/apt/sources.list.d/networkradius-extras.list && \
+ apt-get update
+
+
+#
+# Install compilers
+#
+RUN apt-get install $APT_OPTS \
+ g++ \
+ llvm clang lldb
+
+
+
+
+
+#
+# Install some extra packages
+#
+RUN apt-get install $APT_OPTS \
+ libnl-3-dev \
+ libnl-genl-3-dev \
+ gdb \
+ less \
+ lldb \
+ vim \
+ oathtool
+
+
+#
+# Documentation build dependencies
+#
+
+WORKDIR /tmp
+
+# - doxygen & JSON.pm
+RUN apt-get install $APT_OPTS \
+ doxygen \
+ graphviz \
+ libjson-perl
+
+# - antora (needs npm)
+RUN bash -c "$(wget -O - https://deb.nodesource.com/setup_20.x)" && \
+ apt-get install $APT_OPTS nodejs && \
+ npm i -g @antora/cli@3.1.7 @antora/site-generator-default@3.1.7
+
+# - pandoc
+RUN wget $(wget -qO - https://api.github.com/repos/jgm/pandoc/releases/latest | sed -ne 's/.*"browser_download_url".*"\(.*amd64\.deb\)"/\1/ p') && \
+ find . -mindepth 1 -maxdepth 1 -type f -name 'pandoc-*.deb' -print0 | \
+ xargs -0 -r apt-get install $APT_OPTS && \
+ find . -mindepth 1 -maxdepth 1 -type f -name 'pandoc-*.deb' -delete
+
+# - asciidoctor
+RUN apt-get install $APT_OPTS \
+ ruby ruby-dev && \
+ gem install asciidoctor
+
+
+#
+# Setup a src dir in /usr/local
+#
+RUN mkdir -p /usr/local/src/repositories
+WORKDIR /usr/local/src/repositories
+
+
+#
+# Shallow clone the FreeRADIUS source
+#
+WORKDIR /usr/local/src/repositories
+ARG source=https://github.com/FreeRADIUS/freeradius-server.git
+RUN git clone --depth 1 --no-single-branch ${source}
+
+#
+# Install build dependencies for all branches from v4 onwards
+#
+WORKDIR freeradius-server
+RUN for i in $(git for-each-ref --format='%(refname:short)' refs/remotes/origin 2>/dev/null | sed -e 's#origin/##' | egrep "^(v[4-9]*\.[0-9x]*\.x|master|${branch})$" | sort -u); \
+ do \
+ git checkout $i; \
+ if [ -e ./debian/control.in ] ; then \
+ debian/rules debian/control ; \
+ fi ; \
+ mk-build-deps -irt"apt-get -o Debug::pkgProblemResolver=yes $APT_OPTS" debian/control ; \
+ apt-get -y remove libiodbc2-dev ; \
+ done
dnl D_NAME PKG_TYPE OS_NAME OS_VER OS_CODENAME DOCKER_IMAGE
ifelse(
D_NAME, [debian12], [p_SET([deb], [debian], [12], [bookworm], [debian:bookworm])],
+ D_NAME, [debian13], [p_SET([deb], [debian], [13], [trixie], [debian:trixie])],
D_NAME, [debiansid], [p_SET([deb], [debian], [99], [sid], [debian:sid])],
D_NAME, [ubuntu22], [p_SET([deb], [ubuntu], [22], [jammy], [ubuntu:22.04])],
D_NAME, [ubuntu24], [p_SET([deb], [ubuntu], [24], [noble], [ubuntu:24.04])],
#
RUN apt-get update && \
apt-get install $APT_OPTS \
- software-properties-common \
devscripts \
equivs \
git \