Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-MapProxy for openSUSE:Factory checked in at 2023-09-25 20:02:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-MapProxy (Old) and /work/SRC/openSUSE:Factory/.python-MapProxy.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-MapProxy" Mon Sep 25 20:02:11 2023 rev:9 rq:1113210 version:1.16.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-MapProxy/python-MapProxy.changes 2023-08-30 10:23:46.843209799 +0200 +++ /work/SRC/openSUSE:Factory/.python-MapProxy.new.1770/python-MapProxy.changes 2023-09-25 20:03:26.518677037 +0200 @@ -1,0 +2,9 @@ +Sat Sep 23 11:08:41 UTC 2023 - Ben Greiner <c...@bnavigator.de> + +- Add MapProxy-pr749-shapely2.patch + * gh#mapproxy/mapproxy#611 + * gh#mapproxy/mapproxy#749 +- Add MapProxy-pr750-Pillow10.patch + * gh#mapproxy/mapproxy#750 + +------------------------------------------------------------------- New: ---- MapProxy-pr749-shapely2.patch MapProxy-pr750-Pillow10.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-MapProxy.spec ++++++ --- /var/tmp/diff_new_pack.8XW2AW/_old 2023-09-25 20:03:27.994730253 +0200 +++ /var/tmp/diff_new_pack.8XW2AW/_new 2023-09-25 20:03:27.994730253 +0200 @@ -30,6 +30,10 @@ Source1: https://github.com/mapproxy/mapproxy/raw/%{version}/mapproxy/test/system/fixture/cache.gpkg Source2: https://github.com/mapproxy/mapproxy/raw/%{version}/mapproxy/test/unit/polygons/polygons.geojson Source99: python-MapProxy-rpmlintrc +# PATCH-FIX-UPSTREAM MapProxy-pr749-shapely2.patch gh#mapproxy/mapproxy#749 +Patch0: MapProxy-pr749-shapely2.patch +# PATCH-FIX-UPSTREAM MapProxy-pr750-Pillow10.patch gh#mapproxy/mapproxy#750 +Patch1: MapProxy-pr750-Pillow10.patch BuildRequires: %{python_module GDAL} BuildRequires: %{python_module Pillow} BuildRequires: %{python_module PyYAML >= 3.0} @@ -41,7 +45,7 @@ BuildRequires: python-rpm-macros %if %{with test} BuildRequires: %{python_module Paste} -BuildRequires: %{python_module Shapely} +BuildRequires: %{python_module Shapely >= 2} BuildRequires: %{python_module WebTest} BuildRequires: %{python_module Werkzeug} BuildRequires: %{python_module boto3} @@ -61,6 +65,7 @@ Requires: proj Requires: python-Pillow Requires: python-PyYAML >= 3.0 +Recommends: python-Shapely >= 1.8 BuildArch: noarch Requires(post): update-alternatives Requires(postun):update-alternatives @@ -72,7 +77,7 @@ serves any desktop or web GIS client. %prep -%setup -q -n MapProxy-%{version} +%autosetup -p1 -n MapProxy-%{version} # Source1 required twice cp %{SOURCE1} mapproxy/test/system/fixture/ mkdir -p mapproxy/test/unit/fixture/ ++++++ MapProxy-pr749-shapely2.patch ++++++ diff -ur MapProxy-1.16.0.orig/doc/install.rst MapProxy-1.16.0/doc/install.rst --- MapProxy-1.16.0.orig/doc/install.rst 2023-09-23 13:29:24.276700414 +0200 +++ MapProxy-1.16.0/doc/install.rst 2023-09-23 13:45:05.044736623 +0200 @@ -90,7 +90,7 @@ Shapely and GEOS *(optional)* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -You will need Shapely to use the :doc:`coverage feature <coverages>` of MapProxy. Shapely offers Python bindings for the GEOS library. You need Shapely (``python-shapely``) and GEOS (``libgeos-dev``). You can install Shapely as a Python package with ``pip install Shapely`` if you system does not provide a recent (>= 1.2.0) version of Shapely. +You will need Shapely to use the :doc:`coverage feature <coverages>` of MapProxy. Shapely offers Python bindings for the GEOS library. You need Shapely (``python-shapely``) and GEOS (``libgeos-dev``). You can install Shapely as a Python package with ``pip install Shapely`` if you system does not provide a recent (>= 2.0) version of Shapely. GDAL *(optional)* ~~~~~~~~~~~~~~~~~ diff -ur MapProxy-1.16.0.orig/mapproxy/test/unit/test_geom.py MapProxy-1.16.0/mapproxy/test/unit/test_geom.py --- MapProxy-1.16.0.orig/mapproxy/test/unit/test_geom.py 2023-09-23 13:29:24.296700984 +0200 +++ MapProxy-1.16.0/mapproxy/test/unit/test_geom.py 2023-09-23 13:47:35.062488445 +0200 @@ -22,11 +22,7 @@ import pytest import shapely import shapely.prepared -try: - # shapely >=1.6 - from shapely.errors import ReadingError -except ImportError: - from shapely.geos import ReadingError +from shapely.errors import ReadingError from mapproxy.srs import SRS, bbox_equals from mapproxy.util.geom import ( diff -ur MapProxy-1.16.0.orig/mapproxy/util/geom.py MapProxy-1.16.0/mapproxy/util/geom.py --- MapProxy-1.16.0.orig/mapproxy/util/geom.py 2023-09-23 13:29:24.296700984 +0200 +++ MapProxy-1.16.0/mapproxy/util/geom.py 2023-09-23 13:40:07.882521741 +0200 @@ -32,11 +32,7 @@ import shapely.geometry import shapely.ops import shapely.prepared - try: - # shapely >=1.6 - from shapely.errors import ReadingError - except ImportError: - from shapely.geos import ReadingError + from shapely.errors import ReadingError geom_support = True except ImportError: geom_support = False @@ -234,7 +230,7 @@ def transform_multipolygon(transf, multipolygon): transformed_polygons = [] - for polygon in multipolygon: + for polygon in multipolygon.geoms: transformed_polygons.append(transform_polygon(transf, polygon)) return shapely.geometry.MultiPolygon(transformed_polygons) ++++++ MapProxy-pr750-Pillow10.patch ++++++ diff --git a/mapproxy/compat/image.py b/mapproxy/compat/image.py index e88bbc41..3732b890 100644 --- a/mapproxy/compat/image.py +++ b/mapproxy/compat/image.py @@ -26,6 +26,7 @@ try: Image, ImageColor, ImageDraw, ImageFont, ImagePalette, ImageChops, ImageMath ImageFileDirectory_v2, TiffTags PIL_VERSION = getattr(PIL, '__version__') or getattr(PIL, 'PILLOW_VERSION') + PIL_VERSION_TUPLE = tuple(int(i) for i in PIL_VERSION.split(".")) except ImportError: # allow MapProxy to start without PIL (for tilecache only). # issue warning and raise ImportError on first use of diff --git a/mapproxy/image/message.py b/mapproxy/image/message.py index 4353e590..e40e53df 100644 --- a/mapproxy/image/message.py +++ b/mapproxy/image/message.py @@ -281,8 +281,14 @@ class TextDraw(object): boxes = [] y_offset = 0 for i, line in enumerate(self.text): - text_size = draw.textsize(line, font=self.font) - text_box = (0, y_offset, text_size[0], text_size[1]+y_offset) + try: + text_box = draw.textbbox((0, y_offset), line, font=self.font) + y_offset = text_box[3] + self.linespacing + except AttributeError: + # Pillow < 8 + text_size = draw.textsize(line, font=self.font) + text_box = (0, y_offset, text_size[0], text_size[1]+y_offset) + y_offset += text_size[1] + self.linespacing boxes.append(text_box) total_bbox = (min(total_bbox[0], text_box[0]), min(total_bbox[1], text_box[1]), @@ -290,7 +296,7 @@ class TextDraw(object): max(total_bbox[3], text_box[3]), ) - y_offset += text_size[1] + self.linespacing + return total_bbox, boxes def _move_bboxes(self, boxes, offsets): diff --git a/mapproxy/test/unit/test_image.py b/mapproxy/test/unit/test_image.py index f2ea15ec..d4b62468 100644 --- a/mapproxy/test/unit/test_image.py +++ b/mapproxy/test/unit/test_image.py @@ -21,7 +21,7 @@ from io import BytesIO import pytest -from mapproxy.compat.image import Image, ImageDraw, PIL_VERSION +from mapproxy.compat.image import Image, ImageDraw, PIL_VERSION_TUPLE from mapproxy.image import ( BlankImageSource, GeoReference, @@ -112,7 +112,7 @@ class TestImageSource(object): assert is_tiff(ir.as_buffer(TIFF_FORMAT)) assert is_tiff(ir.as_buffer()) - @pytest.mark.skipif(PIL_VERSION < '6.1.0', reason="Pillow 6.1.0 required GeoTIFF") + @pytest.mark.skipif(PIL_VERSION_TUPLE < (6, 1, 0), reason="Pillow 6.1.0 required GeoTIFF") def test_tiff_compression(self): def encoded_size(encoding_options): ir = ImageSource(create_debug_img((100, 100)), PNG_FORMAT) @@ -134,7 +134,7 @@ class TestImageSource(object): assert q50 > lzw @pytest.mark.xfail( - PIL_VERSION >= '9.0.0', + PIL_VERSION_TUPLE >= (9, 0, 0), reason="The palette colors order has been changed in Pillow 9.0.0" ) def test_output_formats_greyscale_png(self): @@ -156,7 +156,7 @@ class TestImageSource(object): assert img.getpixel((0, 0)) == (0, 0) @pytest.mark.xfail( - PIL_VERSION >= '9.0.0', + PIL_VERSION_TUPLE >= (9, 0, 0), reason="The palette colors order has been changed in Pillow 9.0.0" ) def test_output_formats_png8(self): @@ -593,7 +593,7 @@ def assert_geotiff_tags(img, expected_origin, expected_pixel_res, srs, projected assert tags[TIFF_GEOKEYDIRECTORYTAG][3*4+3] == srs -@pytest.mark.skipif(PIL_VERSION < '6.1.0', reason="Pillow 6.1.0 required GeoTIFF") +@pytest.mark.skipif(PIL_VERSION_TUPLE < (6, 1, 0), reason="Pillow 6.1.0 required GeoTIFF") @pytest.mark.parametrize("compression", ['jpeg', 'raw', 'tiff_lzw']) class TestGeoTIFF(object):