From f5c6f4c176211532fc7377767f9e7e7ce9c2d377 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 23 Dec 2021 09:25:56 -0500 Subject: [PATCH 1/2] Opt in to rpmautospec --- changelog | 164 ++++++++++++++++++++++++++++++++++++++++++++ python-OWSLib.spec | 167 +-------------------------------------------- 2 files changed, 166 insertions(+), 165 deletions(-) create mode 100644 changelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..9d2706c --- /dev/null +++ b/changelog @@ -0,0 +1,164 @@ +* Wed Jan 27 2021 Fedora Release Engineering - 0.21.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Dec 09 2020 Volker Fröhlich - 0.21.0-1 +- New upstream release + +* Tue Jul 28 2020 Fedora Release Engineering - 0.20.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jun 05 2020 Volker Fröhlich - 0.20.0-1 +- New upstream release + +* Tue May 26 2020 Miro Hrončok - 0.19.1-2 +- Rebuilt for Python 3.9 + +* Sun Feb 02 2020 Volker Fröhlich - 0.19.1-1 +- New upstream release + +* Thu Jan 30 2020 Fedora Release Engineering - 0.19.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sun Jan 19 2020 Volker Fröhlich - 0.19.0-1 +- New upstream release + +* Thu Oct 03 2019 Miro Hrončok - 0.18.0-4 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Mon Aug 19 2019 Miro Hrončok - 0.18.0-3 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 0.18.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jun 26 2019 Volker Fröhlich - 0.18.0-1 +- New upstream release + +* Mon Feb 11 2019 Miro Hrončok - 0.17.0-3 +- Subpackage python2-owslib has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Sat Feb 02 2019 Fedora Release Engineering - 0.17.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Sep 19 2018 Volker Fröhlich - 0.17.0-1 +- New upstream release +- Update names of documentation files + +* Fri Jul 13 2018 Fedora Release Engineering - 0.16.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 0.16.0-4 +- Rebuilt for Python 3.7 + +* Wed Feb 21 2018 Iryna Shcherbina - 0.16.0-3 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 0.16.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Dec 22 2017 Volker Fröhlich - 0.16.0-1 +- New upstream release + +* Thu Sep 14 2017 Volker Fröhlich - 0.15.0-1 +- New upstream release + +* Tue Aug 29 2017 Zbigniew Jędrzejewski-Szmek - 0.14.0-5 +- Add Provides for the old name + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 0.14.0-4 +- Python 2 binary package renamed to python2-owslib + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Jul 27 2017 Fedora Release Engineering - 0.14.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 0.14.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jan 12 2017 Volker Fröhlich - 0.14.0-1 +- New upstream release + +* Mon Dec 19 2016 Miro Hrončok - 0.13.0-2 +- Rebuild for Python 3.6 + +* Sun Sep 25 2016 Volker Fröhlich - 0.13.0-1 +- New upstream release + +* Tue Sep 13 2016 Volker Fröhlich - 0.12.0-1 +- New upstream release +- Update URL and Source + +* Tue Jul 19 2016 Fedora Release Engineering - 0.11.2-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Mon May 16 2016 Volker Fröhlich - 0.11.2-1 +- New upstream release + +* Sat May 14 2016 Volker Fröhlich - 0.11.1-1 +- New upstream release + +* Fri Apr 1 2016 Volker Fröhlich - 0.11.0-1 +- New upstream release + +* Thu Feb 04 2016 Fedora Release Engineering - 0.10.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Nov 23 2015 Volker Fröhlich - 0.10.3-1 +- New upstream release + +* Sun Nov 22 2015 Volker Fröhlich - 0.10.1-1 +- New upstream release + +* Thu Nov 12 2015 Fedora Release Engineering - 0.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Wed Nov 11 2015 Volker Fröhlich - 0.10.0-1 +- New upstream release + +* Tue Nov 10 2015 Fedora Release Engineering - 0.9.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 + +* Fri Sep 25 2015 Volker Fröhlich - 0.9.2-1 +- New upstream release + +* Sun Sep 6 2015 Volker Fröhlich - 0.9.1-2 +- Add pyproj dependency + +* Sun Sep 6 2015 Volker Fröhlich - 0.9.1-1 +- New upstream release + +* Thu Jun 18 2015 Fedora Release Engineering - 0.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Jun 13 2015 Volker Fröhlich - 0.9.0-1 +- New upstream release +- Add Python 3 sub-package + +* Sat Feb 14 2015 Volker Fröhlich - 0.8.13-1 +- New upstream release + +* Tue Dec 23 2014 Volker Fröhlich - 0.8.12-1 +- New upstream release + +* Wed Dec 17 2014 Volker Fröhlich - 0.8.11-1 +- New upstream release + +* Mon Oct 13 2014 Volker Fröhlich - 0.8.10-1 +- New upstream release + +* Wed Sep 24 2014 Volker Fröhlich - 0.8.9-1 +- New upstream release + +* Mon Jul 7 2014 Volker Fröhlich - 0.8.8-1 +- New upstream release + +* Wed Jul 2 2014 Volker Fröhlich - 0.8.7-3 +- Changed package summary + +* Tue Jul 1 2014 Volker Fröhlich - 0.8.7-2 +- Correct BR python-setuptools-devel to python-setuptools + +* Mon Jun 30 2014 Volker Fröhlich - 0.8.7-1 +- Initial package for Fedora diff --git a/python-OWSLib.spec b/python-OWSLib.spec index 9d674bc..cee5278 100644 --- a/python-OWSLib.spec +++ b/python-OWSLib.spec @@ -3,7 +3,7 @@ Name: python-%{modname} Version: 0.21.0 -Release: 2%{?dist} +Release: %autorelease Summary: Client library for OGC web services License: BSD URL: https://geopython.github.io/OWSLib @@ -53,167 +53,4 @@ find . -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|' %{python3_sitelib}/%{modname}-%{version}-py*.egg-info %changelog -* Wed Jan 27 2021 Fedora Release Engineering - 0.21.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Dec 09 2020 Volker Fröhlich - 0.21.0-1 -- New upstream release - -* Tue Jul 28 2020 Fedora Release Engineering - 0.20.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jun 05 2020 Volker Fröhlich - 0.20.0-1 -- New upstream release - -* Tue May 26 2020 Miro Hrončok - 0.19.1-2 -- Rebuilt for Python 3.9 - -* Sun Feb 02 2020 Volker Fröhlich - 0.19.1-1 -- New upstream release - -* Thu Jan 30 2020 Fedora Release Engineering - 0.19.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Sun Jan 19 2020 Volker Fröhlich - 0.19.0-1 -- New upstream release - -* Thu Oct 03 2019 Miro Hrončok - 0.18.0-4 -- Rebuilt for Python 3.8.0rc1 (#1748018) - -* Mon Aug 19 2019 Miro Hrončok - 0.18.0-3 -- Rebuilt for Python 3.8 - -* Fri Jul 26 2019 Fedora Release Engineering - 0.18.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Wed Jun 26 2019 Volker Fröhlich - 0.18.0-1 -- New upstream release - -* Mon Feb 11 2019 Miro Hrončok - 0.17.0-3 -- Subpackage python2-owslib has been removed - See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal - -* Sat Feb 02 2019 Fedora Release Engineering - 0.17.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Sep 19 2018 Volker Fröhlich - 0.17.0-1 -- New upstream release -- Update names of documentation files - -* Fri Jul 13 2018 Fedora Release Engineering - 0.16.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jun 19 2018 Miro Hrončok - 0.16.0-4 -- Rebuilt for Python 3.7 - -* Wed Feb 21 2018 Iryna Shcherbina - 0.16.0-3 -- Update Python 2 dependency declarations to new packaging standards - (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) - -* Fri Feb 09 2018 Fedora Release Engineering - 0.16.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Fri Dec 22 2017 Volker Fröhlich - 0.16.0-1 -- New upstream release - -* Thu Sep 14 2017 Volker Fröhlich - 0.15.0-1 -- New upstream release - -* Tue Aug 29 2017 Zbigniew Jędrzejewski-Szmek - 0.14.0-5 -- Add Provides for the old name - -* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 0.14.0-4 -- Python 2 binary package renamed to python2-owslib - See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 - -* Thu Jul 27 2017 Fedora Release Engineering - 0.14.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Feb 11 2017 Fedora Release Engineering - 0.14.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Jan 12 2017 Volker Fröhlich - 0.14.0-1 -- New upstream release - -* Mon Dec 19 2016 Miro Hrončok - 0.13.0-2 -- Rebuild for Python 3.6 - -* Sun Sep 25 2016 Volker Fröhlich - 0.13.0-1 -- New upstream release - -* Tue Sep 13 2016 Volker Fröhlich - 0.12.0-1 -- New upstream release -- Update URL and Source - -* Tue Jul 19 2016 Fedora Release Engineering - 0.11.2-2 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Mon May 16 2016 Volker Fröhlich - 0.11.2-1 -- New upstream release - -* Sat May 14 2016 Volker Fröhlich - 0.11.1-1 -- New upstream release - -* Fri Apr 1 2016 Volker Fröhlich - 0.11.0-1 -- New upstream release - -* Thu Feb 04 2016 Fedora Release Engineering - 0.10.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Mon Nov 23 2015 Volker Fröhlich - 0.10.3-1 -- New upstream release - -* Sun Nov 22 2015 Volker Fröhlich - 0.10.1-1 -- New upstream release - -* Thu Nov 12 2015 Fedora Release Engineering - 0.10.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 - -* Wed Nov 11 2015 Volker Fröhlich - 0.10.0-1 -- New upstream release - -* Tue Nov 10 2015 Fedora Release Engineering - 0.9.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5 - -* Fri Sep 25 2015 Volker Fröhlich - 0.9.2-1 -- New upstream release - -* Sun Sep 6 2015 Volker Fröhlich - 0.9.1-2 -- Add pyproj dependency - -* Sun Sep 6 2015 Volker Fröhlich - 0.9.1-1 -- New upstream release - -* Thu Jun 18 2015 Fedora Release Engineering - 0.9.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat Jun 13 2015 Volker Fröhlich - 0.9.0-1 -- New upstream release -- Add Python 3 sub-package - -* Sat Feb 14 2015 Volker Fröhlich - 0.8.13-1 -- New upstream release - -* Tue Dec 23 2014 Volker Fröhlich - 0.8.12-1 -- New upstream release - -* Wed Dec 17 2014 Volker Fröhlich - 0.8.11-1 -- New upstream release - -* Mon Oct 13 2014 Volker Fröhlich - 0.8.10-1 -- New upstream release - -* Wed Sep 24 2014 Volker Fröhlich - 0.8.9-1 -- New upstream release - -* Mon Jul 7 2014 Volker Fröhlich - 0.8.8-1 -- New upstream release - -* Wed Jul 2 2014 Volker Fröhlich - 0.8.7-3 -- Changed package summary - -* Tue Jul 1 2014 Volker Fröhlich - 0.8.7-2 -- Correct BR python-setuptools-devel to python-setuptools - -* Mon Jun 30 2014 Volker Fröhlich - 0.8.7-1 -- Initial package for Fedora +%autochangelog From 1cdc1b0137480cc27518d54779463a0411d6b29a Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 21 Dec 2021 01:24:38 -0500 Subject: [PATCH 2/2] Modernize packaging; run tests; add -doc subpackage --- python-OWSLib.spec | 146 ++++++++++++++++++++++++++++++++++++--------- sources | 2 +- 2 files changed, 120 insertions(+), 28 deletions(-) diff --git a/python-OWSLib.spec b/python-OWSLib.spec index cee5278..0e0cba0 100644 --- a/python-OWSLib.spec +++ b/python-OWSLib.spec @@ -1,56 +1,148 @@ -# Works with either ElementTree or python-lxml -%global modname OWSLib +# Sphinx-generated HTML documentation is not suitable for packaging; see +# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion. +# +# We can generate PDF documentation as a substitute. +%bcond_without doc_pdf -Name: python-%{modname} +Name: python-OWSLib Version: 0.21.0 Release: %autorelease Summary: Client library for OGC web services + License: BSD URL: https://geopython.github.io/OWSLib -Source0: https://files.pythonhosted.org/packages/source/O/%{modname}/%{modname}-%{version}.tar.gz +Source0: https://github.com/geopython/OWSLib/archive/%{version}/OWSLib-%{version}.tar.gz + BuildArch: noarch BuildRequires: python3-devel -BuildRequires: python3-setuptools -%global _description\ -Package for client programming with Open Geospatial Consortium (OGC) web\ -service (hence OWS) interface standards, and their related content models. +%if %{with doc_pdf} +BuildRequires: make +BuildRequires: python3-sphinx-latex +BuildRequires: latexmk +%endif + +%global common_description %{expand: \ +OWSLib is a Python package for client programming with Open Geospatial +Consortium (OGC) web service (hence OWS) interface standards, and their related +content models. + +Full documentation is available at http://geopython.github.io/OWSLib + +OWSLib provides a common API for accessing service metadata and wrappers for +numerous OGC Web Service interfaces.} + +%description +%{common_description} -%description %_description %package -n python3-OWSLib -Summary: Client library for OGC web services - -Requires: python3-dateutil -Requires: python3-pyproj -Requires: python3-pytz -Requires: python3-requests +Summary: %{summary} %description -n python3-OWSLib -Package for client programming with Open Geospatial Consortium (OGC) web -service (hence OWS) interface standards, and their related content models. +%{common_description} + + +%package doc +Summary: Documentation and examples for OWSLib + +%description doc +%{summary}. + %prep -%setup -q -n %{modname}-%{version} -rm -rf %{modname}.egg-info +%autosetup -n OWSLib-%{version} -find . -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|' +# Don’t analyze/report test coverage +sed -r -i 's/[-]-cov[^[:blank:]]*[[:blank:]][^[[:blank:]]+//g' tox.ini +# Don’t generate linting/coverage dependencies +sed -r '/^(flake8|pytest-cov)\b/d' requirements-dev.txt \ + > requirements-dev-filtered.txt + +# We don’t need shebangs in the examples. The pattern of selecting files +# before modifying them with sed keeps us from unnecessarily discarding the +# original mtimes on unmodified files. +find 'examples' -type f -name '*.py' \ + -exec gawk '/^#!/ { print FILENAME }; { nextfile }' '{}' '+' | + xargs -r sed -r -i '1{/^#!/d}' +# Some of them, but not all of them, were executable. +chmod -v a-x examples/*.py + + +%generate_buildrequires +%pyproject_buildrequires -r requirements-dev-filtered.txt %build -%py3_build +%pyproject_wheel + +%if %{with doc_pdf} +%make_build -C docs latex SPHINXOPTS='%{?_smp_mflags}' +%make_build -C docs/build/latex/en LATEXMKOPTS='-quiet' +%endif %install -%py3_install +%pyproject_install +%pyproject_save_files owslib -%files -n python3-OWSLib -%doc README.rst CHANGES.rst AUTHORS.rst -# TODO: Add LICENSE on the next release after 0.17.0 -%{python3_sitelib}/owslib -%{python3_sitelib}/%{modname}-%{version}-py*.egg-info +%check +# Otherwise, pytest finds the package twice in the Python path and complains. +rm -rf owslib + +# There is a convenient “online” mark for deselecting tests that require +# Internet access, but we still have to manually deselect doctests that try to +# make network requests. +k="${k-}${k+ and }not wms_geoserver_mass_gis.txt" +k="${k-}${k+ and }not wfs_MapServerWFSFeature.txt" +k="${k-}${k+ and }not wfs_MapServerWFSCapabilities.txt" +k="${k-}${k+ and }not wfs2_storedqueries.txt" +k="${k-}${k+ and }not wfs1_generic.txt" +k="${k-}${k+ and }not wcs_thredds.txt" +k="${k-}${k+ and }not test_wmts_example_informatievlaanderen" + +# This is a trivial error where the representation of the expected TypeEror has +# changed over time: +# Differences (unified diff with -expected +actual): +# @@ -1,3 +1,6 @@ +# Traceback (most recent call last): +# -... +# -TypeError: get_namespace() ... +# + File "/usr/lib64/python3.10/doctest.py", line 1346, in __run +# + exec(compile(example.source, filename, "single", +# + File "", line 1, in +# + ns.get_namespace() +# +TypeError: Namespaces.get_namespace() missing 1 required positional argument: 'key' +k="${k-}${k+ and }not namespaces.txt" + +# Unknown problem—check if it is fixed in a later version: +k="${k-}${k+ and } not (TestOffline and test_wfs_110_remotemd_parse_all)" +k="${k-}${k+ and } not (TestOffline and test_wfs_110_remotemd_parse_single)" +k="${k-}${k+ and } not (TestOffline and test_wfs_200_remotemd_parse_all)" +k="${k-}${k+ and } not (TestOffline and test_wfs_200_remotemd_parse_single)" +k="${k-}${k+ and } not (TestOffline and test_wms_130_remotemd_parse_all)" +k="${k-}${k+ and } not (TestOffline and test_wms_130_remotemd_parse_single)" + +%pytest -m 'not online' -k "${k-}" + + +%files -n python3-OWSLib -f %{pyproject_files} +# pyproject_files handles LICENSE; verify with “rpm -qL -p …” + +%doc AUTHORS.rst +%doc CHANGES.rst +%doc README.rst + + +%files doc +%license LICENSE +%doc examples +%if %{with doc_pdf} +%doc docs/build/latex/en/OWSLib.pdf +%endif + %changelog %autochangelog diff --git a/sources b/sources index d02562e..fdb7ddf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OWSLib-0.21.0.tar.gz) = f475b07553ef96cae018a304cb809fac33d3953d8ef12135165c40de323d60fbc1f11d0b63fb5578b6c092c50cd3f3c97fc01e85e44b462cdb3f0cbd967d9fad +SHA512 (OWSLib-0.21.0.tar.gz) = 3dc28bed9041fdcae63a0296cc96660788038d8f57fe131fca7906c58161917deb1b1a90050d434ea855b33385afdf0f84baaf3bdb94e7db8df6ccff180acc43