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