Name: ipsilon
-Version: 0.1
+Version: 0.2.6
Release: 1%{?dist}
Summary: An Identity Provider Server
BuildRequires: python2-devel
BuildRequires: python-setuptools
BuildRequires: lasso-python
-Requires: lasso-python
+BuildRequires: python-openid, python-openid-cla, python-openid-teams
+BuildRequires: m2crypto
+Requires: ipsilon-tools = %{version}-%{release}
+Requires: ipsilon-provider = %{version}-%{release}
Requires: mod_wsgi
-Requires: mod_auth_kerb
+Requires: mod_intercept_form_submit
Requires: python-cherrypy
Requires: python-jinja2
-Requires: python-pam
+Requires: python-lxml
+Requires: python-sqlalchemy
Requires(pre): shadow-utils
+Requires(post): %_sbindir/semanage, %_sbindir/restorecon
+Requires(postun): %_sbindir/semanage
%description
Ipsilon is a multi-protocol Identiy Provider service. Its function is to
and Federation.
+%package tools
+Summary: Client tools for the Ipsilon IDP
+Group: System Environment/Base
+License: GPLv3+
+Requires: python-requests
+Requires: python-lxml
+Requires: lasso-python
+Requires: mod_auth_mellon
+
+%description tools
+Convenience client install tools for the Ipsilon identity Provider
+
+
+%package saml2
+Summary: SAML2 provider plugin
+Group: System Environment/Base
+License: GPLv3+
+Provides: ipsilon-provider = %{version}-%{release}
+Requires: lasso-python
+
+%description saml2
+Provides a SAML2 provider plugin for the Ipsilon identity Provider
+
+
+%package openid
+Summary: Openid provider plugin
+Group: System Environment/Base
+License: GPLv3+
+Provides: ipsilon-provider = %{version}-%{release}
+Requires: python-openid
+Requires: python-openid-cla
+Requires: python-openid-teams
+
+%description openid
+Provides an OpenId provider plugin for the Ipsilon identity Provider
+
+
+%package persona
+Summary: Persona provider plugin
+Group: System Environment/Base
+License: GPLv3+
+Provides: ipsilon-provider = %{version}-%{release}
+Requires: m2crypto
+
+%description persona
+Provides a Persona provider plugin for the Ipsilon identity Provider
+
+
+%package authfas
+Summary: Fedora Authentication System login plugin
+Group: System Environment/Base
+License: GPLv3+
+Requires: python-fedora
+
+%description authfas
+Provides a login plugin to authenticate agaist the Fedora Authentication System
+
+
+%package authpam
+Summary: PAM based login plugin
+Group: System Environment/Base
+License: GPLv3+
+Requires: python-pam
+
+%description authpam
+Provides a login plugin to authenticate agaist the local PAM stack
+
+
+%package authkrb
+Summary: mod_auth_kerb based login plugin
+Group: System Environment/Base
+License: GPLv3+
+Requires: mod_auth_kerb
+
+%description authkrb
+Provides a login plugin to allow authentication via the mod_auth_kerb Apache
+module.
+
+
+%package authldap
+Summary: mod_auth_kerb based login plugin
+Group: System Environment/Base
+License: GPLv3+
+Requires: python-ldap
+
+%description authldap
+Provides a login plugin to allow authentication and info retrieval via LDAP.
+
+
%prep
%setup -q
%build
-CFLAGS="$RPM_OPT_FLAGS" %{__python} setup.py build
+CFLAGS="%{optflags}" %{__python} setup.py build
%install
-%{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT
+%{__python} setup.py install --skip-build --root %{buildroot}
mkdir -p %{buildroot}%{_sbindir}
install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon
-install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon/sessions
-ln -s ../..%{python2_sitelib}/ipsilon/idpserver.py \
- %{buildroot}/%{_sbindir}/ipsilon
-chmod +x %{buildroot}%{python2_sitelib}/ipsilon/idpserver.py
-ln -s ../..%{python2_sitelib}/ipsilon/install/server.py \
- %{buildroot}/%{_sbindir}/ipsilon-server-install
-chmod +x %{buildroot}%{python2_sitelib}/ipsilon/install/server.py
+mv %{buildroot}/%{_bindir}/ipsilon %{buildroot}/%{_sbindir}
+mv %{buildroot}/%{_bindir}/ipsilon-server-install %{buildroot}/%{_sbindir}
install -d -m 0700 %{buildroot}%{_sysconfdir}/ipsilon
+mkdir -p %{buildroot}%{_defaultdocdir}
+mv %{buildroot}%{_defaultdocdir}/%{name} %{buildroot}%{_defaultdocdir}/%{name}-%{version}
+rm -fr %{buildroot}%{python2_sitelib}/tests
%pre
getent group ipsilon >/dev/null || groupadd -r ipsilon
-c "Ipsilon Server" ipsilon
exit 0
+%post
+semanage fcontext -a -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
+semanage fcontext -a -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
+restorecon -R %{_sharedstatedir}/ipsilon || :
+
+%postun
+# Clean up after package removal
+if [ $1 -eq 0 ]; then
+ semanage fcontext -d -t var_lib_t '%{_sharedstatedir}/ipsilon(/.*)/*.conf' || :
+ semanage fcontext -d -t httpd_var_lib_t '%{_sharedstatedir}/ipsilon(/.*)?' || :
+fi
+
%files
-%doc COPYING
-%{python2_sitelib}/*
+%{_defaultdocdir}/%{name}-%{version}
+%{python2_sitelib}/ipsilon-*.egg-info
+%{python2_sitelib}/ipsilon/admin/*
+%{python2_sitelib}/ipsilon/login/__init__*
+%{python2_sitelib}/ipsilon/login/common*
+%{python2_sitelib}/ipsilon/login/authform*
+%{python2_sitelib}/ipsilon/login/authtest*
+%{python2_sitelib}/ipsilon/info/__init__*
+%{python2_sitelib}/ipsilon/info/common*
+%{python2_sitelib}/ipsilon/info/nss*
+%{python2_sitelib}/ipsilon/providers/__init__*
+%{python2_sitelib}/ipsilon/providers/common*
+%{python2_sitelib}/ipsilon/root.py*
+%{python2_sitelib}/ipsilon/util/*
%{_mandir}/man*/ipsilon*
-%{_datadir}/ipsilon/*
+%{_datadir}/ipsilon/templates/*.html
+%{_datadir}/ipsilon/templates/admin/*
+%{_datadir}/ipsilon/templates/login/index.html
+%{_datadir}/ipsilon/templates/login/form.html
+%{_datadir}/ipsilon/templates/install/*.conf
+%{_datadir}/ipsilon/ui/css/*
+%{_datadir}/ipsilon/ui/img/*
+%{_datadir}/ipsilon/ui/js/*
%{_sbindir}/ipsilon
%{_sbindir}/ipsilon-server-install
%dir %attr(0700,ipsilon,ipsilon) %{_sharedstatedir}/ipsilon
-%dir %attr(0700,ipsilon,ipsilon) %{_sharedstatedir}/ipsilon/sessions
%dir %attr(0700,ipsilon,ipsilon) %{_sysconfdir}/ipsilon
+%files tools
+%doc COPYING README
+%{python2_sitelib}/ipsilon-*.egg-info
+%{python2_sitelib}/ipsilon/__init__.py*
+%{python2_sitelib}/ipsilon/tools/*
+%{python2_sitelib}/ipsilon/helpers/*
+%{_datadir}/ipsilon/templates/install/saml2/sp.conf
+%{_datadir}/ipsilon/ui/saml2sp/*
+%{_bindir}/ipsilon-client-install
+
+%files saml2
+%{python2_sitelib}/ipsilon/providers/saml2*
+%{_datadir}/ipsilon/templates/saml2/*
+
+%files openid
+%{python2_sitelib}/ipsilon/providers/openid*
+%{_datadir}/ipsilon/templates/openid/*
+
+%files persona
+%{python2_sitelib}/ipsilon/providers/persona*
+%{_datadir}/ipsilon/templates/persona/*
+
+%files authfas
+%{python2_sitelib}/ipsilon/login/authfas*
+
+%files authpam
+%{python2_sitelib}/ipsilon/login/authpam*
+
+%files authkrb
+%{python2_sitelib}/ipsilon/login/authkrb*
+%{_datadir}/ipsilon/templates/login/krb.html
-%changelog
-* Wed Jan 01 2014 Simo Sorce <simo@redhat.com> - 0.1
-- Changelog
+%files authldap
+%{python2_sitelib}/ipsilon/login/authldap*
+%{python2_sitelib}/ipsilon/info/infoldap*