fdb9ce81851dcf4b969bc982b560db543144c137
[freeradius.git] / suse / freeradius.spec
1 #
2 # spec file for package freeradius-server (Version 2.1.8)
3 #
4
5
6
7 Name:         freeradius-server
8 Version: 2.2.7
9 Release:      0
10 License:      GPLv2 ; LGPLv2.1
11 Group:        Productivity/Networking/Radius/Servers
12 Provides:     radiusd
13 Provides:     freeradius = %{version}
14 Obsoletes:    freeradius < %{version}
15 Conflicts:    radiusd-livingston radiusd-cistron icradius
16 Url:          http://www.freeradius.org/
17 Summary:      Very Highly Configurable Radius Server
18 Source:       ftp://ftp.freeradius.org/pub/freeradius/%{name}-%{version}.tar.bz2
19 Source90:     %{name}-rpmlintrc
20 Source104:    %{name}-tmpfiles.conf
21 Patch0:       freeradius-server-2.1.6-suseinit.patch
22 PreReq:       /usr/sbin/useradd /usr/sbin/groupadd
23 PreReq:       perl
24 PreReq:       %insserv_prereq %fillup_prereq
25 BuildRoot:    %{_tmppath}/%{name}-%{version}-build
26 %define _oracle_support 0
27 %define apache2_sysconfdir /etc/apache2
28 Requires:      %{name}-libs = %{version}
29 Requires:      python
30 Recommends:    logrotate
31 BuildRequires: cyrus-sasl-devel
32 BuildRequires: db-devel
33 BuildRequires: gcc-c++
34 BuildRequires: gdbm-devel
35 BuildRequires: gettext-devel
36 BuildRequires: glibc-devel
37 BuildRequires: libtool
38 BuildRequires: ncurses-devel
39 BuildRequires: net-snmp-devel
40 BuildRequires: openldap2-devel
41 BuildRequires: openssl
42 BuildRequires: openssl-devel
43 BuildRequires: pam-devel
44 BuildRequires: perl
45 BuildRequires: postgresql-devel
46 BuildRequires: python-devel
47 BuildRequires: sed
48 BuildRequires: unixODBC-devel
49
50
51 %if 0%{?suse_version} > 910
52 BuildRequires: krb5-devel
53 %endif
54 %if 0%{?suse_version} > 930
55 BuildRequires: libcom_err
56 %endif
57 %if 0%{?suse_version} > 1000
58 BuildRequires: libapr1-devel
59 %endif
60 %if 0%{?suse_version} > 1020
61 BuildRequires: libmysqlclient-devel
62 %endif
63 %if 0%{?suse_version} > 1100
64 BuildRequires: libpcap-devel
65 BuildRequires: sqlite3-devel
66 %endif
67
68
69 %description
70 The FreeRADIUS server has a number of features found in other servers,
71 and additional features not found in any other server. Rather than
72 doing a feature by feature comparison, we will simply list the features
73 of the server, and let you decide if they satisfy your needs.
74
75 Support for RFC and VSA Attributes Additional server configuration
76 attributes Selecting a particular configuration Authentication methods
77 Accounting methods
78
79 %if %_oracle_support == 1
80
81 %package oracle
82
83
84 BuildRequires: oracle-instantclient-basic oracle-instantclient-devel
85 Group:        Productivity/Networking/Radius/Servers
86 Summary:      FreeRADIUS Oracle database support
87 Requires:     oracle-instantclient-basic
88 Requires:     %{name}-libs = %{version}
89 Requires:     %{name} = %{version}
90
91 %description oracle
92 The FreeRADIUS server has a number of features found in other servers,
93 and additional features not found in any other server. Rather than
94 doing a feature by feature comparison, we will simply list the features
95 of the server, and let you decide if they satisfy your needs.
96
97 Support for RFC and VSA Attributes Additional server configuration
98 attributes Selecting a particular configuration Authentication methods
99 %endif
100
101 %package libs
102 License:      GPLv2 ; LGPLv2.1
103 Group:        Productivity/Networking/Radius/Servers
104 Summary:      FreeRADIUS shared library
105
106 %description libs
107 The FreeRADIUS shared library
108
109
110
111 Authors:
112 --------
113     Miquel van Smoorenburg <miquels@cistron.nl>
114     Alan DeKok <aland@ox.org>
115     Mike Machado <mike@innercite.com>
116     Alan Curry
117     various other people
118
119 %package utils
120 License:      GPLv2 ; LGPLv2.1
121 Group:        Productivity/Networking/Radius/Clients
122 Summary:      FreeRADIUS Clients
123 Requires:     %{name}-libs = %{version}
124
125 %description utils
126 The FreeRADIUS server has a number of features found in other servers
127 and additional features not found in any other server. Rather than
128 doing a feature by feature comparison, we will simply list the features
129 of the server, and let you decide if they satisfy your needs.
130
131 Support for RFC and VSA Attributes Additional server configuration
132 attributes Selecting a particular configuration Authentication methods
133
134 %package dialupadmin
135 License:    GPLv2 ; LGPLv2.1
136 Group:          Productivity/Networking/Radius/Servers
137 Summary:        Web management for FreeRADIUS
138 Requires:       http_daemon
139 Requires:       perl-DateManip
140 %if 0%{?suse_version} > 1000
141 Requires:       apache2-mod_php5
142 Requires:       php5
143 Requires:       php5-ldap
144 Requires:       php5-mysql
145 Requires:       php5-pgsql
146 %else
147 Requires:       apache2-mod_php4
148 Requires:       php4
149 Requires:       php4-ldap
150 Requires:       php4-mysql
151 Requires:       php4-pgsql
152 Requires:       php4-session
153 %endif
154
155 %description dialupadmin
156 Dialup Admin supports users either in SQL (MySQL or PostgreSQL are
157 supported) or in LDAP. Apart from the web pages, it also includes a
158 number of scripts to make the administrator's life a lot easier.
159
160
161
162 Authors:
163 --------
164     Kostas Kalevras <kkalev at noc.ntua.gr>
165     Basilis Pappas <vpappas at noc.ntua.gr>
166     Panagiotis Christias <christia at noc.ntua.gr>
167     Thanasis Duitsis <aduitsis at noc.ntua.gr>
168
169 %package devel
170 License:        GPLv2 ; LGPLv2.1
171 Group:        Development/Libraries/C and C++
172 Summary:      FreeRADIUS Development Files (static libs)
173 Requires:     %{name}-libs = %{version}
174
175 %description devel
176 These are the static libraries for the FreeRADIUS package.
177
178
179
180 Authors:
181 --------
182     Miquel van Smoorenburg <miquels@cistron.nl>
183     Alan DeKok <aland@ox.org>
184     Mike Machado <mike@innercite.com>
185     Alan Curry
186     various other people
187
188 %package doc
189 License:        GPLv2 ; LGPLv2.1
190 Group:          Productivity/Networking/Radius/Servers
191 Summary:        FreeRADIUS Documentation
192 Requires:       %{name}
193
194 %description doc
195 This package contains FreeRADIUS Documentation
196
197
198
199 Authors:
200 --------
201     Miquel van Smoorenburg <miquels@cistron.nl>
202     Alan DeKok <aland@ox.org>
203     Mike Machado <mike@innercite.com>
204     Alan Curry
205     various other people
206
207 %prep
208 %setup -q
209 %patch0
210
211 %build
212 # This package failed when testing with -Wl,-as-needed being default.
213 # So we disable it here, if you want to retest, just delete this comment and the line below.
214 export SUSE_ASNEEDED=0
215 export CFLAGS="$RPM_OPT_FLAGS -fstack-protector -fno-strict-aliasing"
216 %ifarch x86_64 ppc ppc64 s390 s390x
217 export CFLAGS="$CFLAGS -fPIC -DPIC"
218 %endif
219 export LDFLAGS="-pie"
220 %configure \
221                 --libdir=%{_libdir}/freeradius \
222         --disable-ltdl-install \
223                 --with-edir \
224                 --with-experimental-modules \
225         --with-gnu-ld \
226                 --with-system-libtool \
227                 --with-system-libltdl \
228         --with-udpfromto \
229         --with-rlm-krb5-lib-dir=%{_libdir} \
230                 --without-rlm_opendirectory \
231                 --without-rlm_sqlhpwippool \
232 %if 0%{?suse_version} <= 920 
233                 --without-rlm_sql_mysql \
234                 --without-rlm_krb5 \
235 %endif
236 %if %{_oracle_support} == 1
237                 --with-rlm_sql_oracle \
238                 --with-oracle-lib-dir=%{_libdir}/oracle/10.1.0.3/client/lib/
239 %else
240                 --without-rlm_sql_oracle
241 %endif
242 # no parallel build possible
243 make
244
245 %install
246 mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/radiusd
247 make install R=$RPM_BUILD_ROOT INSTALLSTRIP=
248 # modify default configuration
249 RADDB=$RPM_BUILD_ROOT%{_sysconfdir}/raddb
250 perl -i -pe 's/^#user =.*$/user = radiusd/'   $RADDB/radiusd.conf
251 perl -i -pe 's/^#group =.*$/group = radiusd/' $RADDB/radiusd.conf
252 /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}/freeradius
253 # logs
254 touch $RPM_BUILD_ROOT%{_localstatedir}/log/radius/radutmp
255 touch $RPM_BUILD_ROOT%{_localstatedir}/log/radius/radius.log
256 # SuSE
257 install -d     $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
258 install -d     $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
259 install -m 644 suse/radiusd-pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/radiusd
260 install -m 644 suse/radiusd-logrotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/freeradius-server
261 install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/init.d
262 #install    -m 744 suse/rcradiusd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/freeradius
263 #ln -sf ../..%{_sysconfdir}/init.d/freeradius $RPM_BUILD_ROOT%{_sbindir}/rcfreeradius
264 install    -m 744 suse/rcradiusd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/radiusd
265 ln -sf ../..%{_sysconfdir}/init.d/radiusd $RPM_BUILD_ROOT%{_sbindir}/rcradiusd
266 install -d %{buildroot}%{_sysconfdir}/tmpfiles.d
267 install -m 0644 %{SOURCE104} %{buildroot}%{_sysconfdir}/tmpfiles.d/radiusd.conf
268
269 # install dialup_admin
270 DIALUPADMIN=$RPM_BUILD_ROOT%{_datadir}/dialup_admin
271 mkdir -p $DIALUPADMIN
272 cp -r dialup_admin/* $RPM_BUILD_ROOT%{_datadir}/dialup_admin
273 perl -i -pe 's/^#general_base_dir\:.*$/general_base_dir\: \/usr\/share\/freeradius-dialupadmin/'   $DIALUPADMIN/conf/admin.conf
274 perl -i -pe 's/^#general_radiusd_base_dir\:.*$/general_radiusd_base_dir\: \//'   $DIALUPADMIN/conf/admin.conf
275 perl -i -pe 's/^#general_snmpwalk_command\:.*$/general_snmpwalk_command\: \/usr\/bin\/snmpwalk/'   $DIALUPADMIN/conf/admin.conf
276 perl -i -pe 's/^#general_snmpget_command\:.*$/general_snmpget_command\: \/usr\/bin\/snmpget/'   $DIALUPADMIN/conf/admin.conf
277 # apache2 config
278 install -d -m 755 $RPM_BUILD_ROOT%{apache2_sysconfdir}/conf.d
279 install -m 644 suse/admin-httpd.conf $RPM_BUILD_ROOT%{apache2_sysconfdir}/conf.d/radius.conf
280 # remove unneeded stuff
281 rm -rf doc/00-OLD
282 rm -f $RPM_BUILD_ROOT%{_sbindir}/rc.radiusd
283 rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/freeradius*
284 rm -rf $RPM_BUILD_ROOT%{_libdir}/freeradius/*.*a
285
286 %pre
287 %{_sbindir}/groupadd -r radiusd 2> /dev/null || :
288 %{_sbindir}/useradd -r -g radiusd -s /bin/false -c "Radius daemon" -d \
289                   %{_localstatedir}/lib/radiusd radiusd 2> /dev/null || :
290
291 %post
292 %ifarch x86_64
293 # Modify old installs to look for /usr/lib64/freeradius
294 /usr/bin/perl -i -pe "s:/usr/lib/freeradius:/usr/lib64/freeradius:" /etc/raddb/radiusd.conf
295 %endif
296
297 # Generate default certificates
298 if [ $1 -eq 1 ]; then
299     /etc/raddb/certs/bootstrap
300 fi
301 chgrp radiusd /etc/raddb/certs/*
302 %{fillup_and_insserv radiusd}
303
304 %preun
305 %stop_on_removal radiusd
306
307 %postun
308 %restart_on_update radiusd
309 %{insserv_cleanup}
310
311 %clean
312 rm -rf $RPM_BUILD_ROOT
313
314 %files doc
315 %defattr(-,root,root)
316 %doc doc/*
317
318 %files
319 %defattr(-,root,root)
320 # doc
321 %doc suse/README.SuSE
322 %doc COPYRIGHT CREDITS LICENSE README.rst doc/ChangeLog
323 %doc doc/examples/*
324 # SuSE
325 #%{_sysconfdir}/init.d/freeradius
326 %{_sysconfdir}/init.d/radiusd
327 %config %{_sysconfdir}/pam.d/radiusd
328 %config %{_sysconfdir}/logrotate.d/freeradius-server
329 %dir %{_sysconfdir}/tmpfiles.d
330 %config %{_sysconfdir}/tmpfiles.d/radiusd.conf
331 %{_sbindir}/rcradiusd
332 %dir %attr(755,radiusd,radiusd) %{_localstatedir}/lib/radiusd
333 # configs
334 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb
335 %defattr(-,root,radiusd)
336 %config(noreplace) %{_sysconfdir}/raddb/dictionary
337 %config(noreplace) %{_sysconfdir}/raddb/acct_users
338 %config(noreplace) %{_sysconfdir}/raddb/attrs
339 %config(noreplace) %{_sysconfdir}/raddb/attrs.access_reject
340 %config(noreplace) %{_sysconfdir}/raddb/attrs.accounting_response
341 %config(noreplace) %{_sysconfdir}/raddb/attrs.pre-proxy
342 %config(noreplace) %{_sysconfdir}/raddb/attrs.access_challenge
343 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/clients.conf
344 %config(noreplace) %{_sysconfdir}/raddb/hints
345 %config(noreplace) %{_sysconfdir}/raddb/huntgroups
346 %config(noreplace) %{_sysconfdir}/raddb/ldap.attrmap
347 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/sqlippool.conf
348 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/preproxy_users
349 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/proxy.conf
350 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/radiusd.conf
351 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/sql.conf
352 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/modules
353 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/modules/*
354 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/sql
355 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/sql/mssql
356 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/sql/mysql
357 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/sql/oracle
358 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/sql/postgresql
359 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/sql/ndb
360 %{_sysconfdir}/raddb/sql/ndb/README
361 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/sql/*/*.conf
362 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/sql/*/*.sql
363 %{_sysconfdir}/raddb/sql/oracle/msqlippool.txt
364 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/users
365 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/experimental.conf
366 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/certs
367 %{_sysconfdir}/raddb/certs/Makefile
368 %{_sysconfdir}/raddb/certs/README
369 %{_sysconfdir}/raddb/certs/xpextensions
370 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/certs/*.cnf
371 %attr(750,root,radiusd) %{_sysconfdir}/raddb/certs/bootstrap
372 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/sites-available
373 %attr(640,root,radiusd) %{_sysconfdir}/raddb/sites-available/*
374 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/sites-available/*
375 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb/sites-enabled
376 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/sites-enabled/*
377 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/eap.conf
378 %attr(640,root,radiusd) %{_sysconfdir}/raddb/example.pl
379 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/panic.gdb
380 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/policy.conf
381 %{_sysconfdir}/raddb/policy.txt
382 %attr(640,root,radiusd) %config(noreplace) %{_sysconfdir}/raddb/templates.conf
383 %attr(700,radiusd,radiusd) %dir %{_localstatedir}/run/radiusd/
384 # binaries
385 %defattr(-,root,root)
386 %{_sbindir}/checkrad
387 %{_sbindir}/radiusd
388 %{_sbindir}/radmin
389 %{_sbindir}/radwatch
390 %{_sbindir}/raddebug
391 # man-pages
392 %doc %{_mandir}/man5/*
393 %doc %{_mandir}/man8/*
394 # dictionaries
395 %attr(755,root,root) %dir %{_datadir}/freeradius
396 %{_datadir}/freeradius/*
397 # logs
398 %attr(700,radiusd,radiusd) %dir %{_localstatedir}/log/radius/
399 %attr(700,radiusd,radiusd) %dir %{_localstatedir}/log/radius/radacct/
400 %attr(644,radiusd,radiusd) %{_localstatedir}/log/radius/radutmp
401 %config(noreplace) %attr(600,radiusd,radiusd) %{_localstatedir}/log/radius/radius.log
402 # RADIUS Loadable Modules
403 %attr(755,root,root) %dir %{_libdir}/freeradius
404 %attr(755,root,root) %{_libdir}/freeradius/rlm_*.so*
405
406 %files utils
407 %defattr(-,root,root)
408 %doc %{_mandir}/man1/*
409 %{_bindir}/*
410
411 %files libs
412 %defattr(-,root,root)
413 # RADIUS shared libs
414 %attr(755,root,root) %dir %{_libdir}/freeradius
415 %attr(755,root,root) %{_libdir}/freeradius/lib*.so*
416 %if %{_oracle_support} == 1
417
418 %files oracle
419 %defattr(-,radiusd,radiusd)
420 %attr(755,root,root) %dir %{_libdir}/freeradius
421 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_oracle*.so*
422 %endif
423
424 %files dialupadmin
425 %defattr(-,root,root)
426 %dir %{_datadir}/dialup_admin/
427 %{_datadir}/dialup_admin/Makefile
428 %{_datadir}/dialup_admin/bin/
429 %{_datadir}/dialup_admin/doc/
430 %{_datadir}/dialup_admin/htdocs/
431 %{_datadir}/dialup_admin/html/
432 %{_datadir}/dialup_admin/lib/
433 %{_datadir}/dialup_admin/sql/
434 %dir %{_datadir}/dialup_admin/conf/
435 %config(noreplace) %{_datadir}/dialup_admin/conf/*
436 %dir %{apache2_sysconfdir}
437 %dir %{apache2_sysconfdir}/conf.d
438 %config(noreplace) %{apache2_sysconfdir}/conf.d/radius.conf
439 %{_datadir}/dialup_admin/Changelog
440 %{_datadir}/dialup_admin/README
441
442 %files devel
443 %defattr(-,root,root)
444 %dir %attr(755,root,root) %{_includedir}/freeradius
445 %attr(644,root,root) %{_includedir}/freeradius/*.h
446
447 %changelog
448 * Fri Feb 10 2012 nix@opensuse.org
449 - Add a /var/run/radiusd tmpfile.d config
450 - Add -fno-strict-aliasing to compiler flags to fix warning
451 - Remove -DLDAP_DEPRECATED from compiler flags
452 - Disable rlm_sqlhpwippool as there don't seem to be many users and
453   it is throwing a compiler warning at present
454 * Tue Feb  7 2012 nix@opensuse.org
455 - addFilter("dir-or-file-in-var-run") to rpmlintrc to enable builds
456   on newer versions of openSUSE. Need to investigate fixing this..
457 * Tue Feb  7 2012 nix@opensuse.org
458 - Rename freeradius init script to radiusd to match package standards
459 * Tue Feb  7 2012 nix@opensuse.org
460 - rename logrotate script to match package name
461 * Tue Feb  7 2012 nix@opensuse.org
462 - Remove radrelay related stuff as it is now handled internallly
463   rather than as a separate process
464 * Sat Nov 19 2011 nix@opensuse.org
465 - Update to version 2.1.12
466 * Tue Aug 23 2011 nix@opensuse.org
467 - Update to version 2.1.11
468 * Wed Mar 17 2010 puzel@novell.com
469 - remove unused patches:
470   - freeradius-1.1.0-python.patch
471   - ltdl.patch
472   - radius_logger_apn.patch
473   - token-support-freeradius-1.1.6.patch
474 - specfile cleanup as preparation to merge with
475   obs://networking/freeradius-server
476 * Wed Mar 10 2010 nix@opensuse.org
477 - Upgrade to version 2.1.8