From 8cf1ea6b4c99cc3b1aaf0bf42cd719baa6c73f49 Mon Sep 17 00:00:00 2001 From: Carlo Date: Mon, 24 Mar 2025 14:15:41 +0100 Subject: [PATCH 01/21] add simplejpeg --- recipes/simplejpeg/recipe.yaml | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 recipes/simplejpeg/recipe.yaml diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml new file mode 100644 index 0000000000000..4454896204f4e --- /dev/null +++ b/recipes/simplejpeg/recipe.yaml @@ -0,0 +1,55 @@ +context: + name: simplejpeg + version: "1.8.2" + +package: + name: simplejpeg + version: ${{ version }} + +source: + url: https://pypi.io/packages/source/s/simplejpeg/simplejpeg-${{ version }}.tar.gz + sha256: b06e253a896c7fc4f257e11baf96d783817cea41360d0962a70c2743ba57bc30 + +build: + skip: + - match(python, "<3.9") + script: + - export SKIP_YASM_BUILD=1 + - python -m pip install . -vv + number: 0 + +requirements: + build: + - ${{ compiler('c') }} + # Unclear why CXX is needed for a C extension but simplejpeg wants it + - ${{ compiler('cxx') }} + - ${{ stdlib('c') }} + - cmake + - yasm + - if: unix + then: make + host: + - python + - cython + - pip + - libjpeg-turbo + run: + - python + +tests: + - python: + imports: + - simplejpeg + pip_check: true + +about: + homepage: https://github.com/jfolz/simplejpeg + summary: simplejpeg is a simple package based on recent versions of libturbojpeg for fast JPEG encoding and decoding. + license: MIT + license_file: LICENSE + repository: https://github.com/jfolz/simplejpeg + +extra: + recipe-maintainers: + - hmaarrfk + - carlodri From 5777f30b476a489be4862c71214005e17844d347 Mon Sep 17 00:00:00 2001 From: Carlo Date: Mon, 24 Mar 2025 14:19:49 +0100 Subject: [PATCH 02/21] fix some stuff --- recipes/simplejpeg/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 4454896204f4e..54e0111821481 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -7,7 +7,7 @@ package: version: ${{ version }} source: - url: https://pypi.io/packages/source/s/simplejpeg/simplejpeg-${{ version }}.tar.gz + url: https://pypi.org/packages/source/s/simplejpeg/simplejpeg-${{ version }}.tar.gz sha256: b06e253a896c7fc4f257e11baf96d783817cea41360d0962a70c2743ba57bc30 build: @@ -33,6 +33,7 @@ requirements: - cython - pip - libjpeg-turbo + - setuptools run: - python @@ -51,5 +52,4 @@ about: extra: recipe-maintainers: - - hmaarrfk - carlodri From 09146ceb6447354e3cc046e5752f7176b3d32802 Mon Sep 17 00:00:00 2001 From: Carlo Date: Mon, 24 Mar 2025 14:31:10 +0100 Subject: [PATCH 03/21] fix SKIP_YASM_BUILD --- recipes/simplejpeg/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 54e0111821481..50179d1fbbbfb 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -14,7 +14,7 @@ build: skip: - match(python, "<3.9") script: - - export SKIP_YASM_BUILD=1 + - export SKIP_YASM_BUILD="true" - python -m pip install . -vv number: 0 From e0c55b312b5a25dbd6359dec14aafdf3bafb8fd1 Mon Sep 17 00:00:00 2001 From: Carlo Date: Mon, 24 Mar 2025 15:41:26 +0100 Subject: [PATCH 04/21] try to fix env vars --- recipes/simplejpeg/recipe.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 50179d1fbbbfb..18d7cc50b6e92 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -14,8 +14,10 @@ build: skip: - match(python, "<3.9") script: - - export SKIP_YASM_BUILD="true" - - python -m pip install . -vv + - if: unix or osx + then: export SKIP_YASM_BUILD=true && python -m pip install . -vv + - if: win + then: $env:SKIP_YASM_BUILD = "true"; python -m pip install . -vv number: 0 requirements: From 23ad217e3a3c15c3c6e43c46b658ad210a459a9c Mon Sep 17 00:00:00 2001 From: Carlo Date: Mon, 24 Mar 2025 15:41:53 +0100 Subject: [PATCH 05/21] fix selector --- recipes/simplejpeg/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 18d7cc50b6e92..c665dac1b43e7 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -14,7 +14,7 @@ build: skip: - match(python, "<3.9") script: - - if: unix or osx + - if: unix then: export SKIP_YASM_BUILD=true && python -m pip install . -vv - if: win then: $env:SKIP_YASM_BUILD = "true"; python -m pip install . -vv From 8fec14e4afd000d4e5e97d537d64d650caee1254 Mon Sep 17 00:00:00 2001 From: Carlo Dri Date: Mon, 24 Mar 2025 21:45:25 +0100 Subject: [PATCH 06/21] fix the ski yasm thing --- recipes/simplejpeg/recipe.yaml | 4 +++- recipes/simplejpeg/skip_yasm_fix.patch | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 recipes/simplejpeg/skip_yasm_fix.patch diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index c665dac1b43e7..b8b72ea43d2ff 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -9,6 +9,8 @@ package: source: url: https://pypi.org/packages/source/s/simplejpeg/simplejpeg-${{ version }}.tar.gz sha256: b06e253a896c7fc4f257e11baf96d783817cea41360d0962a70c2743ba57bc30 + patches: + - skip-yasm-fix.patch build: skip: @@ -42,7 +44,7 @@ requirements: tests: - python: imports: - - simplejpeg + - simplejpeg pip_check: true about: diff --git a/recipes/simplejpeg/skip_yasm_fix.patch b/recipes/simplejpeg/skip_yasm_fix.patch new file mode 100644 index 0000000000000..b90befcb25823 --- /dev/null +++ b/recipes/simplejpeg/skip_yasm_fix.patch @@ -0,0 +1,13 @@ +diff --git a/setup.py b/setup.py +index 24d97e1..f5f0a1c 100644 +--- a/setup.py ++++ b/setup.py +@@ -109,6 +109,8 @@ if not SKIP_YASM_BUILD: + pt.join(PACKAGE_DIR, 'lib', YASM_SOURCE), + '56bf07340b7a3bbfec94f89894db2c0d487d534d90c99241ba45b70feaa1a0f3', + ) ++else: ++ YASM_DIR = "" + JPEG_DIR = untar_url( + JPEG_URL, + pt.join(PACKAGE_DIR, 'lib', JPEG_SOURCE), \ No newline at end of file From 625bf86291ebf7b5f373066533cb0357d4c4278f Mon Sep 17 00:00:00 2001 From: Carlo Dri Date: Mon, 24 Mar 2025 21:54:11 +0100 Subject: [PATCH 07/21] fix patch and windows script --- recipes/simplejpeg/recipe.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index b8b72ea43d2ff..4bc55d9e30cb5 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -10,16 +10,16 @@ source: url: https://pypi.org/packages/source/s/simplejpeg/simplejpeg-${{ version }}.tar.gz sha256: b06e253a896c7fc4f257e11baf96d783817cea41360d0962a70c2743ba57bc30 patches: - - skip-yasm-fix.patch + - skip_yasm_fix.patch build: skip: - match(python, "<3.9") script: - if: unix - then: export SKIP_YASM_BUILD=true && python -m pip install . -vv + then: export SKIP_YASM_BUILD=true && {{ PYTHON }} -m pip install . -vv - if: win - then: $env:SKIP_YASM_BUILD = "true"; python -m pip install . -vv + then: set SKIP_YASM_BUILD=true && {{ PYTHON }} -m pip install . -vv number: 0 requirements: From 67c8470a74551eaf9cc95059a455c0ab5798d4d5 Mon Sep 17 00:00:00 2001 From: Carlo Dri Date: Mon, 24 Mar 2025 22:32:04 +0100 Subject: [PATCH 08/21] maybe a patch eol thing? --- recipes/simplejpeg/skip_yasm_fix.patch | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/recipes/simplejpeg/skip_yasm_fix.patch b/recipes/simplejpeg/skip_yasm_fix.patch index b90befcb25823..2ad1dcbd7a699 100644 --- a/recipes/simplejpeg/skip_yasm_fix.patch +++ b/recipes/simplejpeg/skip_yasm_fix.patch @@ -1,13 +1,13 @@ -diff --git a/setup.py b/setup.py -index 24d97e1..f5f0a1c 100644 ---- a/setup.py -+++ b/setup.py -@@ -109,6 +109,8 @@ if not SKIP_YASM_BUILD: - pt.join(PACKAGE_DIR, 'lib', YASM_SOURCE), - '56bf07340b7a3bbfec94f89894db2c0d487d534d90c99241ba45b70feaa1a0f3', - ) -+else: -+ YASM_DIR = "" - JPEG_DIR = untar_url( - JPEG_URL, +diff --git a/setup.py b/setup.py +index 24d97e1..6e11661 100644 +--- a/setup.py ++++ b/setup.py +@@ -109,6 +109,8 @@ if not SKIP_YASM_BUILD: + pt.join(PACKAGE_DIR, 'lib', YASM_SOURCE), + '56bf07340b7a3bbfec94f89894db2c0d487d534d90c99241ba45b70feaa1a0f3', + ) ++else: ++ YASM_DIR = '' + JPEG_DIR = untar_url( + JPEG_URL, pt.join(PACKAGE_DIR, 'lib', JPEG_SOURCE), \ No newline at end of file From e934107ac361ebcc41014fb2e5d38e7ad449831a Mon Sep 17 00:00:00 2001 From: Carlo Dri Date: Mon, 24 Mar 2025 23:09:38 +0100 Subject: [PATCH 09/21] try again fixing the patch --- recipes/simplejpeg/skip_yasm_fix.patch | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/recipes/simplejpeg/skip_yasm_fix.patch b/recipes/simplejpeg/skip_yasm_fix.patch index 2ad1dcbd7a699..c9eb75cc72037 100644 --- a/recipes/simplejpeg/skip_yasm_fix.patch +++ b/recipes/simplejpeg/skip_yasm_fix.patch @@ -1,13 +1,13 @@ -diff --git a/setup.py b/setup.py -index 24d97e1..6e11661 100644 ---- a/setup.py -+++ b/setup.py -@@ -109,6 +109,8 @@ if not SKIP_YASM_BUILD: - pt.join(PACKAGE_DIR, 'lib', YASM_SOURCE), - '56bf07340b7a3bbfec94f89894db2c0d487d534d90c99241ba45b70feaa1a0f3', - ) -+else: -+ YASM_DIR = '' - JPEG_DIR = untar_url( - JPEG_URL, - pt.join(PACKAGE_DIR, 'lib', JPEG_SOURCE), \ No newline at end of file +diff --git a/setup.py b/setup.py +index 24d97e1..6e11661 100644 +--- a/setup.py ++++ b/setup.py +@@ -109,6 +109,8 @@ if not SKIP_YASM_BUILD: + pt.join(PACKAGE_DIR, 'lib', YASM_SOURCE), + '56bf07340b7a3bbfec94f89894db2c0d487d534d90c99241ba45b70feaa1a0f3', + ) ++else: ++ YASM_DIR = '' + JPEG_DIR = untar_url( + JPEG_URL, + pt.join(PACKAGE_DIR, 'lib', JPEG_SOURCE), From 0328370fab1aecaaa6b8e5ee94959bb69067c776 Mon Sep 17 00:00:00 2001 From: Carlo Dri Date: Mon, 24 Mar 2025 23:47:48 +0100 Subject: [PATCH 10/21] fix script commands --- recipes/simplejpeg/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 4bc55d9e30cb5..c3e57c54d1adc 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -17,9 +17,9 @@ build: - match(python, "<3.9") script: - if: unix - then: export SKIP_YASM_BUILD=true && {{ PYTHON }} -m pip install . -vv + then: export SKIP_YASM_BUILD=true && python -m pip install . -vv - if: win - then: set SKIP_YASM_BUILD=true && {{ PYTHON }} -m pip install . -vv + then: set SKIP_YASM_BUILD=true && python -m pip install . -vv number: 0 requirements: From 7a7dfbad897b5062d2d89214a0dac6cf377c998a Mon Sep 17 00:00:00 2001 From: Carlo Date: Wed, 23 Apr 2025 09:17:57 +0200 Subject: [PATCH 11/21] disable LTO and skip win for now --- recipes/simplejpeg/build.sh | 8 ++++++++ recipes/simplejpeg/recipe.yaml | 7 +------ 2 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 recipes/simplejpeg/build.sh diff --git a/recipes/simplejpeg/build.sh b/recipes/simplejpeg/build.sh new file mode 100644 index 0000000000000..f1e50580d6c49 --- /dev/null +++ b/recipes/simplejpeg/build.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -xeo pipefail + +export SKIP_YASM_BUILD=true +export CFLAGS="${CFLAGS/-flto/}" +export CXXFLAGS="${CXXFLAGS/-flto/}" + +python -m pip install . -vv \ No newline at end of file diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index c3e57c54d1adc..94bc995b9a945 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -14,12 +14,7 @@ source: build: skip: - - match(python, "<3.9") - script: - - if: unix - then: export SKIP_YASM_BUILD=true && python -m pip install . -vv - - if: win - then: set SKIP_YASM_BUILD=true && python -m pip install . -vv + - win or match(python, "<3.9") number: 0 requirements: From 8a1baa63a15c88bbbd80828e1c789f2f385a27ee Mon Sep 17 00:00:00 2001 From: Carlo Date: Wed, 23 Apr 2025 09:33:38 +0200 Subject: [PATCH 12/21] maybe skip condition is broken --- recipes/simplejpeg/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 94bc995b9a945..c329c88eb0534 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -14,7 +14,7 @@ source: build: skip: - - win or match(python, "<3.9") + - "win or match(python,'<3.9')" number: 0 requirements: From 147b5adcde963164a41bd1daae3766dd7880ea73 Mon Sep 17 00:00:00 2001 From: Carlo Date: Wed, 23 Apr 2025 09:49:41 +0200 Subject: [PATCH 13/21] add patch to disable lto --- recipes/simplejpeg/build.sh | 2 -- recipes/simplejpeg/do_not_use_lto.patch | 26 +++++++++++++++++++++++++ recipes/simplejpeg/recipe.yaml | 1 + 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 recipes/simplejpeg/do_not_use_lto.patch diff --git a/recipes/simplejpeg/build.sh b/recipes/simplejpeg/build.sh index f1e50580d6c49..7324b9bc24379 100644 --- a/recipes/simplejpeg/build.sh +++ b/recipes/simplejpeg/build.sh @@ -2,7 +2,5 @@ set -xeo pipefail export SKIP_YASM_BUILD=true -export CFLAGS="${CFLAGS/-flto/}" -export CXXFLAGS="${CXXFLAGS/-flto/}" python -m pip install . -vv \ No newline at end of file diff --git a/recipes/simplejpeg/do_not_use_lto.patch b/recipes/simplejpeg/do_not_use_lto.patch new file mode 100644 index 0000000000000..75a6fe3cf24a4 --- /dev/null +++ b/recipes/simplejpeg/do_not_use_lto.patch @@ -0,0 +1,26 @@ +diff --git a/setup.py b/setup.py +index 24d97e1..85bedbb 100644 +--- a/setup.py ++++ b/setup.py +@@ -158,11 +158,8 @@ class cmake_build_ext(build_ext): + cflags = os.getenv('CFLAGS', '') + ldflags = os.getenv('LDFLAGS', '') + if OS == 'linux': +- # enable LTO +- cflags = '-flto ' + cflags + # same as extension + ldflags = ( +- '-flto ' + '-Wl,' # following are linker options + '--strip-all,' # Remove all symbols + '--exclude-libs,ALL,' # Do not export symbols +@@ -247,9 +244,6 @@ def make_jpeg_module(): + '--exclude-libs,ALL,' # Do not export symbols + '--gc-sections' # Remove unused sections + ]) +- extra_compile_args.extend([ +- '-flto', # enable LTO +- ]) + return Extension( + 'simplejpeg._jpeg', + sources, diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index c329c88eb0534..ba80970da801f 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -11,6 +11,7 @@ source: sha256: b06e253a896c7fc4f257e11baf96d783817cea41360d0962a70c2743ba57bc30 patches: - skip_yasm_fix.patch + - do_not_use_lto.patch build: skip: From 52022260b66db6024fd9791eaff8b38c09399054 Mon Sep 17 00:00:00 2001 From: Carlo Date: Wed, 23 Apr 2025 10:03:12 +0200 Subject: [PATCH 14/21] add numpy dep --- recipes/simplejpeg/recipe.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index ba80970da801f..1688b2849a500 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -33,9 +33,11 @@ requirements: - cython - pip - libjpeg-turbo - - setuptools + - numpy >=2.0.0 + - setuptools >=74.1.1 run: - python + - numpy >=2.0.0 tests: - python: From a33f92fc3e8f1e26097638e1d4648963c403b92f Mon Sep 17 00:00:00 2001 From: Carlo Dri Date: Wed, 23 Apr 2025 19:49:28 +0200 Subject: [PATCH 15/21] try to remove libjpeg-turbo vendoring --- .../do_not_build_libjpeg-turbo.patch | 26 +++++++++++++++++++ recipes/simplejpeg/recipe.yaml | 3 ++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 recipes/simplejpeg/do_not_build_libjpeg-turbo.patch diff --git a/recipes/simplejpeg/do_not_build_libjpeg-turbo.patch b/recipes/simplejpeg/do_not_build_libjpeg-turbo.patch new file mode 100644 index 0000000000000..b151b932950bd --- /dev/null +++ b/recipes/simplejpeg/do_not_build_libjpeg-turbo.patch @@ -0,0 +1,26 @@ +diff --git a/setup.py b/setup.py +index 24d97e1..5d0383a 100644 +--- a/setup.py ++++ b/setup.py +@@ -176,13 +176,6 @@ class cmake_build_ext(build_ext): + # custom LDFLAGS - depends on platform + 'LDFLAGS': ldflags, + } +- self.build_cmake_dependency(JPEG_DIR, [ +- *flags, +- '-DWITH_CRT_DLL=1', # fixes https://bugs.python.org/issue24872 +- '-DENABLE_SHARED=0', +- '-DREQUIRE_SIMD=1', +- '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', +- ], env=env) + + def build_cmake_dependency(self, path, options, env=None): + cur_dir = pt.abspath(os.curdir) +@@ -222,7 +215,6 @@ def _staticlib(): + def make_jpeg_module(): + include_dirs = [ + NumpyImport(), +- pt.join(JPEG_DIR, 'src'), + pt.join(PACKAGE_DIR, 'simplejpeg'), + ] + static_libs = [pt.join(_libdir(), _staticlib())] diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 1688b2849a500..6771c6f1f1627 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -12,6 +12,7 @@ source: patches: - skip_yasm_fix.patch - do_not_use_lto.patch + - do_not_build_libjpeg-turbo.patch build: skip: @@ -32,7 +33,7 @@ requirements: - python - cython - pip - - libjpeg-turbo + - libjpeg-turbo =3.1.0 - numpy >=2.0.0 - setuptools >=74.1.1 run: From 57b565e3abc7a863e4d5092c49a456f4212cfe8e Mon Sep 17 00:00:00 2001 From: Carlo Date: Thu, 24 Jul 2025 11:26:58 +0200 Subject: [PATCH 16/21] bring back vendoring or libjpeg-tubo any other approach seems too much feffort --- recipes/simplejpeg/recipe.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 6771c6f1f1627..6b8f5d762618c 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -12,7 +12,6 @@ source: patches: - skip_yasm_fix.patch - do_not_use_lto.patch - - do_not_build_libjpeg-turbo.patch build: skip: @@ -33,7 +32,6 @@ requirements: - python - cython - pip - - libjpeg-turbo =3.1.0 - numpy >=2.0.0 - setuptools >=74.1.1 run: From 40e3199c77e5c6018d8c8b434c8b0acdae90ffe7 Mon Sep 17 00:00:00 2001 From: Carlo Date: Thu, 24 Jul 2025 11:55:38 +0200 Subject: [PATCH 17/21] attempt to properly package licences for vendored libjpeg-turbo --- recipes/simplejpeg/LICENSE_libjpeg-turbo.md | 135 ++++++++++++++++++++ recipes/simplejpeg/recipe.yaml | 6 +- 2 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 recipes/simplejpeg/LICENSE_libjpeg-turbo.md diff --git a/recipes/simplejpeg/LICENSE_libjpeg-turbo.md b/recipes/simplejpeg/LICENSE_libjpeg-turbo.md new file mode 100644 index 0000000000000..a785258bcdaeb --- /dev/null +++ b/recipes/simplejpeg/LICENSE_libjpeg-turbo.md @@ -0,0 +1,135 @@ +libjpeg-turbo Licenses +====================== + +libjpeg-turbo is covered by two compatible BSD-style open source licenses: + +- The IJG (Independent JPEG Group) License, which is listed in + [README.ijg](README.ijg) + + This license applies to the libjpeg API library and associated programs, + including any code inherited from libjpeg and any modifications to that + code. Note that the libjpeg-turbo SIMD source code bears the + [zlib License](https://opensource.org/licenses/Zlib), but in the context of + the overall libjpeg API library, the terms of the zlib License are subsumed + by the terms of the IJG License. + +- The Modified (3-clause) BSD License, which is listed below + + This license applies to the TurboJPEG API library and associated programs, as + well as the build system. Note that the TurboJPEG API library wraps the + libjpeg API library, so in the context of the overall TurboJPEG API library, + both the terms of the IJG License and the terms of the Modified (3-clause) + BSD License apply. + + +Complying with the libjpeg-turbo Licenses +========================================= + +This section provides a roll-up of the libjpeg-turbo licensing terms, to the +best of our understanding. This is not a license in and of itself. It is +intended solely for clarification. + +1. If you are distributing a modified version of the libjpeg-turbo source, + then: + + 1. You cannot alter or remove any existing copyright or license notices + from the source. + + **Origin** + - Clause 1 of the IJG License + - Clause 1 of the Modified BSD License + - Clauses 1 and 3 of the zlib License + + 2. You must add your own copyright notice to the header of each source + file you modified, so others can tell that you modified that file. (If + there is not an existing copyright header in that file, then you can + simply add a notice stating that you modified the file.) + + **Origin** + - Clause 1 of the IJG License + - Clause 2 of the zlib License + + 3. You must include the IJG README file, and you must not alter any of the + copyright or license text in that file. + + **Origin** + - Clause 1 of the IJG License + +2. If you are distributing only libjpeg-turbo binaries without the source, or + if you are distributing an application that statically links with + libjpeg-turbo, then: + + 1. Your product documentation must include a message stating: + + This software is based in part on the work of the Independent JPEG + Group. + + **Origin** + - Clause 2 of the IJG license + + 2. If your binary distribution includes or uses the TurboJPEG API, then + your product documentation must include the text of the Modified BSD + License (see below.) + + **Origin** + - Clause 2 of the Modified BSD License + +3. You cannot use the name of the IJG or The libjpeg-turbo Project or the + contributors thereof in advertising, publicity, etc. + + **Origin** + - IJG License + - Clause 3 of the Modified BSD License + +4. The IJG and The libjpeg-turbo Project do not warrant libjpeg-turbo to be + free of defects, nor do we accept any liability for undesirable + consequences resulting from your use of the software. + + **Origin** + - IJG License + - Modified BSD License + - zlib License + + +The Modified (3-clause) BSD License +=================================== + +Copyright (C)2009-2024 D. R. Commander. All Rights Reserved.
+Copyright (C)2015 Viktor Szathmáry. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +- Neither the name of the libjpeg-turbo Project nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +Why Two Licenses? +================= + +The zlib License could have been used instead of the Modified (3-clause) BSD +License, and since the IJG License effectively subsumes the distribution +conditions of the zlib License, this would have effectively placed +libjpeg-turbo binary distributions under the IJG License. However, the IJG +License specifically refers to the Independent JPEG Group and does not extend +attribution and endorsement protections to other entities. Thus, it was +desirable to choose a license that granted us the same protections for new code +that were granted to the IJG for code derived from their software. diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 6b8f5d762618c..1154c177bec30 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -47,8 +47,10 @@ tests: about: homepage: https://github.com/jfolz/simplejpeg summary: simplejpeg is a simple package based on recent versions of libturbojpeg for fast JPEG encoding and decoding. - license: MIT - license_file: LICENSE + license: MIT AND IJG AND BSD-3-Clause + license_file: + - LICENSE + - LICENSE_libjpeg-turbo.md repository: https://github.com/jfolz/simplejpeg extra: From 8fae48cbdc9c2333364a7a1309240372c4da743a Mon Sep 17 00:00:00 2001 From: Mark Harfouche Date: Sat, 26 Jul 2025 17:30:41 -0400 Subject: [PATCH 18/21] Try to build using conda-forge libjpeg-turbo --- recipes/simplejpeg/build.sh | 6 +- .../do_not_build_libjpeg-turbo.patch | 26 ---- recipes/simplejpeg/do_not_use_lto.patch | 26 ---- recipes/simplejpeg/recipe.yaml | 12 +- recipes/simplejpeg/setup.py | 119 ++++++++++++++++++ recipes/simplejpeg/skip_yasm_fix.patch | 13 -- 6 files changed, 125 insertions(+), 77 deletions(-) delete mode 100644 recipes/simplejpeg/do_not_build_libjpeg-turbo.patch delete mode 100644 recipes/simplejpeg/do_not_use_lto.patch create mode 100644 recipes/simplejpeg/setup.py delete mode 100644 recipes/simplejpeg/skip_yasm_fix.patch diff --git a/recipes/simplejpeg/build.sh b/recipes/simplejpeg/build.sh index 7324b9bc24379..78ab403ef86d4 100644 --- a/recipes/simplejpeg/build.sh +++ b/recipes/simplejpeg/build.sh @@ -1,6 +1,4 @@ #!/bin/bash set -xeo pipefail - -export SKIP_YASM_BUILD=true - -python -m pip install . -vv \ No newline at end of file +cp ${RECIPE_DIR}/setup.py . +python -m pip install . -vv diff --git a/recipes/simplejpeg/do_not_build_libjpeg-turbo.patch b/recipes/simplejpeg/do_not_build_libjpeg-turbo.patch deleted file mode 100644 index b151b932950bd..0000000000000 --- a/recipes/simplejpeg/do_not_build_libjpeg-turbo.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/setup.py b/setup.py -index 24d97e1..5d0383a 100644 ---- a/setup.py -+++ b/setup.py -@@ -176,13 +176,6 @@ class cmake_build_ext(build_ext): - # custom LDFLAGS - depends on platform - 'LDFLAGS': ldflags, - } -- self.build_cmake_dependency(JPEG_DIR, [ -- *flags, -- '-DWITH_CRT_DLL=1', # fixes https://bugs.python.org/issue24872 -- '-DENABLE_SHARED=0', -- '-DREQUIRE_SIMD=1', -- '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', -- ], env=env) - - def build_cmake_dependency(self, path, options, env=None): - cur_dir = pt.abspath(os.curdir) -@@ -222,7 +215,6 @@ def _staticlib(): - def make_jpeg_module(): - include_dirs = [ - NumpyImport(), -- pt.join(JPEG_DIR, 'src'), - pt.join(PACKAGE_DIR, 'simplejpeg'), - ] - static_libs = [pt.join(_libdir(), _staticlib())] diff --git a/recipes/simplejpeg/do_not_use_lto.patch b/recipes/simplejpeg/do_not_use_lto.patch deleted file mode 100644 index 75a6fe3cf24a4..0000000000000 --- a/recipes/simplejpeg/do_not_use_lto.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/setup.py b/setup.py -index 24d97e1..85bedbb 100644 ---- a/setup.py -+++ b/setup.py -@@ -158,11 +158,8 @@ class cmake_build_ext(build_ext): - cflags = os.getenv('CFLAGS', '') - ldflags = os.getenv('LDFLAGS', '') - if OS == 'linux': -- # enable LTO -- cflags = '-flto ' + cflags - # same as extension - ldflags = ( -- '-flto ' - '-Wl,' # following are linker options - '--strip-all,' # Remove all symbols - '--exclude-libs,ALL,' # Do not export symbols -@@ -247,9 +244,6 @@ def make_jpeg_module(): - '--exclude-libs,ALL,' # Do not export symbols - '--gc-sections' # Remove unused sections - ]) -- extra_compile_args.extend([ -- '-flto', # enable LTO -- ]) - return Extension( - 'simplejpeg._jpeg', - sources, diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 1154c177bec30..fa1fbc927e3af 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -9,9 +9,6 @@ package: source: url: https://pypi.org/packages/source/s/simplejpeg/simplejpeg-${{ version }}.tar.gz sha256: b06e253a896c7fc4f257e11baf96d783817cea41360d0962a70c2743ba57bc30 - patches: - - skip_yasm_fix.patch - - do_not_use_lto.patch build: skip: @@ -25,18 +22,18 @@ requirements: - ${{ compiler('cxx') }} - ${{ stdlib('c') }} - cmake - - yasm - if: unix then: make host: - python - cython - pip - - numpy >=2.0.0 + - numpy - setuptools >=74.1.1 + - libjpeg-turbo run: - python - - numpy >=2.0.0 + - numpy >=1.19.3 tests: - python: @@ -47,10 +44,9 @@ tests: about: homepage: https://github.com/jfolz/simplejpeg summary: simplejpeg is a simple package based on recent versions of libturbojpeg for fast JPEG encoding and decoding. - license: MIT AND IJG AND BSD-3-Clause + license: MIT license_file: - LICENSE - - LICENSE_libjpeg-turbo.md repository: https://github.com/jfolz/simplejpeg extra: diff --git a/recipes/simplejpeg/setup.py b/recipes/simplejpeg/setup.py new file mode 100644 index 0000000000000..93c4557da3a79 --- /dev/null +++ b/recipes/simplejpeg/setup.py @@ -0,0 +1,119 @@ +# hmaarrfk -- 2025/07 +# I basically took mostof the setup.py file and deleted much of it since it was +# related to downloading libjpeg-turbo and building it. +# By using conda-forge's libjpeg-turbo, we can avoid that complexity. +# The patch was so extensive that I just wanted to start fresh. +import os +import os.path as pt +import re +import platform +import sys + +import numpy as np + +from setuptools import setup +from setuptools import find_packages +from setuptools import Extension + +# don't require Cython for building +try: + from Cython.Build import cythonize + HAVE_CYTHON = True +except ImportError: + def cythonize(*_, **__): + pass + HAVE_CYTHON = False + +PACKAGE_DIR = pt.abspath(pt.dirname(__file__)) +OS = platform.system().lower() +NPY_API_VERSION = 'NPY_1_19_API_VERSION' + +def make_jpeg_module(): + include_dirs = [ + np.get_include(), + pt.join(PACKAGE_DIR, 'simplejpeg'), + ] + cython_files = [pt.join('simplejpeg', '_jpeg.pyx')] + for cython_file in cython_files: + if pt.exists(cython_file): + cythonize(cython_file) + sources = [ + pt.join('simplejpeg', '_jpeg.c'), + pt.join('simplejpeg', '_color.c') + ] + extra_link_args = [] + extra_compile_args = [] + macros = [ + ('NPY_NO_DEPRECATED_API', NPY_API_VERSION), + ('NPY_TARGET_VERSION', NPY_API_VERSION), + ] + if OS == 'linux': + extra_link_args.extend([ + '-Wl,' # following are linker options + '--strip-all,' # Remove all symbols + '--exclude-libs,ALL,' # Do not export symbols + '--gc-sections' # Remove unused sections + ]) + extra_compile_args.extend([ + '-flto', # enable LTO + ]) + return Extension( + 'simplejpeg._jpeg', + sources, + language='C', + include_dirs=include_dirs, + libraries=['turbojpeg'], + extra_link_args=extra_link_args, + extra_compile_args=extra_compile_args, + define_macros=macros, + ) + + +# define extensions +ext_modules = [make_jpeg_module()] + + +def read(*names): + with open(pt.join(PACKAGE_DIR, *names), encoding='utf8') as f: + return f.read() + + +# pip's single-source version method as described here: +# https://python-packaging-user-guide.readthedocs.io/single_source_version/ +def find_version(*file_paths): + version_file = read(*file_paths) + version_match = re.search(r'^__version__ = [\'"]([^\'"]*)[\'"]', + version_file, re.M) + if version_match: + return version_match.group(1) + raise RuntimeError('Unable to find version string.') + + +def find_package_data(packages, patterns): + package_data = { + package: patterns + for package in packages + } + return package_data + + +packages = find_packages( + include=['simplejpeg', 'simplejpeg.*'], +) + +include_package_data = find_package_data(packages, ('*.pyi',)) +exclude_package_data = find_package_data(packages, ('*.h', '*.c', '*.pyx')) + +with open(pt.join(PACKAGE_DIR, 'requirements.txt')) as fp: + dependencies = [line.strip(' \n') for line in fp] + +setup( + name='simplejpeg', + version=find_version('simplejpeg', '__init__.py'), + packages=packages, + package_data=include_package_data, + exclude_package_data=exclude_package_data, + install_requires=dependencies, + ext_modules=ext_modules, + zip_safe=False, +) diff --git a/recipes/simplejpeg/skip_yasm_fix.patch b/recipes/simplejpeg/skip_yasm_fix.patch deleted file mode 100644 index c9eb75cc72037..0000000000000 --- a/recipes/simplejpeg/skip_yasm_fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/setup.py b/setup.py -index 24d97e1..6e11661 100644 ---- a/setup.py -+++ b/setup.py -@@ -109,6 +109,8 @@ if not SKIP_YASM_BUILD: - pt.join(PACKAGE_DIR, 'lib', YASM_SOURCE), - '56bf07340b7a3bbfec94f89894db2c0d487d534d90c99241ba45b70feaa1a0f3', - ) -+else: -+ YASM_DIR = '' - JPEG_DIR = untar_url( - JPEG_URL, - pt.join(PACKAGE_DIR, 'lib', JPEG_SOURCE), From 1e5dfe334a971f6b59d95b968ac31c625f6363f6 Mon Sep 17 00:00:00 2001 From: Mark Harfouche Date: Sun, 27 Jul 2025 09:53:24 -0400 Subject: [PATCH 19/21] Also build for windows --- recipes/simplejpeg/LICENSE_libjpeg-turbo.md | 135 -------------------- recipes/simplejpeg/build.sh | 4 - recipes/simplejpeg/recipe.yaml | 15 ++- 3 files changed, 10 insertions(+), 144 deletions(-) delete mode 100644 recipes/simplejpeg/LICENSE_libjpeg-turbo.md delete mode 100644 recipes/simplejpeg/build.sh diff --git a/recipes/simplejpeg/LICENSE_libjpeg-turbo.md b/recipes/simplejpeg/LICENSE_libjpeg-turbo.md deleted file mode 100644 index a785258bcdaeb..0000000000000 --- a/recipes/simplejpeg/LICENSE_libjpeg-turbo.md +++ /dev/null @@ -1,135 +0,0 @@ -libjpeg-turbo Licenses -====================== - -libjpeg-turbo is covered by two compatible BSD-style open source licenses: - -- The IJG (Independent JPEG Group) License, which is listed in - [README.ijg](README.ijg) - - This license applies to the libjpeg API library and associated programs, - including any code inherited from libjpeg and any modifications to that - code. Note that the libjpeg-turbo SIMD source code bears the - [zlib License](https://opensource.org/licenses/Zlib), but in the context of - the overall libjpeg API library, the terms of the zlib License are subsumed - by the terms of the IJG License. - -- The Modified (3-clause) BSD License, which is listed below - - This license applies to the TurboJPEG API library and associated programs, as - well as the build system. Note that the TurboJPEG API library wraps the - libjpeg API library, so in the context of the overall TurboJPEG API library, - both the terms of the IJG License and the terms of the Modified (3-clause) - BSD License apply. - - -Complying with the libjpeg-turbo Licenses -========================================= - -This section provides a roll-up of the libjpeg-turbo licensing terms, to the -best of our understanding. This is not a license in and of itself. It is -intended solely for clarification. - -1. If you are distributing a modified version of the libjpeg-turbo source, - then: - - 1. You cannot alter or remove any existing copyright or license notices - from the source. - - **Origin** - - Clause 1 of the IJG License - - Clause 1 of the Modified BSD License - - Clauses 1 and 3 of the zlib License - - 2. You must add your own copyright notice to the header of each source - file you modified, so others can tell that you modified that file. (If - there is not an existing copyright header in that file, then you can - simply add a notice stating that you modified the file.) - - **Origin** - - Clause 1 of the IJG License - - Clause 2 of the zlib License - - 3. You must include the IJG README file, and you must not alter any of the - copyright or license text in that file. - - **Origin** - - Clause 1 of the IJG License - -2. If you are distributing only libjpeg-turbo binaries without the source, or - if you are distributing an application that statically links with - libjpeg-turbo, then: - - 1. Your product documentation must include a message stating: - - This software is based in part on the work of the Independent JPEG - Group. - - **Origin** - - Clause 2 of the IJG license - - 2. If your binary distribution includes or uses the TurboJPEG API, then - your product documentation must include the text of the Modified BSD - License (see below.) - - **Origin** - - Clause 2 of the Modified BSD License - -3. You cannot use the name of the IJG or The libjpeg-turbo Project or the - contributors thereof in advertising, publicity, etc. - - **Origin** - - IJG License - - Clause 3 of the Modified BSD License - -4. The IJG and The libjpeg-turbo Project do not warrant libjpeg-turbo to be - free of defects, nor do we accept any liability for undesirable - consequences resulting from your use of the software. - - **Origin** - - IJG License - - Modified BSD License - - zlib License - - -The Modified (3-clause) BSD License -=================================== - -Copyright (C)2009-2024 D. R. Commander. All Rights Reserved.
-Copyright (C)2015 Viktor Szathmáry. All Rights Reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -- Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -- Neither the name of the libjpeg-turbo Project nor the names of its - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - -Why Two Licenses? -================= - -The zlib License could have been used instead of the Modified (3-clause) BSD -License, and since the IJG License effectively subsumes the distribution -conditions of the zlib License, this would have effectively placed -libjpeg-turbo binary distributions under the IJG License. However, the IJG -License specifically refers to the Independent JPEG Group and does not extend -attribution and endorsement protections to other entities. Thus, it was -desirable to choose a license that granted us the same protections for new code -that were granted to the IJG for code derived from their software. diff --git a/recipes/simplejpeg/build.sh b/recipes/simplejpeg/build.sh deleted file mode 100644 index 78ab403ef86d4..0000000000000 --- a/recipes/simplejpeg/build.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -set -xeo pipefail -cp ${RECIPE_DIR}/setup.py . -python -m pip install . -vv diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index fa1fbc927e3af..9ccf1cea0f65f 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -1,5 +1,4 @@ context: - name: simplejpeg version: "1.8.2" package: @@ -11,8 +10,15 @@ source: sha256: b06e253a896c7fc4f257e11baf96d783817cea41360d0962a70c2743ba57bc30 build: - skip: - - "win or match(python,'<3.9')" + script: + - if: unix + then: | + cp ${RECIPE_DIR}/setup.py . + python -m pip install . -vv + - if: win + then: | + copy %RECIPE_DIR%\setup.py . + python -m pip install . -vv number: 0 requirements: @@ -45,8 +51,7 @@ about: homepage: https://github.com/jfolz/simplejpeg summary: simplejpeg is a simple package based on recent versions of libturbojpeg for fast JPEG encoding and decoding. license: MIT - license_file: - - LICENSE + license_file: LICENSE repository: https://github.com/jfolz/simplejpeg extra: From 17984e4dff6a57680612460421bb9370663005cc Mon Sep 17 00:00:00 2001 From: Carlo Date: Sun, 27 Jul 2025 21:36:38 +0200 Subject: [PATCH 20/21] pin libjpeg-turbo version --- recipes/simplejpeg/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 9ccf1cea0f65f..26219a4c8527c 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -36,7 +36,7 @@ requirements: - pip - numpy - setuptools >=74.1.1 - - libjpeg-turbo + - libjpeg-turbo ==3.1.0 run: - python - numpy >=1.19.3 From 8737ebef76e1f68be318e72118a7c2377dcf7cb9 Mon Sep 17 00:00:00 2001 From: Carlo Date: Sun, 27 Jul 2025 21:59:50 +0200 Subject: [PATCH 21/21] Revert "pin libjpeg-turbo version" This reverts commit 17984e4dff6a57680612460421bb9370663005cc. --- recipes/simplejpeg/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/simplejpeg/recipe.yaml b/recipes/simplejpeg/recipe.yaml index 26219a4c8527c..9ccf1cea0f65f 100644 --- a/recipes/simplejpeg/recipe.yaml +++ b/recipes/simplejpeg/recipe.yaml @@ -36,7 +36,7 @@ requirements: - pip - numpy - setuptools >=74.1.1 - - libjpeg-turbo ==3.1.0 + - libjpeg-turbo run: - python - numpy >=1.19.3