From 39a3bd44c390c40b7736e6a67da58c34d7ffd31a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 21 Jan 2024 22:54:04 +0000 Subject: [PATCH 01/10] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 3b53456ad5b80cc306f5247de033cea5943189cf Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 26 Jan 2024 00:46:54 +0000 Subject: [PATCH 02/10] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 9d70a9f1be4bfdd232650cc573cb2875719ec48f Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 20 Mar 2024 15:10:56 -0400 Subject: [PATCH 03/10] Add an rpmlintrc file [skip changelog] --- python-OWSLib.rpmlintrc | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 python-OWSLib.rpmlintrc diff --git a/python-OWSLib.rpmlintrc b/python-OWSLib.rpmlintrc new file mode 100644 index 0000000..981f880 --- /dev/null +++ b/python-OWSLib.rpmlintrc @@ -0,0 +1,2 @@ +# All documentation is in the -doc subpackage. +addFilter(r" no-documentation$") From 35ad88bc267cf46a2716730acc7814beb2c78e80 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 20 Mar 2024 15:12:02 -0400 Subject: [PATCH 04/10] Update Summary from upstream --- python-OWSLib.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python-OWSLib.spec b/python-OWSLib.spec index 6b4c9d6..800fade 100644 --- a/python-OWSLib.spec +++ b/python-OWSLib.spec @@ -7,7 +7,7 @@ Name: python-OWSLib Version: 0.29.3 Release: %autorelease -Summary: Client library for OGC web services +Summary: OGC Web Service utility library License: BSD-3-Clause URL: https://geopython.github.io/OWSLib From fae6a7be6b071521e590b8b7a9e3c2fe7fd6e852 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 20 Mar 2024 15:12:31 -0400 Subject: [PATCH 05/10] Update to 0.30.0 (close RHBZ#2268924) --- .gitignore | 1 + python-OWSLib.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 05637b0..c371628 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ /OWSLib-0.29.1.tar.gz /OWSLib-0.29.2.tar.gz /OWSLib-0.29.3.tar.gz +/OWSLib-0.30.0.tar.gz diff --git a/python-OWSLib.spec b/python-OWSLib.spec index 800fade..08de593 100644 --- a/python-OWSLib.spec +++ b/python-OWSLib.spec @@ -5,7 +5,7 @@ %bcond doc_pdf 1 Name: python-OWSLib -Version: 0.29.3 +Version: 0.30.0 Release: %autorelease Summary: OGC Web Service utility library diff --git a/sources b/sources index e1cb5ee..f0b822d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OWSLib-0.29.3.tar.gz) = 2aa63ae18830d724f2cb46647ed867c5b74b2858a93df2500160b5cd58b25b0fb39bfc2d5bcda58bfe3b229bac5ea68acf9abdc746971e2eb5198875f00e6f4d +SHA512 (OWSLib-0.30.0.tar.gz) = 2fdad8ac282d78181e2b7953f22db063f760c2f61682967c7d99ac8e12d62345168db978d9599a4093005f520968d4e97fc588f9a9b7d81a87894b08028d42d8 From e11a9f7fefd11676faa51a406abb666328cc7a9e Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sun, 9 Jun 2024 23:16:08 +0200 Subject: [PATCH 06/10] Rebuilt for Python 3.13 From 6291141344a121edaf1a4b7d058003c5c0aae15a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jul 2024 09:03:03 +0000 Subject: [PATCH 07/10] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 9c24b75338d220b0b3930376e1bb284dda8334d3 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 31 Oct 2024 14:16:51 -0400 Subject: [PATCH 08/10] Add a conditional to build in EPEL10 (without PDF docs for now) --- python-OWSLib.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python-OWSLib.spec b/python-OWSLib.spec index 08de593..effd57e 100644 --- a/python-OWSLib.spec +++ b/python-OWSLib.spec @@ -2,7 +2,8 @@ # https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion. # # We can generate PDF documentation as a substitute. -%bcond doc_pdf 1 +# EPEL10 does not (yet) have pandoc. +%bcond doc_pdf %{undefined el10} Name: python-OWSLib Version: 0.30.0 From b4b4a14cac4506396a834e83ec1d135fc9b96cc2 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 13 Nov 2024 07:43:30 -0500 Subject: [PATCH 09/10] Omit test data files with unclear license status --- .gitignore | 1 + get_source | 63 ++++++++++++++++++++++++++++++++++ python-OWSLib.spec | 85 +++++++++++++++++++++++++++------------------- sources | 2 +- 4 files changed, 115 insertions(+), 36 deletions(-) create mode 100755 get_source diff --git a/.gitignore b/.gitignore index c371628..ecfdc13 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ /OWSLib-0.29.2.tar.gz /OWSLib-0.29.3.tar.gz /OWSLib-0.30.0.tar.gz +/OWSLib-0.30.0-filtered.tar.zst diff --git a/get_source b/get_source new file mode 100755 index 0000000..085fbb8 --- /dev/null +++ b/get_source @@ -0,0 +1,63 @@ +#!/bin/sh +set -o nounset +set -o errexit + +FORGEURL='https://github.com/geopython/OWSLib' + +print_help() +{ + cat <&2 + print_help "${0}" + exit 1 +elif [ "${1-}" = '-h' ] || [ "${1-}" = '--help' ] +then + print_help "${0}" + exit 0 +fi + +VERSION="${1}" +SOURCE0="${FORGEURL}/archive/${VERSION}/OWSLib-${VERSION}.tar.gz" +TARNAME="$(basename "${SOURCE0}")" +TARDIR="$(basename "${SOURCE0}" '.tar.gz')" +NEWTAR="${TARDIR}-filtered.tar.zst" + +SAVEDIR="${PWD}" +XDIR="$(mktemp -d)" +trap "rm -rf '${XDIR}'" INT TERM EXIT + +cd "${XDIR}" +curl -L -O "${SOURCE0}" +echo "Extracting ${TARNAME}…" 1>&2 +tar -xzf "${TARNAME}" +MTIME="$(stat -c '%Y' "${TARDIR}")" +rm -rvf "${TARDIR}/tests/resources" +echo "Re-compressing as ${NEWTAR}…" 1>&2 +# https://www.gnu.org/software/tar/manual/html_section/Reproducibility.html +# We reset all mtimes to that of the top-level extracted directory; since git +# archives don’t have meaningful per-file mtimes, nothing useful is lost. +TZ=UTC LC_ALL=C tar \ + --create \ + --sort=name \ + --format=posix \ + --numeric-owner --owner=0 --group=0 \ + --mode=go+u,go-w \ + --pax-option='delete=atime,delete=ctime' \ + --clamp-mtime --mtime="@${MTIME}" \ + "${TARDIR}/" | + zstdmt --ultra -22 > "${NEWTAR}" +touch -d @"${MTIME}" "${NEWTAR}" + +cd "${SAVEDIR}" +mv -v "${XDIR}/${NEWTAR}" . diff --git a/python-OWSLib.spec b/python-OWSLib.spec index effd57e..4c5cda9 100644 --- a/python-OWSLib.spec +++ b/python-OWSLib.spec @@ -12,8 +12,23 @@ Summary: OGC Web Service utility library License: BSD-3-Clause URL: https://geopython.github.io/OWSLib -%global forgeurl https://github.com/geopython/OWSLib -Source: %{forgeurl}/archive/%{version}/OWSLib-%{version}.tar.gz +# A filtered source archive, obtained by (see Source1): +# +# ./get_source %%{version} +# +# is required because tests/resources/ contains XML data files that appear to +# have been pulled from various GIS databases, and the license terms for these +# files are unclear. +# +# The unfiltered base source URL would be: +# +# https://github.com/geopython/OWSLib/archive/%%{version}/OWSLib-%%{version}.tar.gz +# +# We *could* use the PyPI sdist, which does not contain tests/resources/, but +# it also does not contain any tests at all. We can still run some tests +# without the XML files, and we would like to do so. +Source0: OWSLib-%{version}-filtered.tar.zst +Source1: get_source BuildArch: noarch @@ -109,40 +124,40 @@ PYTHONPATH="${PWD}" %make_build -C docs latex \ # 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" +# These require test data files from tests/resources/, which we have removed: +ignore="${ignore-} --ignore-glob=tests/doctests/*.txt" +k="${k-}${k+ and }not test_gm03" +ignore="${ignore-} --ignore=tests/test_iso_parsing.py" +ignore="${ignore-} --ignore=tests/test_ows_interfaces.py" +ignore="${ignore-} --ignore=tests/test_owscontext_atomxml.py" +k="${k-}${k+ and }not test_decode_single_json" +k="${k-}${k+ and }not test_load_parse" +k="${k-}${k+ and }not test_decode_full_json" +k="${k-}${k+ and }not test_load_bulk" +ignore="${ignore-} --ignore=tests/test_remote_metadata.py" +k="${k-}${k+ and }not TestOffline" +ignore="${ignore-} --ignore=tests/test_wfs_generic.py" +ignore="${ignore-} --ignore=tests/test_wms_datageo_130.py" +ignore="${ignore-} --ignore=tests/test_wms_jpl_capabilities.py" +k="${k-}${k+ and }not test_wps_getOperationByName" +k="${k-}${k+ and }not test_wps_checkStatus" +k="${k-}${k+ and }not test_wps_process_representation" +k="${k-}${k+ and }not test_wps_process_properties" +k="${k-}${k+ and }not test_wps_literal_data_input_parsing_references" +k="${k-}${k+ and }not test_wps_response_with_lineage" +ignore="${ignore-} --ignore=tests/test_wps_describeprocess_bbox.py" +ignore="${ignore-} --ignore=tests/test_wps_describeprocess_ceda.py" +ignore="${ignore-} --ignore=tests/test_wps_describeprocess_emu_all.py" +ignore="${ignore-} --ignore=tests/test_wps_describeprocess_usgs.py" +ignore="${ignore-} --ignore=tests/test_wps_execute.py" +ignore="${ignore-} --ignore=tests/test_wps_execute_invalid_request.py" +ignore="${ignore-} --ignore=tests/test_wps_getcapabilities_52n.py" +ignore="${ignore-} --ignore=tests/test_wps_getcapabilities_ceda.py" +ignore="${ignore-} --ignore=tests/test_wps_getcapabilities_usgs.py" +ignore="${ignore-} --ignore-glob=tests/test_wps_request*.py" +ignore="${ignore-} --ignore-glob=tests/test_wps_response*.py" -# This is a trivial error where the representation of the expected TypeError -# 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-}" +%pytest -m 'not online' -k "${k-}" ${ignore-} -v -rs %files -n python3-OWSLib -f %{pyproject_files} diff --git a/sources b/sources index f0b822d..f46eb82 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OWSLib-0.30.0.tar.gz) = 2fdad8ac282d78181e2b7953f22db063f760c2f61682967c7d99ac8e12d62345168db978d9599a4093005f520968d4e97fc588f9a9b7d81a87894b08028d42d8 +SHA512 (OWSLib-0.30.0-filtered.tar.zst) = 3e6eecdbd30481f47a1cb5f01f6a3d9750d0e15fd14eeb414b478ce8f16751d1e65d676c52576497439339646bf85f7eddbd5b0256e664817f45a3a196b93bb3 From 2d22a37a133cf7850d394e71c683453ea9b43f90 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 13 Nov 2024 07:44:37 -0500 Subject: [PATCH 10/10] Update to 0.31.0 --- .gitignore | 1 + python-OWSLib.spec | 20 +++++++++++++++++++- sources | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ecfdc13..a1c3698 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ /OWSLib-0.29.3.tar.gz /OWSLib-0.30.0.tar.gz /OWSLib-0.30.0-filtered.tar.zst +/OWSLib-0.31.0-filtered.tar.zst diff --git a/python-OWSLib.spec b/python-OWSLib.spec index 4c5cda9..8eb1563 100644 --- a/python-OWSLib.spec +++ b/python-OWSLib.spec @@ -6,7 +6,7 @@ %bcond doc_pdf %{undefined el10} Name: python-OWSLib -Version: 0.30.0 +Version: 0.31.0 Release: %autorelease Summary: OGC Web Service utility library @@ -156,6 +156,24 @@ ignore="${ignore-} --ignore=tests/test_wps_getcapabilities_ceda.py" ignore="${ignore-} --ignore=tests/test_wps_getcapabilities_usgs.py" ignore="${ignore-} --ignore-glob=tests/test_wps_request*.py" ignore="${ignore-} --ignore-glob=tests/test_wps_response*.py" +k="${k-}${k+ and }not test_metadata" +k="${k-}${k+ and }not test_responsibility" +k="${k-}${k+ and }not test_distributor" +k="${k-}${k+ and }not test_online_distribution" +k="${k-}${k+ and }not test_identification" +k="${k-}${k+ and }not test_identification_contact" +k="${k-}${k+ and }not test_identification_date" +k="${k-}${k+ and }not test_identification_extent" +k="${k-}${k+ and }not test_identification_keywords" +k="${k-}${k+ and }not test_get_all_contacts" +k="${k-}${k+ and }not test_aus" +k="${k-}${k+ and }not test_service" +k="${k-}${k+ and }not test_md_featurecataloguedesc" +k="${k-}${k+ and }not test_md_imagedescription" +k="${k-}${k+ and }not test_dq_dataquality" +k="${k-}${k+ and }not test_md_reference_system" +k="${k-}${k+ and }not test_service2" +k="${k-}${k+ and }not test_md_distribution" %pytest -m 'not online' -k "${k-}" ${ignore-} -v -rs diff --git a/sources b/sources index f46eb82..7c33449 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OWSLib-0.30.0-filtered.tar.zst) = 3e6eecdbd30481f47a1cb5f01f6a3d9750d0e15fd14eeb414b478ce8f16751d1e65d676c52576497439339646bf85f7eddbd5b0256e664817f45a3a196b93bb3 +SHA512 (OWSLib-0.31.0-filtered.tar.zst) = e59d85d3c397292254a769dd04ddc65f3aab3eb2ed53581ba621dc91ae8a02b216dcbcd6bbad0b4d8395a2927bed7e5e27aee9f6d7f1bbed827a72cc9def6bfd