import from HEAD:
[freeradius.git] / suse / freeradius.spec
1 %define _oracle_support 0
2
3 %define distroversion generic
4 %{!?suse_version:%define suse_version 0}
5 %{!?sles_version:%define sles_version 0}
6 %if %suse_version > 0
7         %define distroversion   suse%{suse_version}
8 %endif
9 %if %sles_version > 0
10         %define distroversion   sles%{sles_version}
11 %endif
12
13 Name:         freeradius
14 License:      GPL, LGPL
15 Group:        Productivity/Networking/Radius/Servers
16 Provides:     radiusd
17 Conflicts:    radiusd-livingston radiusd-cistron icradius
18 Version:      1.1.5
19 Release:      0.%{distroversion}
20 URL:          http://www.freeradius.org/
21 Summary:      Very highly Configurable Radius-Server
22 Conflicts:    freeradius-snapshot
23 Source:      %{name}-%{version}.tar.gz
24
25 %if 0%{?suse_version} > 800
26 PreReq:       /usr/sbin/useradd /usr/sbin/groupadd
27 PreReq:       %insserv_prereq %fillup_prereq
28 PreReq:       perl
29 %endif
30 BuildRoot:    %{_tmppath}/%{name}-%{version}-build
31 Autoreqprov:  off
32 %define apxs2 apxs2-prefork
33 %define apache2_sysconfdir %(%{apxs2} -q SYSCONFDIR)
34 Requires: python
35 %if %{?suse_version:1}0
36 BuildRequires: apache2-devel
37 %else
38 BuildRequires: httpd-devel
39 %endif
40
41 %if 0%{?sles_version} < 10
42 %else
43 BuildRequires: bind-libs
44 %endif
45 BuildRequires: cyrus-sasl-devel
46 BuildRequires: db-devel
47 BuildRequires: e2fsprogs-devel
48 BuildRequires: gcc-c++
49 BuildRequires: gdbm-devel
50 BuildRequires: gettext-devel
51 BuildRequires: glibc-devel
52 BuildRequires: libtool
53 BuildRequires: mysql-devel
54 BuildRequires: ncurses-devel
55 BuildRequires: net-snmp-devel
56 BuildRequires: openldap2-devel
57 BuildRequires: openssl-devel
58 BuildRequires: pam-devel
59 BuildRequires: perl
60 BuildRequires: postgresql-devel
61 BuildRequires: python-devel
62 BuildRequires: sed
63 BuildRequires: unixODBC-devel
64 BuildRequires: zlib-devel
65
66 %if 0%{?suse_version} > 910
67 BuildRequires: krb5-devel
68 %endif
69
70 %if 0%{?suse_version} > 930
71
72 BuildRequires: libcom_err
73 %if %suse_version > 1000
74 BuildRequires: libapr1-devel
75 %else
76 #BuildRequires: libapr0-devel
77 %endif
78
79 %endif
80
81 %if 0%{?fedora_version} > 4
82 BuildRequires: syslog-ng
83 %endif
84
85
86 %description
87 The FreeRADIUS server has a number of features found in other servers,
88 and additional features not found in any other server. Rather than
89 doing a feature by feature comparison, we will simply list the features
90 of the server, and let you decide if they satisfy your needs.
91
92 Support for RFC and VSA Attributes Additional server configuration
93 attributes Selecting a particular configuration Authentication methods
94 Accounting methods
95
96
97 Authors:
98 --------
99     Miquel van Smoorenburg <miquels@cistron.nl>
100     Alan DeKok <aland@ox.org>
101     Mike Machado <mike@innercite.com>
102     Alan Curry
103     various other people
104
105 %if %_oracle_support == 1
106 %package oracle
107 BuildRequires: oracle-instantclient-basic oracle-instantclient-devel
108 Group:        Productivity/Networking/Radius/Servers
109 Summary:      FreeRADIUS Oracle database support
110 Requires:     oracle-instantclient-basic
111 Autoreqprov:  off
112
113 %description oracle
114 The FreeRADIUS server has a number of features found in other servers,
115 and additional features not found in any other server. Rather than
116 doing a feature by feature comparison, we will simply list the features
117 of the server, and let you decide if they satisfy your needs.
118
119 Support for RFC and VSA Attributes Additional server configuration
120 attributes Selecting a particular configuration Authentication methods
121 %endif
122
123 %package dialupadmin
124 Group:          Productivity/Networking/Radius/Servers
125 Summary:        Web management for FreeRADIUS
126 Requires:       http_daemon
127 Requires:       perl-DateManip
128 %if 0%{?suse_version} > 1000
129 Requires:       apache2-mod_php5
130 Requires:       php5
131 Requires:       php5-ldap
132 Requires:       php5-mysql
133 Requires:       php5-pgsql
134 %else
135 Requires:       apache2-mod_php4
136 Requires:       php4
137 Requires:       php4-ldap
138 Requires:       php4-mysql
139 Requires:       php4-pgsql
140 Requires:       php4-session
141 %endif
142 Autoreqprov:    off
143
144 %description dialupadmin
145 Dialup Admin supports users either in SQL (MySQL or PostgreSQL are
146 supported) or in LDAP. Apart from the web pages, it also includes a
147 number of scripts to make the administrator's life a lot easier.
148
149
150
151 Authors:
152 --------
153     Kostas Kalevras <kkalev at noc.ntua.gr>
154     Basilis Pappas <vpappas at noc.ntua.gr>
155     Panagiotis Christias <christia at noc.ntua.gr>
156     Thanasis Duitsis <aduitsis at noc.ntua.gr>
157
158 %package devel
159 Group:        Development/Libraries/C and C++
160 Summary:      FreeRADIUS Development Files (static libs)
161 Autoreqprov:  off
162
163 %description devel
164 These are the static libraries for the FreeRADIUS package.
165
166
167
168 Authors:
169 --------
170     Miquel van Smoorenburg <miquels@cistron.nl>
171     Alan DeKok <aland@ox.org>
172     Mike Machado <mike@innercite.com>
173     Alan Curry
174     various other people
175
176 %prep
177 %setup -q
178 rm -rf `find . -name CVS`
179
180
181 %build
182 export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED"
183 %ifarch x86_64
184 export CFLAGS="$CFLAGS -fPIC"
185 %endif
186 %if 0%{?suse_version} > 1000
187 export CFLAGS="$CFLAGS -fstack-protector"
188 %endif
189 ./configure \
190                 --prefix=%{_prefix} \
191                 --sysconfdir=%{_sysconfdir} \
192                 --infodir=%{_infodir} \
193                 --mandir=%{_mandir} \
194                 --localstatedir=/var \
195                 --libdir=%{_libdir}/freeradius \
196                 --with-threads \
197                 --with-snmp \
198                 --with-large-files \
199 %if 0%{?suse_version} <= 920 
200                 --without-rlm_sql_mysql \
201 %endif
202 %if %{?suse_version:1}0
203 %if %suse_version > 910
204 %if %suse_version <= 920
205                 --enable-heimdal-krb5 \
206                 --with-rlm-krb5-include-dir=/usr/include/heimdal/ \
207 %endif
208                 --with-rlm-krb5-lib-dir=%{_libdir} \
209 %else
210                 --without-rlm_krb5 \
211 %endif
212 %endif
213 %if %_oracle_support == 1
214                 --with-rlm_sql_oracle \
215                 --with-oracle-lib-dir=%{_libdir}/oracle/10.1.0.3/client/lib/ \
216 %else
217                 --without-rlm_sql_oracle \
218 %endif
219                 --enable-strict-dependencies \
220                 --with-edir \
221                 --with-modules="rlm_sqlippool" \
222                 --disable-ltdl-install \
223                 --with-gnu-ld \
224                 --with-udpfromto
225 make
226
227 %install
228 rm -rf $RPM_BUILD_ROOT
229 mkdir -p $RPM_BUILD_ROOT
230 mkdir -p $RPM_BUILD_ROOT/var/lib/radiusd
231 make install R=$RPM_BUILD_ROOT
232 # modify default configuration
233 RADDB=$RPM_BUILD_ROOT%{_sysconfdir}/raddb
234 perl -i -pe 's/^#user =.*$/user = radiusd/'   $RADDB/radiusd.conf
235 perl -i -pe 's/^#group =.*$/group = radiusd/' $RADDB/radiusd.conf
236 # logs
237 touch $RPM_BUILD_ROOT/var/log/radius/radutmp
238 # SuSE
239 install -d     $RPM_BUILD_ROOT/etc/pam.d
240 install -d     $RPM_BUILD_ROOT/etc/logrotate.d
241 %if 0%{?suse_version} > 920
242 install -m 644 suse/radiusd-pam $RPM_BUILD_ROOT/etc/pam.d/radiusd
243 %else
244 install -m 644 suse/radiusd-pam-old $RPM_BUILD_ROOT/etc/pam.d/radiusd
245 %endif
246 install -m 644 suse/radiusd-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/radiusd
247 install -d -m 755 $RPM_BUILD_ROOT/etc/init.d
248 install    -m 744 suse/rcradiusd $RPM_BUILD_ROOT/etc/init.d/radiusd
249 ln -sf ../../etc/init.d/radiusd $RPM_BUILD_ROOT/usr/sbin/rcradiusd
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/etc/raddb/experimental.conf $RPM_BUILD_ROOT/usr/sbin/radwatch $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 #libdir32=${%{_libdir}%%64}/freeradius
277 /usr/bin/perl -i -pe "s:/usr/lib/freeradius:/usr/lib64/freeradius:" /etc/raddb/radiusd.conf
278 %endif
279
280 %{fillup_and_insserv -s radiusd START_RADIUSD }
281 %if 0%{?suse_version} > 820
282
283 %preun
284 %stop_on_removal radiusd
285 %endif
286
287 %postun
288 %if 0%{?suse_version} > 820
289 %restart_on_update radiusd
290 %endif
291 %{insserv_cleanup}
292
293 %clean
294 rm -rf $RPM_BUILD_ROOT
295
296 %files
297 %defattr(-,root,root)
298 # doc
299 %doc suse/README.SuSE
300 %doc doc/* LICENSE COPYRIGHT CREDITS README
301 %doc doc/examples/*
302 %doc scripts/create-users.pl scripts/CA.* scripts/certs.sh
303 %doc scripts/users2mysql.pl scripts/xpextensions
304 %doc scripts/cryptpasswd scripts/exec-program-wait scripts/radiusd2ldif.pl
305 # SuSE
306 %config /etc/init.d/radiusd
307 %config /etc/pam.d/radiusd
308 %config /etc/logrotate.d/radiusd
309 /usr/sbin/rcradiusd
310 %dir %attr(755,radiusd,radiusd) /var/lib/radiusd
311 # configs
312 %dir /etc/raddb
313 %defattr(-,root,radiusd)
314 %config /etc/raddb/dictionary
315 %config(noreplace) /etc/raddb/acct_users
316 %config(noreplace) /etc/raddb/attrs
317 %attr(640,-,radiusd) %ghost %config(noreplace) /etc/raddb/clients
318 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/clients.conf
319 %config(noreplace) /etc/raddb/hints
320 %config(noreplace) /etc/raddb/huntgroups
321 %config(noreplace) /etc/raddb/ldap.attrmap
322 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/mssql.conf
323 %ghost %config(noreplace) /etc/raddb/naslist
324 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/naspasswd
325 %attr(640,-,radiusd) %ghost %config(noreplace) /etc/raddb/oraclesql.conf
326 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/postgresql.conf
327 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sqlippool.conf
328 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/preproxy_users
329 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/proxy.conf
330 %config(noreplace) /etc/raddb/radiusd.conf
331 %ghost %config(noreplace) /etc/raddb/realms
332 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/snmp.conf
333 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sql.conf
334 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/users
335 %config(noreplace) /etc/raddb/otp.conf
336 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/certs
337 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/eap.conf
338 %attr(640,-,radiusd) /etc/raddb/example.pl
339 %attr(700,radiusd,radiusd) %dir /var/run/radiusd/
340 # binaries
341 %defattr(-,root,root)
342 /usr/bin/*
343 /usr/sbin/check-radiusd-config
344 /usr/sbin/checkrad
345 /usr/sbin/radiusd
346 # shared libs
347 %attr(755,root,root) %dir %{_libdir}/freeradius
348 %attr(755,root,root) %{_libdir}/freeradius/*.so*
349 # man-pages
350 %doc %{_mandir}/man1/*
351 %doc %{_mandir}/man5/*
352 %doc %{_mandir}/man8/*
353 # dictionaries
354 %attr(755,root,root) %dir /usr/share/freeradius
355 /usr/share/freeradius/*
356 # logs
357 %attr(700,radiusd,radiusd) %dir /var/log/radius/
358 %attr(700,radiusd,radiusd) %dir /var/log/radius/radacct/
359 %attr(644,radiusd,radiusd) /var/log/radius/radutmp
360
361 %if %_oracle_support == 1
362 %files oracle
363 %defattr(-,root,root)
364 %attr(755,root,root) %dir %{_libdir}/freeradius
365 %attr(755,root,root) %{_libdir}/freeradius/rlm_sql_oracle*.so*
366 %endif
367
368 %files dialupadmin
369 %defattr(-,root,root)
370 %dir %{_datadir}/dialup_admin/
371 %{_datadir}/dialup_admin/bin/
372 %{_datadir}/dialup_admin/doc/
373 %{_datadir}/dialup_admin/htdocs/
374 %{_datadir}/dialup_admin/html/
375 %{_datadir}/dialup_admin/lib/
376 %{_datadir}/dialup_admin/sql/
377 %dir %{_datadir}/dialup_admin/conf/
378 %config(noreplace) %{_datadir}/dialup_admin/conf/*
379 %config(noreplace) %{apache2_sysconfdir}/conf.d/radius.conf
380 %{_datadir}/dialup_admin/Changelog
381 %{_datadir}/dialup_admin/README
382
383 %files devel
384 %defattr(-,root,root)
385 %{_libdir}/freeradius/*.a
386 #%attr(644,root,root) %{_libdir}/freeradius/*.la