From 1ef8514cc3e4f689798027c45a9c486508cf5268 Mon Sep 17 00:00:00 2001 From: Alexander Scheel Date: Fri, 15 Nov 2019 15:03:30 -0500 Subject: [PATCH] Rebase to FreeRADIUS v3.0.20 Introduces the experimental rlm_python3 that is largely based off the existing python2 module. Signed-off-by: Alexander Scheel --- .gitignore | 1 + freeradius.spec | 56 ++++++++++++++++++++++++++++++++++++++++++++----- sources | 2 +- 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 7200a45..2a06a22 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ freeradius-*.src.rpm /freeradius-server-3.0.18.tar.gz /freeradius-server-3.0.18.tar.bz2 /freeradius-server-3.0.19.tar.bz2 +/freeradius-server-3.0.20.tar.bz2 diff --git a/freeradius.spec b/freeradius.spec index 7ffb6cd..7658dee 100644 --- a/freeradius.spec +++ b/freeradius.spec @@ -1,7 +1,7 @@ Summary: High-performance and highly configurable free RADIUS server Name: freeradius -Version: 3.0.19 -Release: 5%{?dist} +Version: 3.0.20 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ URL: http://www.freeradius.org/ @@ -132,7 +132,7 @@ This plugin provides the Perl support for the FreeRADIUS server project. %if 0%{?fedora} <= 30 %package -n python2-freeradius -Summary: Python support for freeradius +Summary: Python 2 support for freeradius Requires: %{name} = %{version}-%{release} BuildRequires: python2-devel %{?python_provide:%python_provide python2-freeradius} @@ -142,9 +142,18 @@ Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} %description -n python2-freeradius -This plugin provides the Python support for the FreeRADIUS server project. +This plugin provides the Python 2 support for the FreeRADIUS server project. %endif +%package -n python3-freeradius +Summary: Python 3 support for freeradius +Requires: %{name} = %{version}-%{release} +BuildRequires: python3-devel +%{?python_provide:%python_provide python3-freeradius} + +%description -n python3-freeradius +This plugin provides the Python 3 support for the FreeRADIUS server project. + %package mysql Summary: MySQL support for freeradius Requires: %{name} = %{version}-%{release} @@ -199,10 +208,26 @@ This plugin provides the REST support for the FreeRADIUS server project. # Force compile/link options, extra security for network facing daemon %global _hardened_build 1 +# Hack: rlm_python3 as stable; prevents building other unstable modules. +sed 's/rlm_python/rlm_python3/g' src/modules/stable -i + +# python3-config is broken: +# https://bugzilla.redhat.com/show_bug.cgi?id=1772988 +export PY3_LIB_DIR=%{_libdir}/"$(python3-config --configdir | sed 's#/usr/lib/##g')" +export PY3_INC_DIR="$(python3 -c 'import sysconfig; print(sysconfig.get_config_var("INCLUDEPY"))')" + +# Hack: rlm_python3 configure.ac script is broken because it doesn't +# respect --with-rlm-python3-include-dir. +sed -i 's#smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION[m]*"#smart_try_dir=$PY_INC_DIR#g' src/modules/rlm_python3/configure.ac + +# In order for the above hack to stick, do a fake configure so +# we can run reconfig before cleaning up after ourselves and running +# configure for real. +./configure && make reconfig && (make clean distclean || true) + %configure \ --libdir=%{_libdir}/freeradius \ --enable-reproducible-builds \ - --with-package \ --disable-openssl-version-check \ --with-openssl \ --with-udpfromto \ @@ -215,6 +240,9 @@ This plugin provides the REST support for the FreeRADIUS server project. --with-unixodbc-lib-dir=%{_libdir} \ --with-rlm-dbm-lib-dir=%{_libdir} \ --with-rlm-krb5-include-dir=/usr/kerberos/include \ + --with-rlm_python3 \ + --with-rlm-python3-lib-dir=$PY3_LIB_DIR \ + --with-rlm-python3-include-dir=$PY3_INC_DIR \ --without-rlm_eap_ikev2 \ --without-rlm_eap_tnc \ --without-rlm_sql_iodbc \ @@ -288,6 +316,10 @@ rm $RPM_BUILD_ROOT/%{_libdir}/freeradius/rlm_test.so # remove unsupported config files rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/raddb/experimental.conf +# Mongo will never be supported on Fedora or RHEL +rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/raddb/mods-config/sql/ippool/mongo/queries.conf +rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/raddb/mods-config/sql/main/mongo/queries.conf + # install doc files omitted by standard install for f in COPYRIGHT CREDITS INSTALL.rst README.rst VERSION; do cp $f $RPM_BUILD_ROOT/%{docdir} @@ -406,6 +438,7 @@ exit 0 %attr(640,root,radiusd) %config(noreplace) /etc/raddb/sites-available/robust-proxy-accounting %attr(640,root,radiusd) %config(noreplace) /etc/raddb/sites-available/soh %attr(640,root,radiusd) %config(noreplace) /etc/raddb/sites-available/coa +%attr(640,root,radiusd) %config(noreplace) /etc/raddb/sites-available/coa-relay %attr(640,root,radiusd) %config(noreplace) /etc/raddb/sites-available/example %attr(640,root,radiusd) %config(noreplace) /etc/raddb/sites-available/inner-tunnel %attr(640,root,radiusd) %config(noreplace) /etc/raddb/sites-available/dhcp @@ -471,6 +504,7 @@ exit 0 %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/passwd %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/preprocess %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/python +%attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/python3 %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/radutmp %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/realm %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/redis @@ -692,6 +726,12 @@ exit 0 %{_libdir}/freeradius/rlm_python.so %endif +%files -n python3-freeradius +%dir %attr(750,root,radiusd) /etc/raddb/mods-config/python3 +/etc/raddb/mods-config/python3/example.py* +/etc/raddb/mods-config/python3/radiusd.py* +%{_libdir}/freeradius/rlm_python3.so + %files mysql %dir %attr(750,root,radiusd) /etc/raddb/mods-config/sql/counter/mysql %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-config/sql/counter/mysql/dailycounter.conf @@ -706,6 +746,7 @@ exit 0 %dir %attr(750,root,radiusd) /etc/raddb/mods-config/sql/ippool/mysql %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-config/sql/ippool/mysql/queries.conf %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-config/sql/ippool/mysql/schema.sql +%attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-config/sql/ippool/mysql/procedure.sql %dir %attr(750,root,radiusd) /etc/raddb/mods-config/sql/ippool-dhcp/mysql %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-config/sql/ippool-dhcp/mysql/queries.conf @@ -792,6 +833,11 @@ exit 0 %attr(640,root,radiusd) %config(noreplace) /etc/raddb/mods-available/rest %changelog +* Fri Nov 15 2019 Alexander Scheel - 3.0.20-1 +- Rebased to 3.0.20 + Resolves: bz#1772710 +- Introduced new rlm_python3 module + * Thu Jul 25 2019 Fedora Release Engineering - 3.0.19-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild diff --git a/sources b/sources index 613a918..ab35246 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (freeradius-server-3.0.19.tar.bz2) = 9bb3401a52288de541a2272149f4341840dc1df7203583746bef46c0b1b1f2b8886931c9f6f9ce3d92951e271ab5a84a50a8587a3acd69cc20bc86f5817d28e1 +SHA512 (freeradius-server-3.0.20.tar.bz2) = d5e0732a75268480092b46822a0e0fffb683adb93be13932eb170d2dc783a46d0daff4cadd0de69fd5ce4578083c9f69a9cccc485ea9c0c2eecf82c772f54b8e