+++ /dev/null
-# Auto generated for debian11
-# from scripts/docker/m4/docker.deb.m4
-#
-# Rebuild this file with `make docker.debian11.regen`
-#
-ARG from=debian:bullseye
-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.networkradius.com/pgp/packages%40networkradius.com" \
- && echo "deb [signed-by=/etc/apt/keyrings/packages.networkradius.com.asc] http://packages.networkradius.com/extras/debian/bullseye bullseye 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.networkradius.com/pgp/packages%40networkradius.com" \
- && echo "deb [signed-by=/etc/apt/keyrings/packages.networkradius.com.asc] http://packages.networkradius.com/extras/debian/bullseye bullseye 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 debian11
-# from scripts/docker/m4/crossbuild.deb.m4
-#
-# Rebuild this file with `make crossbuild.debian11.regen`
-#
-ARG from=debian:bullseye
-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 \
- software-properties-common \
- 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/bullseye bullseye 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
+++ /dev/null
-# Auto generated for rocky8
-# from scripts/docker/m4/docker.rpm.m4
-#
-# Rebuild this file with `make docker.rocky8.regen`
-#
-ARG from=rockylinux/rockylinux:8
-FROM ${from} as build
-
-RUN rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
-
-#
-# Install build tools
-#
-RUN dnf groupinstall -y "Development Tools"
-
-RUN dnf install -y rpmdevtools openssl dnf-utils
-
-
-#
-# Set up NetworkRADIUS extras repository
-#
-RUN echo $'[networkradius-extras]\n\
-name=NetworkRADIUS-extras-$releasever\n\
-baseurl=http://packages.networkradius.com/extras/rocky/$releasever/\n\
-enabled=1\n\
-gpgcheck=1\n\
-gpgkey=https://packages.networkradius.com/pgp/packages@networkradius.com'\
-> /etc/yum.repos.d/networkradius-extras.repo
-RUN rpm --import https://packages.networkradius.com/pgp/packages@networkradius.com
-
-#
-# 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
-
-#
-# Other requirements
-#
-
-# Use LTB's openldap packages instead of the distribution version to avoid linking against NSS
-RUN echo $'[ltb-project]\n\
-name=LTB project packages\n\
-baseurl=https://ltb-project.org/rpm/$releasever/$basearch\n\
-enabled=1\n\
-gpgcheck=1\n\
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-project'\
-> /etc/yum.repos.d/ltb-project.repo
-RUN rpm --import https://ltb-project.org/lib/RPM-GPG-KEY-LTB-project
-
-# Enable EPEL repository for freetds and hiredis
-RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
-
-# Enable powertools repo
-RUN dnf config-manager --enable powertools
-
-# Enable epel-testing, currently needed for hiredis-devel
-RUN dnf config-manager --enable epel-testing
-
-#
-# Install build dependencies
-#
-# Run twice, it doesn't always get everything with one invocation
-RUN [ -e redhat/freeradius.spec ] && \
- dnf builddep -y redhat/freeradius.spec && \
- dnf builddep -y redhat/freeradius.spec
-
-#
-# Create RPM build environment
-#
-ENV BUILDDIR=/root/rpmbuild
-RUN rpmdev-setuptree
-
-RUN ./configure
-RUN make pkg_version > /VERSION
-RUN cat /VERSION
-RUN make freeradius-server-$(cat /VERSION).tar.bz2
-RUN cp freeradius-server-$(cat /VERSION).tar.bz2 $BUILDDIR/SOURCES/
-RUN cp -r redhat/* $BUILDDIR/SOURCES/
-RUN make dist-check-rpm
-RUN cp -r redhat/freeradius.spec $BUILDDIR/SPECS/
-WORKDIR $BUILDDIR
-
-#
-# Build the server
-#
-ENV QA_RPATHS=0x0003
-RUN rpmbuild -bb --define "_release $(cat /VERSION)" "$BUILDDIR/SPECS/freeradius.spec"
-
-RUN mkdir /root/rpms
-RUN mv $BUILDDIR/RPMS/*/*.rpm /root/rpms/
-
-#
-# Clean environment and run the server
-#
-FROM ${from}
-
-COPY --from=build /root/rpms /tmp/
-
-#
-# Set up NetworkRADIUS extras repository
-#
-RUN echo $'[networkradius-extras]\n\
-name=NetworkRADIUS-extras-$releasever\n\
-baseurl=http://packages.networkradius.com/extras/rocky/$releasever/\n\
-enabled=1\n\
-gpgcheck=1\n\
-gpgkey=https://packages.networkradius.com/pgp/packages@networkradius.com'\
-> /etc/yum.repos.d/networkradius-extras.repo
-RUN rpm --import https://packages.networkradius.com/pgp/packages@networkradius.com
-
-#
-# Other requirements
-#
-# Use LTB's openldap packages instead of the distribution version to avoid linking against NSS
-RUN echo $'[ltb-project]\n\
-name=LTB project packages\n\
-baseurl=https://ltb-project.org/rpm/$releasever/$basearch\n\
-enabled=1\n\
-gpgcheck=1\n\
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-project'\
-> /etc/yum.repos.d/ltb-project.repo \
- && rpm --import https://ltb-project.org/lib/RPM-GPG-KEY-LTB-project
-
-
-# EPEL repository for freetds and hiredis
-RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
- && dnf install -y dnf-utils \
- && dnf config-manager --enable epel-testing
-
-ARG radiusd_uid=95
-ARG radiusd_gid=95
-
-RUN groupadd -g ${radiusd_gid} -r radiusd \
- && useradd -u ${radiusd_uid} -g radiusd -r -M -d /home/radiusd -s /sbin/nologin radiusd \
- && dnf install -y /tmp/*.rpm
-
-WORKDIR /
-COPY scripts/docker/etc/docker-entrypoint.sh.rpm docker-entrypoint.sh
-RUN chmod +x docker-entrypoint.sh
-
-EXPOSE 1812/udp 1813/udp
-ENTRYPOINT ["/docker-entrypoint.sh"]
-CMD ["radiusd"]
+++ /dev/null
-# Auto generated for rocky8
-# from scripts/docker/m4/crossbuild.rpm.m4
-#
-# Rebuild this file with `make crossbuild.rocky8.regen`
-#
-ARG from=rockylinux/rockylinux:8
-FROM ${from} as build
-
-#
-# Install devtools like make and git and the EPEL
-# repository for freetds and hiredis
-#
-RUN dnf update -y
-RUN dnf install -y rpmdevtools openssl epel-release git procps dnf-utils \
- rsync dnf-plugins-core
-
-
-RUN dnf config-manager --set-enabled powertools
-
-#
-# Install GCC that has the requisite support for C11 keywords and atomics
-#
-RUN dnf install -y gcc-toolset-9
-
-
-#
-# Documentation build dependencies
-#
-
-# - doxygen & JSON.pm
-RUN dnf install -y doxygen graphviz perl-JSON
-# - antora (npm needed)
-RUN curl -sL https://rpm.nodesource.com/setup_20.x | bash -
-RUN dnf install -y nodejs
-RUN npm i -g @antora/cli@3.1.7 @antora/site-generator-default@3.1.7
-# - pandoc
-RUN curl -o - -L $(curl -s https://api.github.com/repos/jgm/pandoc/releases/latest | grep "browser_download_url.*tar.gz" | cut -d '"' -f 4) | tar xzvf - -C /tmp/
-RUN mv /tmp/pandoc-*/bin/* /usr/local/bin
-# - asciidoctor
-RUN dnf install -y rubygems-devel
-RUN gem install asciidoctor
-
-#
-# Setup a src dir in /usr/local
-#
-RUN mkdir -p /usr/local/src/repositories
-WORKDIR /usr/local/src/repositories
-
-#
-# Set up NetworkRADIUS extras repository for latest libkqueue
-#
-RUN echo $'[networkradius-extras]\n\
-name=NetworkRADIUS-extras-$releasever\n\
-baseurl=http://packages.networkradius.com/extras/rocky/$releasever/\n\
-enabled=1\n\
-gpgcheck=1\n\
-gpgkey=https://packages.networkradius.com/pgp/packages@networkradius.com'\
-> /etc/yum.repos.d/networkradius-extras.repo
-RUN rpm --import https://packages.networkradius.com/pgp/packages@networkradius.com
-
-#
-# Use LTB's openldap packages instead of the distribution version to avoid linking against NSS
-#
-RUN echo $'[ltb-project]\n\
-name=LTB project packages\n\
-baseurl=https://ltb-project.org/rpm/$releasever/$basearch\n\
-enabled=1\n\
-gpgcheck=1\n\
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-project'\
-> /etc/yum.repos.d/ltb-project.repo
-RUN rpm --import https://ltb-project.org/lib/RPM-GPG-KEY-LTB-project
-
-#
-# 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 v3 onwards
-# Nodesource has issues (no SRPMS in some repos) and is not needed here
-#
-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)$");\
- do \
- git checkout $i; \
- [ -e redhat/freeradius.spec ] && dnf builddep -y redhat/freeradius.spec; \
- done
-
-#
-# A few extra packages needed for tests
-#
-RUN dnf install -y \
- libnl3-devel \
- libyubikey-devel \
- oathtool \
- which
-
-#
-# We test with TLS1.1, but that is disabled by default on some
-# newer systems.
-#
-RUN update-crypto-policies --set LEGACY
-
-#
-# Create the RPM build tree
-#
-RUN rpmdev-setuptree
+++ /dev/null
-# Auto generated for ubuntu20
-# from scripts/docker/m4/docker.deb.m4
-#
-# Rebuild this file with `make docker.ubuntu20.regen`
-#
-ARG from=ubuntu:20.04
-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.networkradius.com/pgp/packages%40networkradius.com" \
- && echo "deb [signed-by=/etc/apt/keyrings/packages.networkradius.com.asc] http://packages.networkradius.com/extras/ubuntu/focal focal 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.networkradius.com/pgp/packages%40networkradius.com" \
- && echo "deb [signed-by=/etc/apt/keyrings/packages.networkradius.com.asc] http://packages.networkradius.com/extras/ubuntu/focal focal main" > /etc/apt/sources.list.d/networkradius-extras.list
-
-RUN 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 ubuntu20
-# from scripts/docker/m4/crossbuild.deb.m4
-#
-# Rebuild this file with `make crossbuild.ubuntu20.regen`
-#
-ARG from=ubuntu:20.04
-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 \
- software-properties-common \
- 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/ubuntu/focal focal 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