diff --git a/imagecodecs-2021.1.28.tar.gz b/imagecodecs-2021.1.28.tar.gz deleted file mode 100644 index 282b199..0000000 --- a/imagecodecs-2021.1.28.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:798f478f0f6c39444961ddc7acab15c13b6bec2fb2306ba806d9dc753da7dd00 -size 9416868 diff --git a/imagecodecs-2021.2.26.tar.gz b/imagecodecs-2021.2.26.tar.gz new file mode 100644 index 0000000..f7d485c --- /dev/null +++ b/imagecodecs-2021.2.26.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b479064983ea963b520dbd63b388f69ec8ddc4b12a8c77142d868982f17f400b +size 9419303 diff --git a/imagecodecs-pr15-test_jpegls.patch b/imagecodecs-pr15-test_jpegls.patch new file mode 100644 index 0000000..8c56181 --- /dev/null +++ b/imagecodecs-pr15-test_jpegls.patch @@ -0,0 +1,31 @@ +From b14af25da949b88fb09339fd84ac97e67aa9109f Mon Sep 17 00:00:00 2001 +From: Ben Greiner +Date: Wed, 10 Mar 2021 13:22:50 +0100 +Subject: [PATCH] Check if JPEGLS is present when testing that codec + +--- + tests/test_imagecodecs.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/test_imagecodecs.py b/tests/test_imagecodecs.py +index a057e15..c70a155 100644 +--- a/tests/test_imagecodecs.py ++++ b/tests/test_imagecodecs.py +@@ -1535,7 +1535,7 @@ def test_jpeg2k_ycbc(): + assert tuple(decoded[-1, -1]) == (0, 0, 0) + + +-@pytest.mark.skipif(not imagecodecs.JPEGXL, reason='jpegls missing') ++@pytest.mark.skipif(not imagecodecs.JPEGLS, reason='jpegls missing') + @pytest.mark.parametrize('output', ['new', 'out', 'bytearray']) + def test_jpegls_decode(output): + """Test JPEG LS decoder with RGBA32 image.""" +@@ -1889,7 +1889,7 @@ def encode(data, *args, **kwargs): + ) + + elif codec == 'jpegls': +- if not imagecodecs.JPEGXL: ++ if not imagecodecs.JPEGLS: + pytest.skip(f'{codec} missing') + if itype in ('view', 'graya') or deout == 'view': + pytest.xfail('jpegls does not support this case') diff --git a/imagecodecs_distributor_setup.py b/imagecodecs_distributor_setup.py new file mode 100644 index 0000000..ade1d83 --- /dev/null +++ b/imagecodecs_distributor_setup.py @@ -0,0 +1,35 @@ +# openSUSE extension setup to build python-imagecodecs + +import os +import subprocess +import sys + +def customize_build(EXTENSIONS, OPTIONS): + + includedir = os.getenv("INCDIR",'') + '/' + + del EXTENSIONS['jpeg12'] # jpeg12 requires custom build + del EXTENSIONS['lerc'] # LERC library not available + del EXTENSIONS['lz4f'] # requires static linking + del EXTENSIONS['jpegxl'] # Brunsli library not available + + EXTENSIONS['avif']['libraries'] = [ + 'avif', + 'aom', + 'dav1d', + 'rav1e', + ] + + # no zfp on 32-bit platforms + if sys.maxsize < 2**63 - 1: + del EXTENSIONS['zfp'] + + + openjpeg_inc = subprocess.check_output( + ['pkgconf', '--variable=includedir', 'libopenjp2'], + text=True, + ).strip() + EXTENSIONS['jpeg2k']['include_dirs'].append(openjpeg_inc) + + EXTENSIONS['jpegxr']['include_dirs'].append(includedir + 'jxrlib') + EXTENSIONS['zopfli']['include_dirs'].append(includedir + 'zopfli') diff --git a/python-imagecodecs.changes b/python-imagecodecs.changes index 066c6ac..17bdc67 100644 --- a/python-imagecodecs.changes +++ b/python-imagecodecs.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Mar 10 10:42:55 UTC 2021 - Ben Greiner + +- Update to version 2021.2.26 + Pass 4915 tests. Support X2 and X4 floating point predictors + (found in DNG). +- enable additional codecs through imagecodecs_distributor_setup.py +- Add imagecodecs-pr15-test_jpegls.patch + gh#cgohlke/imagecodecs#15 +- disable builds for big-endian platforms as per upstream README + ------------------------------------------------------------------- Mon Feb 1 19:40:15 UTC 2021 - Ben Greiner diff --git a/python-imagecodecs.spec b/python-imagecodecs.spec index a51a315..d5faf1d 100644 --- a/python-imagecodecs.spec +++ b/python-imagecodecs.spec @@ -28,13 +28,16 @@ %define skip_python2 1 %define skip_python36 1 Name: python-imagecodecs%{psuffix} -Version: 2021.1.28 +Version: 2021.2.26 Release: 0 Summary: Image transformation, compression, and decompression codecs License: BSD-3-Clause -URL: https://www.lfd.uci.edu/~gohlke/ +URL: https://github.com/cgohlke/imagecodecs/ Source: https://files.pythonhosted.org/packages/source/i/imagecodecs/imagecodecs-%{version}.tar.gz +Source1: imagecodecs_distributor_setup.py Patch0: always-cythonize.patch +# PATCH-FIX-UPSTREAM imagecodecs-pr15-test_jpegls.patch -- gh#cgohlke/imagecodecs#15 +Patch1: https://github.com/cgohlke/imagecodecs/pull/15.patch#/imagecodecs-pr15-test_jpegls.patch BuildRequires: %{python_module Cython >= 0.29.19} BuildRequires: %{python_module numpy-devel >= 1.15.1} BuildRequires: %{python_module setuptools >= 18.0} @@ -63,22 +66,28 @@ BuildRequires: %{python_module python-snappy} BuildRequires: %{python_module scikit-image} BuildRequires: %{python_module tifffile >= 2020.5.25} BuildRequires: %{python_module zstd} -# not (yet) available: +# libraries and python modules not (yet) available: #BuildRequires: %%{python_module bitshuffle} #BuildRequires: %%{python_module lzf} +# The zopfli library is linked. User can pip install zopflipy, if needed. #BuildRequires: %%{python_module zopflipy} %else +BuildRequires: CharLS-devel +BuildRequires: dav1d-devel BuildRequires: gcc-c++ BuildRequires: giflib-devel BuildRequires: jxrlib-devel BuildRequires: libaec-devel +BuildRequires: libaom-devel BuildRequires: libdeflate-devel BuildRequires: libzopfli-devel BuildRequires: pkgconfig +BuildRequires: rav1e-devel BuildRequires: snappy-devel BuildRequires: pkgconfig(blosc) BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(libavif) BuildRequires: pkgconfig(libbrotlicommon) BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(liblz4) @@ -89,7 +98,13 @@ BuildRequires: pkgconfig(libtiff-4) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(zlib) +%ifnarch %ix86 %arm +# zfp is 64 bit only. Note that upstream deprecated 32-bit as a whole +BuildRequires: zfp-devel %endif +%endif +# Upstream: big endian is not supported +ExcludeArch: s390x ppc64 %python_subpackages %description @@ -97,20 +112,27 @@ Imagecodecs is a Python library that provides block-oriented, in-memory buffer transformation, compression, and decompression functions for use in the tifffile, czifile, and other scientific imaging modules. -Decode and/or encode functions are currently implemented for Zlib DEFLATE, -ZStandard, Blosc, LZMA, BZ2, LZ4, LZW, LZF, ZFP, NPY, PNG, WebP, JPEG 8-bit, -JPEG 12-bit, JPEG SOF3, JPEG LS, JPEG 2000, JPEG XR, PackBits, Packed Integers, -Delta, XOR Delta, Floating Point Predictor, and Bitorder reversal. +Decode and/or encode functions are implemented for Zlib (DEFLATE), GZIP, +ZStandard (ZSTD), Blosc, Brotli, Snappy, LZMA, BZ2, LZ4, LZ4F, LZ4HC, LZW, LZF, +ZFP, AEC, LERC, NPY, PNG, GIF, TIFF, WebP, JPEG 8-bit, JPEG 12-bit, Lossless +JPEG (LJPEG, SOF3), JPEG 2000, JPEG LS, JPEG XR, JPEG XL, AVIF, PackBits, Packed +Integers, Delta, XOR Delta, Floating Point Predictor, Bitorder reversal, +Bitshuffle, and Float24 (24-bit floating point). %prep %setup -q -n imagecodecs-%{version} +# the patch from github requires unix line endings to apply +dos2unix tests/test_imagecodecs.py %autopatch -p1 - +cp %SOURCE1 ./ dos2unix README.rst +# https://github.com/cgohlke/imagecodecs/pull/15#issuecomment-795744838 +ldd %{_libdir}/libblosc.so.1 | grep -q libsnappy && sed -i "s/if not IS_CG and compressor == 'snappy'/if False/" tests/test_imagecodecs.py %build %if !%{with test} export CFLAGS="%{optflags}" +export INCDIR="%{_includedir}" %python_build %endif