Make sure semanage and restorecon are installed when we want to use them.
[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:       python-cherrypy
19 Requires:       python-jinja2
20 Requires:       python-lxml
21 Requires:       python-pam
22 Requires(pre):  shadow-utils
23 Requires(post): %_sbindir/semanage, %_sbindir/restorecon
24 Requires(postun): %_sbindir/semanage
25
26 %description
27 Ipsilon is a multi-protocol Identiy Provider service. Its function is to
28 bridge authentication providers and applications to achieve Single Sign On
29 and Federation.
30
31
32 %package tools
33 Summary:        Client tools for the Ipsilon IDP
34 Group:          System Environment/Base
35 License:        GPLv3+
36 Requires:       python-requests
37 Requires:       python-lxml
38 Requires:       lasso-python
39 Requires:       mod_auth_mellon
40
41 %description tools
42 Convenience client install tools for the Ipsilon identity Provider
43
44
45 %prep
46 %setup -q
47
48
49 %build
50 CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
51
52 %install
53 %{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT
54 mkdir -p %{buildroot}%{_sbindir}
55 install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon
56 mv %{buildroot}/%{_bindir}/ipsilon %{buildroot}/%{_sbindir}
57 mv %{buildroot}/%{_bindir}/ipsilon-server-install %{buildroot}/%{_sbindir}
58 install -d -m 0700 %{buildroot}%{_sysconfdir}/ipsilon
59 mkdir -p %{buildroot}%{_defaultdocdir}
60 mv %{buildroot}%{_defaultdocdir}/%{name} %{buildroot}%{_defaultdocdir}/%{name}-%{version}
61
62 %pre
63 getent group ipsilon >/dev/null || groupadd -r ipsilon
64 getent passwd ipsilon >/dev/null || \
65     useradd -r -g ipsilon -d %{_sharedstatedir}/ipsilon -s /sbin/nologin \
66     -c "Ipsilon Server" ipsilon
67 exit 0
68
69 %post
70 semanage fcontext -a -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
71 semanage fcontext -a -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
72 restorecon -R %{_sharedstatedir}/ipsilon || :
73
74 %postun
75 semanage fcontext -d -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
76 semanage fcontext -d -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
77
78 %files
79 %{_defaultdocdir}/%{name}-%{version}
80 %{python2_sitelib}/ipsilon-*.egg-info
81 %{python2_sitelib}/ipsilon/admin/*
82 %{python2_sitelib}/ipsilon/login/*
83 %{python2_sitelib}/ipsilon/providers/*
84 %{python2_sitelib}/ipsilon/root.py*
85 %{python2_sitelib}/ipsilon/util/*
86 %{_mandir}/man*/ipsilon*
87 %{_datadir}/ipsilon/templates/*.html
88 %{_datadir}/ipsilon/templates/admin/*
89 %{_datadir}/ipsilon/templates/login/*
90 %{_datadir}/ipsilon/templates/saml2/*
91 %{_datadir}/ipsilon/templates/install/*.conf
92 %{_datadir}/ipsilon/ui/css/*
93 %{_datadir}/ipsilon/ui/img/*
94 %{_datadir}/ipsilon/ui/js/*
95 %{_sbindir}/ipsilon
96 %{_sbindir}/ipsilon-server-install
97 %dir %attr(0700,ipsilon,ipsilon) %{_sharedstatedir}/ipsilon
98 %dir %attr(0700,ipsilon,ipsilon) %{_sysconfdir}/ipsilon
99
100 %files tools
101 %doc COPYING README
102 %{python2_sitelib}/ipsilon-*.egg-info
103 %{python2_sitelib}/ipsilon/__init__.py*
104 %{python2_sitelib}/ipsilon/tools/*
105 %{python2_sitelib}/ipsilon/helpers/*
106 %{_datadir}/ipsilon/templates/install/saml2/sp.conf
107 %{_datadir}/ipsilon/ui/saml2sp/*
108 %{_bindir}/ipsilon-client-install