3 # - check log files permisions - should be writable by radius user/group
4 # (log files are created by server)
5 # - prepare to use with --as-needed
6 # - ac/am regeneration doesn't work
7 # - move plugins into separate packages:
8 # /usr/sbin/radsniff: libpcap
9 # /usr/lib/freeradius/rlm_eap_ikev2-2.1.1.so: libeap-ikev2
10 # /usr/lib/freeradius/rlm_krb5-2.1.1.so: libkrb5, libcom_err, libkrb5support, libkeyutils
11 # /usr/lib/freeradius/rlm_ldap-2.1.1.so: libldap_r, liblber, libsasl2, libcrypt, libssl
12 # /usr/lib/freeradius/rlm_otp-2.1.1.so
13 # /usr/lib/freeradius/rlm_pam-2.1.1.so
14 # /usr/lib/freeradius/rlm_perl-2.1.1.so
15 # /usr/lib/freeradius/rlm_python-2.1.1.so
16 # /usr/lib/freeradius/rlm_unix-2.1.1.so
17 # - After install/uninstall every module perform daemon restart
19 %include /usr/lib/rpm/macros.perl
21 Summary: High-performance and highly configurable RADIUS server
22 Summary(pl.UTF-8): Szybki i wysoce konfigurowalny serwer RADIUS
23 Name: freeradius-server
27 Group: Networking/Daemons/Radius
28 Source0: ftp://ftp.freeradius.org/pub/radius/%{name}-%{version}.tar.bz2
29 # Source0-md5: 4ccf748ef9851d90844d085647351ca4
30 Source1: %{name}.logrotate
33 Patch0: %{name}-config.patch
34 Patch1: %{name}-libdir.patch
35 Patch2: %{name}-makefile.patch
36 Patch3: %{name}-rundir.patch
37 URL: http://www.freeradius.org/
38 BuildRequires: Firebird-devel
39 BuildRequires: autoconf
40 BuildRequires: automake
41 BuildRequires: cyrus-sasl-devel
42 BuildRequires: gdbm-devel
43 BuildRequires: libeap-ikev2-devel
44 BuildRequires: libtool
45 BuildRequires: net-snmp-utils
46 BuildRequires: mysql-devel
47 BuildRequires: openldap-devel
48 BuildRequires: openssl-devel
49 BuildRequires: pam-devel
50 BuildRequires: perl-devel
51 BuildRequires: postgresql-devel
52 BuildRequires: python-devel
53 BuildRequires: rpmbuild(macros) >= 1.268
54 BuildRequires: sqlite3-devel
55 BuildRequires: unixODBC-devel
56 Requires(post,preun): /sbin/chkconfig
57 Requires(postun): /usr/sbin/groupdel
58 Requires(postun): /usr/sbin/userdel
59 Requires(pre): /bin/id
60 Requires(pre): /usr/bin/getgid
61 Requires(pre): /usr/sbin/groupadd
62 Requires(pre): /usr/sbin/useradd
63 Requires(pre): /usr/sbin/usermod
64 Requires: perl(DynaLoader) = %(%{__perl} -MDynaLoader -e 'print DynaLoader->VERSION')
66 Requires: %{name}-libs = %{version}-%{release}
67 Provides: group(radius)
68 Provides: user(radius)
69 Provides: freeradius = %{version}-%{release}
70 Obsoletes: cistron-radius
71 Obsoletes: freeradius < 2.0
72 Conflicts: logrotate < 3.7-4
73 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75 %define mibdir %{_datadir}/snmp/mibs
76 %define filterout_ld -Wl,--as-needed
79 The FreeRADIUS Server Project is an attempt to create a
80 high-performance and highly configurable GPL'd RADIUS server. It is
81 generally similar to the Livingston 2.0 RADIUS server, but has a lot
82 more features, and is much more configurable.
84 %description -l pl.UTF-8
85 Projekt FreeRadius ma na celu stworzenie szybkiego i wysoce
86 konfigurowalnego serwera RADIUS na licencji GPL. Ten jest podobny do
87 Livingston 2.0 RADIUS server ale ma o wiele więcej funkcji i posiada
88 większe możliwości konfigurowania.
91 Summary: Mysql module for %{name}
92 Group: Networking/Daemons/Radius
93 Requires: %{name} = %{version}-%{release}
95 %description module-mysql
96 Mysql module for %{name}.
98 %package module-unixodbc
99 Summary: odbcunix module for %{name}
100 Group: Networking/Daemons/Radius
101 Requires: %{name} = %{version}-%{release}
103 %description module-unixodbc
104 UnixODBC module for %{name}.
106 %package module-postgresql
107 Summary: PostgreSQL module for %{name}
108 Group: Networking/Daemons/Radius
109 Requires: %{name} = %{version}-%{release}
111 %description module-postgresql
112 PostgreSQL module for %{name}.
114 %package module-sqlite
115 Summary: Sqlite module for %{name}
116 Group: Networking/Daemons/Radius
117 Requires: %{name} = %{version}-%{release}
119 %description module-sqlite
120 Sqlite module for %{name}.
123 Summary: MIB database for %{name}
124 Summary(pl.UTF-8): Baza danych MIB dla %{name}
125 Group: Applications/System
129 MIB database for %{name}.
131 %description mibs -l pl.UTF-8
132 Baza danych MIB dla %{name}.
135 Summary: Freeradius libraries
139 Freeradius libraries.
142 Summary: Header files and devel library
143 Group: Development/Libraries
144 Requires: %{name}-libs = %{version}-%{release}
147 Header files and libraries.
157 # Keep it for future when ac/am regeneration will be ok
158 #find -name 'configure.[ia][nc]' -type f | while read FILE; do
159 # cd $(dirname "$FILE")
161 # %{__aclocal} -I $OLDPWD
163 # [ -f config.h.in ] && %{__autoheader}
169 --enable-strict-dependencies \
170 --with-experimental-modules \
171 --with-logdir=%{_var}/log/freeradius \
172 --with-system-libtool \
173 --without-rlm_eap_tnc \
174 --without-rlm_opendirectory \
175 --without-rlm_sql_db2 \
176 --without-rlm_sql_iodbc \
177 --without-rlm_sql_oracle
182 rm -rf $RPM_BUILD_ROOT
183 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,pam.d} \
184 $RPM_BUILD_ROOT%{_var}/log/{,archive}/freeradius/radacct \
185 $RPM_BUILD_ROOT%{mibdir}
187 %{__make} -j1 install \
190 install %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
191 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
192 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/radius
195 install mibs/FREERADIUS-*.txt $RPM_BUILD_ROOT%{mibdir}
198 rm -rf $RPM_BUILD_ROOT%{_docdir}/freeradius \
199 $RPM_BUILD_ROOT%{_libdir}/*.{a,la} \
200 $RPM_BUILD_ROOT%{_libdir}/freeradius/*.a \
201 $RPM_BUILD_ROOT%{_sbindir}/rc.* \
202 $RPM_BUILD_ROOT%{_sysconfdir}/*.pl \
203 $RPM_BUILD_ROOT%{_sysconfdir}/raddb/sql/oracle
206 rm -rf $RPM_BUILD_ROOT
209 %groupadd -g 29 -r -f radius
210 %useradd -u 29 -d %{_localstatedir} -s /bin/false -M -r -c "%{name}" -g radius radius
212 # TODO: should be in trigger instead.
213 # upgrade from previous versions of the package, where radius' gid was "nobody"
214 if [ "`id -g radius`" = "99" ]; then
216 chown radius:radius /var/log/%{name}/*.log >/dev/null 2>&1 || :
217 chown radius:radius /var/log/%{name}/radacct/* >/dev/null 2>&1 || :
221 /sbin/chkconfig --add %{name}
222 %service %{name} restart "%{name} daemon"
225 if [ "$1" = "0" ]; then
226 %service %{name} stop
227 /sbin/chkconfig --del %{name}
231 if [ "$1" = "0" ]; then
236 %post libs -p /sbin/ldconfig
237 %postun libs -p /sbin/ldconfig
240 %defattr(644,root,root,755)
242 %dir %{_sysconfdir}/raddb
243 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/*
244 # To separate package:
245 %exclude %{_sysconfdir}/raddb/sql/mysql
246 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
247 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/*
248 %attr(754,root,root) /etc/rc.d/init.d/%{name}
249 %attr(755,root,root) %{_bindir}/*
250 %attr(755,root,root) %{_sbindir}/*
251 %dir %{_libdir}/freeradius
252 %attr(755,root,root) %{_libdir}/freeradius/rlm_acctlog*.so
253 %attr(755,root,root) %{_libdir}/freeradius/rlm_acctlog*.la
254 %attr(755,root,root) %{_libdir}/freeradius/rlm_acct_unique*.so
255 %attr(755,root,root) %{_libdir}/freeradius/rlm_acct_unique*.la
256 %attr(755,root,root) %{_libdir}/freeradius/rlm_always*.so
257 %attr(755,root,root) %{_libdir}/freeradius/rlm_always*.la
258 %attr(755,root,root) %{_libdir}/freeradius/rlm_attr_filter*.so
259 %attr(755,root,root) %{_libdir}/freeradius/rlm_attr_filter*.la
260 %attr(755,root,root) %{_libdir}/freeradius/rlm_attr_rewrite*.so
261 %attr(755,root,root) %{_libdir}/freeradius/rlm_attr_rewrite*.la
262 %attr(755,root,root) %{_libdir}/freeradius/rlm_chap*.so
263 %attr(755,root,root) %{_libdir}/freeradius/rlm_chap*.la
264 %attr(755,root,root) %{_libdir}/freeradius/rlm_checkval*.so
265 %attr(755,root,root) %{_libdir}/freeradius/rlm_checkval*.la
266 %attr(755,root,root) %{_libdir}/freeradius/rlm_copy_packet*.so
267 %attr(755,root,root) %{_libdir}/freeradius/rlm_copy_packet*.la
268 %attr(755,root,root) %{_libdir}/freeradius/rlm_counter*.so
269 %attr(755,root,root) %{_libdir}/freeradius/rlm_counter*.la
270 %attr(755,root,root) %{_libdir}/freeradius/rlm_cram*.so
271 %attr(755,root,root) %{_libdir}/freeradius/rlm_cram*.la
272 %attr(755,root,root) %{_libdir}/freeradius/rlm_dbm*.so
273 %attr(755,root,root) %{_libdir}/freeradius/rlm_dbm*.la
274 %attr(755,root,root) %{_libdir}/freeradius/rlm_detail*.so
275 %attr(755,root,root) %{_libdir}/freeradius/rlm_detail*.la
276 %attr(755,root,root) %{_libdir}/freeradius/rlm_digest*.so
277 %attr(755,root,root) %{_libdir}/freeradius/rlm_digest*.la
278 %attr(755,root,root) %{_libdir}/freeradius/rlm_dynamic_clients*.so
279 %attr(755,root,root) %{_libdir}/freeradius/rlm_dynamic_clients*.la
280 %attr(755,root,root) %{_libdir}/freeradius/rlm_eap*.so
281 %attr(755,root,root) %{_libdir}/freeradius/rlm_eap*.la
282 %attr(755,root,root) %{_libdir}/freeradius/rlm_example*.so
283 %attr(755,root,root) %{_libdir}/freeradius/rlm_example*.la
284 %attr(755,root,root) %{_libdir}/freeradius/rlm_exec*.so
285 %attr(755,root,root) %{_libdir}/freeradius/rlm_exec*.la
286 %attr(755,root,root) %{_libdir}/freeradius/rlm_expiration*.so
287 %attr(755,root,root) %{_libdir}/freeradius/rlm_expiration*.la
288 %attr(755,root,root) %{_libdir}/freeradius/rlm_expr*.so
289 %attr(755,root,root) %{_libdir}/freeradius/rlm_expr*.la
290 %attr(755,root,root) %{_libdir}/freeradius/rlm_fastusers*.so
291 %attr(755,root,root) %{_libdir}/freeradius/rlm_fastusers*.la
292 %attr(755,root,root) %{_libdir}/freeradius/rlm_files*.so
293 %attr(755,root,root) %{_libdir}/freeradius/rlm_files*.la
294 %attr(755,root,root) %{_libdir}/freeradius/rlm_ippool*.so
295 %attr(755,root,root) %{_libdir}/freeradius/rlm_ippool*.la
296 %attr(755,root,root) %{_libdir}/freeradius/rlm_jradius*.so
297 %attr(755,root,root) %{_libdir}/freeradius/rlm_jradius*.la
298 %attr(755,root,root) %{_libdir}/freeradius/rlm_krb5*.so
299 %attr(755,root,root) %{_libdir}/freeradius/rlm_krb5*.la
300 %attr(755,root,root) %{_libdir}/freeradius/rlm_ldap*.so
301 %attr(755,root,root) %{_libdir}/freeradius/rlm_ldap*.la
302 %attr(755,root,root) %{_libdir}/freeradius/rlm_linelog*.so
303 %attr(755,root,root) %{_libdir}/freeradius/rlm_linelog*.la
304 %attr(755,root,root) %{_libdir}/freeradius/rlm_logintime*.so
305 %attr(755,root,root) %{_libdir}/freeradius/rlm_logintime*.la
306 %attr(755,root,root) %{_libdir}/freeradius/rlm_mschap*.so
307 %attr(755,root,root) %{_libdir}/freeradius/rlm_mschap*.la
308 %attr(755,root,root) %{_libdir}/freeradius/rlm_otp*.so
309 %attr(755,root,root) %{_libdir}/freeradius/rlm_otp*.la
310 %attr(755,root,root) %{_libdir}/freeradius/rlm_pam*.so
311 %attr(755,root,root) %{_libdir}/freeradius/rlm_pam*.la
312 %attr(755,root,root) %{_libdir}/freeradius/rlm_pap*.so
313 %attr(755,root,root) %{_libdir}/freeradius/rlm_pap*.la
314 %attr(755,root,root) %{_libdir}/freeradius/rlm_passwd*.so
315 %attr(755,root,root) %{_libdir}/freeradius/rlm_passwd*.la
316 %attr(755,root,root) %{_libdir}/freeradius/rlm_perl*.so
317 %attr(755,root,root) %{_libdir}/freeradius/rlm_perl*.la
318 %attr(755,root,root) %{_libdir}/freeradius/rlm_policy*.so
319 %attr(755,root,root) %{_libdir}/freeradius/rlm_policy*.la
320 %attr(755,root,root) %{_libdir}/freeradius/rlm_preprocess*.so
321 %attr(755,root,root) %{_libdir}/freeradius/rlm_preprocess*.la
322 %attr(755,root,root) %{_libdir}/freeradius/rlm_protocol_filter*.so
323 %attr(755,root,root) %{_libdir}/freeradius/rlm_protocol_filter*.la
324 %attr(755,root,root) %{_libdir}/freeradius/rlm_python*.so
325 %attr(755,root,root) %{_libdir}/freeradius/rlm_python*.la
326 %attr(755,root,root) %{_libdir}/freeradius/rlm_radutmp*.so
327 %attr(755,root,root) %{_libdir}/freeradius/rlm_radutmp*.la
328 %attr(755,root,root) %{_libdir}/freeradius/rlm_realm*.so
329 %attr(755,root,root) %{_libdir}/freeradius/rlm_realm*.la
330 %attr(755,root,root) %{_libdir}/freeradius/rlm_sim_files*.so
331 %attr(755,root,root) %{_libdir}/freeradius/rlm_sim_files*.la
332 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql-*.so
333 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql.so
334 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql-*.la
335 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql.la
336 %attr(755,root,root) %{_libdir}/freeradius/rlm_sqlcounter*.so
337 %attr(755,root,root) %{_libdir}/freeradius/rlm_sqlcounter*.la
338 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_firebird*.so
339 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_firebird*.la
340 %attr(755,root,root) %{_libdir}/freeradius/rlm_sqlhpwippool*.so
341 %attr(755,root,root) %{_libdir}/freeradius/rlm_sqlhpwippool*.la
342 %attr(755,root,root) %{_libdir}/freeradius/rlm_sqlippool*.so
343 %attr(755,root,root) %{_libdir}/freeradius/rlm_sqlippool*.la
344 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_log*.so
345 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_log*.la
346 %attr(755,root,root) %{_libdir}/freeradius/rlm_unix*.so
347 %attr(755,root,root) %{_libdir}/freeradius/rlm_unix*.la
348 %attr(755,root,root) %{_libdir}/freeradius/rlm_wimax*.so
349 %attr(755,root,root) %{_libdir}/freeradius/rlm_wimax*.la
350 %{_datadir}/freeradius
352 %attr(771,root,radius) %dir %{_var}/log/freeradius
353 %attr(771,root,radius) %dir %{_var}/log/freeradius/radacct
354 %attr(771,root,radius) %dir %{_var}/log/archive/freeradius
355 %attr(771,root,radius) %dir %{_var}/log/archive/freeradius/radacct
356 %attr(775,root,radius) %dir /var/run/freeradius
359 %defattr(644,root,root,755)
360 %dir %{_sysconfdir}/raddb/sql/mysql
361 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/sql/mysql/*
362 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_mysql*.la
363 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_mysql*.so
366 %defattr(644,root,root,755)
367 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_sqlite*.so
368 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_sqlite*.la
370 %files module-postgresql
371 %defattr(644,root,root,755)
372 %dir %{_sysconfdir}/raddb/sql/postgresql
373 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/raddb/sql/postgresql/*
374 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_postgresql*.so
375 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_postgresql*.la
377 %files module-unixodbc
378 %defattr(644,root,root,755)
379 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_unixodbc*.so
380 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_unixodbc*.la
383 %defattr(644,root,root,755)
384 %attr(755,root,root) %{_libdir}/libfreeradius-eap-?.?.?.so
385 %attr(755,root,root) %{_libdir}/libfreeradius-radius-?.?.?.so
386 %dir %{_libdir}/freeradius
389 %defattr(644,root,root,755)
390 %{_includedir}/freeradius
391 %{_libdir}/libfreeradius-eap.so
392 %{_libdir}/libfreeradius-radius.so
395 %defattr(644,root,root,755)