Update to FreeRADIUS Server 2.0.0 (Sync with openSUSE Build Service)
[freeradius.git] / suse / freeradius.spec
1 Name:         freeradius-server
2 License:      GPL, LGPL
3 Group:        Productivity/Networking/Radius/Servers
4 Provides:     radiusd
5 Conflicts:    freeradius
6 Version:      2.0.0
7 Release:      0
8 URL:          http://www.freeradius.org/
9 Summary:      The world's most popular RADIUS Server
10 Source0:      %{name}-%{version}.tar.bz2
11
12 PreReq:       /usr/sbin/useradd /usr/sbin/groupadd
13 PreReq:       perl
14 %if %{?suse_version:1}0
15 PreReq:       %insserv_prereq %fillup_prereq
16 %endif
17
18 BuildRoot:    %{_tmppath}/%{name}-%{version}-build
19
20 %define _oracle_support 0
21
22 %define apxs2 apxs2-prefork
23 %define apache2_sysconfdir %(%{apxs2} -q SYSCONFDIR)
24 Requires:     %{name}-libs = %{version}
25 Requires:     python
26
27
28 BuildRequires: db-devel
29 BuildRequires: e2fsprogs-devel
30 BuildRequires: gcc-c++
31 BuildRequires: gdbm-devel
32 BuildRequires: gettext-devel
33 BuildRequires: glibc-devel
34 BuildRequires: libeap-ikev2-devel
35 BuildRequires: libtool
36 BuildRequires: ncurses-devel
37 BuildRequires: net-snmp-devel
38 BuildRequires: openldap2-devel
39 BuildRequires: openssl-devel
40 BuildRequires: pam-devel
41 BuildRequires: libpcap
42 BuildRequires: perl
43 BuildRequires: postgresql-devel
44 BuildRequires: python-devel
45 BuildRequires: sed
46 BuildRequires: unixODBC-devel
47 BuildRequires: zlib-devel
48
49 %if %{?fedora_version:1}0
50 BuildRequires: cyrus-sasl-devel
51 BuildRequires: httpd-devel
52 BuildRequires: libtool-ltdl-devel
53 BuildRequires: perl-devel
54 BuildRequires: syslog-ng
55 BuildRequires: mysql-devel
56 %endif
57
58 %if %{?mandriva_version:1}0
59 BuildRequires: apache2-devel
60 BuildRequires: libtool-devel
61 BuildRequires: mysql-devel
62 %endif
63
64 %if %{?suse_version:1}0
65 BuildRequires: apache2-devel
66 BuildRequires: cyrus-sasl-devel
67 %if 0%{?suse_version} > 910
68 BuildRequires: bind-libs
69 BuildRequires: krb5-devel
70 %endif
71 %if 0%{?suse_version} > 930
72 BuildRequires: libcom_err
73 %endif
74 %if 0%{?suse_version} > 1000
75 BuildRequires: libapr1-devel
76 %endif
77 %if 0%{?suse_version} > 1020
78 BuildRequires: libmysqlclient-devel
79 %else
80 BuildRequires: mysql-devel
81 %endif
82 %endif
83
84 %description
85 The FreeRADIUS server has a number of features found in other servers,
86 and additional features not found in any other server. Rather than
87 doing a feature by feature comparison, we will simply list the features
88 of the server, and let you decide if they satisfy your needs.
89
90 Support for RFC and VSA Attributes Additional server configuration
91 attributes Selecting a particular configuration Authentication methods
92 Accounting methods
93
94 %if %_oracle_support == 1
95 %package oracle
96 BuildRequires: oracle-instantclient-basic oracle-instantclient-devel
97 Group:        Productivity/Networking/Radius/Servers
98 Summary:      FreeRADIUS Oracle database support
99 Requires:     oracle-instantclient-basic
100 Requires:     %{name}-libs = %{version}
101 Requires:     %{name} = %{version}
102 Autoreqprov:  off
103
104 %description oracle
105 The FreeRADIUS server has a number of features found in other servers,
106 and additional features not found in any other server. Rather than
107 doing a feature by feature comparison, we will simply list the features
108 of the server, and let you decide if they satisfy your needs.
109
110 Support for RFC and VSA Attributes Additional server configuration
111 attributes Selecting a particular configuration Authentication methods
112 %endif
113
114 %package libs
115 Group:        Productivity/Networking/Radius/Servers
116 Summary:      FreeRADIUS share library
117
118 %description libs
119 The FreeRADIUS shared library
120
121 %package utils
122 Group:        Productivity/Networking/Radius/Clients
123 Summary:      FreeRADIUS Clients
124 Requires:     %{name}-libs = %{version}
125
126 %description utils
127 The FreeRADIUS server has a number of features found in other servers,
128 and additional features not found in any other server. Rather than
129 doing a feature by feature comparison, we will simply list the features
130 of the server, and let you decide if they satisfy your needs.
131
132 Support for RFC and VSA Attributes Additional server configuration
133 attributes Selecting a particular configuration Authentication methods
134
135 %package dialupadmin
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 Autoreqprov:    off
155
156 %description dialupadmin
157 Dialup Admin supports users either in SQL (MySQL or PostgreSQL are
158 supported) or in LDAP. Apart from the web pages, it also includes a
159 number of scripts to make the administrator's life a lot easier.
160
161
162 %package devel
163 Group:        Development/Libraries/C and C++
164 Summary:      FreeRADIUS Development Files (static libs)
165 Autoreqprov:  off
166 Requires:     %{name}-libs = %{version}
167
168 %description devel
169 These are the static libraries for the FreeRADIUS package.
170
171
172 %if %{?suse_version:1}0
173 %debug_package
174 %endif
175
176 %prep
177 %setup -q
178
179 rm -rf `find . -name CVS`
180
181 %build
182 export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED -fPIC -DPIC"
183 #export CFLAGS="$CFLAGS -std=c99 -pedantic"
184 autoreconf
185
186 %configure \
187                 --libdir=%{_libdir}/freeradius \
188                 --disable-ltdl-install \
189                 --enable-developer \
190                 --enable-strict-dependencies \
191                 --with-edir \
192                 --with-experimental-modules \
193                 --with-system-libtool \
194                 --without-rlm_opendirectory \
195 %if %{?fedora_version:1}0
196                 --with-rlm-krb5-include-dir=/usr/kerberos/include \
197                 --with-rlm-krb5-lib-dir=/usr/kerberos/lib \
198 %endif
199 %if %{?mandriva_version:1}0
200                 --without-rlm_dbm \
201                 --without-rlm_krb5 \
202                 --without-rlm_perl \
203 %endif
204 %if %{?suse_version:1}0
205 %if 0%{?suse_version} <= 920 
206                 --without-rlm_sql_mysql \
207                 --without-rlm_krb5 \
208 %endif
209 %endif
210 %if %_oracle_support == 1
211                 --with-rlm_sql_oracle \
212                 --with-oracle-lib-dir=%{_libdir}/oracle/10.1.0.3/client/lib/
213 %else
214                 --without-rlm_sql_oracle
215 %endif
216
217 # no parallel build possible
218 make
219
220 %install
221 rm -rf $RPM_BUILD_ROOT
222 mkdir -p $RPM_BUILD_ROOT
223 mkdir -p $RPM_BUILD_ROOT/var/lib/radiusd
224 make install R=$RPM_BUILD_ROOT
225 # modify default configuration
226 RADDB=$RPM_BUILD_ROOT%{_sysconfdir}/raddb
227 perl -i -pe 's/^#user =.*$/user = radiusd/'   $RADDB/radiusd.conf
228 perl -i -pe 's/^#group =.*$/group = radiusd/' $RADDB/radiusd.conf
229 perl -i -pe 's/^#user =.*$/user = radiusd/'   $RADDB/radrelay.conf
230 perl -i -pe 's/^#group =.*$/group = radiusd/' $RADDB/radrelay.conf
231 #ldconfig -n $RPM_BUILD_ROOT/usr/lib/freeradius
232 # logs
233 touch $RPM_BUILD_ROOT/var/log/radius/radutmp
234 touch $RPM_BUILD_ROOT/var/log/radius/radius.log
235 # SuSE
236 install -d     $RPM_BUILD_ROOT/etc/pam.d
237 install -d     $RPM_BUILD_ROOT/etc/logrotate.d
238 %if 0%{?suse_version} > 920
239 install -m 644 suse/radiusd-pam $RPM_BUILD_ROOT/etc/pam.d/radiusd
240 %else
241 install -m 644 suse/radiusd-pam-old $RPM_BUILD_ROOT/etc/pam.d/radiusd
242 %endif
243 install -m 644 suse/radiusd-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/radiusd
244 install -d -m 755 $RPM_BUILD_ROOT/etc/init.d
245 install    -m 744 suse/rcradiusd $RPM_BUILD_ROOT/etc/init.d/freeradius
246 ln -sf ../../etc/init.d/freeradius $RPM_BUILD_ROOT/usr/sbin/rcfreeradius
247 cp $RPM_BUILD_ROOT/usr/sbin/radiusd $RPM_BUILD_ROOT/usr/sbin/radrelay
248 install    -m 744 suse/rcradius-relayd $RPM_BUILD_ROOT/etc/init.d/freeradius-relay
249 ln -sf ../../etc/init.d/freeradius-relay $RPM_BUILD_ROOT/usr/sbin/rcfreeradius-relay
250 mv -v doc/README doc/README.doc
251 # install dialup_admin
252 DIALUPADMIN=$RPM_BUILD_ROOT%{_datadir}/dialup_admin
253 mkdir -p $DIALUPADMIN
254 cp -r dialup_admin/* $RPM_BUILD_ROOT%{_datadir}/dialup_admin
255 perl -i -pe 's/^#general_base_dir\:.*$/general_base_dir\: \/usr\/share\/freeradius-dialupadmin/'   $DIALUPADMIN/conf/admin.conf
256 perl -i -pe 's/^#general_radiusd_base_dir\:.*$/general_radiusd_base_dir\: \//'   $DIALUPADMIN/conf/admin.conf
257 perl -i -pe 's/^#general_snmpwalk_command\:.*$/general_snmpwalk_command\: \/usr\/bin\/snmpwalk/'   $DIALUPADMIN/conf/admin.conf
258 perl -i -pe 's/^#general_snmpget_command\:.*$/general_snmpget_command\: \/usr\/bin\/snmpget/'   $DIALUPADMIN/conf/admin.conf
259 # apache2 config
260 install -d -m 755 $RPM_BUILD_ROOT%{apache2_sysconfdir}/conf.d
261 install -m 644 suse/admin-httpd.conf $RPM_BUILD_ROOT%{apache2_sysconfdir}/conf.d/radius.conf
262 # remove unneeded stuff
263 rm -rf doc/00-OLD
264 rm -f $RPM_BUILD_ROOT/usr/sbin/rc.radiusd
265 rm -rf $RPM_BUILD_ROOT/usr/share/doc/freeradius*
266 rm -rf $RPM_BUILD_ROOT/%{_libdir}/freeradius/*.la
267
268 %pre
269 /usr/sbin/groupadd -r radiusd 2> /dev/null || :
270 /usr/sbin/useradd -r -g radiusd -s /bin/false -c "Radius daemon" -d \
271                   /var/lib/radiusd radiusd 2> /dev/null || :
272
273 %post
274 %ifarch x86_64
275 # Modify old installs to look for /usr/lib64/freeradius
276 /usr/bin/perl -i -pe "s:/usr/lib/freeradius:/usr/lib64/freeradius:" /etc/raddb/radiusd.conf
277 %endif
278
279 # Generate default certificates
280 /etc/raddb/certs/bootstrap
281
282 %{fillup_and_insserv -s freeradius START_RADIUSD }
283 %if 0%{?suse_version} > 820
284
285 %preun
286 %stop_on_removal freeradius
287 %endif
288
289 %postun
290 %if 0%{?suse_version} > 820
291 %restart_on_update freeradius
292 %endif
293 %{insserv_cleanup}
294
295 %clean
296 rm -rf $RPM_BUILD_ROOT
297
298 %files
299 %defattr(-,root,root)
300 # doc
301 %doc suse/README.SuSE
302 %doc doc/* LICENSE COPYRIGHT CREDITS README
303 %doc doc/examples/*
304 # SuSE
305 /etc/init.d/freeradius
306 /etc/init.d/freeradius-relay
307 %config /etc/pam.d/radiusd
308 %config /etc/logrotate.d/radiusd
309 /usr/sbin/rcfreeradius
310 /usr/sbin/rcfreeradius-relay
311 %dir %attr(755,radiusd,radiusd) /var/lib/radiusd
312 # configs
313 %dir %attr(750,-,radiusd) /etc/raddb
314 %defattr(-,root,radiusd)
315 %config(noreplace) /etc/raddb/dictionary
316 %config(noreplace) /etc/raddb/acct_users
317 %config(noreplace) /etc/raddb/attrs
318 %config(noreplace) /etc/raddb/attrs.access_reject
319 %config(noreplace) /etc/raddb/attrs.accounting_response
320 %config(noreplace) /etc/raddb/attrs.pre-proxy
321 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/clients.conf
322 %config(noreplace) /etc/raddb/hints
323 %config(noreplace) /etc/raddb/huntgroups
324 %config(noreplace) /etc/raddb/ldap.attrmap
325 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sqlippool.conf
326 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/preproxy_users
327 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/proxy.conf
328 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/radiusd.conf
329 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/snmp.conf
330 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sql.conf
331 %dir %attr(640,-,radiusd) /etc/raddb/sql
332 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sql/*/*.conf
333 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sql/*/*.sql
334 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/users
335 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/experimental.conf
336 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/otp.conf
337 %dir %attr(750,-,radiusd) /etc/raddb/certs
338 /etc/raddb/certs/Makefile
339 /etc/raddb/certs/README
340 /etc/raddb/certs/xpextensions
341 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/certs/*.cnf
342 %attr(750,-,radiusd) /etc/raddb/certs/bootstrap
343 %attr(750,-,radiusd) %config /etc/raddb/sites-available/example
344 %attr(640,-,radiusd) /etc/raddb/sites-available/*
345 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sites-enabled/*
346 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/eap.conf
347 %attr(640,-,radiusd) /etc/raddb/example.pl
348 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/policy.conf
349 /etc/raddb/policy.txt
350 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/templates.conf
351 %attr(700,radiusd,radiusd) %dir /var/run/radiusd/
352 # binaries
353 %defattr(-,root,root)
354 /usr/sbin/check-radiusd-config
355 /usr/sbin/checkrad
356 /usr/sbin/radiusd
357 /usr/sbin/radrelay
358 /usr/sbin/radwatch
359 # man-pages
360 %doc %{_mandir}/man1/*
361 %doc %{_mandir}/man5/*
362 %doc %{_mandir}/man8/*
363 # dictionaries
364 %attr(755,root,root) %dir /usr/share/freeradius
365 /usr/share/freeradius/*
366 # logs
367 %attr(700,radiusd,radiusd) %dir /var/log/radius/
368 %attr(700,radiusd,radiusd) %dir /var/log/radius/radacct/
369 %attr(644,radiusd,radiusd) /var/log/radius/radutmp
370 %config(noreplace) %attr(600,radiusd,radiusd) /var/log/radius/radius.log
371 # RADIUS Loadable Modules
372 %attr(755,root,root) %dir %{_libdir}/freeradius
373 %attr(755,root,root) %{_libdir}/freeradius/rlm_*.so*
374
375 %files utils
376 /usr/bin/*
377
378 %files libs
379 # RADIU shared libs
380 %attr(755,root,root) %dir %{_libdir}/freeradius
381 %attr(755,root,root) %{_libdir}/freeradius/lib*.so*
382
383 %if %_oracle_support == 1
384 %files oracle
385 %defattr(-,root,root)
386 %attr(755,root,root) %dir %{_libdir}/freeradius
387 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_oracle*.so*
388 %endif
389
390 %files dialupadmin
391 %defattr(-,root,root)
392 %dir %{_datadir}/dialup_admin/
393 %{_datadir}/dialup_admin/Makefile
394 %{_datadir}/dialup_admin/bin/
395 %{_datadir}/dialup_admin/doc/
396 %{_datadir}/dialup_admin/htdocs/
397 %{_datadir}/dialup_admin/html/
398 %{_datadir}/dialup_admin/lib/
399 %{_datadir}/dialup_admin/sql/
400 %dir %{_datadir}/dialup_admin/conf/
401 %config(noreplace) %{_datadir}/dialup_admin/conf/*
402 %config(noreplace) %{apache2_sysconfdir}/conf.d/radius.conf
403 %{_datadir}/dialup_admin/Changelog
404 %{_datadir}/dialup_admin/README
405
406 %files devel
407 %defattr(-,root,root)
408 %attr(644,root,root) %{_libdir}/freeradius/*.a
409 #%attr(644,root,root) %{_libdir}/freeradius/*.la
410 %attr(644,root,root) /usr/include/freeradius/*.h