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