Merge tag 'release_3_0_15' into tr-integ
[freeradius.git] / suse / freeradius.spec-renamed
1 Name:         freeradius-server
2 Version: 3.0.15
3 Release:      0
4 License:      GPLv2 ; LGPLv2.1
5 Group:        Productivity/Networking/Radius/Servers
6 Provides:     radiusd
7 Provides:     freeradius = %{version}
8 Obsoletes:    freeradius < %{version}
9 Conflicts:    radiusd-livingston radiusd-cistron icradius
10 Url:          http://www.freeradius.org/
11 Summary:      Very Highly Configurable Radius Server
12 Source:       ftp://ftp.freeradius.org/pub/freeradius/%{name}-%{version}.tar.bz2
13 Source90:     %{name}-rpmlintrc
14 Source104:    %{name}-tmpfiles.conf
15 PreReq:       %{_sbindir}/useradd %{_sbindir}/groupadd
16 PreReq:       perl
17 PreReq:       %insserv_prereq %fillup_prereq
18 BuildRoot:    %{_tmppath}/%{name}-%{version}-build
19 %define _oracle_support 0
20 Requires:      %{name}-libs = %{version}
21 Requires:      python
22 Recommends:    logrotate
23 BuildRequires: db-devel
24 BuildRequires: gcc-c++
25 BuildRequires: gdbm-devel
26 BuildRequires: glibc-devel
27 BuildRequires: libtalloc-devel
28 BuildRequires: openldap2-devel
29 BuildRequires: openssl
30 BuildRequires: openssl-devel
31 BuildRequires: pam-devel
32 BuildRequires: perl
33 BuildRequires: postgresql-devel
34 BuildRequires: python-devel
35 BuildRequires: sed
36 BuildRequires: unixODBC-devel
37
38
39 %if 0%{?suse_version} > 910
40 BuildRequires: krb5-devel
41 %endif
42 %if 0%{?suse_version} > 930
43 BuildRequires: libcom_err
44 %endif
45 %if 0%{?suse_version} > 1000
46 BuildRequires: libapr1-devel
47 %endif
48 %if 0%{?suse_version} > 1020
49 BuildRequires: libmysqlclient-devel
50 %endif
51 %if 0%{?suse_version} > 1100
52 BuildRequires: libpcap-devel
53 BuildRequires: sqlite3-devel
54 %endif
55
56
57 %description
58 The FreeRADIUS server has a number of features found in other servers,
59 and additional features not found in any other server. Rather than
60 doing a feature by feature comparison, we will simply list the features
61 of the server, and let you decide if they satisfy your needs.
62
63 Support for RFC and VSA Attributes Additional server configuration
64 attributes Selecting a particular configuration Authentication methods
65 Accounting methods
66
67 Authors:
68 --------
69 See http://wiki.freeradius.org/project/Acknowledgements
70
71 %package libs
72 License:      GPLv2 ; LGPLv2.1
73 Group:        Productivity/Networking/Radius/Servers
74 Summary:      FreeRADIUS shared library
75
76 %description libs
77 The FreeRADIUS shared library
78
79 Authors:
80 --------
81 See http://wiki.freeradius.org/project/Acknowledgements
82
83 %package utils
84 License:      GPLv2 ; LGPLv2.1
85 Group:        Productivity/Networking/Radius/Clients
86 Summary:      FreeRADIUS Clients
87 Requires:     %{name}-libs = %{version}
88
89 %description utils
90 The FreeRADIUS server has a number of features found in other servers
91 and additional features not found in any other server. Rather than
92 doing a feature by feature comparison, we will simply list the features
93 of the server, and let you decide if they satisfy your needs.
94
95 Support for RFC and VSA Attributes Additional server configuration
96 attributes Selecting a particular configuration Authentication methods
97
98 %package devel
99 License:      GPLv2 ; LGPLv2.1
100 Group:        Development/Libraries/C and C++
101 Summary:      FreeRADIUS Development Files (static libs)
102 Requires:     %{name}-libs = %{version}
103
104 %description devel
105 These are the static libraries for the FreeRADIUS package.
106
107 Authors:
108 --------
109 See http://wiki.freeradius.org/project/Acknowledgements
110
111 %package doc
112 License:        GPLv2 ; LGPLv2.1
113 Group:          Productivity/Networking/Radius/Servers
114 Summary:        FreeRADIUS Documentation
115 Requires:       %{name}
116
117 %description doc
118 This package contains FreeRADIUS Documentation
119
120 Authors:
121 --------
122 See http://wiki.freeradius.org/project/Acknowledgements
123
124 %prep
125 %setup -q
126
127 %build
128 # This package failed when testing with -Wl,-as-needed being default.
129 # So we disable it here, if you want to retest, just delete this comment and the line below.
130 export SUSE_ASNEEDED=0
131 export CFLAGS="$RPM_OPT_FLAGS"
132 %ifarch x86_64 ppc ppc64 s390 s390x
133 export CFLAGS="$CFLAGS -fPIC -DPIC"
134 %endif
135 export LDFLAGS="-pie"
136 %configure \
137                 --libdir=%{_libdir}/freeradius \
138                 --disable-developer \
139                 --with-experimental-modules \
140                 --with-udpfromto \
141 %if 0%{?suse_version} <= 920 
142                 --without-rlm_sql_mysql \
143                 --without-rlm_krb5 \
144 %endif
145 %if %{_oracle_support} == 1
146                 --with-rlm_sql_oracle \
147                 --with-oracle-lib-dir=%{_libdir}/oracle/10.1.0.3/client/lib/
148 %else
149                 --without-rlm_sql_oracle
150 %endif
151 make %{?_smp_mflags}
152
153 %install
154 rm -rf $RPM_BUILD_ROOT
155 mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/radiusd
156 make install R=$RPM_BUILD_ROOT
157 # modify default configuration
158 RADDB=$RPM_BUILD_ROOT%{_sysconfdir}/raddb
159 perl -i -pe 's/^#user =.*$/user = radiusd/'   $RADDB/radiusd.conf
160 perl -i -pe 's/^#group =.*$/group = radiusd/' $RADDB/radiusd.conf
161 /sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}/freeradius
162 # logs
163 touch $RPM_BUILD_ROOT%{_localstatedir}/log/radius/radutmp
164 touch $RPM_BUILD_ROOT%{_localstatedir}/log/radius/radius.log
165 # SuSE
166 install -d     $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
167 install -d     $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
168 install -m 644 suse/radiusd-pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/radiusd
169 install -m 644 suse/radiusd-logrotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/freeradius-server
170 install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/init.d
171 install    -m 744 suse/rcradiusd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/freeradius
172 ln -sf ../..%{_sysconfdir}/init.d/freeradius $RPM_BUILD_ROOT%{_sbindir}/rcfreeradius
173 install -d %{buildroot}%{_sysconfdir}/tmpfiles.d
174 install -m 0644 %{SOURCE104} %{buildroot}%{_sysconfdir}/tmpfiles.d/radiusd.conf
175 # remove unneeded stuff
176 rm -rf doc/00-OLD
177 rm -f $RPM_BUILD_ROOT%{_sbindir}/rc.radiusd
178 rm -rf $RPM_BUILD_ROOT/usr/share/doc/freeradius*
179 rm -rf $RPM_BUILD_ROOT/%{_libdir}/freeradius/*.*a
180
181 %pre
182 %{_sbindir}/groupadd -r radiusd 2> /dev/null || :
183 %{_sbindir}/useradd -r -g radiusd -s /bin/false -c "Radius daemon" -d \
184                   %{_localstatedir}/lib/radiusd radiusd 2> /dev/null || :
185
186 %post
187 %ifarch x86_64
188 # Modify old installs to look for /usr/lib64/freeradius
189 /usr/bin/perl -i -pe "s:/usr/lib/freeradius:/usr/lib64/freeradius:" /etc/raddb/radiusd.conf
190 %endif
191
192 # Generate default certificates
193 /etc/raddb/certs/bootstrap
194
195 %{fillup_and_insserv freeradius}
196 %if 0%{?suse_version} > 820
197
198 %preun
199 %stop_on_removal freeradius
200 %endif
201
202 %postun
203 %if 0%{?suse_version} > 820
204 %restart_on_update freeradius
205 %endif
206 %{insserv_cleanup}
207
208 %clean
209 rm -rf $RPM_BUILD_ROOT
210
211 %files
212 %defattr(-,root,root)
213 # doc
214 %doc suse/README.SuSE
215 %doc doc/* LICENSE COPYRIGHT CREDITS README.rst
216 # SuSE
217 %{_sysconfdir}/init.d/freeradius
218 %config %{_sysconfdir}/pam.d/radiusd
219 %config %{_sysconfdir}/logrotate.d/freeradius-server
220 %dir %{_sysconfdir}/tmpfiles.d
221 %config %{_sysconfdir}/tmpfiles.d/radiusd.conf
222 %dir %attr(755,radiusd,radiusd) %{_localstatedir}/lib/radiusd
223 # configs
224 %defattr(-,root,radiusd)
225 %dir %attr(750,root,radiusd) %{_sysconfdir}/raddb
226 %config(noreplace) %{_sysconfdir}/raddb/*
227 %attr(700,radiusd,radiusd) %dir %{_localstatedir}/run/radiusd/
228 # binaries
229 %defattr(-,root,root)
230 %{_sbindir}/*
231 # man-pages
232 %doc %{_mandir}/man1/*
233 %doc %{_mandir}/man5/*
234 %doc %{_mandir}/man8/*
235 # dictionaries
236 %attr(755,root,root) %dir /usr/share/freeradius
237 /usr/share/freeradius/*
238 # logs
239 %attr(700,radiusd,radiusd) %dir %{_localstatedir}/log/radius/
240 %attr(700,radiusd,radiusd) %dir %{_localstatedir}/log/radius/radacct/
241 %attr(644,radiusd,radiusd) %{_localstatedir}/log/radius/radutmp
242 %config(noreplace) %attr(600,radiusd,radiusd) %{_localstatedir}/log/radius/radius.log
243 # RADIUS Loadable Modules
244 %attr(755,root,root) %dir %{_libdir}/freeradius
245 %attr(755,root,root) %{_libdir}/freeradius/rlm_*.so*
246
247 %files utils
248 %defattr(-,root,root)
249 /usr/bin/*
250
251 %files libs
252 # RADIUS shared libs
253 %attr(755,root,root) %dir %{_libdir}/freeradius
254 %attr(755,root,root) %{_libdir}/freeradius/lib*.so*
255 %attr(755,root,root) %{_libdir}/freeradius/proto*.so*
256
257 %files devel
258 %defattr(-,root,root)
259 %dir /usr/include/freeradius
260 %attr(644,root,root) /usr/include/freeradius/*.h