Bump RPM spec version to 0.3.0
[cascardo/ipsilon.git] / contrib / fedora / ipsilon.spec
1 Name:           ipsilon
2 Version:        0.3.0
3 Release:        1%{?dist}
4 Summary:        An Identity Provider Server
5
6 Group:          System Environment/Base
7 License:        GPLv3+
8 URL:            https://fedorahosted.org/ipsilon/
9 Source0:        ipsilon-%{version}.tar.gz
10
11 BuildRequires:  python2-devel
12 BuildRequires:  python-setuptools
13 BuildRequires:  lasso-python
14 BuildRequires:  python-openid, python-openid-cla, python-openid-teams
15 BuildRequires:  m2crypto
16 Requires:       ipsilon-tools = %{version}-%{release}
17 Requires:       ipsilon-provider = %{version}-%{release}
18 Requires:       mod_wsgi
19 Requires:       mod_intercept_form_submit
20 Requires:       python-cherrypy
21 Requires:       python-jinja2
22 Requires:       python-lxml
23 Requires:       python-sqlalchemy
24 Requires(pre):  shadow-utils
25 Requires(post): %_sbindir/semanage, %_sbindir/restorecon
26 Requires(postun): %_sbindir/semanage
27
28 %description
29 Ipsilon is a multi-protocol Identiy Provider service. Its function is to
30 bridge authentication providers and applications to achieve Single Sign On
31 and Federation.
32
33
34 %package tools
35 Summary:        Client tools for the Ipsilon IDP
36 Group:          System Environment/Base
37 License:        GPLv3+
38 Requires:       python-requests
39 Requires:       python-lxml
40 Requires:       lasso-python
41 Requires:       mod_auth_mellon
42
43 %description tools
44 Convenience client install tools for the Ipsilon identity Provider
45
46
47 %package saml2
48 Summary:        SAML2 provider plugin
49 Group:          System Environment/Base
50 License:        GPLv3+
51 Provides:       ipsilon-provider = %{version}-%{release}
52 Requires:       lasso-python
53
54 %description saml2
55 Provides a SAML2 provider plugin for the Ipsilon identity Provider
56
57
58 %package openid
59 Summary:        Openid provider plugin
60 Group:          System Environment/Base
61 License:        GPLv3+
62 Provides:       ipsilon-provider = %{version}-%{release}
63 Requires:       python-openid
64 Requires:       python-openid-cla
65 Requires:       python-openid-teams
66
67 %description openid
68 Provides an OpenId provider plugin for the Ipsilon identity Provider
69
70
71 %package persona
72 Summary:        Persona provider plugin
73 Group:          System Environment/Base
74 License:        GPLv3+
75 Provides:       ipsilon-provider = %{version}-%{release}
76 Requires:       m2crypto
77
78 %description persona
79 Provides a Persona provider plugin for the Ipsilon identity Provider
80
81
82 %package authfas
83 Summary:        Fedora Authentication System login plugin
84 Group:          System Environment/Base
85 License:        GPLv3+
86 Requires:       python-fedora
87
88 %description authfas
89 Provides a login plugin to authenticate agaist the Fedora Authentication System
90
91
92 %package authpam
93 Summary:        PAM based login plugin
94 Group:          System Environment/Base
95 License:        GPLv3+
96 Requires:       python-pam
97
98 %description authpam
99 Provides a login plugin to authenticate agaist the local PAM stack
100
101
102 %package authkrb
103 Summary:        mod_auth_kerb based login plugin
104 Group:          System Environment/Base
105 License:        GPLv3+
106 Requires:       mod_auth_kerb
107
108 %description authkrb
109 Provides a login plugin to allow authentication via the mod_auth_kerb Apache
110 module.
111
112
113 %package authldap
114 Summary:        mod_auth_kerb based login plugin
115 Group:          System Environment/Base
116 License:        GPLv3+
117 Requires:       python-ldap
118
119 %description authldap
120 Provides a login plugin to allow authentication and info retrieval via LDAP.
121
122
123 %prep
124 %setup -q
125
126
127 %build
128 CFLAGS="%{optflags}" %{__python} setup.py build
129
130 %install
131 %{__python} setup.py install --skip-build --root %{buildroot}
132 mkdir -p %{buildroot}%{_sbindir}
133 install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon
134 mv %{buildroot}/%{_bindir}/ipsilon %{buildroot}/%{_sbindir}
135 mv %{buildroot}/%{_bindir}/ipsilon-server-install %{buildroot}/%{_sbindir}
136 install -d -m 0700 %{buildroot}%{_sysconfdir}/ipsilon
137 mkdir -p %{buildroot}%{_defaultdocdir}
138 mv %{buildroot}%{_defaultdocdir}/%{name} %{buildroot}%{_defaultdocdir}/%{name}-%{version}
139 rm -fr %{buildroot}%{python2_sitelib}/tests
140
141 %pre
142 getent group ipsilon >/dev/null || groupadd -r ipsilon
143 getent passwd ipsilon >/dev/null || \
144     useradd -r -g ipsilon -d %{_sharedstatedir}/ipsilon -s /sbin/nologin \
145     -c "Ipsilon Server" ipsilon
146 exit 0
147
148 %post
149 semanage fcontext -a -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
150 semanage fcontext -a -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
151 restorecon -R %{_sharedstatedir}/ipsilon || :
152
153 %postun
154 # Clean up after package removal
155 if [ $1 -eq 0 ]; then
156     semanage fcontext -d -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
157     semanage fcontext -d -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
158 fi
159
160 %files
161 %{_defaultdocdir}/%{name}-%{version}
162 %{python2_sitelib}/ipsilon-*.egg-info
163 %{python2_sitelib}/ipsilon/admin/*
164 %{python2_sitelib}/ipsilon/login/__init__*
165 %{python2_sitelib}/ipsilon/login/common*
166 %{python2_sitelib}/ipsilon/login/authform*
167 %{python2_sitelib}/ipsilon/login/authtest*
168 %{python2_sitelib}/ipsilon/info/__init__*
169 %{python2_sitelib}/ipsilon/info/common*
170 %{python2_sitelib}/ipsilon/info/nss*
171 %{python2_sitelib}/ipsilon/providers/__init__*
172 %{python2_sitelib}/ipsilon/providers/common*
173 %{python2_sitelib}/ipsilon/root.py*
174 %{python2_sitelib}/ipsilon/util/*
175 %{_mandir}/man*/ipsilon*
176 %{_datadir}/ipsilon/templates/*.html
177 %{_datadir}/ipsilon/templates/admin/*
178 %{_datadir}/ipsilon/templates/login/index.html
179 %{_datadir}/ipsilon/templates/login/form.html
180 %{_datadir}/ipsilon/templates/install/*.conf
181 %{_datadir}/ipsilon/ui/css/*
182 %{_datadir}/ipsilon/ui/img/*
183 %{_datadir}/ipsilon/ui/js/*
184 %{_sbindir}/ipsilon
185 %{_sbindir}/ipsilon-server-install
186 %dir %attr(0700,ipsilon,ipsilon) %{_sharedstatedir}/ipsilon
187 %dir %attr(0700,ipsilon,ipsilon) %{_sysconfdir}/ipsilon
188
189 %files tools
190 %doc COPYING README
191 %{python2_sitelib}/ipsilon-*.egg-info
192 %{python2_sitelib}/ipsilon/__init__.py*
193 %{python2_sitelib}/ipsilon/tools/*
194 %{python2_sitelib}/ipsilon/helpers/*
195 %{_datadir}/ipsilon/templates/install/saml2/sp.conf
196 %{_datadir}/ipsilon/ui/saml2sp/*
197 %{_bindir}/ipsilon-client-install
198
199 %files saml2
200 %{python2_sitelib}/ipsilon/providers/saml2*
201 %{_datadir}/ipsilon/templates/saml2/*
202
203 %files openid
204 %{python2_sitelib}/ipsilon/providers/openid*
205 %{_datadir}/ipsilon/templates/openid/*
206
207 %files persona
208 %{python2_sitelib}/ipsilon/providers/persona*
209 %{_datadir}/ipsilon/templates/persona/*
210
211 %files authfas
212 %{python2_sitelib}/ipsilon/login/authfas*
213
214 %files authpam
215 %{python2_sitelib}/ipsilon/login/authpam*
216
217 %files authkrb
218 %{python2_sitelib}/ipsilon/login/authkrb*
219 %{_datadir}/ipsilon/templates/login/krb.html
220
221 %files authldap
222 %{python2_sitelib}/ipsilon/login/authldap*
223 %{python2_sitelib}/ipsilon/info/infoldap*