rdobuilder c7f380
%global srcname pysaml2
rdobuilder c7f380
%global gittag v%{version}
rdobuilder c7f380
%global _description \
rdobuilder c7f380
PySAML2 is a pure python implementation of SAML2. It contains all \
rdobuilder c7f380
necessary pieces for building a SAML2 service provider or an identity \
rdobuilder c7f380
provider.  The distribution contains examples of both.  Originally \
rdobuilder c7f380
written to work in a WSGI environment there are extensions that allow \
rdobuilder c7f380
you to use it with other frameworks.
rdobuilder c7f380
rdobuilder c7f380
rdobuilder c7f380
Name:           python-%{srcname}
rdobuilder c7f380
Version:        7.4.2
rdobuilder c7f380
Release:        2%{?dist}
rdobuilder c7f380
Summary:        Python implementation of SAML Version 2
rdobuilder c7f380
License:        Apache-2.0
rdobuilder c7f380
URL:            https://github.com/IdentityPython/%{srcname}
rdobuilder c7f380
rdobuilder c7f380
Source0: https://github.com/IdentityPython/%{srcname}/archive/%{gittag}/%{srcname}-%{version}.tar.gz
rdobuilder c7f380
#TODO: remove the line below once the patch upstream is merged and contained
rdobuilder c7f380
# in a release https://github.com/IdentityPython/pysaml2/pull/916
rdobuilder c7f380
Patch0001:      0001-Remove-utility-from-packaging.patch
rdobuilder c7f380
# there is no poetry cli package in RDO so we run the tests with pytest
rdobuilder c7f380
Patch0002:      0001-Remove-poetry-cli-usage-and-fix-for-running-unit-tes.patch
rdobuilder c7f380
rdobuilder c7f380
BuildArch:      noarch
rdobuilder c7f380
BuildRequires:  python3-devel
rdobuilder c7f380
BuildRequires:  pyproject-rpm-macros
rdobuilder c7f380
BuildRequires:  git-core
rdobuilder c7f380
BuildRequires:  python3-sphinx
rdobuilder c7f380
# For tests
rdobuilder c7f380
BuildRequires:  python3-pytest
rdobuilder c7f380
BuildRequires:  python3-pymongo
rdobuilder c7f380
BuildRequires:  python3-responses
rdobuilder c7f380
BuildRequires:  xmlsec1
rdobuilder c7f380
BuildRequires:  xmlsec1-openssl
rdobuilder c7f380
rdobuilder c7f380
rdobuilder c7f380
%description %{_description}
rdobuilder c7f380
rdobuilder c7f380
%package -n python%{python3_pkgversion}-%{srcname}
rdobuilder c7f380
Summary: Python implementation of SAML Version 2
rdobuilder c7f380
rdobuilder c7f380
Requires:       xmlsec1
rdobuilder c7f380
Requires:       xmlsec1-openssl
rdobuilder c7f380
rdobuilder c7f380
%description -n python%{python3_pkgversion}-%{srcname} %{_description}
rdobuilder c7f380
rdobuilder c7f380
rdobuilder c7f380
%package doc
rdobuilder c7f380
Summary: Documentation for Python implementation of SAML Version 2
rdobuilder c7f380
rdobuilder c7f380
%description doc
rdobuilder c7f380
Documentation for Python implementation of SAML Version 2.
rdobuilder c7f380
rdobuilder c7f380
rdobuilder c7f380
%generate_buildrequires
rdobuilder c7f380
%pyproject_buildrequires -t
rdobuilder c7f380
rdobuilder c7f380
%prep
rdobuilder c7f380
%autosetup -n %{srcname}-%{version} -S git
rdobuilder c7f380
rdobuilder c7f380
# We need to remove the shebang manually otherwise automation removes
rdobuilder c7f380
# the whole line leading to have a Syntax error: unterminated triple-quoted 
rdobuilder c7f380
# string.
rdobuilder c7f380
sed -i 's|f"""#!/usr/bin/env python|f"""|' src/saml2/tools/parse_xsd2.py
rdobuilder c7f380
rdobuilder c7f380
# Avoid non-executable-script rpmlint while maintaining timestamps
rdobuilder c7f380
find src -name \*.py |
rdobuilder c7f380
while read source; do
rdobuilder c7f380
  if head -n1 "$source" | grep -F '/usr/bin/env'; then
rdobuilder c7f380
    touch --ref="$source" "$source".ts
rdobuilder c7f380
    sed -i '/\/usr\/bin\/env python/{d;q}' "$source"
rdobuilder c7f380
    touch --ref="$source".ts "$source"
rdobuilder c7f380
    rm "$source".ts
rdobuilder c7f380
  fi
