Blob Blame History Raw
%global pkgname fedora-messaging
%global srcname fedora_messaging
%global desc \
Tools and APIs to make working with AMQP in Fedora easier.

Name:           %{pkgname}
Version:        1.7.1
Release:        1%{?dist}
Summary:        Set of tools for using Fedora's messaging infrastructure

License:        GPLv2+
URL:            https://github.com/fedora-infra/fedora-messaging
Source0:        %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz
Patch0:         Use-old-napoleon-module-for-EPEL-7.patch
Patch1:         Remove-service-identity-from-dependencies.patch
BuildArch:      noarch

BuildRequires:  python-devel
BuildRequires:  python-blinker
BuildRequires:  python-click
BuildRequires:  python-jsonschema
BuildRequires:  python-mock
BuildRequires:  python-pika >= 0.12.0
BuildRequires:  pyOpenSSL
BuildRequires:  pytest
BuildRequires:  python-toml
BuildRequires:  python-twisted-core
BuildRequires:  python-pytz
BuildRequires:  python-six
BuildRequires:  python-sphinx
BuildRequires:  python-sphinxcontrib-napoleon
Requires:       python-%{pkgname} = %{version}-%{release}

BuildRequires: systemd

%description %{desc}

%package     -n python2-%{pkgname}
Summary:        %{summary}
%{?python_provide:%python_provide python2-%{pkgname}}
# Drop when https://github.com/fedora-infra/fedora-messaging/pull/51 is released
Requires:       python-blinker
Requires:       python-click
Requires:       python-jsonschema
Requires:       python-pika >= 0.12.0
Requires:       pyOpenSSL
Requires:       python-toml
Requires:       python-twisted-core
Requires:       python-setuptools
Requires:       python-six
Requires:       python-pytz

%description -n python2-%{pkgname} %{desc}


%package doc
Summary:        Documentation for %{pkgname}
%description doc
Documentation for %{pkgname}.


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

# Twisted is too old in EPEL7 to bother supporting.
rm -f fedora_messaging/tests/unit/twisted/*.py

# Swathes of unit tests fail due to old versions of mock
rm -f fedora_messaging/tests/unit/test_config.py
rm -f fedora_messaging/tests/unit/test_cli.py

%build
%py2_build
# generate docs
PYTHONPATH=${PWD} sphinx-build -b man -d docs/_build/doctrees docs docs/_build/man
# remove the sphinx-build leftovers
rm -rf docs/_build/*/.buildinfo


%install
%py2_install
install -D -m 644 config.toml.example $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/config.toml
install -D -m 644 configs/fedora.toml $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/fedora.toml
install -D -m 644 configs/fedora.stg.toml $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/fedora.stg.toml
install -D -m 644 configs/cacert.pem $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/cacert.pem
# Yes, this is supposed to be a world-readable private key. It's for public Fedora broker access.
install -D -m 644 configs/fedora-key.pem $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/fedora-key.pem
install -D -m 644 configs/fedora-cert.pem $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/fedora-cert.pem
install -D -m 644 configs/stg-cacert.pem $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/stg-cacert.pem
install -D -m 644 configs/fedora.stg-key.pem $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/fedora.stg-key.pem
install -D -m 644 configs/fedora.stg-cert.pem $RPM_BUILD_ROOT%{_sysconfdir}/fedora-messaging/fedora.stg-cert.pem
install -D -m 644 docs/_build/man/fedora-messaging.1 $RPM_BUILD_ROOT%{_mandir}/man1/fedora-messaging.1
install -D -m 644 fm-consumer@.service $RPM_BUILD_ROOT%{_unitdir}/fm-consumer@.service


%check
export PYTHONPATH=.
py.test -vv fedora_messaging/tests/unit/


%files
%license LICENSE
%doc README.rst
%config(noreplace) %{_sysconfdir}/fedora-messaging/config.toml
%config(noreplace) %{_sysconfdir}/fedora-messaging/fedora.toml
%config(noreplace) %{_sysconfdir}/fedora-messaging/fedora.stg.toml
%config(noreplace) %{_sysconfdir}/fedora-messaging/cacert.pem
%config(noreplace) %{_sysconfdir}/fedora-messaging/fedora-key.pem
%config(noreplace) %{_sysconfdir}/fedora-messaging/fedora-cert.pem
%config(noreplace) %{_sysconfdir}/fedora-messaging/stg-cacert.pem
%config(noreplace) %{_sysconfdir}/fedora-messaging/fedora.stg-key.pem
%config(noreplace) %{_sysconfdir}/fedora-messaging/fedora.stg-cert.pem
%{_mandir}/man1/%{name}.*
%{_bindir}/%{name}
%{_unitdir}/fm-consumer@.service

%files -n python2-%{pkgname}
%license LICENSE
%{python2_sitelib}/%{srcname}
%{python2_sitelib}/%{srcname}-%{version}-py%{python2_version}.egg-info

%files doc
%license LICENSE
%doc README.rst docs/*.rst


%changelog
* Tue Jun 25 2019 Jeremy Cline <jcline@redhat.com> - 1.7.1-1
- Update to v1.7.1

* Mon Jun 10 2019 Jeremy Cline <jcline@redhat.com> - 1.7.0-2
- Include the stage config and credentials

* Tue May 21 2019 Jeremy Cline <jcline@redhat.com> - 1.7.0-1
- Update to v1.7.0

* Wed Apr 17 2019 Jeremy Cline <jcline@redhat.com> - 1.6.1-1
- Update to v1.6.1

* Fri Apr 05 2019 Jeremy Cline <jcline@redhat.com> - 1.6.0-2
- Drop Twisted from requires.txt

* Thu Apr 04 2019 Jeremy Cline <jcline@redhat.com> - 1.6.0-1
- Update to v1.6.0

* Thu Mar 07 2019 Aurelien Bompard <abompard@fedoraproject.org> - 1.5.0-2
- Add the Systemd service template file.

* Thu Jan 24 2019 Jeremy Cline <jeremy@jcline.org> - 1.3.0-1
- Update to v1.3.0

* Mon Jan 21 2019 Jeremy Cline <jeremy@jcline.org> - 1.2.0-1
- Update to v1.2.0

* Thu Nov 15 2018 Jeremy Cline <jeremy@jcline.org> - 1.1.0-1
- Update to v1.1.0

* Wed Oct 10 2018 Jeremy Cline <jeremy@jcline.org> - 1.0.1-1
- Update to v1.0.1

* Wed Oct 10 2018 Jeremy Cline <jeremy@jcline.org> - 1.0.0-1
- Update to v1.0.0

* Fri Sep 07 2018 Jeremy Cline <jeremy@jcline.org> - 1.0.0-0.2b1
- Move dependency generator macro to top of file
- Depend on version + release for the library
- Add python_provide macro

* Wed Aug 29 2018 Jeremy Cline <jeremy@jcline.org> - 1.0.0-0.1b1
- Update to 1.0.0b1
- Drop Python 2 package for Rawhide

* Wed Aug 15 2018 Aurelien Bompard <abompard@fedoraproject.org> - 1.0.0-0.1.a1
- Initial package