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