diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/always-cythonize.patch b/always-cythonize.patch new file mode 100644 index 0000000..a7a03dd --- /dev/null +++ b/always-cythonize.patch @@ -0,0 +1,13 @@ +Index: imagecodecs-2020.5.30/setup.py +=================================================================== +--- imagecodecs-2020.5.30.orig/setup.py ++++ imagecodecs-2020.5.30/setup.py +@@ -71,7 +71,7 @@ if 'sdist' in sys.argv: + + + OPTIONS = { +- 'cythonize': sys.version_info >= (3, 10), ++ 'cythonize': True, + 'include_dirs': ['imagecodecs'], + 'library_dirs': [], + 'libraries': ['m'] if sys.platform != 'win32' else [], diff --git a/imagecodecs-2019.5.22.tar.gz b/imagecodecs-2019.5.22.tar.gz deleted file mode 100644 index 08bbf49..0000000 --- a/imagecodecs-2019.5.22.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7cd689549b41dc979fed1a26e668a080e67b276b029d179ae3a9eb27a0187719 -size 6487114 diff --git a/imagecodecs-2020.5.30.tar.gz b/imagecodecs-2020.5.30.tar.gz new file mode 100644 index 0000000..ac896fb --- /dev/null +++ b/imagecodecs-2020.5.30.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8c776922d3a60824d8d3d31ba674a250d1b4d429e81349b5c88c34d4353ddb5 +size 8993252 diff --git a/python-imagecodecs.changes b/python-imagecodecs.changes index 012749d..108890d 100644 --- a/python-imagecodecs.changes +++ b/python-imagecodecs.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Fri Aug 28 09:20:47 UTC 2020 - Tomáš Chvátal + +- Switch to multibuild to not cycle + +------------------------------------------------------------------- +Fri Aug 28 08:37:24 UTC 2020 - Tomáš Chvátal + +- Add patch to enforce cythonization: + * always-cythonize.patch +- Add patch to locate zopfli headers properly: + * zopfli-headers.patch + +------------------------------------------------------------------- +Fri Aug 28 08:20:58 UTC 2020 - Tomáš Chvátal + +- Update to 2020.5.30: + * pythhon3 only + * add support for more codecs + ------------------------------------------------------------------- Mon May 25 10:59:24 UTC 2020 - Petr Gajdos diff --git a/python-imagecodecs.spec b/python-imagecodecs.spec index 1513127..901e0c2 100644 --- a/python-imagecodecs.spec +++ b/python-imagecodecs.spec @@ -17,50 +17,71 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif %define skip_python2 1 -Name: python-imagecodecs -Version: 2019.5.22 +Name: python-imagecodecs%{psuffix} +Version: 2020.5.30 Release: 0 Summary: Image transformation, compression, and decompression codecs License: BSD-3-Clause -Group: Development/Languages/Python URL: https://www.lfd.uci.edu/~gohlke/ Source: https://files.pythonhosted.org/packages/source/i/imagecodecs/imagecodecs-%{version}.tar.gz -BuildRequires: %{python_module Cython} -BuildRequires: %{python_module Pillow} -BuildRequires: %{python_module blosc} -BuildRequires: %{python_module lz4} -BuildRequires: %{python_module matplotlib >= 2.2} -BuildRequires: %{python_module numpy-devel >= 1.11.3} -BuildRequires: %{python_module pytest} -BuildRequires: %{python_module scikit-image} -BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module zstd} +Patch0: always-cythonize.patch +Patch1: zopfli-headers.patch +BuildRequires: %{python_module Cython >= 0.29.19} +BuildRequires: %{python_module numpy-devel >= 1.15.1} +BuildRequires: %{python_module setuptools >= 18.0} BuildRequires: dos2unix BuildRequires: fdupes -BuildRequires: gcc-c++ -BuildRequires: jxrlib-devel -BuildRequires: libjpeg62-devel -BuildRequires: pkgconfig -BuildRequires: python-rpm-macros -BuildRequires: pkgconfig(blosc) -BuildRequires: pkgconfig(bzip2) -BuildRequires: pkgconfig(lcms2) -BuildRequires: pkgconfig(liblz4) -BuildRequires: pkgconfig(liblzma) -BuildRequires: pkgconfig(libopenjp2) -BuildRequires: pkgconfig(libpng) -BuildRequires: pkgconfig(libwebp) -BuildRequires: pkgconfig(libzstd) -BuildRequires: pkgconfig(zlib) -Requires: python-numpy >= 1.11.3 +Requires: python-numpy >= 1.15.1 Requires(post): update-alternatives Requires(postun): update-alternatives Recommends: python-Pillow Recommends: python-blosc Recommends: python-lz4 -Recommends: python-matplotlib >= 2.2 +Recommends: python-matplotlib >= 3.1 +Recommends: python-tifffile >= 2020.5.25 Recommends: python-zstd +%if %{with test} +BuildRequires: %{python_module Pillow} +BuildRequires: %{python_module blosc} +BuildRequires: %{python_module imagecodecs >= %{version}} +BuildRequires: %{python_module lz4} +BuildRequires: %{python_module matplotlib >= 3.1} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module scikit-image} +BuildRequires: %{python_module tifffile >= 2020.5.25} +BuildRequires: %{python_module zstd} +%else +BuildRequires: gcc-c++ +BuildRequires: giflib-devel +BuildRequires: jxrlib-devel +BuildRequires: libaec-devel +BuildRequires: libzopfli-devel +BuildRequires: pkgconfig +BuildRequires: python-rpm-macros +BuildRequires: snappy-devel +BuildRequires: pkgconfig(blosc) +BuildRequires: pkgconfig(bzip2) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libbrotlicommon) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(liblz4) +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(libopenjp2) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libtiff-4) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(zlib) +%endif %python_subpackages %description @@ -75,28 +96,35 @@ Delta, XOR Delta, Floating Point Predictor, and Bitorder reversal. %prep %setup -q -n imagecodecs-%{version} +%autopatch -p1 + dos2unix README.rst -# prevent ImportError in CLI due to missing tifffile -sed -i '/from tifffile import imshow/d' imagecodecs/__main__.py %build +%if !%{with test} export CFLAGS="%{optflags}" %python_build +%endif %install +%if !%{with test} %python_install %python_clone -a %{buildroot}%{_bindir}/imagecodecs %{python_expand rm -rf %{buildroot}%{$python_sitearch}/imagecodecs/licenses/ %fdupes %{buildroot}%{$python_sitearch} } +%endif %check +%if %{with test} mv imagecodecs __imagecodecs # Should add --doctest-modules %%{buildroot}%%{$python_sitearch}/imagecodecs/imagecodecs.py # however doctests are currently broken %pytest_arch tests mv __imagecodecs imagecodecs +%endif +%if !%{with test} %post %python_install_alternative imagecodecs @@ -108,5 +136,6 @@ mv __imagecodecs imagecodecs %doc README.rst %python_alternative %{_bindir}/imagecodecs %{python_sitearch}/* +%endif %changelog diff --git a/zopfli-headers.patch b/zopfli-headers.patch new file mode 100644 index 0000000..392d4b0 --- /dev/null +++ b/zopfli-headers.patch @@ -0,0 +1,13 @@ +Index: imagecodecs-2020.5.30/imagecodecs/zopfli.pxd +=================================================================== +--- imagecodecs-2020.5.30.orig/imagecodecs/zopfli.pxd ++++ imagecodecs-2020.5.30/imagecodecs/zopfli.pxd +@@ -4,7 +4,7 @@ + # Cython declarations for the `Zopfli 1.0.3` library. + # https://github.com/google/zopfli + +-cdef extern from 'zopfli/zopfli.h': ++cdef extern from 'zopfli.h': + + ctypedef struct ZopfliOptions: + int verbose