blob: 9ea5a1fcdbc7135fba3a0a5313720b5b429596c0 [file] [log] [blame]
%{!?sources_gpg: %{!?dlrn:%global sources_gpg 1} }
%global sources_gpg_sign 0x2426b928085a020d8a90d0d879ab7008d0896c8a
%{!?upstream_version: %global upstream_version %{version}%{?milestone}}
# we are excluding some BRs from automatic generator
%global excluded_brs doc8 bandit pre-commit hacking flake8-import-order isort
# Exclude sphinx from BRs if docs are disabled
%if ! 0%{?with_doc}
%global excluded_brs %{excluded_brs} sphinx openstackdocstheme
%endif
%global library ovsdbapp
%global module ovsdbapp
%global with_doc 1
%global common_desc \
A library for writing Open vSwitch OVSDB-based applications.
%global common_desc_tests \
Python OVSDB Application Library tests. \
This package contains Python OVSDB Application Library test files.
Name: python-%{library}
Version: XXX
Release: XXX
Summary: Python OVSDB Application Library
License: Apache-2.0
URL: http://launchpad.net/%{library}/
Source0: http://tarballs.openstack.org/%{library}/%{library}-%{upstream_version}.tar.gz
# Required for tarball sources verification
%if 0%{?sources_gpg} == 1
Source101: http://tarballs.openstack.org/%{library}/%{library}-%{upstream_version}.tar.gz.asc
Source102: https://releases.openstack.org/_static/%{sources_gpg_sign}.txt
%endif
BuildArch: noarch
# Required for tarball sources verification
%if 0%{?sources_gpg} == 1
BuildRequires: /usr/bin/gpgv2
%endif
BuildRequires: git-core
BuildRequires: openstack-macros
%package -n python3-%{library}
Summary: Python OVSDB Application Library
BuildRequires: python3-devel
BuildRequires: pyproject-rpm-macros
BuildRequires: python3-openvswitch
Requires: python3-openvswitch
%description -n python3-%{library}
%{common_desc}
%package -n python3-%{library}-tests
Summary: Python OVSDB Application Library Tests
Requires: python3-%{library} = %{version}-%{release}
Requires: python3-fixtures
Requires: python3-mock
Requires: python3-oslotest
Requires: python3-testrepository
%description -n python3-%{library}-tests
%{common_desc_tests}
%if 0%{?with_doc}
%package -n python-%{library}-doc
Summary: Python OVSDB Application Library documentation
%description -n python-%{library}-doc
%{common_desc}
This package contains the documentation.
%endif
%description
%{common_desc}
%prep
# Required for tarball sources verification
%if 0%{?sources_gpg} == 1
%{gpgverify} --keyring=%{SOURCE102} --signature=%{SOURCE101} --data=%{SOURCE0}
%endif
%autosetup -n %{library}-%{upstream_version} -S git
sed -i /^[[:space:]]*-c{env:.*_CONSTRAINTS_FILE.*/d tox.ini
sed -i "s/^deps = -c{env:.*_CONSTRAINTS_FILE.*/deps =/" tox.ini
sed -i /^minversion.*/d tox.ini
sed -i /^requires.*virtualenv.*/d tox.ini
sed -i '/hacking>=/d' tox.ini
# Exclude some bad-known BRs
for pkg in %{excluded_brs};do
for reqfile in doc/requirements.txt test-requirements.txt; do
if [ -f $reqfile ]; then
sed -i /^${pkg}.*/d $reqfile
fi
done
done
# Automatic BR generation
%generate_buildrequires
%if 0%{?with_doc}
%pyproject_buildrequires -t -e %{default_toxenv},docs
%else
%pyproject_buildrequires -t -e %{default_toxenv}
%endif
%build
%pyproject_wheel
%if 0%{?with_doc}
# generate html docs
%tox -e docs
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
%endif
%install
%pyproject_install
%check
%tox -e %{default_toxenv}
%files -n python3-%{library}
%doc README.rst
%license LICENSE
%{python3_sitelib}/%{module}
%{python3_sitelib}/%{module}-*.dist-info
%exclude %{python3_sitelib}/%{module}/tests
%files -n python3-%{library}-tests
%{python3_sitelib}/%{module}/tests
%if 0%{?with_doc}
%files -n python-%{library}-doc
%doc doc/build/html
%license LICENSE
%endif
%changelog