Compare commits

..

47 commits

Author SHA1 Message Date
Benjamin A. Beasley
1958d8a0f4 Update to 0.35.0 (close RHBZ#2406840) 2025-10-28 21:37:31 +00:00
Benjamin A. Beasley
f5e3a97e3a Update to 0.34.1 2025-10-28 21:27:09 +00:00
Python Maint
529c86e79e Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 13:55:22 +02:00
Python Maint
17440b316f Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 14:19:00 +02:00
Fedora Release Engineering
49af8de6ee Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 06:26:40 +00:00
Python Maint
cf30edef34 Rebuilt for Python 3.14 2025-06-03 16:24:10 +02:00
Benjamin A. Beasley
9d57933e43 Update to 0.34.0 (close RHBZ#2369733) 2025-06-02 06:29:46 -04:00
Benjamin A. Beasley
10c89a527a Update .rpmlintrc for current rpmlint 2025-06-02 06:29:46 -04:00
Benjamin A. Beasley
8ae1e62c6e Use the provisional pyproject declarative buildsystem 2025-03-20 06:25:47 -04:00
Benjamin A. Beasley
03dd0e4fd9 Drop conditionals for EPEL10 and let the branches diverge 2025-03-20 06:24:37 -04:00
Benjamin A. Beasley
cb73aee3e1 Update the .rpmlintrc file 2025-03-20 06:24:37 -04:00
Benjamin A. Beasley
432bc43af7 Update to 0.33.0 (close RHBZ#2353440)
- Drop the -doc subpackage (PDF docs and examples) for simplicity
2025-03-19 22:55:13 -04:00
Fedora Release Engineering
7d9cdc5c0c Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 11:24:58 +00:00
Benjamin A. Beasley
77268f146c Update to 0.32.0 (close RHBZ#2321522) 2024-11-13 08:04:19 -05:00
Benjamin A. Beasley
2d22a37a13 Update to 0.31.0 2024-11-13 07:49:10 -05:00
Benjamin A. Beasley
b4b4a14cac Omit test data files with unclear license status 2024-11-13 07:43:30 -05:00
Benjamin A. Beasley
9c24b75338 Add a conditional to build in EPEL10 (without PDF docs for now) 2024-10-31 14:16:51 -04:00
Fedora Release Engineering
6291141344 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 09:03:03 +00:00
Python Maint
e11a9f7fef Rebuilt for Python 3.13 2024-06-09 23:16:08 +02:00
Benjamin A. Beasley
fae6a7be6b Update to 0.30.0 (close RHBZ#2268924) 2024-03-20 15:12:31 -04:00
Benjamin A. Beasley
35ad88bc26 Update Summary from upstream 2024-03-20 15:12:02 -04:00
Benjamin A. Beasley
9d70a9f1be Add an rpmlintrc file
[skip changelog]
2024-03-20 15:10:56 -04:00
Fedora Release Engineering
3b53456ad5 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 00:46:54 +00:00
Fedora Release Engineering
39a3bd44c3 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-21 22:54:04 +00:00
Benjamin A. Beasley
f0f0c094e0 Assert that %pyproject_files contains a license file 2023-12-18 13:03:08 -05:00
Benjamin A. Beasley
eaa706c786 Update to 0.29.3 (close RHBZ#2248215) 2023-11-06 19:49:11 -05:00
Fedora Release Engineering
4f39d6da1f Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 06:53:16 +00:00
Python Maint
4dda1c74f7 Rebuilt for Python 3.12 2023-07-03 16:11:40 +02:00
Benjamin A. Beasley
f31fd3f016 Use new (rpm 4.17.1+) bcond style 2023-06-20 09:26:38 -04:00
Benjamin A. Beasley
d4c832e6eb Shorten a long line by using a macro
[skip changelog]
2023-05-28 13:04:49 -04:00
Benjamin A. Beasley
b7d7beed79 Do not number the sole Source
[skip changelog]
2023-05-28 13:04:15 -04:00
Benjamin A. Beasley
27e1330084 Update to 0.29.2 (close RHBZ#2208756) 2023-05-21 11:03:24 -04:00
Benjamin A. Beasley
7f520d5f97 Update to 0.29.1 (close RHBZ#2186365) 2023-04-13 12:58:32 -04:00
Benjamin A. Beasley
a0f319e0f2 Update to 0.29.0 (close RHBZ#2185445) 2023-04-09 10:53:47 -04:00
Benjamin A. Beasley
07adcbdc08 Don’t assume %_smp_mflags is -j%_smp_build_ncpus 2023-03-18 08:41:52 -04:00
Benjamin A. Beasley
4435cdb29f Move some text doc files to the -doc subpackage 2023-03-08 09:38:35 -05:00
Benjamin A. Beasley
9bf44c00c7 Update to 0.28.1 (close RHBZ#2173195) 2023-02-24 14:44:13 -05:00
Benjamin A. Beasley
772f65c2b6 Update to 0.28.0 (close RHBZ#2171409) 2023-02-20 09:52:36 -05:00
Fedora Release Engineering
b165e7b986 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 10:48:45 +00:00
Benjamin A. Beasley
10b6dd1b03 Drop default argument -r for pyproject_buildrequires 2022-11-30 11:43:57 -05:00
Benjamin A. Beasley
c41613d35d Drop some doc BR’s when PDF docs are disabled 2022-11-16 07:50:14 -05:00
Benjamin A. Beasley
336ab0ae18 Update to 0.27.2 (close RHBZ#2122000) 2022-08-28 09:39:41 -04:00
Benjamin A. Beasley
6a7628cc72 Update License to SPDX 2022-08-28 09:39:41 -04:00
Fedora Release Engineering
d52c0e7eb6 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 15:57:21 +00:00
Benjamin A. Beasley
da6b2b5bab Fix a typo in a spec file comment 2022-07-11 08:49:54 -04:00
Benjamin A. Beasley
8168588215 Fix extra newline in description 2022-07-07 17:14:43 -04:00
Python Maint
375e68f204 Rebuilt for Python 3.11 2022-06-21 18:35:05 +02:00
5 changed files with 182 additions and 119 deletions

12
.gitignore vendored
View file

@ -30,3 +30,15 @@
/OWSLib-0.27.2.tar.gz
/OWSLib-0.28.0.tar.gz
/OWSLib-0.28.1.tar.gz
/OWSLib-0.29.0.tar.gz
/OWSLib-0.29.1.tar.gz
/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
/OWSLib-0.31.0-filtered.tar.zst
/OWSLib-0.32.0-filtered.tar.zst
/OWSLib-0.33.0-filtered.tar.zst
/OWSLib-0.34.0-filtered.tar.zst
/OWSLib-0.34.1-filtered.tar.zst
/OWSLib-0.35.0-filtered.tar.zst

63
get_source Executable file
View file

@ -0,0 +1,63 @@
#!/bin/sh
set -o nounset
set -o errexit
FORGEURL='https://github.com/geopython/OWSLib'
print_help()
{
cat <<EOF
Usage: $1 VERSION
Generate a source archive for OWSLib with questionably-licensed XML files in
tests/resources/ removed. The result will be named
OWSLib-\${VERSION}-filtered.tar.zst and will be written into the current
working directory.
EOF
}
if [ "$#" != '1' ]
then
exec 1>&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 dont 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}" .

7
python-OWSLib.rpmlintrc Normal file
View file

@ -0,0 +1,7 @@
# The source cannot be a URL because we have to filter out files before
# uploading to the lookaside cache.
addFilter(r" invalid-url .* OWSLib-.*-filtered\.tar\.zst")
# There is nothing wrong with .tar.zst, but rpmlint does not know that.
addFilter(r" inconsistent-file-extension .*\.tar\.zst")
# Removed without replacement in Fedora 42
addFilter(r" obsolete-not-provided python-OWSLIB-doc")

View file

@ -1,28 +1,51 @@
# 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-OWSLib
Version: 0.28.1
Version: 0.35.0
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
Source0: https://github.com/geopython/OWSLib/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
BuildSystem: pyproject
BuildOption(install): -l owslib
BuildArch: noarch
BuildRequires: python3-devel
%if %{with doc_pdf}
BuildRequires: make
BuildRequires: python3-sphinx-latex
BuildRequires: latexmk
BuildRequires: pandoc
%endif
# Tests; dependencies are in requirements-dev.txt.
BuildRequires: %{py3_dist pytest}
BuildRequires: %{py3_dist pytest_httpserver}
BuildRequires: %{py3_dist Pillow}
# We dont have pytest-socket packaged, and we can get by without it.
# - pytest-socket
# We dont use tox to run the tests. It would run "python3 setup.py develop",
# which is unwanted.
# - tox
# Unwanted linting/coverage dependencies:
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
# - coverage
# - coveralls
# - flake8
# - pytest-cov
# These are just for the maintainer to upload to PyPI.
# - build
# - twine
%global common_description %{expand:
OWSLib is a Python package for client programming with Open Geospatial
@ -42,120 +65,78 @@ Summary: %{summary}
%py_provides python3-owslib
# The -doc subpackage was removed for Fedora 42; we can remove this Obsoletes
# after Fedora 44. (EPEL10 never had a -doc subpackage.)
Obsoletes: python-OWSLIB-doc < 0.32.0-1
%description -n python3-OWSLib %{common_description}
%package doc
Summary: Documentation and examples for OWSLib
%description doc
%{summary}.
%prep
%autosetup -n OWSLib-%{version}
%prep -a
# Dont analyze/report test coverage
sed -r -i 's/[-]-cov[^[:blank:]]*[[:blank:]][^[[:blank:]]+//g' tox.ini
# Dont generate linting/coverage dependencies.
#
# We dont have python3dist(pandoc) packaged, and besides, we dont actually
# need python3dist(pandoc)—only the pandoc command-line tool, which we have
# manually BRd.
#
# Dont generate twine dependency, which is just for the upstream maintainer
# uploading to PyPI.
sed -r -e '/^(flake8|pytest-cov|pandoc|coverage|coveralls|twine)\b/d' \
%if %{without doc_pdf}
-e '/^(ipykernel|nbconvert|.*sphinx)/d' \
%endif
requirements-dev.txt | tee requirements-dev-filtered.txt
# We dont 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
# Because at least one notebook requires Internet access, we must continue past
# notebook errors when building documentation.
echo 'nbsphinx_allow_errors = True' >> docs/conf.py
sed -r -i 's/^([[:blank:]]*)(--cov\b)/\1# \2/' tox.ini
%generate_buildrequires
%pyproject_buildrequires requirements-dev-filtered.txt
%build
%pyproject_wheel
%if %{with doc_pdf}
PYTHONPATH="${PWD}" %make_build -C docs latex SPHINXOPTS='%{?_smp_mflags}'
%make_build -C docs/build/latex/en LATEXMKOPTS='-quiet'
%endif
%install
%pyproject_install
%pyproject_save_files owslib
%check
%check -a
# 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"
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"
# 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 "<doctest namespaces.txt[15]>", line 1, in <module>
# + 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}
# 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
%doc README.md
%changelog

View file

@ -1 +1 @@
SHA512 (OWSLib-0.28.1.tar.gz) = bd62a5e371e64e0e256cc83d2f044294c20965f6b107b0dd9074ac752971620f01af4c7fc9a82e43dc81e71a6a36696b75403012841c28925b017d9c47b2d4a5
SHA512 (OWSLib-0.35.0-filtered.tar.zst) = be1eb52fa09049b720c1ebd476363e01c6442c9905c9adf0d35ccc11f39b228b9f3e64ed882a7c04987f2f38f9c8500a61aeef61e48a41602098ff22df0ed526