Blob Blame History Raw
%global srcname fmn

# python-sqlalchemy_schemadisplay is not yet in Fedora
# https://bugzilla.redhat.com/show_bug.cgi?id=1409929
%global with_docs 0

Name:           python-%{srcname}
Version:        2.0.2
Release:        1%{?dist}
Summary:        A system for generic fedmsg-driven notifications for end users

License:        LGPLv2+
URL:            https://github.com/fedora-infra/%{srcname}
Source0:        %{url}/archive/%{version}/%{srcname}-%{version}.tar.gz
Patch0:         0001-Refactor-the-tasks-formatting-code.patch
Patch1:         0002-Refactor-the-tasks-to-add-error-handling.patch
Patch2:         0003-Handle-sqlalchemy-errors-in-the-irc-backend.patch
BuildArch:      noarch

%description
fmn is a family of systems to manage end-user notifications triggered by
fedmsg, the FEDerated MESsage bus. fmn provides a single place for all
applications using fedmsg to notify users of events. Notifications can be
delivered by email, IRC, and server-sent events. Users can configure their
notifications for all the applications they use in one place.

%package -n python2-%{srcname}
Summary:        %{summary}
Requires:           httpd
Requires:           mod_wsgi
Requires:           python2-arrow
Requires:           python2-beautifulsoup4
Requires:           python2-bleach
Requires:           python2-bunch
Requires:           python2-celery
Requires:           python-datanommer-models
Requires:           python2-docutils
Requires:           python2-dogpile-cache
Requires:           python2-fedmsg
Requires:           python2-fedmsg-meta-fedora-infrastructure >= 0.18
Requires:           python2-flask
Requires:           python2-flask-openid
Requires:           python2-markupsafe
Requires:           python2-moksha-hub
Requires:           python2-openid
Requires:           python2-openid-cla
Requires:           python2-openid-teams
Requires:           python2-pika
Requires:           python2-pydns
Requires:           python2-pylibravatar
Requires:           python2-fedora
Requires:           python2-redis
Requires:           python2-requests
Requires:           python2-six
Requires:           python2-sqlalchemy >= 0.8
Requires:           python2-twisted
Requires:           python2-wtforms
Requires(post):     systemd
Requires(preun):    systemd
Requires(postun):   systemd

BuildRequires:      python2-arrow
BuildRequires:      python2-beautifulsoup4
BuildRequires:      python2-bleach
BuildRequires:      python2-bunch
BuildRequires:      python2-celery
BuildRequires:      python-datanommer-models
BuildRequires:      python2-devel
BuildRequires:      python2-docutils
BuildRequires:      python2-dogpile-cache
BuildRequires:      python2-fedmsg
BuildRequires:      python2-fedmsg-meta-fedora-infrastructure
BuildRequires:      python2-fedora
BuildRequires:      python2-flake8
BuildRequires:      python2-flask
BuildRequires:      python2-flask-openid
BuildRequires:      python2-html5lib
BuildRequires:      python2-markupsafe
BuildRequires:      python2-moksha-hub
BuildRequires:      python2-mock
BuildRequires:      python2-openid
BuildRequires:      python2-openid-cla
BuildRequires:      python2-openid-teams
BuildRequires:      python2-pika
BuildRequires:      python2-pydns
BuildRequires:      python2-pylibravatar
BuildRequires:      python2-pytest
BuildRequires:      python2-redis
BuildRequires:      python2-requests
BuildRequires:      python2-setuptools
BuildRequires:      python2-six
BuildRequires:      python2-sqlalchemy >= 0.8
BuildRequires:      python2-twisted
BuildRequires:      python2-vcrpy
BuildRequires:      python2-wtforms
BuildRequires:      python2-devel
BuildRequires:      systemd
%{?python_provide:%python_provide python2-%{srcname}}

Provides: python-fmn-rules = %{version}-%{release}
Obsoletes: python-fmn-rules < 0.9.1-2%{?dist}
Provides: python-fmn-lib = %{version}-%{release}
Obsoletes: python-fmn-lib < 0.8.2-3%{?dist}
Provides: python-fmn-consumer = %{version}-%{release}
Obsoletes: python-fmn-consumer < 1.0.3-2%{?dist}
Provides: python-fmn-web = %{version}-%{release}
Obsoletes: python-fmn-web < 0.8.1-4%{?dist}
Provides: python-fmn-sse = %{version}-%{release}
Obsoletes: python-fmn-sse < 0.2.1-4%{?dist}

