Add dependency on unixODBC-devel.
[shibboleth/cpp-sp.git] / shibboleth.spec.in
1 Name:           @PACKAGE@
2 Version:        @PACKAGE_VERSION@
3 Release:        1
4 Summary:    Open source system for attribute-based Web SSO
5 Group:          System Environment/Libraries
6 Vendor:     Internet2
7 License:        Apache 2.0
8 URL:            http://shibboleth.internet2.edu/
9 Source:     %{name}-sp-%{version}.tar.gz
10 BuildRoot:      %{_tmppath}/%{name}-%{version}-root
11 %if 0%{?suse_version} > 1030
12 BuildRequires:  libXerces-c-devel >= 2.8.0
13 BuildRequires:  libxml-security-c-devel >= 1.4.0
14 BuildRequires:  libxmltooling-devel >= 1.2
15 BuildRequires:  libsaml-devel >= 2.2
16 %{?_with_log4cpp:BuildRequires: liblog4cpp-devel >= 1.0}
17 %{!?_with_log4cpp:BuildRequires: liblog4shib-devel}
18 %else
19 BuildRequires:  xerces%{?xercesver}-c-devel >= 2.8.0
20 BuildRequires:  xml-security-c-devel >= 1.4.0
21 BuildRequires:  xmltooling-devel >= 1.2
22 BuildRequires:  opensaml-devel >= 2.2
23 %{?_with_log4cpp:BuildRequires: log4cpp-devel >= 1.0}
24 %{!?_with_log4cpp:BuildRequires: log4shib-devel}
25 %endif
26 BuildRequires:  gcc-c++
27 %{!?_without_doxygen:BuildRequires: doxygen}
28 %{!?_without_odbc:BuildRequires:unixODBC-devel}
29 BuildRequires:  zlib-devel
30 %{?_with_fastcgi:BuildRequires: fcgi-devel}
31 %if "%{_vendor}" == "redhat"
32 %{!?_without_builtinapache:BuildRequires: httpd-devel}
33 %endif
34 %if "%{_vendor}" == "suse"
35 %{!?_without_builtinapache:BuildRequires: apache2-devel}
36 %endif
37
38 %if "%{_vendor}" == "suse"
39 %define pkgdocdir %{_docdir}/%{name}
40 %else
41 %define pkgdocdir %{_docdir}/%{name}-%{version}
42 %endif
43
44 %description
45 Shibboleth is a Web Single Sign-On implementations based on OpenSAML
46 that supports multiple protocols, federated identity, and the extensible
47 exchange of rich attributes subject to privacy controls.
48
49 This package contains the Shibboleth Service Provider runtime libraries
50 and Apache module(s).
51
52 %package devel
53 Summary: Shibboleth development Headers
54 Group: Development/Libraries
55 Requires: %{name} = %{version}
56 %if 0%{?suse_version} > 1030
57 Requires: libXerces-c-devel >= 2.8.0
58 Requires: libxml-security-c-devel >= 1.4.0
59 Requires: libxmltooling-devel >= 1.2
60 Requires: libsaml-devel >= 2.2
61 %{?_with_log4cpp:Requires: liblog4cpp-devel >= 1.0}
62 %{!?_with_log4cpp:Requires: liblog4shib-devel}
63 %else
64 Requires: xerces%{?xercesver}-c-devel >= 2.8.0
65 Requires: xml-security-c-devel >= 1.4.0
66 Requires: xmltooling-devel >= 1.2
67 Requires: opensaml-devel >= 2.2
68 %{?_with_log4cpp:Requires: log4cpp-devel >= 1.0}
69 %{!?_with_log4cpp:Requires: log4shib-devel}
70 %endif
71
72 %description devel
73 Shibboleth is a Web Single Sign-On implementations based on OpenSAML
74 that supports multiple protocols, federated identity, and the extensible
75 exchange of rich attributes subject to privacy controls.
76
77 This package includes files needed for development with Shibboleth.
78
79
80 %prep
81 %setup -q
82
83 %build
84 %configure %{?_without_odbc:--disable-odbc} %{?_without_adfs:--disable-adfs} %{?_with_fastcgi} %{?_with_memcached} %{?shib_options}
85 %{__make}
86
87 %install
88 %{__make} install NOKEYGEN=1 DESTDIR=$RPM_BUILD_ROOT pkgdocdir=%{pkgdocdir}
89
90 %if "%{_vendor}" == "suse"
91         %{__sed} -i "s/\/var\/log\/httpd/\/var\/log\/apache2/g" \
92                 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/native.logger
93 %endif
94
95 # Plug the SP into the built-in Apache on a recognized system.
96 touch rpm.filelist
97 APACHE_CONFIG="no"
98 if [ -f $RPM_BUILD_ROOT%{_libdir}/%{name}/mod_shib_13.so ] ; then
99     APACHE_CONFIG="apache.config"
100 fi
101 if [ -f $RPM_BUILD_ROOT%{_libdir}/%{name}/mod_shib_20.so ] ; then
102     APACHE_CONFIG="apache2.config"
103 fi
104 if [ -f $RPM_BUILD_ROOT%{_libdir}/%{name}/mod_shib_22.so ] ; then
105     APACHE_CONFIG="apache22.config"
106 fi
107 %{?_without_builtinapache:APACHE_CONFIG="no"}
108 if [ "$APACHE_CONFIG" != "no" ] ; then
109     APACHE_CONFD="no"
110     if [ -d %{_sysconfdir}/httpd/conf.d ] ; then
111             APACHE_CONFD="%{_sysconfdir}/httpd/conf.d"
112     fi
113     if [ -d %{_sysconfdir}/apache2/conf.d ] ; then
114             APACHE_CONFD="%{_sysconfdir}/apache2/conf.d"
115     fi
116     if [ "$APACHE_CONFD" != "no" ] ; then
117         %{__mkdir} -p $RPM_BUILD_ROOT$APACHE_CONFD
118         %{__cp} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/$APACHE_CONFIG $RPM_BUILD_ROOT$APACHE_CONFD/shib.conf 
119         echo "%config $APACHE_CONFD/shib.conf" > rpm.filelist
120     fi
121 fi
122
123 %if "%{_vendor}" == "redhat" || "%{_vendor}" == "suse"
124         # %{_initddir} not yet in RHEL5, use deprecated %{_initrddir}
125         mkdir -p $RPM_BUILD_ROOT%{_initrddir}
126         %{__cp} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/shibd-%{_vendor} $RPM_BUILD_ROOT%{_initrddir}/shibd
127         %{__chmod} 755 $RPM_BUILD_ROOT%{_initrddir}/shibd
128 %endif
129
130 %check
131 %{__make} check
132
133 %clean
134 [ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
135
136 %post
137 %ifnos solaris2.8 solaris2.9 solaris2.10
138 /sbin/ldconfig
139 %endif
140
141 # Key generation
142 cd %{_sysconfdir}/%{name}
143 sh ./keygen.sh -b
144
145 %if "%{_vendor}" == "redhat"
146         # This adds the proper /etc/rc*.d links for the script
147         /sbin/chkconfig --add shibd
148         # On upgrade, restart components if they're already running.
149     if [ "$1" -gt "1" ] ; then
150         /etc/init.d/shibd status 1>/dev/null && /etc/init.d/shibd restart 1>/dev/null
151         %{!?_without_builtinapache:/etc/init.d/httpd status 1>/dev/null && /etc/init.d/httpd restart 1>/dev/null}
152     fi
153 %endif
154 %if "%{_vendor}" == "suse"
155     # This adds the proper /etc/rc*.d links for the script
156     /sbin/chkconfig --add shibd
157     cd /usr/sbin && ln -s /etc/init.d/shibd rcshibd
158     # On upgrade, restart components if they're already running.
159     if [ "$1" -gt "1" ] ; then
160         /etc/init.d/shibd status 1>/dev/null && /etc/init.d/shibd restart 1>/dev/null
161         %{!?_without_builtinapache:/etc/init.d/apache2 status 1>/dev/null && /etc/init.d/apache2 restart 1>/dev/null}
162     fi
163 %endif
164
165 %preun
166 %if "%{_vendor}" == "redhat"
167         if [ "$1" = 0 ] ; then
168                 /sbin/service shibd stop >/dev/null 2>&1
169                 /sbin/chkconfig --del shibd
170         fi
171 %endif
172 %if "%{_vendor}" == "suse"
173     if [ "$1" = 0 ] ; then
174         /sbin/service shibd stop >/dev/null 2>&1
175         /sbin/chkconfig --del shibd
176         cd /usr/sbin && %{__rm} -f rcshibd
177     fi
178 %endif
179
180 %ifnos solaris2.8 solaris2.9 solaris2.10
181 %postun -p /sbin/ldconfig
182 %endif
183
184 %posttrans
185 # ugly hack if init script got removed during %postun by upgraded (buggy/2.1) package
186 %if "%{_vendor}" == "redhat"
187     if [ ! -f %{_initrddir}/shibd ] ; then
188         if [ -f %{_sysconfdir}/%{name}/shibd-%{_vendor} ] ; then
189             %{__cp} -p %{_sysconfdir}/%{name}/shibd-%{_vendor} %{_initrddir}/shibd
190             %{__chmod} 755 %{_initrddir}/shibd
191             /sbin/chkconfig --add shibd
192         fi
193     fi
194 %endif
195
196 %files -f rpm.filelist
197 %defattr(-,root,root,-)
198 %{_sbindir}/shibd
199 %{_bindir}/mdquery
200 %{_bindir}/resolvertest
201 %{_libdir}/libshibsp.so.*
202 %{_libdir}/libshibsp-lite.so.*
203 %dir %{_libdir}/%{name}
204 %{_libdir}/%{name}/*
205 %exclude %{_libdir}/%{name}/*.la
206 %dir %{_localstatedir}/log/%{name}
207 %dir %{_localstatedir}/run/%{name}
208 %dir %{_datadir}/xml/%{name}
209 %{_datadir}/xml/%{name}/*
210 %dir %{_sysconfdir}/%{name}
211 %config(noreplace) %{_sysconfdir}/%{name}/*.xml
212 %config(noreplace) %{_sysconfdir}/%{name}/*.html
213 %config(noreplace) %{_sysconfdir}/%{name}/*.logger
214 %if "%{_vendor}" == "redhat"
215 %attr(755, root, root) %{_initrddir}/shibd
216 %endif
217 %if "%{_vendor}" == "suse"
218 %attr(755, root, root) %{_initddir}/shibd
219 %endif
220 %{_sysconfdir}/%{name}/*.dist
221 %{_sysconfdir}/%{name}/apache*.config
222 %{_sysconfdir}/%{name}/shibd-*
223 %attr(755, root, root) %{_sysconfdir}/%{name}/keygen.sh
224 %attr(755, root, root) %{_sysconfdir}/%{name}/metagen.sh
225 %{_sysconfdir}/%{name}/*.xsl
226 %doc %{pkgdocdir}
227 %exclude %{pkgdocdir}/api
228
229 %files devel
230 %defattr(-,root,root,-)
231 %{_includedir}/*
232 %{_libdir}/libshibsp.so
233 %{_libdir}/libshibsp-lite.so
234 %doc %{pkgdocdir}/api
235
236 %changelog
237 * Mon Aug 10 2009 Scott Cantor  <cantor.2@osu.edu>  - 2.2.1-1
238 - Doc handling changes
239 - SuSE init script
240
241 * Tue Aug 4 2009 Scott Cantor  <cantor.2@osu.edu>  - 2.2.1-1
242 - Initial version for 2.2.1, with shibd/httpd restart on upgrade
243
244 * Thu Jun 25 2009 Scott Cantor  <cantor.2@osu.edu>  - 2.2-3
245 - Add additional cleanup to posttrans fix
246
247 * Tue Jun 23 2009 Scott Cantor  <cantor.2@osu.edu>  - 2.2-2
248 - Reverse without_builtinapache macro test
249 - Fix init script handling on Red Hat to handle upgrades
250
251 * Wed Dec 3 2008  Scott Cantor  <cantor.2@osu.edu>  - 2.2-1
252 - Bump minor version.
253 - Make keygen.sh executable.
254 - Fixing SUSE Xerces dependency name.
255 - Optionally package shib.conf.
256
257 * Tue Jun 10 2008  Scott Cantor  <cantor.2@osu.edu>  - 2.1-1
258 - Change shib.conf handling to treat as config file.
259
260 * Mon Mar 17 2008  Scott Cantor  <cantor.2@osu.edu>  - 2.0-6
261 - Official release.
262
263 * Fri Jan 18 2008  Scott Cantor  <cantor.2@osu.edu>  - 2.0-5
264 - Release candidate 1.
265
266 * Sun Oct 21 2007 Scott Cantor  <cantor.2@osu.edu>  - 2.0-4
267 - libexec -> lib/shibboleth changes
268 - Added doc subpackage
269
270 * Thu Aug 16 2007 Scott Cantor  <cantor.2@osu.edu>  - 2.0-3
271 - First public beta.
272
273 * Fri Jul 13 2007 Scott Cantor  <cantor.2@osu.edu>  - 2.0-2
274 - Second alpha release.
275
276 * Sun Jun 10 2007 Scott Cantor  <cantor.2@osu.edu>  - 2.0-1
277 - First alpha release.
278
279 * Mon Oct 2 2006 Scott Cantor   <cantor.2@osu.edu>  - 1.3-11
280 - Applied fix for secadv 20061002
281 - Fix for metadata loader loop
282
283 * Wed Jun 15 2006 Scott Cantor  <cantor.2@osu.edu>  - 1.3-10
284 - Applied fix for sec 20060615
285
286 * Fri Apr 15 2006 Scott Cantor  <cantor.2@osu.edu>  - 1.3-9
287 - Misc. patches, SuSE, Apache 2.2, gcc 4.1, and 64-bit support
288
289 * Mon Jan 9 2006 Scott Cantor  <cantor.2@osu.edu>  - 1.3-8
290 - Applied new fix for secadv 20060109
291
292 * Tue Nov 8 2005 Scott Cantor  <cantor.2@osu.edu>  - 1.3-7
293 - Applied new fix for secadv 20050901 plus rollup
294
295 * Fri Sep 23 2005 Scott Cantor  <cantor.2@osu.edu>  - 1.3-6
296 - Minor patches and default config changes
297 - pidfile patch
298 - Fix shib.conf creation
299 - Integrated init.d script
300 - Prevent replacement of config files
301
302 * Thu Sep 1 2005  Scott Cantor  <cantor.2@osu.edu>  - 1.3-5
303 - Applied fix for secadv 20050901 plus rollup of NSAPI fixes
304
305 * Sun Apr 24 2005  Scott Cantor  <cantor.2@osu.edu>  - 1.3-1
306 - Updated test programs and location of schemas.
307 - move siterefresh to to sbindir
308
309 * Fri Apr  1 2005  Derek Atkins  <derek@ihtfp.com>  - 1.3-1
310 - Add selinux-targeted-policy package
311 - move shar to sbindir
312
313 * Tue Oct 19 2004  Derek Atkins  <derek@ihtfp.com>  - 1.2-1
314 - Create SPEC file based on various versions in existence.