Blob Blame History Raw
%if 0%{?fedora}
%bcond_with python2
%else
%bcond_without python2
%endif
# Missing pyfakefs on EPEL7
%bcond_with python2_tests

%global srcname fido2

Name:           python-%{srcname}
Version:        0.4.0
Release:        2%{?dist}
Summary:        Functionality for FIDO 2.0, including USB device communication

# Main code is BSD
# pyu2f is APLv2
# public_suffix_list.dat is MPLv2
License:        BSD and ASL 2.0 and MPLv2.0
URL:            https://github.com/Yubico/python-fido2
Source0:        https://github.com/Yubico/python-%{srcname}/archive/%{version}/python-%{name}-%{version}.tar.gz
# Deal with old setuptools on EPEL7
Patch0:         python-fido2-setup.patch
BuildArch:      noarch

%global _description\
Provides library functionality for communicating with a FIDO device over USB\
as well as verifying attestation and assertion signatures.\
\
WARNING: This project is in beta. Expect things to change or break at any time!\
\
This library aims to support the FIDO U2F and FIDO 2.0 protocols for\
communicating with a USB authenticator via the Client-to-Authenticator\
Protocol (CTAP 1 and 2). In addition to this low-level device access, classes\
defined in the fido2.client and fido2.server modules implement higher level\
operations which are useful when interfacing with an Authenticator, or when\
implementing a Relying Party.\
\
For usage, see the examples/ directory.

%description %_description

%if %{with python2}
%package -n python2-%{srcname}
Summary: %summary
BuildRequires:  python2-devel
BuildRequires:  python2-cryptography
BuildRequires:  python2-six
BuildRequires:  python2-enum34
# For tests
BuildRequires:  python2-mock
%if %{with python2_tests}
BuildRequires:  python2-pyfakefs
%endif
Requires:       python2-enum34
Requires:       python2-cryptography
Requires:       python2-six
%{?python_provide:%python_provide python2-%{srcname}}

%description -n python2-%{srcname} %_description
%endif

%package -n python%{python3_pkgversion}-%{srcname}
Summary: %summary
BuildRequires:  python%{python3_pkgversion}-devel
BuildRequires:  python%{python3_pkgversion}-cryptography
BuildRequires:  python%{python3_pkgversion}-six
# For tests
BuildRequires:  python%{python3_pkgversion}-mock
BuildRequires:  python%{python3_pkgversion}-pyfakefs
Requires:       python%{python3_pkgversion}-cryptography
Requires:       python%{python3_pkgversion}-six
%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}}

%description -n python%{python3_pkgversion}-%{srcname} %_description

%if 0%{?python3_other_pkgversion}
%package -n python%{python3_other_pkgversion}-%{srcname}
Summary: %summary
BuildRequires:  python%{python3_other_pkgversion}-devel
BuildRequires:  python%{python3_other_pkgversion}-cryptography
BuildRequires:  python%{python3_other_pkgversion}-six
# For tests
BuildRequires:  python%{python3_other_pkgversion}-mock
BuildRequires:  python%{python3_other_pkgversion}-pyfakefs
Requires:       python%{python3_other_pkgversion}-cryptography
Requires:       python%{python3_other_pkgversion}-six
%{?python_provide:%python_provide python%{python3_other_pkgversion}-%{srcname}}

%description -n python%{python3_other_pkgversion}-%{srcname} %_description
%endif

%prep
%autosetup -p1


%build
%if %{with python2}
%py2_build
%endif
%py3_build
%if 0%{?python3_other_pkgversion}
%py3_other_build
%endif


%install
%if %{with python2}
%py2_install
%endif
%py3_install
%if 0%{?python3_other_pkgversion}
%py3_other_install
%endif


%check
%if %{with python2} && %{with python2_tests}
%{__python2} setup.py test
%endif
%{__python3} setup.py test
%if 0%{?python3_other_pkgversion}
%{__python3_other} setup.py test
%endif


%if %{with python2}
%files -n python2-%{srcname}
%license COPYING*
%doc NEWS README.adoc examples
%{python2_sitelib}/%{srcname}-*.egg-info/
%{python2_sitelib}/%{srcname}/
%endif

%files -n python%{python3_pkgversion}-%{srcname}
%license COPYING*
%doc NEWS README.adoc examples
%{python3_sitelib}/%{srcname}-*.egg-info/
%{python3_sitelib}/%{srcname}/

%if 0%{?python3_other_pkgversion}
%files -n python%{python3_pkgversion}-%{srcname}
%license COPYING*
%doc NEWS README.adoc examples
%{python3_other_sitelib}/%{srcname}-*.egg-info/
%{python3_other_sitelib}/%{srcname}/
%endif


%changelog
* Mon Dec 3 2018 Orion Poplawski <orion@nwra.com> - 1.2.4-2
- Fix License
- Remove tab and fix permissions

* Fri Nov 30 2018 Orion Poplawski <orion@nwra.com> - 1.2.4-1
- Initial Fedora package