rdobuilder c7f380
done
rdobuilder c7f380
rdobuilder c7f380
# special case for parse_xsd generated file which have lines like:
rdobuilder c7f380
#!!!! 'NoneType' object has no attribute 'py_class'
rdobuilder c7f380
source="src/saml2/schema/wsdl.py"
rdobuilder c7f380
touch --ref="$source" "$source".ts
rdobuilder c7f380
sed -i '1,3{d;q}' "$source"
rdobuilder c7f380
touch --ref="$source".ts "$source"
rdobuilder c7f380
rm "$source".ts
rdobuilder c7f380
rdobuilder c7f380
%build
rdobuilder c7f380
%pyproject_wheel
rdobuilder c7f380
rdobuilder c7f380
%install
rdobuilder c7f380
%pyproject_install
rdobuilder c7f380
%pyproject_save_files saml2 saml2test
rdobuilder c7f380
rdobuilder c7f380
# compat symlinks
rdobuilder c7f380
for bin in parse_xsd2 make_metadata mdexport merge_metadata; do
rdobuilder c7f380
    ln -s $bin %{buildroot}/%{_bindir}/${bin}.py
rdobuilder c7f380
done
rdobuilder c7f380
rdobuilder c7f380
# drop alabaster Sphinx theme, not packaged in Fedora yet
rdobuilder c7f380
sed -i '/alabaster/d' docs/conf.py
rdobuilder c7f380
# generate html docs
rdobuilder c7f380
export PYTHONPATH="%{buildroot}/%{python3_sitelib}"
rdobuilder c7f380
sphinx-build-3 docs html
rdobuilder c7f380
# remove the sphinx-build leftovers
rdobuilder c7f380
rm -rf html/.{doctrees,buildinfo}
rdobuilder c7f380
rdobuilder c7f380
%check
rdobuilder c7f380
# Many of the unit tests rely on sha1 which is disabled in CentOS 9
rdobuilder c7f380
%pytest -k 'not sign and not test_response_ and not test_do_logout_post and not test_do_logout_session_expired and not test_xbox and not test_xbox_non_ascii_ava and not test_1 and not test_2 and not test_issuer_none and not test_other_response and not test_verify_1 and not test_parse_2 and not test_verify_w_authn and not test_unpack_nested_eptid and not test_multiple_attribute_statement and not test_logout_response'
rdobuilder c7f380
rdobuilder c7f380
%files -n python%{python3_pkgversion}-%{srcname} -f %{pyproject_files}
rdobuilder c7f380
%{_bindir}/parse_xsd2
rdobuilder c7f380
%{_bindir}/parse_xsd2.py
rdobuilder c7f380
%{_bindir}/make_metadata
rdobuilder c7f380
%{_bindir}/make_metadata.py
rdobuilder c7f380
%{_bindir}/mdexport
rdobuilder c7f380
%{_bindir}/mdexport.py
rdobuilder c7f380
%{_bindir}/merge_metadata
rdobuilder c7f380
%{_bindir}/merge_metadata.py
rdobuilder c7f380
%license LICENSE
rdobuilder c7f380
rdobuilder c7f380
%files doc
rdobuilder c7f380
%license LICENSE
rdobuilder c7f380
%doc html
rdobuilder c7f380
rdobuilder c7f380
%changelog
rdobuilder c7f380
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.4.2-2
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Mon Jul 10 2023 Joel Capitao <jcapitao@redhat.com> - 7.4.2-1
rdobuilder c7f380
- Update to 7.4.2
rdobuilder c7f380
rdobuilder c7f380
* Fri Jul 07 2023 Joel Capitao <jcapitao@redhat.com> - 7.3.1-1
rdobuilder c7f380
- Update to 7.3.1
rdobuilder c7f380
- Switch to pyproject-rpm-macros
rdobuilder c7f380
- Move to SPDX
rdobuilder c7f380
rdobuilder c7f380
* Thu Jun 29 2023 Python Maint <python-maint@redhat.com> - 7.1.2-3
rdobuilder c7f380
- Rebuilt for Python 3.12
rdobuilder c7f380
rdobuilder c7f380
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.1.2-2
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Thu Aug 04 2022 Alfredo Moralejo <amoralej@redhat.com> - 7.1.2-1
rdobuilder c7f380
- Update to 7.1.2
rdobuilder c7f380
rdobuilder c7f380
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.0.1-6
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 7.0.1-5
rdobuilder c7f380
- Rebuilt for Python 3.11
rdobuilder c7f380
rdobuilder c7f380
* Fri Jan 28 2022 Kai A. Hiller <V02460@gmail.com> - 7.0.1-4
rdobuilder c7f380
- Add missing requires for xmlsec1 and xmlsec1-openssl
rdobuilder c7f380
rdobuilder c7f380
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 7.0.1-3
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Thu Oct 21 2021 Alfredo Moralejo <amoralej@redhat.com> - 7.0.1-2
rdobuilder c7f380
- Use importlib.resources in python >= 3.7  (rhbz#2008668)
rdobuilder c7f380
rdobuilder c7f380
* Fri Sep 24 2021 Joel Capitao <jcapitao@redhat.com> - 7.0.1-1
rdobuilder c7f380
- Update to 7.0.1 (rhbz#1290944)
rdobuilder c7f380
rdobuilder c7f380
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.0-4
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 6.1.0-3
rdobuilder c7f380
- Rebuilt for Python 3.10
rdobuilder c7f380
rdobuilder c7f380
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.0-2
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Thu Jul 30 2020 Yatin Karel <ykarel@redhat.com> - 6.1.0-1
rdobuilder c7f380
- Update to 6.1.0 (rhbz#1290944)
rdobuilder c7f380
rdobuilder c7f380
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.0-12
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 4.5.0-11
rdobuilder c7f380
- Rebuilt for Python 3.9
rdobuilder c7f380
rdobuilder c7f380
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.0-10
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 4.5.0-9
rdobuilder c7f380
- Rebuilt for Python 3.8.0rc1 (#1748018)
rdobuilder c7f380
rdobuilder c7f380
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 4.5.0-8
rdobuilder c7f380
- Rebuilt for Python 3.8
rdobuilder c7f380
rdobuilder c7f380
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.0-7
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Mon Feb 11 2019 Miro Hrončok <mhroncok@redhat.com> - 4.5.0-6
rdobuilder c7f380
- Subpackage python2-pysaml2 has been removed
rdobuilder c7f380
  See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal
rdobuilder c7f380
rdobuilder c7f380
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.0-5
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.5.0-4
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 4.5.0-3
rdobuilder c7f380
- Rebuilt for Python 3.7
rdobuilder c7f380
rdobuilder c7f380
* Wed Jun  6 2018  <jdennis@redhat.com> - 4.5.0-2
rdobuilder c7f380
- Resolves: rhbz#1582254 - re-enable python2 support
rdobuilder c7f380
rdobuilder c7f380
* Fri May 18 2018  <jdennis@redhat.com> - 4.5.0-1
rdobuilder c7f380
- upgrade to current upstream
rdobuilder c7f380
- enforce Python packaging standards
rdobuilder c7f380
rdobuilder c7f380
* Fri Feb 09 2018 Iryna Shcherbina <ishcherb@redhat.com> - 3.0.2-10
rdobuilder c7f380
- Update Python 2 dependency declarations to new packaging standards
rdobuilder c7f380
  (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
rdobuilder c7f380
rdobuilder c7f380
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.2-9
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.2-8
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Thu Mar 16 2017 Jason Joyce <jjoyce@redhat.com> - 3.0.2-7
rdobuilder c7f380
- security fix for entity expansion issue - CVE-2016-10149
rdobuilder c7f380
rdobuilder c7f380
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.2-6
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 3.0.2-5
rdobuilder c7f380
- Rebuild for Python 3.6
rdobuilder c7f380
rdobuilder c7f380
* Sun Nov 13 2016 Peter Robinson <pbrobinson@fedoraproject.org> 3.0.2-4
rdobuilder c7f380
- fix pycrypto dependency
rdobuilder c7f380
rdobuilder c7f380
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.2-3
rdobuilder c7f380
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
rdobuilder c7f380
rdobuilder c7f380
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.2-2
rdobuilder c7f380
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
rdobuilder c7f380
rdobuilder c7f380
* Sat Dec 05 2015 Alan Pevec <alan.pevec@redhat.com> 3.0.2-1
rdobuilder c7f380
- Update to 3.0.2
rdobuilder c7f380
rdobuilder c7f380
* Wed Jul 15 2015 Alan Pevec <apevec@redhat.com> - 3.0.0-1
rdobuilder c7f380
- update to upstream release 3.0.0
rdobuilder c7f380
rdobuilder c7f380
* Thu Jun 18 2015 Alan Pevec <apevec@redhat.com> - 3.0.0-0.3.git40603ae
rdobuilder c7f380
- include unreleased fix for https://github.com/rohe/pysaml2/issues/202
rdobuilder c7f380
- review feedback
rdobuilder c7f380
- fix rpmlint errors
rdobuilder c7f380
rdobuilder c7f380
* Tue Mar 31 2015 Alan Pevec <apevec@redhat.com> - 2.4.0-1
rdobuilder c7f380
- Update to 2.4.0
rdobuilder c7f380
rdobuilder c7f380
* Mon Feb 16 2015 Dan Prince - 2.3.0-1
rdobuilder c7f380
- Initial package.