%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.6
-Release: 2
+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: 645ac631505cde46e93c47e273bdec19
+# 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/
%{?with_firebird:BuildRequires: Firebird-devel}
BuildRequires: autoconf
%{?with_kerberos5:BuildRequires: heimdal-devel}
%{?with_eap_ikev2:BuildRequires: libeap-ikev2-devel}
BuildRequires: libtool
-BuildRequires: net-snmp-utils
BuildRequires: mysql-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
+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 \
%{!?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*
%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
%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_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
%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}/*.*