-#
-# TODO:
-# - check log files permisions - should be writable by radius user/group
-# (log files are created by server)
-# - prepare to use with --as-needed
-# - ac/am regeneration doesn't work
-# - move plugins into separate packages:
-# /usr/sbin/radsniff: libpcap
-# /usr/lib/freeradius/rlm_eap_ikev2-2.1.1.so: libeap-ikev2
-# - After install/uninstall every module perform daemon restart
-# - what about links in /usr/lib/freeradius/ - required? *.la?
+# Conditional build:
+%bcond_without ldap # without rlm_ldap extension module
+%bcond_without firebird # without rlm_sql_firebird extension module
+%bcond_without eap_ikev2 # without rlm_eap_ikev2 extension module
+%bcond_without kerberos5 # without rlm_krb5 extension module
+%bcond_without ruby # without rlm_ruby extension module
+%bcond_with failed_calls_acc # with failed calls accounting support
#
%include /usr/lib/rpm/macros.perl
#
Summary: High-performance and highly configurable RADIUS server
Summary(pl.UTF-8): Szybki i wysoce konfigurowalny serwer RADIUS
Name: freeradius-server
-Version: 2.1.3
-Release: 0.1
+Version: 2.1.10
+Release: 3
License: GPL
Group: Networking/Daemons/Radius
Source0: ftp://ftp.freeradius.org/pub/radius/%{name}-%{version}.tar.bz2
-# Source0-md5: df7a23ec6303a89d014fcc43418ce5e5
+# Source0-md5: 8ea2bd39460a06212decf2c14fdf3fb8
Source1: %{name}.logrotate
Source2: %{name}.init
Source3: %{name}.pam
Patch1: %{name}-libdir.patch
Patch2: %{name}-makefile.patch
Patch3: %{name}-rundir.patch
+Patch4: %{name}-heimdal.patch
+Patch5: %{name}-rubyhdrs.patch
+# Patch taken from http://download.ag-projects.com/CDRTool/contrib/freeradius-brandinger/
+Patch6: failed_calls_accounting.patch
URL: http://www.freeradius.org/
-BuildRequires: Firebird-devel
+%{?with_firebird:BuildRequires: Firebird-devel}
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: cyrus-sasl-devel
BuildRequires: gdbm-devel
-BuildRequires: libeap-ikev2-devel
+%{?with_kerberos5:BuildRequires: heimdal-devel}
+%{?with_eap_ikev2:BuildRequires: libeap-ikev2-devel}
BuildRequires: libtool
-BuildRequires: net-snmp-utils
BuildRequires: mysql-devel
-BuildRequires: openldap-devel
+BuildRequires: net-snmp-utils
+%{?with_ldap:BuildRequires: openldap-devel}
BuildRequires: openssl-devel
BuildRequires: pam-devel
BuildRequires: perl-devel
BuildRequires: postgresql-devel
BuildRequires: python-devel
+BuildRequires: rpm-perlprov
BuildRequires: rpmbuild(macros) >= 1.268
+%{?with_ruby:BuildRequires: ruby-devel >= 1.8}
BuildRequires: sqlite3-devel
BuildRequires: unixODBC-devel
Requires(post,preun): /sbin/chkconfig
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
Requires(pre): /usr/sbin/usermod
-# Should go to perl subpackage?
-Requires: perl(DynaLoader) = %(%{__perl} -MDynaLoader -e 'print DynaLoader->VERSION')
-Requires: rc-scripts
Requires: %{name}-libs = %{version}-%{release}
+Requires: openssl-tools
+Requires: rc-scripts
+Provides: freeradius = %{version}-%{release}
Provides: group(radius)
Provides: user(radius)
-Provides: freeradius = %{version}-%{release}
Obsoletes: cistron-radius
Obsoletes: freeradius < 2.0
Conflicts: logrotate < 3.7-4
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define mibdir %{_datadir}/snmp/mibs
-%define filterout_ld -Wl,--as-needed
+%define mibdir %{_datadir}/mibs
+%define filterout_ld -Wl,--as-needed
%description
The FreeRADIUS Server Project is an attempt to create a
%description module-python
Python module for %{name}.
+%package module-ruby
+Summary: Ruby module for %{name}
+Group: Networking/Daemons/Radius
+Requires: %{name} = %{version}-%{release}
+
+%description module-ruby
+Ruby module for %{name}.
+
%package module-sqlite
Summary: Sqlite module for %{name}
Group: Networking/Daemons/Radius
%description module-unixodbc
UnixODBC module for %{name}.
-%package mibs
-Summary: MIB database for %{name}
-Summary(pl.UTF-8): Baza danych MIB dla %{name}
-Group: Applications/System
+%package -n mibs-%{name}
+Summary: MIB database for %{name}
+Summary(pl.UTF-8): Baza danych MIB dla %{name}
+Group: Applications/System
+Requires: mibs-dirs
Suggests: libsmi
+Obsoletes: freeradius-server-mibs
-%description mibs
+%description -n mibs-%{name}
MIB database for %{name}.
-%description mibs -l pl.UTF-8
+%description -n mibs-%{name} -l pl.UTF-8
Baza danych MIB dla %{name}.
%package libs
Summary: Freeradius libraries
-Group: Libraries
+Group: Libraries
%description libs
Freeradius libraries.
%package devel
Summary: Header files and devel library
-Group: Development/Libraries
+Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
%description devel
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%{?with_failed_calls_acc:%patch6 -p0}
%build
# Keep it for future when ac/am regeneration will be ok
-#find -name 'configure.[ia][nc]' -type f | while read FILE; do
-# cd $(dirname "$FILE")
-# %{__libtoolize}
-# %{__aclocal} -I $OLDPWD
-# %{__autoconf}
-# [ -f config.h.in ] && %{__autoheader}
-# cd -
-#done
-%{__libtoolize}
-%{__aclocal} -I .
-%{__autoconf}
-
-LIBS="-lgdbm" \
+find -name 'configure.[ia][nc]' -type f | while read FILE; do
+ cd $(dirname "$FILE")
+ %{__libtoolize}
+ %{__aclocal} -I $OLDPWD
+ %{__autoconf}
+ [ -f config.h.in ] && %{__autoheader}
+ cd -
+done
+
%configure \
--enable-strict-dependencies \
--with-experimental-modules \
--with-logdir=%{_var}/log/freeradius \
+ --with-system-libltdl \
--with-system-libtool \
+ --with-udpfromto \
--without-rlm_eap_tnc \
--without-rlm_opendirectory \
--without-rlm_sql_db2 \
--without-rlm_sql_iodbc \
- --without-rlm_sql_oracle
+ --without-rlm_sql_oracle \
+ %{!?with_firebird:--without-rlm_sql_firebird} \
+ %{!?with_ldap:--without-rlm_ldap} \
+ %{!?with_eap_ikev2:--without-rlm_eap_ikev2} \
+ %{?with_kerberos5:--enable-heimdal-krb5} \
+ %{!?with_kerberos5:--without-rlm_krb5} \
+ %{!?with_ruby:--without-rlm_ruby}
%{make} -j1
%module_scripts module-perl
%module_scripts module-postgresql
%module_scripts module-python
+%module_scripts module-ruby
%module_scripts module-sqlite
%module_scripts module-sql_firebird
%module_scripts module-unix
%module_scripts module-unixodbc
%files
-%defattr(644,root,root,755)
-%doc doc/* scripts raddb
+%defattr(640,root,radius,750)
%dir %{_sysconfdir}/raddb
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/acct_users
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/attrs*
%dir %{_sysconfdir}/raddb/certs
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/certs/*.cnf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/certs/xpextensions
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/certs/Makefile
+%doc %{_sysconfdir}/raddb/certs/README
+%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/certs/bootstrap
%dir %{_sysconfdir}/raddb/modules
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/acct_unique
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/always
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/chap
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/checkval
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/counter
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/cui
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/detail
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/detail.example.com
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/detail.log
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/radutmp
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/realm
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/smbpasswd
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/smsotp
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/sql_log
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/sqlcounter_expire_on_login
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/sradutmp
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/wimax
%dir %{_sysconfdir}/raddb/sites-available
%dir %{_sysconfdir}/raddb/sql
%dir %{_sysconfdir}/raddb/sql/mssql
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/sql/mssql/*
+%dir %{_sysconfdir}/raddb/sql/ndb
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/sql/ndb/*
+%defattr(644,root,root,755)
+%doc doc/* scripts raddb
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/*
%attr(754,root,root) /etc/rc.d/init.d/%{name}
%attr(755,root,root) %{_bindir}/*
%attr(755,root,root) %{_libdir}/freeradius/rlm_realm*.la
%attr(755,root,root) %{_libdir}/freeradius/rlm_sim_files*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_sim_files*.la
+%attr(755,root,root) %{_libdir}/freeradius/rlm_smsotp*.so
+%attr(755,root,root) %{_libdir}/freeradius/rlm_smsotp*.la
%attr(755,root,root) %{_libdir}/freeradius/rlm_sql-*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_sql.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_sql-*.la
%attr(771,root,radius) %dir %{_var}/log/archive/freeradius/radacct
%attr(775,root,radius) %dir /var/run/freeradius
+%if %{with kerberos5}
%files module-krb5
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/krb5
%attr(755,root,root) %{_libdir}/freeradius/rlm_krb5*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_krb5*.la
+%endif
+%if %{with ldap}
%files module-ldap
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/ldap.attrmap
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/ldap
%attr(755,root,root) %{_libdir}/freeradius/rlm_ldap*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_ldap*.la
+%endif
%files module-mysql
%defattr(644,root,root,755)
%files module-otp
%defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/otp.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/otp
%attr(755,root,root) %{_libdir}/freeradius/rlm_otp*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_otp*.la
%files module-perl
%defattr(644,root,root,755)
%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/example.pl
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/modules/perl
%attr(755,root,root) %{_libdir}/freeradius/rlm_perl*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_perl*.la
%attr(755,root,root) %{_libdir}/freeradius/rlm_python*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_python*.la
+%if %{with ruby}
+%files module-ruby
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/freeradius/rlm_ruby*.so
+%attr(755,root,root) %{_libdir}/freeradius/rlm_ruby*.la
+%endif
+
%files module-sqlite
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/freeradius/rlm_sql_sqlite*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_sql_sqlite*.la
+%if %{with firebird}
%files module-sql_firebird
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/freeradius/rlm_sql_firebird*.so
%attr(755,root,root) %{_libdir}/freeradius/rlm_sql_firebird*.la
+%endif
%files module-unix
%defattr(644,root,root,755)
%files libs
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libfreeradius-eap-?.?.?.so
-%attr(755,root,root) %{_libdir}/libfreeradius-radius-?.?.?.so
+%attr(755,root,root) %{_libdir}/libfreeradius-eap-?.?.??.so
+%attr(755,root,root) %{_libdir}/libfreeradius-radius-?.?.??.so
%dir %{_libdir}/freeradius
%files devel
%{_libdir}/libfreeradius-eap.so
%{_libdir}/libfreeradius-radius.so
-%files mibs
+%files -n mibs-%{name}
%defattr(644,root,root,755)
%doc mibs/*.chart
%{mibdir}/*.*