8be5f404e7f72b58e1bb67ce024173985a37e6a2
[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:    0.6.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 BuildArch:      noarch
72
73 %description client
74 Client install tools
75
76
77 %package tools-ipa
78 summary:        IPA helpers
79 Group:          System Environment/Base
80 License:        GPLv3+
81 Requires:       %{name}-authkrb = %{version}-%{release}
82 Requires:       %{name}-authform = %{version}-%{release}
83 %if 0%{?rhel}
84 Requires:       ipa-client
85 Requires:       ipa-admintools
86 %else
87 Requires:       freeipa-client
88 Requires:       freeipa-admintools
89 %endif
90 BuildArch:      noarch
91
92 %description tools-ipa
93 Convenience client install tools for IPA support in the Ipsilon identity Provider
94
95
96 %package saml2-base
97 Summary:        SAML2 base
98 Group:          System Environment/Base
99 License:        GPLv3+
100 Requires:       lasso-python
101 Requires:       python-lxml
102 BuildArch:      noarch
103
104 %description saml2-base
105 Provides core SAML2 utilities
106
107
108 %package saml2
109 Summary:        SAML2 provider plugin
110 Group:          System Environment/Base
111 License:        GPLv3+
112 Provides:       ipsilon-provider = %{version}-%{release}
113 Requires:       %{name} = %{version}-%{release}
114 Requires:       %{name}-saml2-base = %{version}-%{release}
115 BuildArch:      noarch
116
117 %description saml2
118 Provides a SAML2 provider plugin for the Ipsilon identity Provider
119
120
121 %package openid
122 Summary:        Openid provider plugin
123 Group:          System Environment/Base
124 License:        GPLv3+
125 Provides:       ipsilon-provider = %{version}-%{release}
126 Requires:       %{name} = %{version}-%{release}
127 Requires:       python-openid
128 Requires:       python-openid-cla
129 Requires:       python-openid-teams
130 BuildArch:      noarch
131
132 %description openid
133 Provides an OpenId provider plugin for the Ipsilon identity Provider
134
135
136 %package persona
137 Summary:        Persona provider plugin
138 Group:          System Environment/Base
139 License:        GPLv3+
140 Provides:       ipsilon-provider = %{version}-%{release}
141 Requires:       %{name} = %{version}-%{release}
142 Requires:       m2crypto
143 BuildArch:      noarch
144
145 %description persona
146 Provides a Persona provider plugin for the Ipsilon identity Provider
147
148
149 %package authfas
150 Summary:        Fedora Authentication System login plugin
151 Group:          System Environment/Base
152 License:        GPLv3+
153 Requires:       %{name} = %{version}-%{release}
154 Requires:       python-fedora
155 BuildArch:      noarch
156
157 %description authfas
158 Provides a login plugin to authenticate against the Fedora Authentication System
159
160
161 %package authform
162 Summary:        mod_intercept_form_submit login plugin
163 Group:          System Environment/Base
164 License:        GPLv3+
165 Requires:       %{name} = %{version}-%{release}
166 Requires:       mod_intercept_form_submit
167 BuildArch:      noarch
168
169 %description authform
170 Provides a login plugin to authenticate with mod_intercept_form_submit
171
172
173 %package authpam
174 Summary:        PAM based login plugin
175 Group:          System Environment/Base
176 License:        GPLv3+
177 Requires:       %{name} = %{version}-%{release}
178 Requires:       python-pam
179 BuildArch:      noarch
180
181 %description authpam
182 Provides a login plugin to authenticate against the local PAM stack
183
184
185 %package authkrb
186 Summary:        mod_auth_kerb based login plugin
187 Group:          System Environment/Base
188 License:        GPLv3+
189 Requires:       %{name} = %{version}-%{release}
190 Requires:       mod_auth_kerb
191 BuildArch:      noarch
192
193 %description authkrb
194 Provides a login plugin to allow authentication via the mod_auth_kerb Apache
195 module.
196
197
198 %package authldap
199 Summary:        mod_auth_kerb based login plugin
200 Group:          System Environment/Base
201 License:        GPLv3+
202 Requires:       %{name} = %{version}-%{release}
203 Requires:       python-ldap
204 BuildArch:      noarch
205
206 %description authldap
207 Provides a login plugin to allow authentication and info retrieval via LDAP.
208
209 %package infosssd
210 Summary:        SSSD & mod_lookup_identity-based identity plugin
211 Group:          System Environment/Base
212 License:        GPLv3+
213 Requires:       %{name} = %{version}-%{release}
214 Requires:       mod_lookup_identity
215 Requires:       libsss_simpleifp
216 Requires:       sssd >= 1.12.4
217 BuildArch:      noarch
218
219 %description infosssd
220 Provides an info plugin to allow retrieval via mod_lookup_identity and
221 SSSD.
222
223 %prep
224 %setup -q
225
226
227 %build
228 CFLAGS="%{optflags}" %{__python} setup.py build
229
230
231 %install
232 %{__python} setup.py install --skip-build --root %{buildroot}
233 mkdir -p %{buildroot}%{_sbindir}
234 mkdir -p %{buildroot}%{_libexecdir}
235 mkdir -p %{buildroot}%{_defaultdocdir}
236 # These 0700 permissions are because ipsilon will store private keys here
237 install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon
238 install -d -m 0700 %{buildroot}%{_sysconfdir}/ipsilon
239 mv %{buildroot}/%{_bindir}/ipsilon %{buildroot}/%{_libexecdir}
240 mv %{buildroot}/%{_bindir}/ipsilon-server-install %{buildroot}/%{_sbindir}
241 mv %{buildroot}%{_defaultdocdir}/%{name} %{buildroot}%{_defaultdocdir}/%{name}-%{version}
242 rm -fr %{buildroot}%{python2_sitelib}/tests
243 ln -s %{_datadir}/fonts %{buildroot}%{_datadir}/ipsilon/ui/fonts
244
245 #%check
246 # The test suite is not being run because:
247 #  1. The last step of %%install removes the entire test suite
248 #  2. It increases build time a lot
249 #  3. It adds more build dependencies (namely postgresql server and client libraries)
250
251 %pre
252 getent group ipsilon >/dev/null || groupadd -r ipsilon
253 getent passwd ipsilon >/dev/null || \
254     useradd -r -g ipsilon -d %{_sharedstatedir}/ipsilon -s /sbin/nologin \
255     -c "Ipsilon Server" ipsilon
256 exit 0
257
258 %post
259 semanage fcontext -a -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
260 semanage fcontext -a -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
261 restorecon -R %{_sharedstatedir}/ipsilon || :
262
263 %postun
264 # Clean up after package removal
265 if [ $1 -eq 0 ]; then
266     semanage fcontext -d -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
267     semanage fcontext -d -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
268 fi
269
270
271 %files filesystem
272 %doc COPYING README
273 %dir %{_datadir}/ipsilon
274 %dir %{_datadir}/ipsilon/templates
275 %dir %{_datadir}/ipsilon/templates/install
276 %dir %{python2_sitelib}/ipsilon
277 %{python2_sitelib}/ipsilon/__init__.py*
278 %{python2_sitelib}/ipsilon-*.egg-info
279 %dir %{python2_sitelib}/ipsilon/tools
280 %{python2_sitelib}/ipsilon/tools/__init__.py*
281 %{python2_sitelib}/ipsilon/tools/files.py*
282
283 %files
284 %{_sbindir}/ipsilon-server-install
285 %{_datadir}/ipsilon/templates/install/*.conf
286 %{_datadir}/ipsilon/ui/saml2sp
287 %dir %{python2_sitelib}/ipsilon/helpers
288 %{python2_sitelib}/ipsilon/helpers/common.py*
289 %{python2_sitelib}/ipsilon/helpers/__init__.py*
290
291 %files base
292 %{_defaultdocdir}/%{name}-%{version}
293 %{python2_sitelib}/ipsilon/admin
294 %{python2_sitelib}/ipsilon/rest
295 %dir %{python2_sitelib}/ipsilon/login
296 %{python2_sitelib}/ipsilon/login/__init__*
297 %{python2_sitelib}/ipsilon/login/common*
298 %{python2_sitelib}/ipsilon/login/authtest*
299 %dir %{python2_sitelib}/ipsilon/info
300 %{python2_sitelib}/ipsilon/info/__init__*
301 %{python2_sitelib}/ipsilon/info/common*
302 %{python2_sitelib}/ipsilon/info/infonss*
303 %dir %{python2_sitelib}/ipsilon/providers
304 %{python2_sitelib}/ipsilon/providers/__init__*
305 %{python2_sitelib}/ipsilon/providers/common*
306 %{python2_sitelib}/ipsilon/root.py*
307 %{python2_sitelib}/ipsilon/util
308 %{_mandir}/man*/ipsilon*
309 %{_datadir}/ipsilon/templates/*.html
310 %{_datadir}/ipsilon/templates/admin
311 %dir %{_datadir}/ipsilon/templates/login
312 %{_datadir}/ipsilon/templates/login/index.html
313 %{_datadir}/ipsilon/templates/login/form.html
314 %dir %{_datadir}/ipsilon/ui
315 %{_datadir}/ipsilon/ui/css
316 %{_datadir}/ipsilon/ui/img
317 %{_datadir}/ipsilon/ui/js
318 %{_datadir}/ipsilon/ui/fonts
319 %{_libexecdir}/ipsilon
320 %dir %attr(0700,ipsilon,ipsilon) %{_sharedstatedir}/ipsilon
321 %dir %attr(0700,ipsilon,ipsilon) %{_sysconfdir}/ipsilon
322
323 %files client
324 %{_bindir}/ipsilon-client-install
325 %{_datadir}/ipsilon/templates/install/saml2
326
327 %files tools-ipa
328 %{python2_sitelib}/ipsilon/helpers/ipa.py*
329
330 %files saml2-base
331 %{python2_sitelib}/ipsilon/tools/saml2metadata.py*
332 %{python2_sitelib}/ipsilon/tools/certs.py*
333
334 %files saml2
335 %{python2_sitelib}/ipsilon/providers/saml2*
336 %{_datadir}/ipsilon/templates/saml2
337
338 %files openid
339 %{python2_sitelib}/ipsilon/providers/openid*
340 %{_datadir}/ipsilon/templates/openid
341
342 %files persona
343 %{python2_sitelib}/ipsilon/providers/persona*
344 %{_datadir}/ipsilon/templates/persona
345
346 %files authfas
347 %{python2_sitelib}/ipsilon/login/authfas*
348
349 %files authform
350 %{python2_sitelib}/ipsilon/login/authform*
351
352 %files authpam
353 %{python2_sitelib}/ipsilon/login/authpam*
354
355 %files authkrb
356 %{python2_sitelib}/ipsilon/login/authkrb*
357 %{_datadir}/ipsilon/templates/login/krb.html
358
359 %files authldap
360 %{python2_sitelib}/ipsilon/login/authldap*
361 %{python2_sitelib}/ipsilon/info/infoldap*
362
363 %files infosssd
364 %{python2_sitelib}/ipsilon/info/infosssd.*
365
366 %changelog
367 * Wed Apr 15 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.6.0-1
368 - Release 0.6.0
369
370 * Mon Mar 30 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.5.0-1
371 - Released 0.5.0
372
373 * Fri Feb 27 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.4.0-1
374 - Released 0.4.0
375
376 * Tue Feb 24 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-7
377 - Split the installer into -tools
378 - Split authform into -authform
379
380 * Thu Feb 12 2015 Rob Crittenden <rcritten@redhat.com> - 0.3.0-6
381 - Add mod_identity_lookup info plugin package
382
383 * Wed Jan 28 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-5
384 - Split IPA tools
385
386 * Mon Jan 12 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-4
387 - Add symlink to fonts directory
388
389 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-3
390 - Fix typo
391 - Add comments on why the test suite is not in check
392 - The subpackages require the base package
393 - Add link to FPC ticket for bundling exception request
394
395 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-2
396 - Fix shebang removal
397
398 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-1
399 - Initial packaging