From 05f6d155032a5b1e52e3a66bd4a98a7473104441f7ac78aab3c613f3790d0457 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 14 Aug 2024 14:51:32 +0000 Subject: [PATCH] - switch to modern python for sle15 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-imagecodecs?expand=0&rev=38 --- .gitattributes | 23 ++ .gitignore | 1 + _multibuild | 3 + imagecodecs-2024.1.1.tar.gz | 3 + imagecodecs-2024.6.1.tar.gz | 3 + imagecodecs_distributor_setup.py | 40 ++++ python-imagecodecs.changes | 361 +++++++++++++++++++++++++++++++ python-imagecodecs.spec | 193 +++++++++++++++++ skip-rare-codecs.patch | 11 + 9 files changed, 638 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _multibuild create mode 100644 imagecodecs-2024.1.1.tar.gz create mode 100644 imagecodecs-2024.6.1.tar.gz create mode 100644 imagecodecs_distributor_setup.py create mode 100644 python-imagecodecs.changes create mode 100644 python-imagecodecs.spec create mode 100644 skip-rare-codecs.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc 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/imagecodecs-2024.1.1.tar.gz b/imagecodecs-2024.1.1.tar.gz new file mode 100644 index 0000000..5e3e4a4 --- /dev/null +++ b/imagecodecs-2024.1.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fde46bd698d008255deef5411c59b35c0e875295e835bf6079f7e2ab22f216eb +size 9452821 diff --git a/imagecodecs-2024.6.1.tar.gz b/imagecodecs-2024.6.1.tar.gz new file mode 100644 index 0000000..5ecc885 --- /dev/null +++ b/imagecodecs-2024.6.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f3e94b7f51e2f78287b7ffae82cd850b1007639148894538274fa50bd179886 +size 9459867 diff --git a/imagecodecs_distributor_setup.py b/imagecodecs_distributor_setup.py new file mode 100644 index 0000000..732f442 --- /dev/null +++ b/imagecodecs_distributor_setup.py @@ -0,0 +1,40 @@ +# openSUSE extension setup to build python-imagecodecs + +import os +import subprocess +import sys + +def customize_build(EXTENSIONS, OPTIONS): + + print(f"Building with custom OpenSUSE config ({__file__})") + + includedir = os.getenv("INCDIR",'') + '/' + + del EXTENSIONS['apng'] # png-apng library not available + del EXTENSIONS['brunsli'] # graphics/brunsli not in Factory + del EXTENSIONS['jetraw'] # jetraw library not available + del EXTENSIONS['lerc'] # LERC library not available + del EXTENSIONS['lz4f'] # requires static linking + del EXTENSIONS['lzo'] # lzokay not available + del EXTENSIONS['mozjpeg'] # Win32 only + del EXTENSIONS['pcodec'] # not available in Factory + del EXTENSIONS['sperr'] # not available in Factory + + EXTENSIONS['avif']['libraries'] = [ + 'avif', + 'aom', + 'dav1d', + 'rav1e', + 'sharpyuv', + 'SvtAv1Enc', + ] + 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['jpegxl']['libraries'] = ['jxl', 'jxl_threads'] + EXTENSIONS['rcomp']['include_dirs'].append(includedir + 'cfitsio') + EXTENSIONS['zopfli']['include_dirs'].append(includedir + 'zopfli') + EXTENSIONS['lzham']['libraries'] = ['lzhamdll'] diff --git a/python-imagecodecs.changes b/python-imagecodecs.changes new file mode 100644 index 0000000..847e684 --- /dev/null +++ b/python-imagecodecs.changes @@ -0,0 +1,361 @@ +------------------------------------------------------------------- +Wed Aug 14 14:51:22 UTC 2024 - Dirk Müller + +- switch to modern python for sle15 + +------------------------------------------------------------------- +Wed Jul 17 08:39:26 UTC 2024 - Ben Greiner + +- Update to 2024.6.1 + * Pass 7486 tests. + * Fix segfault in sperr_decode. + * Fix segfault when strided-decoding into buffers with unexpected + shapes (#98). + * Fix jpeg2k_encoder output buffer too small (#101). + * Add PCODEC codec based on pcodec library. + * Support NumPy 2. +- Drop skip-rare-codecs.patch, restore and update + imagecodecs_distributor_setup.py + +------------------------------------------------------------------- +Mon Mar 18 19:45:10 UTC 2024 - Dirk Müller + +- replace imagecodecs_distributor_setup.py with + skip-rare-codecs.patch: this setuptools hook does not get + called anymore with PEP517 builds + +------------------------------------------------------------------- +Mon Mar 18 12:27:11 UTC 2024 - Dirk Müller + +- drop brunsli-devel as dependency until it actually ends up + in factory + +------------------------------------------------------------------- +Thu Jan 25 12:33:46 UTC 2024 - Dirk Müller + +- remove 32bit builds + +------------------------------------------------------------------- +Mon Jan 22 10:05:23 UTC 2024 - Guillaume GARDET + +- Add brunsli-devel as new dependency (fixes aarch64 build) + +------------------------------------------------------------------- +Wed Jan 3 18:33:00 UTC 2024 - Dirk Müller + +- update to 2024.1.1: + * Add 8/24-bit BMP codec. + * Add SPERR codec based on SPERR library. + * Add LZO decoder based on lzokay library. + * Add DICOMRLE decoder. + * Enable float16 in CMS codec. + * Enable MCT for lossless JPEG2K encoder (#88). + * Ignore pad-byte in PackBits decoder (#86). + * Fix heif_write_callback error message not set. + * Require lcms2 2.16 with issue-420 fixes. + * Require libjxl 0.9, libaec 1.1, Cython 3. + +------------------------------------------------------------------- +Tue Jan 2 21:01:58 UTC 2024 - Dirk Müller + +- update to 2023.9.18: + * Rebuild with updated dependencies fixes CVE-2023-4863. + * Map avif_encode level parameter to quality (breaking). + * Support monochrome images in avif_encode. + * Add numthreads parameter to avif_decode (fix imread of AVIF). + * Add experimental quantize filter (BitGroom, BitRound, GBR) + via nc4var.c. + * Add LZ4H5 codec. + * Support more BCn compressed DDS fourcc types. + * Require libavif 1.0 + * Add EER (Electron Event Representation) decoder. + * Add option to pass initial value to crc32 and adler32 checksum + functions. + * Add fletcher32 and lookup3 checksum functions + via HDF5's h5checksum.c. + * Add Checksum codec for numcodecs. + * Rebuild with optimized compile flags. + * Add BCn and DDS decoder via bcdec library. + * Add functions to transcode JPEG XL to/from JPEG (#78). + * Add option to decode select frames from animated WebP. + * Use legacy JPEG8 codec when building without libjpeg-turbo 3 + * Change blosc2_encode defaults to match blosc2-python (breaking). + * Fix segfault writing JPEG2K with more than 4 samples. + * Fix some codecs returning bytearray by default. + * Fully vendor cfitsio's ricecomp.c. + * Drop support for Python 3.8 and numpy < 1.21 (NEP29). +- drop always-cythonize.patch, avif.patch, quantize.patch, + cython3.patch, libavif.patch, integrate.patch, + tests.patch: upstream + +------------------------------------------------------------------- +Wed Sep 13 11:57:38 UTC 2023 - Markéta Machová + +- Add patches for the compatibility with libavif 1.0.0: + * libavif.patch + * quantize.patch + * avif.patch + * tests.patch + * integrate.patch + +------------------------------------------------------------------- +Tue Sep 12 14:21:29 UTC 2023 - Markéta Machová + +- Add patch cython3.patch to fix build + +------------------------------------------------------------------- +Fri Mar 24 14:31:16 UTC 2023 - Ben Greiner + +- Update to 2023.3.16 + * Pass 6884 tests. + * Require libjpeg-turbo 2.1.91 (3.0 beta) and c-blosc2 2.7.1. + * Add experimental type hints. + * Add SZIP codec via libaec library. + * Use Zstd streaming API to decode blocks with unknown + decompressed size. + * Remove unused level, index, and numthreads parameters + (breaking). + * Make AEC and BLOSC constants enums (breaking). + * Capitalize numcodecs class names (breaking). + * Remove JPEG12 codec (breaking; use JPEG8 instead). + * Encode and decode lossless and 12-bit JPEG with JPEG8 codec by + default. + * Remove JPEGSOF3 fallback in JPEG codec. + * Fix slow IFD seeking with libtiff 4.5. + * Fixes for Cython 3.0. +- Release 2023.1.23 + * Require libjxl 0.8. + * Change mapping of level to distance parameter in jpegxl_encode. + * Add option to specify bitspersample in jpegxl_encode. + * Add option to pass de/linearize tables to LJPEG codec. + * Fix lj92 decoder for SSSS=16 (#59). + * Prefer ljpeg over jpegsof3 codec. + * Add option to specify AVIF encoder codec. + * Support LERC with Zstd or Deflate compression. + * Squeeze chunk arrays by default in numcodecs image compression + codecs. +- Skip testing with dask on python 3.11: no numba yet +- Add blosc2, SVT-AV1, jpegxl (libjxl)), SZIP (libsz2) +- Disable jpeg8/libjpeg-turbo: required beta version not available + +------------------------------------------------------------------- +Sat Jan 21 11:40:41 UTC 2023 - Ben Greiner + +- Update to 2022.12.24 + * Pass 6512 tests. + * Fix PNG codec error handling. + * Fix truncated transferfunctions in cms_profile (#57). + * Fix exceptions not raised in cdef functions not returning + Python object. +- Release 2022.12.22 + * Require libtiff 4.5 (breaking). + * Require libavif 0.11 (breaking). + * Change jpegxl_encode level parameter to resemble libjpeg + quality (breaking). + * Add LZFSE codec via lzfse library. + * Add LZHAM codec via lzham library. + * Fix AttributeError in cms_profile (#52). + * Support gamma argument in cms_profile (#53). + * Raise limit of TIFF pages to 1048576. + * Use libtiff thread-safe error/warning handlers. + * Add option to specify filters and strategy in png_encode. + * Add option to specify integrity check type in lzma_encode. + * Fix DeprecationWarning with NumPy 1.24. + +------------------------------------------------------------------- +Sun Oct 9 08:05:22 UTC 2022 - John Vandenberg + +- Update imagecodecs_distributor_setup.py to skip unbuildable exts +- Refresh always-cythonize.patch +- Enable s390x & ppc64 builds +- Update to v2022.9.26 + * Pass 6357 tests. + * Support JPEG XL multi-channel (planar grayscale only) and multi-frame. + * Require libjxl 0.7 (breaking). + * Switch to Blosc2 API and require c-blosc 2.4 (breaking). + * Return LogLuv encoded TIFF as float32. + * Add RGBE codec via rgbe.c. +- from v2022.8.8 + * Drop support for libjpeg. + * Fix encoding JPEG in RGB color space. + * Require ZFP 1.0. +- from v2022.7.31 + * Add option to decode WebP as RGBA. + * Add option to specify WebP compression method. + * Use exact lossless WebP encoding. +- from v2022.7.27 + * Add LZW encoder. + * Add QOI codec via qoi.h + * Add HEIF codec via libheif + * Add JETRAW codec via Jetraw demo (source only). + * Add ByteShuffle codec, a generic version of FloatPred. + * Replace imcd_floatpred by imcd_byteshuffle (breaking). + * Use bool type in imcd (breaking). +- from v2022.2.22 + * Fix jpeg numcodecs with tables + * Add APNG codec via libpng-apng patch. + * Add lossless and decodingspeed parameters to jpegxl_encode + * Add option to read JPEG XL animations. + * Add dummy numthreads parameter to codec functions. + * Set default numthreads to 1 (disable multi-threading). + * Drop support for Python 3.7 and numpy < 1.19 (NEP29). +- from v2021.11.20 + * Fix testing on pypy and Python 3.10. +- from v2021.11.11 + * Require libjxl 0.6.x. + * Add CMS codec via Little CMS library for color space transformations (WIP). + * Add MOZJPEG codec via mozjpeg library (Windows only). + * Add SPNG codec via libspng library. + * Rename avif_encode maxthreads parameter to numthreads (breaking). + * Accept n-dimensional output in non-image numcodecs decoders. + * Support masks in LERC codec. + * Support multi-threading and planar format in JPEG2K codec. + * Support multi-resolution, MCT, bitspersample, and 32-bit in jpeg2k encoder. + * Change jpeg2k_encode level parameter to fixed quality psnr (breaking). + * Change jpegxl_encode effort parameter default to minimum 3. + * Change JPEG encoders to use YCbCr for RGB images by default. + * Replace lerc_encode planarconfig with planar parameter (breaking). + * Add option to specify omp numthreads and chunksize in ZFP codec. + * Set default numthreads to 0. + * Fix Blosc default typesize. + * Fix segfault in jpegxl_encode. + * Replace many constants with enums (breaking). +- from v2021.8.26 + * Add BLOSC2 codec via c-blosc2 library. + * Require LERC 3 and libjxl 0.5. + * Do not exceed literal-only size in PackBits encoder. + * Raise ImcdError if output is insufficient in PackBits codecs (breaking). + * Raise ImcdError if input is corrupt in PackBits decoder (breaking). + * Fix delta codec for non-native byteorder. +- from v2021.7.30 + * Support more dtypes and axes argument in PackBits encoder. + * Fix worst case output size in PackBits encoder. + * Fix decoding AVIF created with older libavif. + * Fix decoding GIF with disposal to previous for first frame. + * Add lossless option in jpeg_encode. + +------------------------------------------------------------------- +Wed Jun 30 07:28:42 UTC 2021 - Ben Greiner + +- Update to 2021.6.8 + * Pass 5185 tests. + * Fix building with Cython 0.3a7. + * Decode TIFF with JPEG compression, YCBCR or CMYK colorspace as RGB24. + * Vendor cfitsio/ricecomp.c for shared library builds on Windows (#18). +- Release 2021.5.20 + * Add ZLIBNG codec via zlib-ng library. + * Add RCOMP (Rice) codec via cfitsio library. + * Fix decoding of 16-bit JPEG with jpeg_decode. + * Relax user provided output array shape requirement. +- Release 2021.4.28 + * Change WebP default compression level to lossless. + * Rename jpegxl codec to brunsli (breaking). + * Add new JPEG XL codec via jpeg-xl library. + * Add PGLZ codec via PostgreSQL's pg_lzcompress.c. + * Update to libtiff 4.3 and libjpeg-turbo 2.1. + * Enable JPEG 12-bit codec in manylinux wheels. + * Drop manylinux2010 wheels. +- Release 2021.3.31 + * Add numcodecs compatible codecs for use by Zarr (experimental). + * Support separate JPEG header in jpeg_decode. + * Do not decode JPEG LS and XL in jpeg_decode (breaking). + * Fix ZFP with partial header. + * Fix JPEG LS tests (#15). + * Fix LZ4F contentchecksum. + * Remove blosc Snappy tests. + * Fix docstrings. +- drop imagecodecs-pr15-test_jpegls.patch fixed upstream- +- refresh always-cythonize.patch + +------------------------------------------------------------------- +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 + +- Update to version 2021.1.28 + * Add option to return JPEG XR fixed point pixel types as + integers + * Add LJPEG codec via liblj92 (alternative to JPEGSOF3 codec) + * Change zopfli header location. +- refresh always-cythonize.patch +- drop zopfli-headers.patch fixed upstream +- Add more testing requirements to test backends +- Add skip reporting to pytest to see what is still missing + +------------------------------------------------------------------- +Tue Jan 12 21:54:10 UTC 2021 - andy great + +- Update to version 2021.1.11. + * Fix build issues (#7, #8). + * Return bytearray instead of bytes on PyPy. + * Raise TypeError if output provided is bytes (breaking). +- Updates for version 2021.1.8 + * Add float24 codec. + * Update copyrights. +- Updates for version 2020.12.24 + * Update dependencies and build scripts. +- Updates for version 2020.12.22 + * Add AVIF codec via libavif (WIP). + * Add DEFLATE/Zlib and GZIP codecs via libdeflate. + * Add LZ4F codec. + * Add high compression mode option to lz4_encode. + * Convert JPEG XR 16 and 32-bit fixed point pixel types to float32. + * Fix JPEG 2000 lossy encoding. + * Fix GIF disposal handling. + * Remove support for Python 3.6 (NEP 29). +- Rebase always-cythonize.patch +- Rebase zopfli-headers.patch + +------------------------------------------------------------------- +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 + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Thu Apr 23 10:58:48 UTC 2020 - Tomáš Chvátal + +- As the package is marked as py3 only drop the python2 deps + +------------------------------------------------------------------- +Fri Dec 6 18:44:56 UTC 2019 - Todd R + +- Disable python2 support since dependencies dropped python2 + +------------------------------------------------------------------- +Tue Jul 30 11:36:02 UTC 2019 - John Vandenberg + +- Update to v2019.5.22 + +------------------------------------------------------------------- +Mon Mar 4 10:03:51 AM UTC 2019 - John Vandenberg + +- Initial spec for v2019.2.22 diff --git a/python-imagecodecs.spec b/python-imagecodecs.spec new file mode 100644 index 0000000..06a5df2 --- /dev/null +++ b/python-imagecodecs.spec @@ -0,0 +1,193 @@ +# +# spec file for package python-imagecodecs +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%{?sle15_python_module_pythons} +Name: python-imagecodecs%{psuffix} +Version: 2024.6.1 +Release: 0 +Summary: Image transformation, compression, and decompression codecs +License: BSD-3-Clause +URL: https://github.com/cgohlke/imagecodecs/ +Source0: https://files.pythonhosted.org/packages/source/i/imagecodecs/imagecodecs-%{version}.tar.gz +Source1: imagecodecs_distributor_setup.py +ExcludeArch: %ix86 %arm32 ppc s390 +BuildRequires: %{python_module Cython >= 3} +BuildRequires: %{python_module base >= 3.8} +BuildRequires: %{python_module numpy-devel} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: dos2unix +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-numpy +Requires(post): update-alternatives +Requires(postun): update-alternatives +Recommends: python-Pillow +Recommends: python-blosc +Recommends: python-lz4 +Recommends: python-matplotlib >= 3.3 +Recommends: python-numcodecs +Recommends: python-tifffile +Recommends: python-zstd +%if %{with test} +BuildRequires: %{python_module Brotli} +BuildRequires: %{python_module Pillow} +BuildRequires: %{python_module blosc} +BuildRequires: %{python_module czifile} +BuildRequires: %{python_module dask-array} +BuildRequires: %{python_module dask-delayed} +BuildRequires: %{python_module dask} +BuildRequires: %{python_module imagecodecs = %{version}} +BuildRequires: %{python_module lz4} +BuildRequires: %{python_module matplotlib >= 3.3} +BuildRequires: %{python_module numcodecs} +BuildRequires: %{python_module pytest-xdist} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module python-snappy} +BuildRequires: %{python_module scikit-image} +BuildRequires: %{python_module tifffile} +BuildRequires: %{python_module zarr} +BuildRequires: %{python_module zstd} +# 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} +# The lzfse library is linked. User can pip install pyliblzfse, if needed. +#BuildRequires: %%{python_module pyliblzfse} +%else +BuildRequires: CharLS-devel +BuildRequires: dav1d-devel +BuildRequires: gcc-c++ +BuildRequires: giflib-devel +BuildRequires: jxrlib-devel +BuildRequires: libaec-devel >= 1.1 +BuildRequires: libaom-devel +BuildRequires: libdeflate-devel +BuildRequires: libzopfli-devel +BuildRequires: lzfse-devel +BuildRequires: lzham_codec-devel +BuildRequires: pkgconfig +BuildRequires: rav1e-devel +BuildRequires: snappy-devel +BuildRequires: sz2-devel +BuildRequires: xz-devel +BuildRequires: zfp-devel +BuildRequires: pkgconfig(blosc) +BuildRequires: pkgconfig(blosc2) >= 2.7.1 +BuildRequires: pkgconfig(bzip2) +BuildRequires: pkgconfig(cfitsio) +BuildRequires: pkgconfig(lcms2) >= 2.16 +BuildRequires: pkgconfig(libavif) >= 1.0.0 +BuildRequires: pkgconfig(libbrotlicommon) +BuildRequires: pkgconfig(libheif) +# Tests fail if enabled +# BuildRequires: pkgconfig(libturbojpeg) +BuildRequires: pkgconfig(libjxl) >= 0.9 +BuildRequires: pkgconfig(SvtAv1Enc) +BuildRequires: pkgconfig(liblz4) +BuildRequires: pkgconfig(liblzma) +BuildRequires: pkgconfig(libopenjp2) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libsharpyuv) +BuildRequires: pkgconfig(libtiff-4) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(zlib-ng) +%endif +%python_subpackages + +%description +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 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 +%autosetup -p1 -n imagecodecs-%{version} +cp %{SOURCE1} ./ +dos2unix README.rst +# These libraries are not linked to, (check SOURCE1) +rm imagecodecs/licenses/LICENSE-brunsli +rm imagecodecs/licenses/LICENSE-jetraw +rm imagecodecs/licenses/LICENSE-lerc +rm imagecodecs/licenses/LICENSE-lzokay +rm imagecodecs/licenses/LICENSE-mozjpeg +rm imagecodecs/licenses/LICENSE-pcodec +rm imagecodecs/licenses/LICENSE-sperr + +%build +%if !%{with test} +export CFLAGS="%{optflags}" +export INCDIR="%{_includedir}" +# make sure we can import Source1 +export PYTHONPATH=$PWD:$PYTHONPATH +%pyproject_wheel +%endif + +%install +%if !%{with test} +%pyproject_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} +# All heif tests fail because of unsupported filetypes (openSUSE does not ship patentend codec support with libheif) +donttest="heif" +# no webp and lerc support in libtiff +donttest="$donttest or (test_tiff and (webp or lerc))" +donttest+=" or test_cms" +%pytest_arch -n auto tests -rsXfE -k "not ($donttest ${$python_donttest})" +%endif + +%if !%{with test} +%post +%python_install_alternative imagecodecs + +%postun +%python_uninstall_alternative imagecodecs + +%files %{python_files} +%license LICENSE imagecodecs/licenses/* +%doc README.rst +%python_alternative %{_bindir}/imagecodecs +%{python_sitearch}/imagecodecs-%{version}.dist-info/ +%{python_sitearch}/imagecodecs/ +%endif + +%changelog diff --git a/skip-rare-codecs.patch b/skip-rare-codecs.patch new file mode 100644 index 0000000..c10c2b2 --- /dev/null +++ b/skip-rare-codecs.patch @@ -0,0 +1,11 @@ +--- imagecodecs-2024.1.1.orig/setup.py ++++ imagecodecs-2024.1.1/setup.py +@@ -246,7 +246,7 @@ def customize_build_default(EXTENSIONS, + del EXTENSIONS['sperr'] # sperr not commonly available + del EXTENSIONS['zlibng'] # zlib-ng library not commonly available + +- if 'arch' not in platform.platform(): ++ if True: + del EXTENSIONS['jpegls'] # CharLS 2.1 library not commonly available + del EXTENSIONS['jpegxl'] # jpeg-xl library not commonly available + del EXTENSIONS['brunsli'] # Brunsli library not commonly available