022b2bb329775e18699f7a094e0968d37a6aea1d
[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.5
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: libtool
35 BuildRequires: ncurses-devel
36 BuildRequires: net-snmp-devel
37 BuildRequires: openldap2-devel
38 BuildRequires: openssl-devel
39 BuildRequires: pam-devel
40 BuildRequires: libpcap
41 BuildRequires: perl
42 BuildRequires: postgresql-devel
43 BuildRequires: python-devel
44 BuildRequires: sed
45 BuildRequires: unixODBC-devel
46 BuildRequires: zlib-devel
47
48 %if %{?fedora_version:1}0
49 BuildRequires: cyrus-sasl-devel
50 BuildRequires: httpd-devel
51 BuildRequires: libtool-ltdl-devel
52 BuildRequires: perl-devel
53 BuildRequires: syslog-ng
54 BuildRequires: mysql-devel
55 %endif
56
57 %if %{?mandriva_version:1}0
58 BuildRequires: apache2-devel
59 BuildRequires: libtool-devel
60 BuildRequires: mysql-devel
61 %endif
62
63 %if %{?suse_version:1}0
64 BuildRequires: apache2-devel
65 BuildRequires: cyrus-sasl-devel
66 %if 0%{?suse_version} > 910
67 BuildRequires: bind-libs
68 BuildRequires: krb5-devel
69 %endif
70 %if 0%{?suse_version} > 930
71 BuildRequires: libcom_err
72 %endif
73 %if 0%{?suse_version} > 1000
74 BuildRequires: libapr1-devel
75 %endif
76 %if 0%{?suse_version} > 1020
77 BuildRequires: libmysqlclient-devel
78 %else
79 BuildRequires: mysql-devel
80 %endif
81 %endif
82
83 %description
84 The FreeRADIUS server has a number of features found in other servers,
85 and additional features not found in any other server. Rather than
86 doing a feature by feature comparison, we will simply list the features
87 of the server, and let you decide if they satisfy your needs.
88
89 Support for RFC and VSA Attributes Additional server configuration
90 attributes Selecting a particular configuration Authentication methods
91 Accounting methods
92
93 %if %_oracle_support == 1
94 %package oracle
95 BuildRequires: oracle-instantclient-basic oracle-instantclient-devel
96 Group:        Productivity/Networking/Radius/Servers
97 Summary:      FreeRADIUS Oracle database support
98 Requires:     oracle-instantclient-basic
99 Requires:     %{name}-libs = %{version}
100 Requires:     %{name} = %{version}
101 Autoreqprov:  off
102
103 %description oracle
104 The FreeRADIUS server has a number of features found in other servers,
105 and additional features not found in any other server. Rather than
106 doing a feature by feature comparison, we will simply list the features
107 of the server, and let you decide if they satisfy your needs.
108
109 Support for RFC and VSA Attributes Additional server configuration
110 attributes Selecting a particular configuration Authentication methods
111 %endif
112
113 %package libs
114 Group:        Productivity/Networking/Radius/Servers
115 Summary:      FreeRADIUS share library
116
117 %description libs
118 The FreeRADIUS shared library
119
120 %package utils
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 Group:          Productivity/Networking/Radius/Servers
136 Summary:        Web management for FreeRADIUS
137 Requires:       http_daemon
138 Requires:       perl-DateManip
139 %if 0%{?suse_version} > 1000
140 Requires:       apache2-mod_php5
141 Requires:       php5
142 Requires:       php5-ldap
143 Requires:       php5-mysql
144 Requires:       php5-pgsql
145 %else
146 Requires:       apache2-mod_php4
147 Requires:       php4
148 Requires:       php4-ldap
149 Requires:       php4-mysql
150 Requires:       php4-pgsql
151 Requires:       php4-session
152 %endif
153 Autoreqprov:    off
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 %package devel
162 Group:        Development/Libraries/C and C++
163 Summary:      FreeRADIUS Development Files (static libs)
164 Autoreqprov:  off
165 Requires:     %{name}-libs = %{version}
166
167 %description devel
168 These are the static libraries for the FreeRADIUS package.
169
170
171 %if %{?suse_version:1}0
172 %debug_package
173 %endif
174
175 %prep
176 %setup -q
177
178 rm -rf `find . -name CVS`
179
180 %build
181 export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED -fPIC -DPIC"
182 #export CFLAGS="$CFLAGS -std=c99 -pedantic"
183 autoreconf
184
185 %configure \
186                 --libdir=%{_libdir}/freeradius \
187                 --disable-ltdl-install \
188                 --enable-developer \
189                 --with-edir \
190                 --with-experimental-modules \
191                 --with-system-libtool \
192                 --with-udpfromto \
193                 --without-rlm_eap_ikev2 \
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(640,-,radiusd) %config(noreplace) /etc/raddb/sites-available/*
344 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/modules/*
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/checkrad
355 /usr/sbin/radiusd
356 /usr/sbin/radrelay
357 /usr/sbin/radwatch
358 # man-pages
359 %doc %{_mandir}/man1/*
360 %doc %{_mandir}/man5/*
361 %doc %{_mandir}/man8/*
362 # dictionaries
363 %attr(755,root,root) %dir /usr/share/freeradius
364 /usr/share/freeradius/*
365 # logs
366 %attr(700,radiusd,radiusd) %dir /var/log/radius/
367 %attr(700,radiusd,radiusd) %dir /var/log/radius/radacct/
368 %attr(644,radiusd,radiusd) /var/log/radius/radutmp
369 %config(noreplace) %attr(600,radiusd,radiusd) /var/log/radius/radius.log
370 # RADIUS Loadable Modules
371 %attr(755,root,root) %dir %{_libdir}/freeradius
372 %attr(755,root,root) %{_libdir}/freeradius/rlm_*.so*
373
374 %files utils
375 /usr/bin/*
376
377 %files libs
378 # RADIU shared libs
379 %attr(755,root,root) %dir %{_libdir}/freeradius
380 %attr(755,root,root) %{_libdir}/freeradius/lib*.so*
381
382 %if %_oracle_support == 1
383 %files oracle
384 %defattr(-,root,root)
385 %attr(755,root,root) %dir %{_libdir}/freeradius
386 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_oracle*.so*
387 %endif
388
389 %files dialupadmin
390 %defattr(-,root,root)
391 %dir %{_datadir}/dialup_admin/
392 %{_datadir}/dialup_admin/Makefile
393 %{_datadir}/dialup_admin/bin/
394 %{_datadir}/dialup_admin/doc/
395 %{_datadir}/dialup_admin/htdocs/
396 %{_datadir}/dialup_admin/html/
397 %{_datadir}/dialup_admin/lib/
398 %{_datadir}/dialup_admin/sql/
399 %dir %{_datadir}/dialup_admin/conf/
400 %config(noreplace) %{_datadir}/dialup_admin/conf/*
401 %config(noreplace) %{apache2_sysconfdir}/conf.d/radius.conf
402 %{_datadir}/dialup_admin/Changelog
403 %{_datadir}/dialup_admin/README
404
405 %files devel
406 %defattr(-,root,root)
407 %attr(644,root,root) %{_libdir}/freeradius/*.a
408 #%attr(644,root,root) %{_libdir}/freeradius/*.la
409 %attr(644,root,root) /usr/include/freeradius/*.h