%description -n python2-%{srcname}
fmn is a family of systems to manage end-user notifications triggered by
fedmsg, the FEDerated MESsage bus. fmn provides a single place for all
applications using fedmsg to notify users of events. Notifications can be
delivered by email, IRC, and server-sent events. Users can configure their
notifications for all the applications they use in one place.


%if 0%{?with_docs} > 0
%package doc
Summary:        HTML documentation for python-fmn
BuildRequires:  make
BuildRequires:  python2-sphinx
BuildRequires:  python2-sqlalchemy_schemadisplay

%description -n python-%{srcname}-doc
HTML documentation for python-fmn.
%endif


%prep
%autosetup -p1 -n %{srcname}-%{version}


%build
%py2_build


%if 0%{?with_docs} > 0
pushd docs
PYTHONPATH=$(dirname $(pwd)) make html
popd
%endif


%install
%py2_install


install -d %{buildroot}%{_bindir}
install -d %{buildroot}%{_unitdir}
install -d %{buildroot}%{_datadir}/%{srcname}
install -pm644 alembic.ini %{buildroot}/%{_datadir}/%{srcname}/alembic.ini
install -pm644 systemd/fmn-backend@.service %{buildroot}/%{_unitdir}/
install -pm644 systemd/fmn-celerybeat.service %{buildroot}/%{_unitdir}/
install -pm644 systemd/fmn-worker@.service %{buildroot}/%{_unitdir}/
cp -a alembic %{buildroot}/%{_datadir}/%{srcname}/

%{__mkdir_p} %{buildroot}/%{_datadir}/%{srcname}
%{__mkdir_p} %{buildroot}/%{_sysconfdir}/httpd/conf.d
cp -p apache/%{srcname}.web.wsgi %{buildroot}%{_datadir}/%{srcname}/%{srcname}.web.wsgi
cp -p apache/%{srcname}.web.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/%{srcname}.web.conf
cp -r fmn/web/static/ %{buildroot}%{_datadir}/%{srcname}/static

cp -p usr/share/fmn/delivery_service.tac %{buildroot}%{_datadir}/%{srcname}/delivery_service.tac
cp -p usr/share/fmn_sse/sse_server.tac %{buildroot}%{_datadir}/%{srcname}/sse_server.tac

rm -rf %{buildroot}%{_datadir}/%{srcname}/static/bootstrap


%check
PYTHONPATH=$(pwd) py.test


%files -n python2-%{srcname}
%license COPYING COPYING.LESSER
%doc README.rst CHANGELOG.rst
%{python2_sitelib}/*
%{_datadir}/%{srcname}
%{_bindir}/fmn-createdb
%{_unitdir}/*
%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{srcname}.web.conf


%if 0%{?with_docs} > 0
%files doc
%license COPYING COPYING.LESSER
%doc README.rst CHANGELOG.rst docs/_build/html/
%endif


%changelog
* Fri Jan 12 2018 Jeremy Cline <jeremy@jcline.org> - 2.0.2-1
- Update to latest upstream

* Thu Nov 02 2017 Jeremy Cline <jeremy@jcline.org> - 2.0.1-1
- Update to latest upstream

* Wed Oct 25 2017 Jeremy Cline <jeremy@jcline.org> - 2.0.0-2
- Drop the runtime dependency on vcrpy

* Wed Oct 25 2017 Jeremy Cline <jeremy@jcline.org> - 2.0.0-1
- Update to latest upstream

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Thu Jun 15 2017 Jeremy Cline <jeremy@jcline.org> - 1.3.1-2
- Add a missing dependency (python-bunch)

* Mon Jun 12 2017 Jeremy Cline <jeremy@jcline.org> - 1.3.1-1
- Update to latest upstream

* Wed May 31 2017 Jeremy Cline <jeremy@jcline.org> - 1.3.0-1
- Update to 1.3.0
- Provide fmn-sse and fmn-web

* Mon Apr 10 2017 Jeremy Cline <jeremy@jcline.org> - 1.2.0-1
- Update to upstream 1.2.0

* Fri Jan 20 2017 Jeremy Cline <jeremy@jcline.org> - 1.1.0-1
- Update to latest upstream
- Address package review comments

* Thu Jan 05 2017 Jeremy Cline <jeremy@jcline.org> - 1.0.0-1
- Initial package.