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