a891713807f7f38efd175dff7d20dcaaf47744be
[cascardo/ipsilon.git] / contrib / fedora / ipsilon.spec
1 Name:           ipsilon
2 Version:        0.2.5
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 Requires:       ipsilon-tools = %{version}-%{release}
15 Requires:       lasso-python
16 Requires:       mod_wsgi
17 Requires:       mod_auth_kerb
18 Requires:       mod_intercept_form_submit
19 Requires:       python-cherrypy
20 Requires:       python-jinja2
21 Requires:       python-lxml
22 Requires:       python-pam
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 %prep
48 %setup -q
49
50
51 %build
52 CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
53
54 %install
55 %{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT
56 mkdir -p %{buildroot}%{_sbindir}
57 install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon
58 mv %{buildroot}/%{_bindir}/ipsilon %{buildroot}/%{_sbindir}
59 mv %{buildroot}/%{_bindir}/ipsilon-server-install %{buildroot}/%{_sbindir}
60 install -d -m 0700 %{buildroot}%{_sysconfdir}/ipsilon
61 mkdir -p %{buildroot}%{_defaultdocdir}
62 mv %{buildroot}%{_defaultdocdir}/%{name} %{buildroot}%{_defaultdocdir}/%{name}-%{version}
63 rm -fr %{buildroot}%{python2_sitelib}/tests
64
65 %pre
66 getent group ipsilon >/dev/null || groupadd -r ipsilon
67 getent passwd ipsilon >/dev/null || \
68     useradd -r -g ipsilon -d %{_sharedstatedir}/ipsilon -s /sbin/nologin \
69     -c "Ipsilon Server" ipsilon
70 exit 0
71
72 %post
73 semanage fcontext -a -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
74 semanage fcontext -a -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
75 restorecon -R %{_sharedstatedir}/ipsilon || :
76
77 %postun
78 # Clean up after package removal
79 if [ $1 -eq 0 ]; then
80     semanage fcontext -d -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
81     semanage fcontext -d -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
82 fi
83
84 %files
85 %{_defaultdocdir}/%{name}-%{version}
86 %{python2_sitelib}/ipsilon-*.egg-info
87 %{python2_sitelib}/ipsilon/admin/*
88 %{python2_sitelib}/ipsilon/login/*
89 %{python2_sitelib}/ipsilon/info/*
90 %{python2_sitelib}/ipsilon/providers/*
91 %{python2_sitelib}/ipsilon/root.py*
92 %{python2_sitelib}/ipsilon/util/*
93 %{_mandir}/man*/ipsilon*
94 %{_datadir}/ipsilon/templates/*.html
95 %{_datadir}/ipsilon/templates/admin/*
96 %{_datadir}/ipsilon/templates/login/*
97 %{_datadir}/ipsilon/templates/saml2/*
98 %{_datadir}/ipsilon/templates/install/*.conf
99 %{_datadir}/ipsilon/ui/css/*
100 %{_datadir}/ipsilon/ui/img/*
101 %{_datadir}/ipsilon/ui/js/*
102 %{_sbindir}/ipsilon
103 %{_sbindir}/ipsilon-server-install
104 %dir %attr(0700,ipsilon,ipsilon) %{_sharedstatedir}/ipsilon
105 %dir %attr(0700,ipsilon,ipsilon) %{_sysconfdir}/ipsilon
106
107 %files tools
108 %doc COPYING README
109 %{python2_sitelib}/ipsilon-*.egg-info
110 %{python2_sitelib}/ipsilon/__init__.py*
111 %{python2_sitelib}/ipsilon/tools/*
112 %{python2_sitelib}/ipsilon/helpers/*
113 %{_datadir}/ipsilon/templates/install/saml2/sp.conf
114 %{_datadir}/ipsilon/ui/saml2sp/*
115 %{_bindir}/ipsilon-client-install