2ca6889e5c60902e7eb8c813bfeba5e7f651434a
[cascardo/ipsilon.git] / contrib / fedora / ipsilon.spec
1 # Bundling request for bootstrap/patternfly: https://fedorahosted.org/fpc/ticket/483
2
3 Name:       ipsilon
4 Version:    1.1.0
5 Release:    1%{?builddate}%{?gittag}%{?dist}
6 Summary:    An Identity Provider Server
7
8 Group:      System Environment/Base
9 License:    GPLv3+
10 URL:        https://fedorahosted.org/ipsilon/
11 Source0:    https://fedorahosted.org/released/ipsilon/ipsilon-%{version}.tar.gz
12 BuildArch:  noarch
13
14
15 BuildRequires:  python2-devel
16 BuildRequires:  python-setuptools
17 BuildRequires:  lasso-python
18 BuildRequires:  python-openid, python-openid-cla, python-openid-teams
19 BuildRequires:  m2crypto
20
21 Requires:       python-requests
22 Requires:       %{name}-base = %{version}-%{release}
23 BuildArch:      noarch
24
25 %description
26 Ipsilon is a multi-protocol Identity Provider service. Its function is to
27 bridge authentication providers and applications to achieve Single Sign On
28 and Federation.
29
30
31 %package base
32 Summary:        Ipsilon base IDP server
33 Group:          System Environment/Base
34 License:        GPLv3+
35 Requires:       httpd
36 Requires:       mod_ssl
37 Requires:       %{name}-filesystem = %{version}-%{release}
38 Requires:       %{name}-provider = %{version}-%{release}
39 Requires:       mod_wsgi
40 Requires:       python-cherrypy
41 Requires:       python-jinja2
42 Requires:       python-lxml
43 Requires:       python-sqlalchemy
44 Requires:       open-sans-fonts
45 Requires(pre):  shadow-utils
46 Requires(post): %_sbindir/semanage, %_sbindir/restorecon
47 Requires(postun): %_sbindir/semanage
48
49
50 %description base
51 The Ipsilon IdP server without installer
52
53
54 %package filesystem
55 Summary:        Package providing files required by Ipsilon
56 Group:          System Environment/Base
57 License:        GPLv3+
58
59 %description filesystem
60 Package providing basic directory structure required
61 for all Ipsilon parts
62
63
64 %package client
65 Summary:        Tools for configuring Ipsilon clients
66 Group:          System Environment/Base
67 License:        GPLv3+
68 Requires:       %{name}-filesystem = %{version}-%{release}
69 Requires:       %{name}-saml2-base = %{version}-%{release}
70 Requires:       mod_auth_mellon
71 Requires:       mod_ssl
72 BuildArch:      noarch
73
74 %description client
75 Client install tools
76
77
78 %package tools-ipa
79 summary:        IPA helpers
80 Group:          System Environment/Base
81 License:        GPLv3+
82 Requires:       %{name}-authgssapi = %{version}-%{release}
83 Requires:       %{name}-authform = %{version}-%{release}
84 %if 0%{?rhel}
85 Requires:       ipa-client
86 Requires:       ipa-admintools
87 %else
88 Requires:       freeipa-client
89 Requires:       freeipa-admintools
90 %endif
91 BuildArch:      noarch
92
93 %description tools-ipa
94 Convenience client install tools for IPA support in the Ipsilon identity Provider
95
96
97 %package saml2-base
98 Summary:        SAML2 base
99 Group:          System Environment/Base
100 License:        GPLv3+
101 Requires:       lasso-python
102 Requires:       python-lxml
103 BuildArch:      noarch
104
105 %description saml2-base
106 Provides core SAML2 utilities
107
108
109 %package saml2
110 Summary:        SAML2 provider plugin
111 Group:          System Environment/Base
112 License:        GPLv3+
113 Provides:       ipsilon-provider = %{version}-%{release}
114 Requires:       %{name} = %{version}-%{release}
115 Requires:       %{name}-saml2-base = %{version}-%{release}
116 BuildArch:      noarch
117
118 %description saml2
119 Provides a SAML2 provider plugin for the Ipsilon identity Provider
120
121
122 %package openid
123 Summary:        Openid provider plugin
124 Group:          System Environment/Base
125 License:        GPLv3+
126 Provides:       ipsilon-provider = %{version}-%{release}
127 Requires:       %{name} = %{version}-%{release}
128 Requires:       python-openid
129 Requires:       python-openid-cla
130 Requires:       python-openid-teams
131 BuildArch:      noarch
132
133 %description openid
134 Provides an OpenId provider plugin for the Ipsilon identity Provider
135
136
137 %package persona
138 Summary:        Persona provider plugin
139 Group:          System Environment/Base
140 License:        GPLv3+
141 Provides:       ipsilon-provider = %{version}-%{release}
142 Requires:       %{name} = %{version}-%{release}
143 Requires:       m2crypto
144 BuildArch:      noarch
145
146 %description persona
147 Provides a Persona provider plugin for the Ipsilon identity Provider
148
149
150 %package authfas
151 Summary:        Fedora Authentication System login plugin
152 Group:          System Environment/Base
153 License:        GPLv3+
154 Requires:       %{name} = %{version}-%{release}
155 Requires:       python-fedora
156 BuildArch:      noarch
157
158 %description authfas
159 Provides a login plugin to authenticate against the Fedora Authentication System
160
161
162 %package authform
163 Summary:        mod_intercept_form_submit login plugin
164 Group:          System Environment/Base
165 License:        GPLv3+
166 Requires:       %{name} = %{version}-%{release}
167 Requires:       mod_intercept_form_submit
168 BuildArch:      noarch
169
170 %description authform
171 Provides a login plugin to authenticate with mod_intercept_form_submit
172
173
174 %package authpam
175 Summary:        PAM based login plugin
176 Group:          System Environment/Base
177 License:        GPLv3+
178 Requires:       %{name} = %{version}-%{release}
179 Requires:       python-pam
180 BuildArch:      noarch
181
182 %description authpam
183 Provides a login plugin to authenticate against the local PAM stack
184
185
186 %package authgssapi
187 Summary:        mod_auth_gssapi based login plugin
188 Group:          System Environment/Base
189 License:        GPLv3+
190 Requires:       %{name} = %{version}-%{release}
191 Requires:       mod_auth_gssapi
192 BuildArch:      noarch
193
194 %description authgssapi
195 Provides a login plugin to allow authentication via the mod_auth_gssapi
196 Apache module.
197
198
199 %package authldap
200 Summary:        LDAP info and login plugin
201 Group:          System Environment/Base
202 License:        GPLv3+
203 Requires:       %{name} = %{version}-%{release}
204 Requires:       python-ldap
205 BuildArch:      noarch
206
207 %description authldap
208 Provides a login plugin to allow authentication and info retrieval via LDAP.
209
210 %package infosssd
211 Summary:        SSSD & mod_lookup_identity-based identity plugin
212 Group:          System Environment/Base
213 License:        GPLv3+
214 Requires:       %{name} = %{version}-%{release}
215 Requires:       mod_lookup_identity
216 Requires:       libsss_simpleifp
217 Requires:       sssd >= 1.12.4
218 BuildArch:      noarch
219
220 %description infosssd
221 Provides an info plugin to allow retrieval via mod_lookup_identity and
222 SSSD.
223
224 %prep
225 %setup -q
226
227
228 %build
229 CFLAGS="%{optflags}" %{__python} setup.py build
230
231
232 %install
233 %{__python} setup.py install --skip-build --root %{buildroot}
234 mkdir -p %{buildroot}%{_sbindir}
235 mkdir -p %{buildroot}%{_libexecdir}
236 mkdir -p %{buildroot}%{_defaultdocdir}
237 mkdir -p %{buildroot}%{_localstatedir}/cache/ipsilon
238 # These 0700 permissions are because ipsilon will store private keys here
239 install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon
240 install -d -m 0700 %{buildroot}%{_sysconfdir}/ipsilon
241 mv %{buildroot}/%{_bindir}/ipsilon %{buildroot}/%{_libexecdir}
242 mv %{buildroot}/%{_bindir}/ipsilon-server-install %{buildroot}/%{_sbindir}
243 mv %{buildroot}/%{_bindir}/ipsilon-upgrade-database %{buildroot}/%{_sbindir}
244 mv %{buildroot}%{_defaultdocdir}/%{name} %{buildroot}%{_defaultdocdir}/%{name}-%{version}
245 rm -fr %{buildroot}%{python2_sitelib}/tests
246 ln -s %{_datadir}/fonts %{buildroot}%{_datadir}/ipsilon/ui/fonts
247
248 #%check
249 # The test suite is not being run because:
250 #  1. The last step of %%install removes the entire test suite
251 #  2. It increases build time a lot
252 #  3. It adds more build dependencies (namely postgresql server and client libraries)
253
254 %pre
255 getent group ipsilon >/dev/null || groupadd -r ipsilon
256 getent passwd ipsilon >/dev/null || \
257     useradd -r -g ipsilon -d %{_sharedstatedir}/ipsilon -s /sbin/nologin \
258     -c "Ipsilon Server" ipsilon
259 exit 0
260
261 %post
262 semanage fcontext -a -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
263 semanage fcontext -a -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
264 restorecon -R %{_sharedstatedir}/ipsilon || :
265
266 %postun
267 # Clean up after package removal
268 if [ $1 -eq 0 ]; then
269     semanage fcontext -d -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
270     semanage fcontext -d -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
271 fi
272
273
274 %files filesystem
275 %doc COPYING README
276 %dir %{_datadir}/ipsilon
277 %dir %{_datadir}/ipsilon/templates
278 %dir %{_datadir}/ipsilon/templates/install
279 %dir %{python2_sitelib}/ipsilon
280 %{python2_sitelib}/ipsilon/__init__.py*
281 %{python2_sitelib}/ipsilon-*.egg-info
282 %dir %{python2_sitelib}/ipsilon/tools
283 %{python2_sitelib}/ipsilon/tools/__init__.py*
284 %{python2_sitelib}/ipsilon/tools/files.py*
285
286 %files
287 %{_sbindir}/ipsilon-server-install
288 %{_sbindir}/ipsilon-upgrade-database
289 %{_datadir}/ipsilon/templates/install/*.conf
290 %{_datadir}/ipsilon/ui/saml2sp
291 %dir %{python2_sitelib}/ipsilon/helpers
292 %{python2_sitelib}/ipsilon/helpers/common.py*
293 %{python2_sitelib}/ipsilon/helpers/__init__.py*
294
295 %files base
296 %{_defaultdocdir}/%{name}-%{version}
297 %{python2_sitelib}/ipsilon/admin
298 %{python2_sitelib}/ipsilon/rest
299 %{python2_sitelib}/ipsilon/tools/dbupgrade.py*
300 %dir %{python2_sitelib}/ipsilon/login
301 %{python2_sitelib}/ipsilon/login/__init__*
302 %{python2_sitelib}/ipsilon/login/common*
303 %{python2_sitelib}/ipsilon/login/authtest*
304 %dir %{python2_sitelib}/ipsilon/info
305 %{python2_sitelib}/ipsilon/info/__init__*
306 %{python2_sitelib}/ipsilon/info/common*
307 %{python2_sitelib}/ipsilon/info/infonss*
308 %dir %{python2_sitelib}/ipsilon/providers
309 %{python2_sitelib}/ipsilon/providers/__init__*
310 %{python2_sitelib}/ipsilon/providers/common*
311 %{python2_sitelib}/ipsilon/root.py*
312 %{python2_sitelib}/ipsilon/util
313 %{_mandir}/man*/ipsilon*
314 %{_datadir}/ipsilon/templates/*.html
315 %{_datadir}/ipsilon/templates/admin
316 %dir %{_datadir}/ipsilon/templates/login
317 %{_datadir}/ipsilon/templates/login/index.html
318 %{_datadir}/ipsilon/templates/login/form.html
319 %dir %{_datadir}/ipsilon/ui
320 %{_datadir}/ipsilon/ui/css
321 %{_datadir}/ipsilon/ui/img
322 %{_datadir}/ipsilon/ui/js
323 %{_datadir}/ipsilon/ui/fonts
324 %{_datadir}/ipsilon/ui/fonts-local
325 %{_libexecdir}/ipsilon
326 %dir %attr(0751,root,root) %{_sharedstatedir}/ipsilon
327 %dir %attr(0751,root,root) %{_sysconfdir}/ipsilon
328 %dir %attr(0750,ipsilon,apache) %{_localstatedir}/cache/ipsilon
329
330 %files client
331 %{_bindir}/ipsilon-client-install
332 %{_datadir}/ipsilon/templates/install/saml2
333
334 %files tools-ipa
335 %{python2_sitelib}/ipsilon/helpers/ipa.py*
336
337 %files saml2-base
338 %{python2_sitelib}/ipsilon/tools/saml2metadata.py*
339 %{python2_sitelib}/ipsilon/tools/certs.py*
340
341 %files saml2
342 %{python2_sitelib}/ipsilon/providers/saml2*
343 %{_datadir}/ipsilon/templates/saml2
344
345 %files openid
346 %{python2_sitelib}/ipsilon/providers/openid*
347 %{_datadir}/ipsilon/templates/openid
348
349 %files persona
350 %{python2_sitelib}/ipsilon/providers/persona*
351 %{_datadir}/ipsilon/templates/persona
352
353 %files authfas
354 %{python2_sitelib}/ipsilon/login/authfas*
355
356 %files authform
357 %{python2_sitelib}/ipsilon/login/authform*
358
359 %files authpam
360 %{python2_sitelib}/ipsilon/login/authpam*
361
362 %files authgssapi
363 %{python2_sitelib}/ipsilon/login/authgssapi*
364 %{_datadir}/ipsilon/templates/login/gssapi.html
365
366 %files authldap
367 %{python2_sitelib}/ipsilon/login/authldap*
368 %{python2_sitelib}/ipsilon/info/infoldap*
369
370 %files infosssd
371 %{python2_sitelib}/ipsilon/info/infosssd.*
372
373 %changelog
374 * Sat Sep 05 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 1.1.0-1
375 - Release 1.1.0
376
377 * Mon Jun 22 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 1.0.0-2
378 - Added mod_ssl requirement for ipsilon-client
379
380 * Mon May 11 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 1.0.0-1
381 - Release 1.0.0
382
383 * Wed Apr 15 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.6.0-1
384 - Release 0.6.0
385
386 * Mon Mar 30 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.5.0-1
387 - Released 0.5.0
388
389 * Fri Feb 27 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.4.0-1
390 - Released 0.4.0
391
392 * Tue Feb 24 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-7
393 - Split the installer into -tools
394 - Split authform into -authform
395
396 * Thu Feb 12 2015 Rob Crittenden <rcritten@redhat.com> - 0.3.0-6
397 - Add mod_identity_lookup info plugin package
398
399 * Wed Jan 28 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-5
400 - Split IPA tools
401
402 * Mon Jan 12 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-4
403 - Add symlink to fonts directory
404
405 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-3
406 - Fix typo
407 - Add comments on why the test suite is not in check
408 - The subpackages require the base package
409 - Add link to FPC ticket for bundling exception request
410
411 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-2
412 - Fix shebang removal
413
414 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-1
415 - Initial packaging