01902be731f70748638ea775ab6ecc69a73c56e9
[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.3.0
5 Release:    6%{?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 Requires:       httpd
21 Requires:       mod_ssl
22 Requires:       ipsilon-tools = %{version}-%{release}
23 Requires:       ipsilon-provider = %{version}-%{release}
24 Requires:       mod_wsgi
25 Requires:       python-cherrypy
26 Requires:       python-jinja2
27 Requires:       python-lxml
28 Requires:       python-sqlalchemy
29 Requires:       open-sans-fonts
30 Requires(pre):  shadow-utils
31 Requires(post): %_sbindir/semanage, %_sbindir/restorecon
32 Requires(postun): %_sbindir/semanage
33
34 %description
35 Ipsilon is a multi-protocol Identiy Provider service. Its function is to
36 bridge authentication providers and applications to achieve Single Sign On
37 and Federation.
38
39
40 %package tools
41 Summary:        Client tools for the Ipsilon IDP
42 Group:          System Environment/Base
43 License:        GPLv3+
44 Requires:       python-requests
45 Requires:       python-lxml
46 Requires:       lasso-python
47 Requires:       mod_auth_mellon
48 BuildArch:      noarch
49
50 %description tools
51 Convenience install tools for the Ipsilon identity Provider
52
53
54 %package tools-ipa
55 summary:        IPA helpers
56 Group:          System Environment/Base
57 License:        GPLv3+
58 Requires:       %{name}-tools = %{version}-%{release}
59 %if 0%{?rhel}
60 Requires:       ipa-client
61 Requires:       ipa-admintools
62 %else
63 Requires:       freeipa-client
64 Requires:       freeipa-admintools
65 %endif
66 BuildArch:      noarch
67
68 %description tools-ipa
69 Convenience client install tools for IPA support in the Ipsilon identity Provider
70
71
72 %package saml2
73 Summary:        SAML2 provider plugin
74 Group:          System Environment/Base
75 License:        GPLv3+
76 Provides:       ipsilon-provider = %{version}-%{release}
77 Requires:       %{name} = %{version}-%{release}
78 Requires:       lasso-python
79 BuildArch:      noarch
80
81 %description saml2
82 Provides a SAML2 provider plugin for the Ipsilon identity Provider
83
84
85 %package openid
86 Summary:        Openid provider plugin
87 Group:          System Environment/Base
88 License:        GPLv3+
89 Provides:       ipsilon-provider = %{version}-%{release}
90 Requires:       %{name} = %{version}-%{release}
91 Requires:       python-openid
92 Requires:       python-openid-cla
93 Requires:       python-openid-teams
94 BuildArch:      noarch
95
96 %description openid
97 Provides an OpenId provider plugin for the Ipsilon identity Provider
98
99
100 %package persona
101 Summary:        Persona provider plugin
102 Group:          System Environment/Base
103 License:        GPLv3+
104 Provides:       ipsilon-provider = %{version}-%{release}
105 Requires:       %{name} = %{version}-%{release}
106 Requires:       m2crypto
107 BuildArch:      noarch
108
109 %description persona
110 Provides a Persona provider plugin for the Ipsilon identity Provider
111
112
113 %package authfas
114 Summary:        Fedora Authentication System login plugin
115 Group:          System Environment/Base
116 License:        GPLv3+
117 Requires:       %{name} = %{version}-%{release}
118 Requires:       python-fedora
119 BuildArch:      noarch
120
121 %description authfas
122 Provides a login plugin to authenticate against the Fedora Authentication System
123
124
125 %package authform
126 Summary:        mod_intercept_form_submit login plugin
127 Group:          System Environment/Base
128 License:        GPLv3+
129 Requires:       %{name} = %{version}-%{release}
130 Requires:       mod_intercept_form_submit
131 BuildArch:      noarch
132
133 %description authform
134 Provides a login plugin to authenticate with mod_intercept_form_submit
135
136
137 %package authpam
138 Summary:        PAM based login plugin
139 Group:          System Environment/Base
140 License:        GPLv3+
141 Requires:       %{name} = %{version}-%{release}
142 Requires:       python-pam
143 BuildArch:      noarch
144
145 %description authpam
146 Provides a login plugin to authenticate against the local PAM stack
147
148
149 %package authkrb
150 Summary:        mod_auth_kerb based login plugin
151 Group:          System Environment/Base
152 License:        GPLv3+
153 Requires:       %{name} = %{version}-%{release}
154 Requires:       mod_auth_kerb
155 BuildArch:      noarch
156
157 %description authkrb
158 Provides a login plugin to allow authentication via the mod_auth_kerb Apache
159 module.
160
161
162 %package authldap
163 Summary:        mod_auth_kerb based login plugin
164 Group:          System Environment/Base
165 License:        GPLv3+
166 Requires:       %{name} = %{version}-%{release}
167 Requires:       python-ldap
168 BuildArch:      noarch
169
170 %description authldap
171 Provides a login plugin to allow authentication and info retrieval via LDAP.
172
173 %package infosssd
174 Summary:        SSSD & mod_lookup_identity-based identity plugin
175 Group:          System Environment/Base
176 License:        GPLv3+
177 Requires:       %{name} = %{version}-%{release}
178 Requires:       mod_lookup_identity
179 Requires:       libsss_simpleifp
180 Requires:       sssd >= 1.12.4
181 BuildArch:      noarch
182
183 %description infosssd
184 Provides an info plugin to allow retrieval via mod_lookup_identity and
185 SSSD.
186
187 %prep
188 %setup -q
189
190
191 %build
192 CFLAGS="%{optflags}" %{__python} setup.py build
193
194
195 %install
196 %{__python} setup.py install --skip-build --root %{buildroot}
197 mkdir -p %{buildroot}%{_sbindir}
198 mkdir -p %{buildroot}%{_defaultdocdir}
199 # These 0700 permissions are because ipsilon will store private keys here
200 install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon
201 install -d -m 0700 %{buildroot}%{_sysconfdir}/ipsilon
202 mv %{buildroot}/%{_bindir}/ipsilon %{buildroot}/%{_sbindir}
203 mv %{buildroot}/%{_bindir}/ipsilon-server-install %{buildroot}/%{_sbindir}
204 mv %{buildroot}%{_defaultdocdir}/%{name} %{buildroot}%{_defaultdocdir}/%{name}-%{version}
205 rm -fr %{buildroot}%{python2_sitelib}/tests
206 ln -s %{_datadir}/fonts %{buildroot}%{_datadir}/ipsilon/ui/fonts
207
208 #%check
209 # The test suite is not being run because:
210 #  1. The last step of %%install removes the entire test suite
211 #  2. It increases build time a lot
212 #  3. It adds more build dependencies (namely postgresql server and client libraries)
213
214 %pre
215 getent group ipsilon >/dev/null || groupadd -r ipsilon
216 getent passwd ipsilon >/dev/null || \
217     useradd -r -g ipsilon -d %{_sharedstatedir}/ipsilon -s /sbin/nologin \
218     -c "Ipsilon Server" ipsilon
219 exit 0
220
221 %post
222 semanage fcontext -a -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
223 semanage fcontext -a -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
224 restorecon -R %{_sharedstatedir}/ipsilon || :
225
226 %postun
227 # Clean up after package removal
228 if [ $1 -eq 0 ]; then
229     semanage fcontext -d -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
230     semanage fcontext -d -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
231 fi
232
233
234 %files
235 %{_defaultdocdir}/%{name}-%{version}
236 %{python2_sitelib}/ipsilon-*.egg-info
237 %dir %{python2_sitelib}/ipsilon
238 %{python2_sitelib}/ipsilon/admin
239 %dir %{python2_sitelib}/ipsilon/login
240 %{python2_sitelib}/ipsilon/login/__init__*
241 %{python2_sitelib}/ipsilon/login/common*
242 %{python2_sitelib}/ipsilon/login/authtest*
243 %dir %{python2_sitelib}/ipsilon/info
244 %{python2_sitelib}/ipsilon/info/__init__*
245 %{python2_sitelib}/ipsilon/info/common*
246 %{python2_sitelib}/ipsilon/info/nss*
247 %dir %{python2_sitelib}/ipsilon/providers
248 %{python2_sitelib}/ipsilon/providers/__init__*
249 %{python2_sitelib}/ipsilon/providers/common*
250 %{python2_sitelib}/ipsilon/root.py*
251 %{python2_sitelib}/ipsilon/util
252 %{_mandir}/man*/ipsilon*
253 %dir %{_datadir}/ipsilon
254 %dir %{_datadir}/ipsilon/templates
255 %{_datadir}/ipsilon/templates/*.html
256 %{_datadir}/ipsilon/templates/admin
257 %dir %{_datadir}/ipsilon/templates/login
258 %{_datadir}/ipsilon/templates/login/index.html
259 %{_datadir}/ipsilon/templates/login/form.html
260 %dir %{_datadir}/ipsilon/ui
261 %{_datadir}/ipsilon/ui/css
262 %{_datadir}/ipsilon/ui/img
263 %{_datadir}/ipsilon/ui/js
264 %{_datadir}/ipsilon/ui/fonts
265 %{_sbindir}/ipsilon
266 %dir %attr(0700,ipsilon,ipsilon) %{_sharedstatedir}/ipsilon
267 %dir %attr(0700,ipsilon,ipsilon) %{_sysconfdir}/ipsilon
268
269 %files tools
270 %doc COPYING README
271 %{python2_sitelib}/ipsilon-*.egg-info
272 %{python2_sitelib}/ipsilon/__init__.py*
273 %{python2_sitelib}/ipsilon/tools
274 %dir %{python2_sitelib}/ipsilon/helpers
275 %{python2_sitelib}/ipsilon/helpers/common.py*
276 %{python2_sitelib}/ipsilon/helpers/__init__.py*
277 %{_datadir}/ipsilon/templates/install/saml2
278 %{_datadir}/ipsilon/ui/saml2sp
279 %{_bindir}/ipsilon-client-install
280 %{_sbindir}/ipsilon-server-install
281 %dir %{_datadir}/ipsilon/templates/install
282 %{_datadir}/ipsilon/templates/install/*.conf
283
284 %files tools-ipa
285 %{python2_sitelib}/ipsilon/helpers/ipa.py*
286
287 %files saml2
288 %{python2_sitelib}/ipsilon/providers/saml2*
289 %{_datadir}/ipsilon/templates/saml2
290
291 %files openid
292 %{python2_sitelib}/ipsilon/providers/openid*
293 %{_datadir}/ipsilon/templates/openid
294
295 %files persona
296 %{python2_sitelib}/ipsilon/providers/persona*
297 %{_datadir}/ipsilon/templates/persona
298
299 %files authfas
300 %{python2_sitelib}/ipsilon/login/authfas*
301
302 %files authform
303 %{python2_sitelib}/ipsilon/login/authform*
304
305 %files authpam
306 %{python2_sitelib}/ipsilon/login/authpam*
307
308 %files authkrb
309 %{python2_sitelib}/ipsilon/login/authkrb*
310 %{_datadir}/ipsilon/templates/login/krb.html
311
312 %files authldap
313 %{python2_sitelib}/ipsilon/login/authldap*
314 %{python2_sitelib}/ipsilon/info/infoldap*
315
316 %files infosssd
317 %{python2_sitelib}/ipsilon/info/infosssd.*
318
319 %changelog
320 * Thu Feb 12 2015 Rob Crittenden <rcritten@redhat.com> - 0.3.0-6
321 - Add mod_identity_lookup info plugin package
322
323 * Wed Jan 28 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-5
324 - Split IPA tools
325
326 * Mon Jan 12 2015 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-4
327 - Add symlink to fonts directory
328
329 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-3
330 - Fix typo
331 - Add comments on why the test suite is not in check
332 - The subpackages require the base package
333 - Add link to FPC ticket for bundling exception request
334
335 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-2
336 - Fix shebang removal
337
338 * Tue Dec 16 2014 Patrick Uiterwijk <puiterwijk@redhat.com> - 0.3.0-1
339 - Initial packaging