]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add Debian 13 to Docker / Crossbuild tests developer/ndptech master
authorNick Porter <nick@portercomputing.co.uk>
Mon, 11 Aug 2025 15:35:38 +0000 (16:35 +0100)
committerNick Porter <nick@portercomputing.co.uk>
Mon, 11 Aug 2025 15:35:38 +0000 (16:35 +0100)
scripts/docker/build/debian13/Dockerfile [new file with mode: 0644]
scripts/docker/build/debian13/Dockerfile.cb [new file with mode: 0644]
scripts/docker/m4/Dockerfile.m4
scripts/docker/m4/crossbuild.deb.m4

diff --git a/scripts/docker/build/debian13/Dockerfile b/scripts/docker/build/debian13/Dockerfile
new file mode 100644 (file)
index 0000000..09e934b
--- /dev/null
@@ -0,0 +1,97 @@
+# 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"]
diff --git a/scripts/docker/build/debian13/Dockerfile.cb b/scripts/docker/build/debian13/Dockerfile.cb
new file mode 100644 (file)
index 0000000..244ce7c
--- /dev/null
@@ -0,0 +1,123 @@
+# 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
index d8eba06fdea22af739eacd7eb759cbad4e2a3a1c..ed629521ad44798f52fc3a8d11d5a358086ca0e1 100644 (file)
@@ -22,6 +22,7 @@ define([p_SET], [
 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])],
index 2ad3ea5bdd79290893bfdb8464aa68202b23c73d..4650dc774855456d5ba0c9dac1c31b8f01a64210 100644 (file)
@@ -14,7 +14,6 @@ ARG DEBIAN_FRONTEND=noninteractive
 #
 RUN apt-get update && \
     apt-get install $APT_OPTS \
-        software-properties-common \
         devscripts \
         equivs \
         git \