port fix from branch_1_1
[freeradius.git] / suse / freeradius.spec
1 #
2 # spec file for package freeradius
3 #
4
5 %define _oracle_support 0
6
7 %define distroversion generic
8 %{!?suse_version:%define suse_version 0}
9 %{!?sles_version:%define sles_version 0}
10 %if %suse_version > 0
11         %define distroversion   suse%{suse_version}
12 %endif
13 %if %sles_version > 0
14         %define distroversion   sles%{sles_version}
15 %endif
16
17 # neededforbuild  apache2-devel-packages cyrus-sasl-devel db-devel kerberos-devel-packages mysql-devel mysql-shared openldap2 openldap2-client openldap2-devel openssl openssl-devel pam-devel postgresql-devel postgresql-libs python python-devel unixODBC unixODBC-devel
18
19 BuildRequires: aaa_base acl attr bash bind-utils bison bzip2 coreutils cpio cpp cracklib cvs cyrus-sasl db diffutils e2fsprogs file filesystem fillup findutils flex gawk gdbm-devel gettext-devel glibc glibc-devel glibc-locale gpm grep groff gzip info insserv klogd less libacl libattr libcom_err libgcc libnscd libstdc++ libxcrypt libzio m4 make man mktemp module-init-tools ncurses ncurses-devel net-tools netcfg openldap2-client openssl pam pam-modules patch permissions popt procinfo procps psmisc pwdutils rcs readline sed strace sysvinit tar tcpd texinfo timezone unzip util-linux vim zlib zlib-devel apache2 apache2-devel apache2-prefork autoconf automake binutils cyrus-sasl-devel db-devel e2fsprogs-devel expat gcc gdbm gettext krb5 krb5-devel libapr0 libtool mysql-devel mysql-shared openldap2 openldap2-devel openssl-devel pam-devel perl postgresql postgresql-devel postgresql-libs python python-devel rpm unixODBC unixODBC-devel
20
21 Name:         freeradius
22 License:      GPL, LGPL
23 Group:        Productivity/Networking/Radius/Servers
24 Provides:     radiusd
25 Conflicts:    radiusd-livingston radiusd-cistron icradius
26 Version:      2.0.0
27 Release:      0.%{distroversion}
28 URL:          http://www.freeradius.org/
29 Summary:      Very highly Configurable Radius-Server
30 Source0:      %{name}-%{version}.tar.gz
31 %if %suse_version > 800
32 PreReq:       /usr/sbin/useradd /usr/sbin/groupadd
33 PreReq:       %insserv_prereq %fillup_prereq
34 %endif
35 BuildRoot:    %{_tmppath}/%{name}-%{version}-build
36 Autoreqprov:  off
37 %define apxs2 apxs2-prefork
38 %define apache2_sysconfdir %(%{apxs2} -q SYSCONFDIR)
39
40 %description
41 The FreeRADIUS server has a number of features found in other servers,
42 and additional features not found in any other server. Rather than
43 doing a feature by feature comparison, we will simply list the features
44 of the server, and let you decide if they satisfy your needs.
45
46 Support for RFC and VSA Attributes Additional server configuration
47 attributes Selecting a particular configuration Authentication methods
48 Accounting methods
49
50
51
52 Authors:
53 --------
54     Miquel van Smoorenburg <miquels@cistron.nl>
55     Alan DeKok <aland@ox.org>
56     Mike Machado <mike@innercite.com>
57     Alan Curry
58     various other people
59
60 %if %_oracle_support == 1
61 %package oracle
62 BuildRequires: oracle-instantclient-basic oracle-instantclient-devel
63 Group:        Productivity/Networking/Radius/Servers
64 Summary:      FreeRADIUS Oracle database support
65 Requires:     oracle-instantclient-basic
66 Autoreqprov:  off
67
68 %description oracle
69 The FreeRADIUS server has a number of features found in other servers,
70 and additional features not found in any other server. Rather than
71 doing a feature by feature comparison, we will simply list the features
72 of the server, and let you decide if they satisfy your needs.
73
74 Support for RFC and VSA Attributes Additional server configuration
75 attributes Selecting a particular configuration Authentication methods
76 %endif
77
78 %package dialupadmin
79 Group:        Productivity/Networking/Radius/Servers
80 Summary:      Web management for FreeRADIUS
81 Requires:     http_daemon apache2-mod_php4 php4
82 Requires:     php4-ldap php4-mysql perl-DateManip
83 Requires:     php4-pgsql php4-session
84 Autoreqprov:  off
85
86 %description dialupadmin
87 Dialup Admin supports users either in SQL (MySQL or PostgreSQL are
88 supported) or in LDAP. Apart from the web pages, it also includes a
89 number of scripts to make the administrator's life a lot easier.
90
91
92
93 Authors:
94 --------
95     Kostas Kalevras <kkalev at noc.ntua.gr>
96     Basilis Pappas <vpappas at noc.ntua.gr>
97     Panagiotis Christias <christia at noc.ntua.gr>
98     Thanasis Duitsis <aduitsis at noc.ntua.gr>
99
100 %package devel
101 Group:        Development/Libraries/C and C++
102 Summary:      FreeRADIUS Development Files (static libs)
103 Autoreqprov:  off
104
105 %description devel
106 These are the static libraries for the FreeRADIUS package.
107
108
109
110 Authors:
111 --------
112     Miquel van Smoorenburg <miquels@cistron.nl>
113     Alan DeKok <aland@ox.org>
114     Mike Machado <mike@innercite.com>
115     Alan Curry
116     various other people
117
118 %prep
119 %setup -q
120 rm -rf `find . -name CVS`
121
122 %build
123 export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED"
124 %ifarch x86_64
125 export CFLAGS="$CFLAGS -fPIC"
126 %endif
127 %if %suse_version > 1000
128 export CFLAGS="$CFLAGS -fstack-protector"
129 %endif
130 # workaround for SLES9
131 %if %suse_version < 920
132 ln -sf %{_libdir}/libmysqlclient_r.so.12 %{_libdir}/libmysqlclient_r.so
133 ln -sf %{_libdir}/libmysqlclient_r.so.12 %{_libdir}/mysql/libmysqlclient_r.so
134 %endif
135 ./configure \
136                 --prefix=%{_prefix} \
137                 --sysconfdir=%{_sysconfdir} \
138                 --infodir=%{_infodir} \
139                 --mandir=%{_mandir} \
140                 --localstatedir=/var \
141                 --libdir=/usr/lib/freeradius \
142                 --with-threads \
143                 --with-snmp \
144                 --with-large-files \
145                 --disable-ltdl-install \
146                 --with-gnu-ld \
147 %if %suse_version <= 920
148                 --enable-heimdal-krb5 \
149                 --with-rlm-krb5-include-dir=/usr/include/heimdal/ \
150 %endif
151                 --with-rlm-krb5-lib-dir=%{_libdir} \
152 %if %_oracle_support == 1
153                 --with-rlm_sql_oracle \
154                 --with-oracle-lib-dir=/usr/lib/oracle/10.1.0.3/client/lib/ \
155 %else
156                 --without-rlm_sql_oracle \
157 %endif
158                 --enable-strict-dependencies \
159                 --with-edir \
160                 --with-udpfromto
161 # no parallel build possible
162 make
163
164 %install
165 rm -rf $RPM_BUILD_ROOT
166 mkdir -p $RPM_BUILD_ROOT
167 mkdir -p $RPM_BUILD_ROOT/var/lib/radiusd
168 make install R=$RPM_BUILD_ROOT
169 # modify default configuration
170 RADDB=$RPM_BUILD_ROOT%{_sysconfdir}/raddb
171 perl -i -pe 's/^#user =.*$/user = radiusd/'   $RADDB/radiusd.conf
172 perl -i -pe 's/^#group =.*$/group = radiusd/' $RADDB/radiusd.conf
173 ldconfig -n $RPM_BUILD_ROOT/usr/lib/freeradius
174 # logs
175 touch $RPM_BUILD_ROOT/var/log/radius/radutmp
176 # SuSE
177 install -d     $RPM_BUILD_ROOT/etc/pam.d
178 install -d     $RPM_BUILD_ROOT/etc/logrotate.d
179 %if %suse_version > 920
180 install -m 644 suse/radiusd-pam $RPM_BUILD_ROOT/etc/pam.d/radiusd
181 %else
182 install -m 644 suse/radiusd-pam-old $RPM_BUILD_ROOT/etc/pam.d/radiusd
183 %endif
184 install -m 644 suse/radiusd-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/radiusd
185 install -d -m 755 $RPM_BUILD_ROOT/etc/init.d
186 install    -m 744 suse/rcradiusd $RPM_BUILD_ROOT/etc/init.d/radiusd
187 ln -sf ../../etc/init.d/radiusd $RPM_BUILD_ROOT/usr/sbin/rcradiusd
188 mv -v doc/README doc/README.doc
189 # install dialup_admin
190 DIALUPADMIN=$RPM_BUILD_ROOT%{_datadir}/dialup_admin
191 mkdir -p $DIALUPADMIN
192 cp -r dialup_admin/* $RPM_BUILD_ROOT%{_datadir}/dialup_admin
193 perl -i -pe 's/^#general_base_dir\:.*$/general_base_dir\: \/usr\/share\/freeradius-dialupadmin/'   $DIALUPADMIN/conf/admin.conf
194 perl -i -pe 's/^#general_radiusd_base_dir\:.*$/general_radiusd_base_dir\: \//'   $DIALUPADMIN/conf/admin.conf
195 perl -i -pe 's/^#general_snmpwalk_command\:.*$/general_snmpwalk_command\: \/usr\/bin\/snmpwalk/'   $DIALUPADMIN/conf/admin.conf
196 perl -i -pe 's/^#general_snmpget_command\:.*$/general_snmpget_command\: \/usr\/bin\/snmpget/'   $DIALUPADMIN/conf/admin.conf
197 # apache2 config
198 install -d -m 755 $RPM_BUILD_ROOT%{apache2_sysconfdir}/conf.d
199 install -m 644 suse/admin-httpd.conf $RPM_BUILD_ROOT%{apache2_sysconfdir}/conf.d/radius.conf
200 # remove unneeded stuff
201 rm -rf doc/00-OLD
202 rm -f $RPM_BUILD_ROOT/etc/raddb/experimental.conf $RPM_BUILD_ROOT/usr/sbin/radwatch $RPM_BUILD_ROOT/usr/sbin/rc.radiusd
203 rm -rf $RPM_BUILD_ROOT/usr/share/doc/freeradius*
204 rm -rf $RPM_BUILD_ROOT/usr/lib/freeradius/*.la
205
206 %pre
207 /usr/sbin/groupadd -r radiusd 2> /dev/null || :
208 /usr/sbin/useradd -r -g radiusd -s /bin/false -c "Radius daemon" -d \
209                   /var/lib/radiusd radiusd 2> /dev/null || :
210
211 %post
212 %{fillup_and_insserv -s radiusd START_RADIUSD }
213 %if %suse_version > 820
214
215 %preun
216 %stop_on_removal radiusd
217 %endif
218
219 %postun
220 %if %suse_version > 820
221 %restart_on_update radiusd
222 %endif
223 %{insserv_cleanup}
224
225 %clean
226 rm -rf $RPM_BUILD_ROOT
227
228 %files
229 %defattr(-,root,root)
230 # doc
231 %doc suse/README.SuSE
232 %doc doc/* LICENSE COPYRIGHT CREDITS README
233 %doc doc/examples/*
234 %doc scripts/create-users.pl scripts/CA.* scripts/certs.sh
235 %doc scripts/users2mysql.pl scripts/xpextensions
236 %doc scripts/cryptpasswd scripts/exec-program-wait scripts/radiusd2ldif.pl
237 # SuSE
238 %config /etc/init.d/radiusd
239 %config /etc/pam.d/radiusd
240 %config /etc/logrotate.d/radiusd
241 /usr/sbin/rcradiusd
242 %dir %attr(755,radiusd,radiusd) /var/lib/radiusd
243 # configs
244 %dir /etc/raddb
245 %defattr(-,root,radiusd)
246 %config /etc/raddb/dictionary
247 %config(noreplace) /etc/raddb/acct_users
248 %config(noreplace) /etc/raddb/attrs
249 %attr(640,-,radiusd) %ghost %config(noreplace) /etc/raddb/clients
250 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/clients.conf
251 %config(noreplace) /etc/raddb/hints
252 %config(noreplace) /etc/raddb/huntgroups
253 %config(noreplace) /etc/raddb/ldap.attrmap
254 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/mssql.conf
255 %ghost %config(noreplace) /etc/raddb/naslist
256 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/naspasswd
257 %attr(640,-,radiusd) %ghost %config(noreplace) /etc/raddb/oraclesql.conf
258 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/postgresql.conf
259 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sqlippool.conf
260 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/preproxy_users
261 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/proxy.conf
262 %config(noreplace) /etc/raddb/radiusd.conf
263 %ghost %config(noreplace) /etc/raddb/realms
264 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/snmp.conf
265 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/sql.conf
266 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/users
267 %config(noreplace) /etc/raddb/otp.conf
268 %attr(640,-,radiusd) /etc/raddb/otppasswd.sample
269 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/certs
270 %attr(640,-,radiusd) %config(noreplace) /etc/raddb/eap.conf
271 %attr(640,-,radiusd) /etc/raddb/example.pl
272 %attr(700,radiusd,radiusd) %dir /var/run/radiusd/
273 # binaries
274 %defattr(-,root,root)
275 /usr/bin/*
276 /usr/sbin/check-radiusd-config
277 /usr/sbin/checkrad
278 /usr/sbin/radiusd
279 # shared libs
280 %attr(755,root,root) %dir /usr/lib/freeradius
281 %attr(755,root,root) /usr/lib/freeradius/*.so*
282 # man-pages
283 %doc %{_mandir}/man1/*
284 %doc %{_mandir}/man5/*
285 %doc %{_mandir}/man8/*
286 # dictionaries
287 %attr(755,root,root) %dir /usr/share/freeradius
288 /usr/share/freeradius/*
289 # logs
290 %attr(700,radiusd,radiusd) %dir /var/log/radius/
291 %attr(700,radiusd,radiusd) %dir /var/log/radius/radacct/
292 %attr(644,radiusd,radiusd) /var/log/radius/radutmp
293
294 %if %_oracle_support == 1
295 %files oracle
296 %defattr(-,root,root)
297 %attr(755,root,root) %dir /usr/lib/freeradius
298 %attr(755,root,root) /usr/lib/freeradius/rlm_sql_oracle*.so*
299 %endif
300
301 %files dialupadmin
302 %defattr(-,root,root)
303 %dir %{_datadir}/dialup_admin/
304 %{_datadir}/dialup_admin/bin/
305 %{_datadir}/dialup_admin/doc/
306 %{_datadir}/dialup_admin/htdocs/
307 %{_datadir}/dialup_admin/html/
308 %{_datadir}/dialup_admin/lib/
309 %{_datadir}/dialup_admin/sql/
310 %dir %{_datadir}/dialup_admin/conf/
311 %config(noreplace) %{_datadir}/dialup_admin/conf/*
312 %config(noreplace) %{apache2_sysconfdir}/conf.d/radius.conf
313 %{_datadir}/dialup_admin/Changelog
314 %{_datadir}/dialup_admin/README
315
316 %files devel
317 %defattr(-,root,root)
318 /usr/lib/freeradius/*.a
319 #%attr(644,root,root) /usr/lib/freeradius/*.la