From deeb8184c02ffe1aa9dd1b7b91828b9df6c8d23f1ce21f0335849af1e4f4fe5c Mon Sep 17 00:00:00 2001 From: Steve Kowalik Date: Mon, 19 Apr 2021 06:29:51 +0000 Subject: [PATCH] Accepting request 886372 from home:bnavigator:branches:devel:languages:python - Add pypng-pr104-py39.patch for Python 3.9 compatibility gh#drj11/pypng#104 - Expand u-a install scriptlets early (Fix rpmlint warnings) OBS-URL: https://build.opensuse.org/request/show/886372 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pypng?expand=0&rev=15 --- pypng-pr104-py39.patch | 31 +++++++++++++++++++++++++++++++ python-pypng.changes | 7 +++++++ python-pypng.spec | 38 +++++++++++++++++++++----------------- 3 files changed, 59 insertions(+), 17 deletions(-) create mode 100644 pypng-pr104-py39.patch diff --git a/pypng-pr104-py39.patch b/pypng-pr104-py39.patch new file mode 100644 index 0000000..7c5ae8e --- /dev/null +++ b/pypng-pr104-py39.patch @@ -0,0 +1,31 @@ +From fe9c973c5e92f24746dfa1be8796c14a2befec4f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Wed, 15 Jul 2020 07:54:53 +0200 +Subject: [PATCH] test_png: Use array.tobytes to fix py3.9 compatibility + +The deprecated array.tostring() method has been removed in Python 3.9. +Use .tobytes() instead. +--- + code/test_png.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/code/test_png.py b/code/test_png.py +index c858d18..447c314 100644 +--- a/code/test_png.py ++++ b/code/test_png.py +@@ -448,13 +448,13 @@ def test_write_packed(self): + def test_interlaced_array(self): + """Reading an interlaced PNG yields each row as an array.""" + r = png.Reader(bytes=pngsuite.basi0g08) +- list(r.read()[2])[0].tostring ++ list(r.read()[2])[0].tobytes + + def test_trns_array(self): + """A type 2 PNG with tRNS chunk yields each row + as an array (using asDirect).""" + r = png.Reader(bytes=pngsuite.tbrn2c08) +- list(r.asDirect()[2])[0].tostring ++ list(r.asDirect()[2])[0].tobytes + + def test_flat(self): + """Test read_flat.""" diff --git a/python-pypng.changes b/python-pypng.changes index 04b670f..39ab57e 100644 --- a/python-pypng.changes +++ b/python-pypng.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sat Apr 17 21:48:57 UTC 2021 - Ben Greiner + +- Add pypng-pr104-py39.patch for Python 3.9 compatibility + gh#drj11/pypng#104 +- Expand u-a install scriptlets early (Fix rpmlint warnings) + ------------------------------------------------------------------- Fri Feb 26 21:28:52 UTC 2021 - Ben Greiner diff --git a/python-pypng.spec b/python-pypng.spec index 0e3aa29..4ad8849 100644 --- a/python-pypng.spec +++ b/python-pypng.spec @@ -17,7 +17,7 @@ %define binaries prichunkpng priforgepng prigreypng pripalpng pripamtopng pripnglsch pripngtopam priweavepng -%{?!python_module:%define python_module() python-%{**} python3-%{**}} +%{?!python_module:%define python_module() python3-%{**}} Name: python-pypng Version: 0.0.20 Release: 0 @@ -26,14 +26,17 @@ License: MIT Group: Development/Languages/Python URL: https://github.com/drj11/pypng Source: https://files.pythonhosted.org/packages/source/p/pypng/pypng-%{version}.tar.gz +# PATCH-FIX-UPSTREAM pr_106 -- gh#drj11/pypng#106 remove test modules Patch0: pr_106.patch +# PATCH-FIX-UPSTREAM pypng-pr104-py39.patch -- gh#drj11/pypng#104 -- python 3.9 compat +Patch1: https://github.com/drj11/pypng/pull/104.patch#/pypng-pr104-py39.patch BuildRequires: %{python_module Cython} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros BuildRequires: %{python_module numpy if (%python-base without python36-base)} Requires(post): update-alternatives -Requires(postun): update-alternatives +Requires(postun):update-alternatives BuildArch: noarch %python_subpackages @@ -43,6 +46,10 @@ PyPNG allows PNG image files to be read and written using pure Python. %prep %setup -q -n pypng-%{version} %patch0 -p1 +%if 0%{suse_version} >= 1550 +# The patch for Python 3.9 compatibility breaks Python 2 +%patch1 -p1 +%endif sed -i -e '/^#!\//, 1d' code/png.py %build @@ -59,25 +66,22 @@ done %python_expand PYTHONPATH=%{buildroot}%{$python_sitelib}:code $python code/test_png.py %post -for b in %{binaries}; do - %python_install_alternative $b -done +%{lua: for b in rpm.expand("%{binaries}"):gmatch("%S+") do + print(rpm.expand("%python_install_alternative " .. b)) +end} %postun -for b in %{binaries}; do - %python_uninstall_alternative $b -done +%{lua: for b in rpm.expand("%{binaries}"):gmatch("%S+") do + print(rpm.expand("%python_uninstall_alternative " .. b)) +end} %files %{python_files} %license LICENCE -%{python_sitelib}/* -%python_alternative %{_bindir}/prichunkpng -%python_alternative %{_bindir}/priforgepng -%python_alternative %{_bindir}/prigreypng -%python_alternative %{_bindir}/pripalpng -%python_alternative %{_bindir}/pripamtopng -%python_alternative %{_bindir}/pripnglsch -%python_alternative %{_bindir}/pripngtopam -%python_alternative %{_bindir}/priweavepng +%{python_sitelib}/png.py* +%{python_sitelib}/pypng-%{version}*-info +%pycache_only %{python_sitelib}/__pycache__/png.*.pyc +%{lua: for b in rpm.expand("%{binaries}"):gmatch("%S+") do + print(rpm.expand("%python_alternative %{_bindir}/" .. b)) +end} %changelog