Dear all,

the attached diff against the current version in unstable (0.11.2-5.1)
would update the packaging to libjxl 0.12.0 as fix for these
vulnerabilities.


Cheers,
Julian

-- 
 ()  ascii ribbon campaign - against html e-mail 
 /\                        - against proprietary attachments
diff -upNr jpeg-xl-0.11.2/debian/changelog jpeg-xl-0.12.0/debian/changelog
--- jpeg-xl-0.11.2/debian/changelog	2026-08-13 15:09:49.000000000 +0200
+++ jpeg-xl-0.12.0/debian/changelog	2026-09-07 17:27:21.029610190 +0200
@@ -1,3 +1,11 @@
+jpeg-xl (0.12.0-1) UNRELEASED; urgency=medium
+
+  * New upstream release:
+    - CVE-2026-82522 (Closes: #1146874)
+    - Enable LTO (Closes: #1099885)
+
+ -- Julian Wollrath <[email protected]>  Mon, 07 Sep 2026 16:29:20 +0200
+
 jpeg-xl (0.11.2-5.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -upNr jpeg-xl-0.11.2/debian/control jpeg-xl-0.12.0/debian/control
--- jpeg-xl-0.11.2/debian/control	2026-05-12 09:36:40.000000000 +0200
+++ jpeg-xl-0.12.0/debian/control	2026-09-07 16:38:58.649000873 +0200
@@ -10,6 +10,7 @@ Build-Depends: asciidoc-base,
                docbook-xml,
                help2man,
                libavif-dev (>= 0.10.1),
+               libbenchmark-dev,
                libbrotli-dev,
                libgdk-pixbuf-2.0-dev,
                libgflags-dev,
@@ -51,7 +52,7 @@ Architecture: any
 Section: libdevel
 Depends: libbrotli-dev,
          libhwy-dev,
-         libjxl0.11 (= ${binary:Version}),
+         libjxl0.12 (= ${binary:Version}),
          liblcms-dev,
          ${misc:Depends}
 Multi-Arch: same
@@ -64,7 +65,7 @@ Description: JPEG XL Image Coding System
  .
  This package installs development files.
 
-Package: libjxl0.11
+Package: libjxl0.12
 Architecture: any
 Multi-Arch: same
 Section: libs
diff -upNr jpeg-xl-0.11.2/debian/libjxl0.11.install jpeg-xl-0.12.0/debian/libjxl0.11.install
--- jpeg-xl-0.11.2/debian/libjxl0.11.install	2026-04-15 04:01:40.000000000 +0200
+++ jpeg-xl-0.12.0/debian/libjxl0.11.install	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-usr/lib/*/libjxl*.so.*
diff -upNr jpeg-xl-0.11.2/debian/libjxl0.11.symbols jpeg-xl-0.12.0/debian/libjxl0.11.symbols
--- jpeg-xl-0.11.2/debian/libjxl0.11.symbols	2026-04-15 04:01:40.000000000 +0200
+++ jpeg-xl-0.12.0/debian/libjxl0.11.symbols	1970-01-01 01:00:00.000000000 +0100
@@ -1,129 +0,0 @@
-libjxl.so.0.11 libjxl0.11 #MINVER#
-* Build-Depends-Package: libjxl-dev
- JXL_0@JXL_0 0.6.1
- JxlColorEncodingSetToLinearSRGB@JXL_0 0.6.1
- JxlColorEncodingSetToSRGB@JXL_0 0.6.1
- JxlDecoderCloseInput@JXL_0 0.7.0
- JxlDecoderCreate@JXL_0 0.6.1
- JxlDecoderDestroy@JXL_0 0.6.1
- JxlDecoderExtraChannelBufferSize@JXL_0 0.6.1
- JxlDecoderFlushImage@JXL_0 0.6.1
- JxlDecoderGetBasicInfo@JXL_0 0.6.1
- JxlDecoderGetBoxSizeContents@JXL_0 0.10.3
- JxlDecoderGetBoxSizeRaw@JXL_0 0.7.0
- JxlDecoderGetBoxType@JXL_0 0.7.0
- JxlDecoderGetColorAsEncodedProfile@JXL_0 0.6.1
- JxlDecoderGetColorAsICCProfile@JXL_0 0.6.1
- JxlDecoderGetExtraChannelBlendInfo@JXL_0 0.7.0
- JxlDecoderGetExtraChannelInfo@JXL_0 0.6.1
- JxlDecoderGetExtraChannelName@JXL_0 0.6.1
- JxlDecoderGetFrameHeader@JXL_0 0.6.1
- JxlDecoderGetFrameName@JXL_0 0.6.1
- JxlDecoderGetICCProfileSize@JXL_0 0.6.1
- JxlDecoderGetIntendedDownsamplingRatio@JXL_0 0.7.0
- JxlDecoderImageOutBufferSize@JXL_0 0.6.1
- JxlDecoderPreviewOutBufferSize@JXL_0 0.6.1
- JxlDecoderProcessInput@JXL_0 0.6.1
- JxlDecoderReleaseBoxBuffer@JXL_0 0.7.0
- JxlDecoderReleaseInput@JXL_0 0.6.1
- JxlDecoderReleaseJPEGBuffer@JXL_0 0.6.1
- JxlDecoderReset@JXL_0 0.6.1
- JxlDecoderRewind@JXL_0 0.6.1
- JxlDecoderSetBoxBuffer@JXL_0 0.7.0
- JxlDecoderSetCms@JXL_0 0.9.2
- JxlDecoderSetCoalescing@JXL_0 0.7.0
- JxlDecoderSetDecompressBoxes@JXL_0 0.7.0
- JxlDecoderSetDesiredIntensityTarget@JXL_0 0.7.0
- JxlDecoderSetExtraChannelBuffer@JXL_0 0.6.1
- JxlDecoderSetImageOutBitDepth@JXL_0 0.8.0
- JxlDecoderSetImageOutBuffer@JXL_0 0.6.1
- JxlDecoderSetImageOutCallback@JXL_0 0.6.1
- JxlDecoderSetInput@JXL_0 0.6.1
- JxlDecoderSetJPEGBuffer@JXL_0 0.6.1
- JxlDecoderSetKeepOrientation@JXL_0 0.6.1
- JxlDecoderSetMultithreadedImageOutCallback@JXL_0 0.7.0
- JxlDecoderSetOutputColorProfile@JXL_0 0.9.2
- JxlDecoderSetParallelRunner@JXL_0 0.6.1
- JxlDecoderSetPreferredColorProfile@JXL_0 0.6.1
- JxlDecoderSetPreviewOutBuffer@JXL_0 0.6.1
- JxlDecoderSetProgressiveDetail@JXL_0 0.7.0
- JxlDecoderSetRenderSpotcolors@JXL_0 0.7.0
- JxlDecoderSetUnpremultiplyAlpha@JXL_0 0.7.0
- JxlDecoderSizeHintBasicInfo@JXL_0 0.6.1
- JxlDecoderSkipCurrentFrame@JXL_0 0.7.0
- JxlDecoderSkipFrames@JXL_0 0.6.1
- JxlDecoderSubscribeEvents@JXL_0 0.6.1
- JxlDecoderVersion@JXL_0 0.6.1
- JxlEncoderAddBox@JXL_0 0.7.0
- JxlEncoderAddChunkedFrame@JXL_0 0.9.2
- JxlEncoderAddImageFrame@JXL_0 0.6.1
- JxlEncoderAddJPEGFrame@JXL_0 0.6.1
- JxlEncoderAllowExpertOptions@JXL_0 0.8.0
- JxlEncoderCloseBoxes@JXL_0 0.7.0
- JxlEncoderCloseFrames@JXL_0 0.7.0
- JxlEncoderCloseInput@JXL_0 0.6.1
- JxlEncoderCollectStats@JXL_0 0.9.2
- JxlEncoderCreate@JXL_0 0.6.1
- JxlEncoderDestroy@JXL_0 0.6.1
- JxlEncoderDistanceFromQuality@JXL_0 0.9.2
- JxlEncoderFlushInput@JXL_0 0.9.2
- JxlEncoderFrameSettingsCreate@JXL_0 0.7.0
- JxlEncoderFrameSettingsSetFloatOption@JXL_0 0.7.0
- JxlEncoderFrameSettingsSetOption@JXL_0 0.7.0
- JxlEncoderGetError@JXL_0 0.7.0
- JxlEncoderGetRequiredCodestreamLevel@JXL_0 0.7.0
- JxlEncoderInitBasicInfo@JXL_0 0.6.1
- JxlEncoderInitBlendInfo@JXL_0 0.7.0
- JxlEncoderInitExtraChannelInfo@JXL_0 0.7.0
- JxlEncoderInitFrameHeader@JXL_0 0.7.0
- JxlEncoderProcessOutput@JXL_0 0.6.1
- JxlEncoderReset@JXL_0 0.6.1
- JxlEncoderSetBasicInfo@JXL_0 0.6.1
- JxlEncoderSetCms@JXL_0 0.7.0
- JxlEncoderSetCodestreamLevel@JXL_0 0.7.0
- JxlEncoderSetColorEncoding@JXL_0 0.6.1
- JxlEncoderSetDebugImageCallback@JXL_0 0.9.2
- JxlEncoderSetExtraChannelBlendInfo@JXL_0 0.7.0
- JxlEncoderSetExtraChannelBuffer@JXL_0 0.7.0
- JxlEncoderSetExtraChannelDistance@JXL_0 0.9.2
- JxlEncoderSetExtraChannelInfo@JXL_0 0.7.0
- JxlEncoderSetExtraChannelName@JXL_0 0.7.0
- JxlEncoderSetFrameBitDepth@JXL_0 0.8.0
- JxlEncoderSetFrameDistance@JXL_0 0.7.0
- JxlEncoderSetFrameHeader@JXL_0 0.7.0
- JxlEncoderSetFrameLossless@JXL_0 0.7.0
- JxlEncoderSetFrameName@JXL_0 0.7.0
- JxlEncoderSetICCProfile@JXL_0 0.6.1
- JxlEncoderSetOutputProcessor@JXL_0 0.9.2
- JxlEncoderSetParallelRunner@JXL_0 0.6.1
- JxlEncoderSetUpsamplingMode@JXL_0 0.9.2
- JxlEncoderStatsCreate@JXL_0 0.9.2
- JxlEncoderStatsDestroy@JXL_0 0.9.2
- JxlEncoderStatsGet@JXL_0 0.9.2
- JxlEncoderStatsMerge@JXL_0 0.9.2
- JxlEncoderStoreJPEGMetadata@JXL_0 0.6.1
- JxlEncoderUseBoxes@JXL_0 0.7.0
- JxlEncoderUseContainer@JXL_0 0.6.1
- JxlEncoderVersion@JXL_0 0.6.1
- JxlSignatureCheck@JXL_0 0.6.1
-libjxl_cms.so.0.11 libjxl0.11 #MINVER#
-* Build-Depends-Package: libjxl-dev
- JxlGetDefaultCms@Base 0.9.2
- (c++|optional=lto)"void std::vector<jxl::cms::TransferFunction, std::allocator<jxl::cms::TransferFunction> >::_M_realloc_append<jxl::cms::TransferFunction>(jxl::cms::TransferFunction&&)@Base" 0.11.1
- (c++|optional=lto)"void std::vector<float*, std::allocator<float*> >::_M_realloc_append<float*>(float*&&)@Base" 0.11.1
- (c++|optional=lto)"std::vector<float, std::allocator<float> >::_M_default_append(unsigned long)@Base" 0.11.1
- (c++|optional=lto)"std::vector<unsigned char, std::allocator<unsigned char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&)@Base" 0.11.1
- (c++|optional=lto)"std::vector<unsigned char, std::allocator<unsigned char> >::_M_default_append(unsigned long)@Base" 0.11.1
- (c++|optional=lto)"void std::vector<unsigned long, std::allocator<unsigned long> >::_M_realloc_append<unsigned long const&>(unsigned long const&)@Base" 0.11.1
-libjxl_threads.so.0.11 libjxl0.11 #MINVER#
-* Build-Depends-Package: libjxl-dev
- JXL_0@JXL_0 0.6.1
- JxlResizableParallelRunner@JXL_0 0.6.1
- JxlResizableParallelRunnerCreate@JXL_0 0.6.1
- JxlResizableParallelRunnerDestroy@JXL_0 0.6.1
- JxlResizableParallelRunnerSetThreads@JXL_0 0.6.1
- JxlResizableParallelRunnerSuggestThreads@JXL_0 0.6.1
- JxlThreadParallelRunner@JXL_0 0.6.1
- JxlThreadParallelRunnerCreate@JXL_0 0.6.1
- JxlThreadParallelRunnerDefaultNumWorkerThreads@JXL_0 0.6.1
- JxlThreadParallelRunnerDestroy@JXL_0 0.6.1
diff -upNr jpeg-xl-0.11.2/debian/libjxl0.12.install jpeg-xl-0.12.0/debian/libjxl0.12.install
--- jpeg-xl-0.11.2/debian/libjxl0.12.install	1970-01-01 01:00:00.000000000 +0100
+++ jpeg-xl-0.12.0/debian/libjxl0.12.install	2026-04-15 04:01:40.000000000 +0200
@@ -0,0 +1 @@
+usr/lib/*/libjxl*.so.*
diff -upNr jpeg-xl-0.11.2/debian/libjxl0.12.symbols jpeg-xl-0.12.0/debian/libjxl0.12.symbols
--- jpeg-xl-0.11.2/debian/libjxl0.12.symbols	1970-01-01 01:00:00.000000000 +0100
+++ jpeg-xl-0.12.0/debian/libjxl0.12.symbols	2026-09-07 16:25:19.613687634 +0200
@@ -0,0 +1,129 @@
+libjxl.so.0.12 libjxl0.12 #MINVER#
+* Build-Depends-Package: libjxl-dev
+ JXL_0@JXL_0 0.6.1
+ JxlColorEncodingSetToLinearSRGB@JXL_0 0.6.1
+ JxlColorEncodingSetToSRGB@JXL_0 0.6.1
+ JxlDecoderCloseInput@JXL_0 0.7.0
+ JxlDecoderCreate@JXL_0 0.6.1
+ JxlDecoderDestroy@JXL_0 0.6.1
+ JxlDecoderExtraChannelBufferSize@JXL_0 0.6.1
+ JxlDecoderFlushImage@JXL_0 0.6.1
+ JxlDecoderGetBasicInfo@JXL_0 0.6.1
+ JxlDecoderGetBoxSizeContents@JXL_0 0.10.3
+ JxlDecoderGetBoxSizeRaw@JXL_0 0.7.0
+ JxlDecoderGetBoxType@JXL_0 0.7.0
+ JxlDecoderGetColorAsEncodedProfile@JXL_0 0.6.1
+ JxlDecoderGetColorAsICCProfile@JXL_0 0.6.1
+ JxlDecoderGetExtraChannelBlendInfo@JXL_0 0.7.0
+ JxlDecoderGetExtraChannelInfo@JXL_0 0.6.1
+ JxlDecoderGetExtraChannelName@JXL_0 0.6.1
+ JxlDecoderGetFrameHeader@JXL_0 0.6.1
+ JxlDecoderGetFrameName@JXL_0 0.6.1
+ JxlDecoderGetICCProfileSize@JXL_0 0.6.1
+ JxlDecoderGetIntendedDownsamplingRatio@JXL_0 0.7.0
+ JxlDecoderImageOutBufferSize@JXL_0 0.6.1
+ JxlDecoderPreviewOutBufferSize@JXL_0 0.6.1
+ JxlDecoderProcessInput@JXL_0 0.6.1
+ JxlDecoderReleaseBoxBuffer@JXL_0 0.7.0
+ JxlDecoderReleaseInput@JXL_0 0.6.1
+ JxlDecoderReleaseJPEGBuffer@JXL_0 0.6.1
+ JxlDecoderReset@JXL_0 0.6.1
+ JxlDecoderRewind@JXL_0 0.6.1
+ JxlDecoderSetBoxBuffer@JXL_0 0.7.0
+ JxlDecoderSetCms@JXL_0 0.9.2
+ JxlDecoderSetCoalescing@JXL_0 0.7.0
+ JxlDecoderSetDecompressBoxes@JXL_0 0.7.0
+ JxlDecoderSetDesiredIntensityTarget@JXL_0 0.7.0
+ JxlDecoderSetExtraChannelBuffer@JXL_0 0.6.1
+ JxlDecoderSetImageOutBitDepth@JXL_0 0.8.0
+ JxlDecoderSetImageOutBuffer@JXL_0 0.6.1
+ JxlDecoderSetImageOutCallback@JXL_0 0.6.1
+ JxlDecoderSetInput@JXL_0 0.6.1
+ JxlDecoderSetJPEGBuffer@JXL_0 0.6.1
+ JxlDecoderSetKeepOrientation@JXL_0 0.6.1
+ JxlDecoderSetMultithreadedImageOutCallback@JXL_0 0.7.0
+ JxlDecoderSetOutputColorProfile@JXL_0 0.9.2
+ JxlDecoderSetParallelRunner@JXL_0 0.6.1
+ JxlDecoderSetPreferredColorProfile@JXL_0 0.6.1
+ JxlDecoderSetPreviewOutBuffer@JXL_0 0.6.1
+ JxlDecoderSetProgressiveDetail@JXL_0 0.7.0
+ JxlDecoderSetRenderSpotcolors@JXL_0 0.7.0
+ JxlDecoderSetUnpremultiplyAlpha@JXL_0 0.7.0
+ JxlDecoderSizeHintBasicInfo@JXL_0 0.6.1
+ JxlDecoderSkipCurrentFrame@JXL_0 0.7.0
+ JxlDecoderSkipFrames@JXL_0 0.6.1
+ JxlDecoderSubscribeEvents@JXL_0 0.6.1
+ JxlDecoderVersion@JXL_0 0.6.1
+ JxlEncoderAddBox@JXL_0 0.7.0
+ JxlEncoderAddChunkedFrame@JXL_0 0.9.2
+ JxlEncoderAddImageFrame@JXL_0 0.6.1
+ JxlEncoderAddJPEGFrame@JXL_0 0.6.1
+ JxlEncoderAllowExpertOptions@JXL_0 0.8.0
+ JxlEncoderCloseBoxes@JXL_0 0.7.0
+ JxlEncoderCloseFrames@JXL_0 0.7.0
+ JxlEncoderCloseInput@JXL_0 0.6.1
+ JxlEncoderCollectStats@JXL_0 0.9.2
+ JxlEncoderCreate@JXL_0 0.6.1
+ JxlEncoderDestroy@JXL_0 0.6.1
+ JxlEncoderDistanceFromQuality@JXL_0 0.9.2
+ JxlEncoderFlushInput@JXL_0 0.9.2
+ JxlEncoderFrameSettingsCreate@JXL_0 0.7.0
+ JxlEncoderFrameSettingsSetFloatOption@JXL_0 0.7.0
+ JxlEncoderFrameSettingsSetOption@JXL_0 0.7.0
+ JxlEncoderGetError@JXL_0 0.7.0
+ JxlEncoderGetRequiredCodestreamLevel@JXL_0 0.7.0
+ JxlEncoderInitBasicInfo@JXL_0 0.6.1
+ JxlEncoderInitBlendInfo@JXL_0 0.7.0
+ JxlEncoderInitExtraChannelInfo@JXL_0 0.7.0
+ JxlEncoderInitFrameHeader@JXL_0 0.7.0
+ JxlEncoderProcessOutput@JXL_0 0.6.1
+ JxlEncoderReset@JXL_0 0.6.1
+ JxlEncoderSetBasicInfo@JXL_0 0.6.1
+ JxlEncoderSetCms@JXL_0 0.7.0
+ JxlEncoderSetCodestreamLevel@JXL_0 0.7.0
+ JxlEncoderSetColorEncoding@JXL_0 0.6.1
+ JxlEncoderSetDebugImageCallback@JXL_0 0.9.2
+ JxlEncoderSetExtraChannelBlendInfo@JXL_0 0.7.0
+ JxlEncoderSetExtraChannelBuffer@JXL_0 0.7.0
+ JxlEncoderSetExtraChannelDistance@JXL_0 0.9.2
+ JxlEncoderSetExtraChannelInfo@JXL_0 0.7.0
+ JxlEncoderSetExtraChannelName@JXL_0 0.7.0
+ JxlEncoderSetFrameBitDepth@JXL_0 0.8.0
+ JxlEncoderSetFrameDistance@JXL_0 0.7.0
+ JxlEncoderSetFrameHeader@JXL_0 0.7.0
+ JxlEncoderSetFrameLossless@JXL_0 0.7.0
+ JxlEncoderSetFrameName@JXL_0 0.7.0
+ JxlEncoderSetICCProfile@JXL_0 0.6.1
+ JxlEncoderSetOutputProcessor@JXL_0 0.9.2
+ JxlEncoderSetParallelRunner@JXL_0 0.6.1
+ JxlEncoderSetUpsamplingMode@JXL_0 0.9.2
+ JxlEncoderStatsCreate@JXL_0 0.9.2
+ JxlEncoderStatsDestroy@JXL_0 0.9.2
+ JxlEncoderStatsGet@JXL_0 0.9.2
+ JxlEncoderStatsMerge@JXL_0 0.9.2
+ JxlEncoderStoreJPEGMetadata@JXL_0 0.6.1
+ JxlEncoderUseBoxes@JXL_0 0.7.0
+ JxlEncoderUseContainer@JXL_0 0.6.1
+ JxlEncoderVersion@JXL_0 0.6.1
+ JxlSignatureCheck@JXL_0 0.6.1
+libjxl_cms.so.0.12 libjxl0.12 #MINVER#
+* Build-Depends-Package: libjxl-dev
+ JxlGetDefaultCms@Base 0.9.2
+ (c++|optional=lto)"void std::vector<jxl::cms::TransferFunction, std::allocator<jxl::cms::TransferFunction> >::_M_realloc_append<jxl::cms::TransferFunction>(jxl::cms::TransferFunction&&)@Base" 0.11.1
+ (c++|optional=lto)"void std::vector<float*, std::allocator<float*> >::_M_realloc_append<float*>(float*&&)@Base" 0.11.1
+ (c++|optional=lto)"std::vector<float, std::allocator<float> >::_M_default_append(unsigned long)@Base" 0.11.1
+ (c++|optional=lto)"std::vector<unsigned char, std::allocator<unsigned char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&)@Base" 0.11.1
+ (c++|optional=lto)"std::vector<unsigned char, std::allocator<unsigned char> >::_M_default_append(unsigned long)@Base" 0.11.1
+ (c++|optional=lto)"void std::vector<unsigned long, std::allocator<unsigned long> >::_M_realloc_append<unsigned long const&>(unsigned long const&)@Base" 0.11.1
+libjxl_threads.so.0.12 libjxl0.12 #MINVER#
+* Build-Depends-Package: libjxl-dev
+ JXL_0@JXL_0 0.6.1
+ JxlResizableParallelRunner@JXL_0 0.6.1
+ JxlResizableParallelRunnerCreate@JXL_0 0.6.1
+ JxlResizableParallelRunnerDestroy@JXL_0 0.6.1
+ JxlResizableParallelRunnerSetThreads@JXL_0 0.6.1
+ JxlResizableParallelRunnerSuggestThreads@JXL_0 0.6.1
+ JxlThreadParallelRunner@JXL_0 0.6.1
+ JxlThreadParallelRunnerCreate@JXL_0 0.6.1
+ JxlThreadParallelRunnerDefaultNumWorkerThreads@JXL_0 0.6.1
+ JxlThreadParallelRunnerDestroy@JXL_0 0.6.1
diff -upNr jpeg-xl-0.11.2/debian/libjxl-devtools.install jpeg-xl-0.12.0/debian/libjxl-devtools.install
--- jpeg-xl-0.11.2/debian/libjxl-devtools.install	2026-04-15 04:01:40.000000000 +0200
+++ jpeg-xl-0.12.0/debian/libjxl-devtools.install	2026-09-07 17:35:33.366648119 +0200
@@ -6,6 +6,7 @@ usr/bin/djxl_fuzzer_corpus
 usr/bin/exr_to_pq
 usr/bin/generate_lut_template
 usr/bin/jxl_from_tree
+usr/bin/jxltran
 usr/bin/local_tone_map
 usr/bin/pq_to_hlg
 usr/bin/render_hlg
diff -upNr jpeg-xl-0.11.2/debian/patches/0001-Fix-possible-overflow-in-APNG-decoder-4870.patch jpeg-xl-0.12.0/debian/patches/0001-Fix-possible-overflow-in-APNG-decoder-4870.patch
--- jpeg-xl-0.11.2/debian/patches/0001-Fix-possible-overflow-in-APNG-decoder-4870.patch	2026-08-13 15:09:49.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/0001-Fix-possible-overflow-in-APNG-decoder-4870.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,52 +0,0 @@
-From 2ded3a46db6cf1e60c673181d54276f702074020 Mon Sep 17 00:00:00 2001
-From: Eugene Kliuchnikov <[email protected]>
-Date: Fri, 26 Jun 2026 11:24:49 +0200
-Subject: Fix possible overflow in APNG decoder (#4870)
-
-Fixes #4803.
-
-Root reason: copy-paste in RectT::IsSame
-Drive-by: use a.IsInside(b) instead of a.Intersect(b).IsSame(a)
-Drive-by: harden ysize check before copying
----
- lib/extras/dec/apng.cc | 3 ++-
- lib/jxl/base/rect.h    | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/lib/extras/dec/apng.cc b/lib/extras/dec/apng.cc
-index 24b4795d..a8c5c5f3 100644
---- a/lib/extras/dec/apng.cc
-+++ b/lib/extras/dec/apng.cc
-@@ -878,6 +878,7 @@ Status DecodeImageAPNG(const Span<const uint8_t> bytes,
-     const RectT<uint64_t>& vp = current_frame.viewport;
-     size_t xsize = static_cast<size_t>(vp.xsize());
-     size_t ysize = static_cast<size_t>(vp.ysize());
-+    JXL_ENSURE(ctx.frameRaw.rows.size() <= ysize);
-     JXL_ASSIGN_OR_RETURN(PackedImage image,
-                          PackedImage::Create(xsize, ysize, format));
-     for (size_t y = 0; y < ysize; ++y) {
-@@ -962,7 +963,7 @@ Status DecodeImageAPNG(const Span<const uint8_t> bytes,
-             /*delay_den=*/png_get_uint_16(payload.data() + 22), raw_viewport,
-             static_cast<DisposeOp>(dispose_op), static_cast<BlendOp>(blend_op)};
- 
--        if (!raw_viewport.Intersection(image_rect).IsSame(raw_viewport)) {
-+        if (!raw_viewport.IsInside(image_rect)) {
-           // Cropping happened.
-           return JXL_FAILURE("PNG frame is outside of image rect");
-         }
-diff --git a/lib/jxl/base/rect.h b/lib/jxl/base/rect.h
-index 31fe12df..3f6632ed 100644
---- a/lib/jxl/base/rect.h
-+++ b/lib/jxl/base/rect.h
-@@ -109,7 +109,7 @@ class RectT {
- 
-   bool IsSame(const RectT& other) const {
-     return x0_ == other.x0_ && xsize_ == other.xsize_ && y0_ == other.y0_ &&
--           ysize_ <= other.ysize_;
-+           ysize_ == other.ysize_;
-   }
- 
-   // Returns true if this Rect fully resides in the given image. ImageT could be
--- 
-2.47.3
-
diff -upNr jpeg-xl-0.11.2/debian/patches/0001-Fix-test-on-loong64-4654.patch jpeg-xl-0.12.0/debian/patches/0001-Fix-test-on-loong64-4654.patch
--- jpeg-xl-0.11.2/debian/patches/0001-Fix-test-on-loong64-4654.patch	2026-05-12 09:07:13.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/0001-Fix-test-on-loong64-4654.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-From 958ed1674efa0e372b6da5670b2a48ecc3902632 Mon Sep 17 00:00:00 2001
-From: jinboson <[email protected]>
-Date: Mon, 9 Mar 2026 23:37:58 +0800
-Subject: Fix test on loong64 (#4654)
-
-After updating highway to 1.3.0 or master, AcStrategyDownsampleGroup/AcStrategyDownsample.Test/LSX_24 will fail.
-Because the HWY_LSX version of MulAdd (implemented by __lsx_vfmadd_s(a,b,c)) starts producing different results
-compared to the HWY_SCALAR version of MulAdd when the float point accuracy >= 1e-8. However, this is not saying
-that the implementation of HWY_LSX version of MulAdd is wrong, it's a hardware related implementation. So, I just
-made this change on the test.
-
-Co-authored-by: Eugene Kliuchnikov <[email protected]>
----
- lib/jxl/ac_strategy_test.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/jxl/ac_strategy_test.cc b/lib/jxl/ac_strategy_test.cc
-index e6405fc8..9b5fa7cc 100644
---- a/lib/jxl/ac_strategy_test.cc
-+++ b/lib/jxl/ac_strategy_test.cc
-@@ -206,7 +206,7 @@ class AcStrategyDownsample : public ::hwy::TestWithParamTargetAndT<int> {
-             sum /= 64;
-             ASSERT_NEAR(
-                 sum, idct_acs_downsampled[dy * 8 * acs.covered_blocks_x() + dx],
--                1e-6)
-+                2e-6)
-                 << " acs " << static_cast<int>(type);
-           }
-         }
--- 
-2.47.3
-
diff -upNr jpeg-xl-0.11.2/debian/patches/0001-README.md-in-test-data-directory-will-fail-in-Debian.patch jpeg-xl-0.12.0/debian/patches/0001-README.md-in-test-data-directory-will-fail-in-Debian.patch
--- jpeg-xl-0.11.2/debian/patches/0001-README.md-in-test-data-directory-will-fail-in-Debian.patch	1970-01-01 01:00:00.000000000 +0100
+++ jpeg-xl-0.12.0/debian/patches/0001-README.md-in-test-data-directory-will-fail-in-Debian.patch	2026-09-07 16:45:34.363721001 +0200
@@ -0,0 +1,26 @@
+From 0397bc9b698955e48286fb6654f551947564204f Mon Sep 17 00:00:00 2001
+From: Julian Wollrath <[email protected]>
+Date: Mon, 7 Sep 2026 16:44:49 +0200
+Subject: [PATCH] README.md in test data directory will fail in Debian
+
+---
+ CMakeLists.txt | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index abc95c8..31f273e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -428,9 +428,6 @@ endif()
+ add_subdirectory(lib)
+ 
+ if(BUILD_TESTING)
+-  if (NOT EXISTS "${JPEGXL_TEST_DATA_PATH}/README.md")
+-    message(FATAL_ERROR "testdata directory '${JPEGXL_TEST_DATA_PATH}' is not populated")
+-  endif()
+   # Script to run tests over the source code in bash.
+   find_program (BASH_PROGRAM bash)
+   if(BASH_PROGRAM)
+-- 
+2.55.0
+
diff -upNr jpeg-xl-0.11.2/debian/patches/0002-Further-undisable-tests-4041.patch jpeg-xl-0.12.0/debian/patches/0002-Further-undisable-tests-4041.patch
--- jpeg-xl-0.11.2/debian/patches/0002-Further-undisable-tests-4041.patch	2026-08-13 15:09:49.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/0002-Further-undisable-tests-4041.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-From a1fa160e1677ea214667bac3c155b4ce6989fa90 Mon Sep 17 00:00:00 2001
-From: Eugene Kliuchnikov <[email protected]>
-Date: Tue, 7 Jan 2025 10:24:06 +0100
-Subject: Further undisable tests (#4041)
-
----
- lib/jxl/jxl_test.cc | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/lib/jxl/jxl_test.cc b/lib/jxl/jxl_test.cc
-index ddf98427..e8ae20b2 100644
---- a/lib/jxl/jxl_test.cc
-+++ b/lib/jxl/jxl_test.cc
-@@ -391,7 +391,11 @@ TEST(JxlTest, RoundtripLargeFast) {
- JXL_X86_64_TEST(JxlTest, RoundtripLargeEmptyModular) {
-   ThreadPoolForTests pool(8);
-   TestImage t;
--  ASSERT_TRUE(t.SetDimensions(4096, 4096));
-+  // On 32-bit machines memory could be limited to 2GiB. Current use factor
-+  // is about 20x, that means hat 6MPx image is about the max available size.
-+  constexpr size_t kDim = sizeof(size_t) == 4 ? 2400 : 4096;
-+  const size_t kLim = std::min<size_t>(kDim, 1024);
-+  ASSERT_TRUE(t.SetDimensions(kDim, kDim));
-   t.SetDataType(JXL_TYPE_UINT8);
-   ASSERT_TRUE(t.SetChannels(4));
-   JXL_TEST_ASSIGN_OR_DIE(auto frame, t.AddFrame());
--- 
-2.47.3
-
diff -upNr jpeg-xl-0.11.2/debian/patches/CVE-2025-70103.patch jpeg-xl-0.12.0/debian/patches/CVE-2025-70103.patch
--- jpeg-xl-0.11.2/debian/patches/CVE-2025-70103.patch	2026-08-13 15:09:49.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/CVE-2025-70103.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,107 +0,0 @@
-From 49fb89f23473e57fa1dac416adce7c7679e5d051 Mon Sep 17 00:00:00 2001
-From: Eugene Kliuchnikov <[email protected]>
-Date: Fri, 8 Aug 2025 12:29:08 +0200
-Subject: [PATCH] Take EC into accound when checking required PNM inmput length
- (#4380)
-
---- jpeg-xl-0.11.2.orig/lib/extras/dec/pnm.cc
-+++ jpeg-xl-0.11.2/lib/extras/dec/pnm.cc
-@@ -497,13 +497,26 @@ Status DecodeImagePNM(const Span<const u
-     }
-   }
- 
-+  // No align - pixels are tightly packed.
-+  constexpr size_t kAlign = 0;
-+  size_t twidth = PackedImage::BitsPerChannel(data_type) / 8;
-   const JxlPixelFormat format{
-       /*num_channels=*/num_interleaved_channels,
-       /*data_type=*/data_type,
-       /*endianness=*/header.big_endian ? JXL_BIG_ENDIAN : JXL_LITTLE_ENDIAN,
--      /*align=*/0,
-+      kAlign,
-   };
--  const JxlPixelFormat ec_format{1, format.data_type, format.endianness, 0};
-+  // EC format is same as color, but 1-channel.
-+  JxlPixelFormat ec_format = format;
-+  ec_format.num_channels = 1;
-+  size_t required_pnm_size =
-+      header.ysize * header.xsize *
-+      (num_interleaved_channels + header.ec_types.size()) * twidth;
-+  size_t pnm_remaining_size = bytes.data() + bytes.size() - pos;
-+  if (pnm_remaining_size < required_pnm_size) {
-+    return JXL_FAILURE("PNM file too small");
-+  }
-+
-   ppf->frames.clear();
-   {
-     JXL_ASSIGN_OR_RETURN(
-@@ -512,42 +525,47 @@ Status DecodeImagePNM(const Span<const u
-     ppf->frames.emplace_back(std::move(frame));
-   }
-   auto* frame = &ppf->frames.back();
-+  uint8_t* out = reinterpret_cast<uint8_t*>(frame->color.pixels());
-+  std::vector<uint8_t*> ec_out;
-   for (size_t i = 0; i < header.ec_types.size(); ++i) {
-     JXL_ASSIGN_OR_RETURN(
-         PackedImage ec,
-         PackedImage::Create(header.xsize, header.ysize, ec_format));
-     frame->extra_channels.emplace_back(std::move(ec));
-+    ec_out.emplace_back(
-+        reinterpret_cast<uint8_t*>(frame->extra_channels.back().pixels()));
-+    JXL_DASSERT(frame->extra_channels.back().stride == header.xsize * twidth);
-   }
--  size_t pnm_remaining_size = bytes.data() + bytes.size() - pos;
--  if (pnm_remaining_size < frame->color.pixels_size) {
--    return JXL_FAILURE("PNM file too small");
--  }
--
--  uint8_t* out = reinterpret_cast<uint8_t*>(frame->color.pixels());
--  std::vector<uint8_t*> ec_out(header.ec_types.size());
--  for (size_t i = 0; i < ec_out.size(); ++i) {
--    ec_out[i] = reinterpret_cast<uint8_t*>(frame->extra_channels[i].pixels());
--  }
-+  JXL_DASSERT(frame->color.stride ==
-+              header.xsize * num_interleaved_channels * twidth);
-   if (ec_out.empty()) {
--    const bool flipped_y = header.bits_per_sample == 32;  // PFMs are flipped
--    for (size_t y = 0; y < header.ysize; ++y) {
--      size_t y_in = flipped_y ? header.ysize - 1 - y : y;
--      const uint8_t* row_in = &pos[y_in * frame->color.stride];
--      uint8_t* row_out = &out[y * frame->color.stride];
--      memcpy(row_out, row_in, frame->color.stride);
-+    const bool flipped_y = (header.bits_per_sample == 32);  // PFMs are flipped
-+    if (!flipped_y) {
-+    // When there are no EC and input is not flipped we can copy the whole
-+    // image at once.
-+      memcpy(out, pos, header.ysize * frame->color.stride);
-+    } else {
-+      // Otherwise copy row-by-row.
-+      for (size_t y = 0; y < header.ysize; ++y) {
-+        size_t y_out = header.ysize - 1 - y;
-+        const uint8_t* row_in = pos + y * frame->color.stride;
-+        uint8_t* row_out = out + y_out * frame->color.stride;
-+        memcpy(row_out, row_in, frame->color.stride);
-+      }
-     }
-   } else {
-+    // In case there are EC, we have to deinterleave data pixel-wise.
-     JXL_RETURN_IF_ERROR(PackedImage::ValidateDataType(data_type));
--    size_t pwidth = PackedImage::BitsPerChannel(data_type) / 8;
-+    size_t color_stride = twidth * num_interleaved_channels;
-     for (size_t y = 0; y < header.ysize; ++y) {
-       for (size_t x = 0; x < header.xsize; ++x) {
-         memcpy(out, pos, frame->color.pixel_stride());
--        out += frame->color.pixel_stride();
--        pos += frame->color.pixel_stride();
-+        out += color_stride;
-+        pos += color_stride;
-         for (auto& p : ec_out) {
--          memcpy(p, pos, pwidth);
--          pos += pwidth;
--          p += pwidth;
-+          memcpy(p, pos, twidth);
-+          pos += twidth;
-+          p += twidth;
-         }
-       }
-     }
diff -upNr jpeg-xl-0.11.2/debian/patches/disable_test.patch jpeg-xl-0.12.0/debian/patches/disable_test.patch
--- jpeg-xl-0.11.2/debian/patches/disable_test.patch	2026-04-15 04:01:40.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/disable_test.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-Description: Disable a failing test
-Author: Adrian Bunk <[email protected]>
-Bug-Debian: https://bugs.debian.org/1123400
-
---- jpeg-xl-0.11.2.orig/lib/jxl/splines_test.cc
-+++ jpeg-xl-0.11.2/lib/jxl/splines_test.cc
-@@ -287,6 +287,7 @@ TEST(SplinesTest, DuplicatePoints) {
-                                            color_correlation));
- }
- 
-+#if 0
- TEST(SplinesTest, Drawing) {
-   JxlMemoryManager* memory_manager = jxl::test::MemoryManager();
-   CodecInOut io_expected{memory_manager};
-@@ -339,6 +340,7 @@ TEST(SplinesTest, Drawing) {
-   JXL_TEST_ASSERT_OK(VerifyRelativeError(
-       *io_expected.Main().color(), *io_actual.Main().color(), 1e-2f, 1e-1f, _));
- }
-+#endif  /* 0 */
- 
- TEST(SplinesTest, ClearedEveryFrame) {
-   JxlMemoryManager* memory_manager = jxl::test::MemoryManager();
diff -upNr jpeg-xl-0.11.2/debian/patches/Fix-modular-on-big-endian-machines-4095.patch jpeg-xl-0.12.0/debian/patches/Fix-modular-on-big-endian-machines-4095.patch
--- jpeg-xl-0.11.2/debian/patches/Fix-modular-on-big-endian-machines-4095.patch	2026-04-15 04:01:40.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/Fix-modular-on-big-endian-machines-4095.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,151 +0,0 @@
-From: Eugene Kliuchnikov <[email protected]>
-Date: Thu, 30 Jan 2025 13:49:03 +0100
-Subject: Fix modular on big-endian machines (#4095)
-
-(cherry picked from commit 070b56b24b14ede21aaebd68b67c3a8670600d2f)
-
-Origin: upstream
----
- lib/jxl/dec_noise.cc                   |  4 ++--
- lib/jxl/modular/transform/squeeze.cc   | 28 ++++++++++++++++------------
- lib/jxl/render_pipeline/stage_noise.cc |  7 +++++--
- 3 files changed, 23 insertions(+), 16 deletions(-)
-
-diff --git a/lib/jxl/dec_noise.cc b/lib/jxl/dec_noise.cc
-index 949ddc8..51330fd 100644
---- a/lib/jxl/dec_noise.cc
-+++ b/lib/jxl/dec_noise.cc
-@@ -26,12 +26,12 @@ namespace HWY_NAMESPACE {
- 
- // These templates are not found via ADL.
- using hwy::HWY_NAMESPACE::Or;
-+using hwy::HWY_NAMESPACE::Rebind;
- using hwy::HWY_NAMESPACE::ShiftRight;
- using hwy::HWY_NAMESPACE::Vec;
- 
- using D = HWY_CAPPED(float, kBlockDim);
--using DI = hwy::HWY_NAMESPACE::Rebind<int, D>;
--using DI8 = hwy::HWY_NAMESPACE::Repartition<uint8_t, D>;
-+using DI = Rebind<int, D>;
- 
- // Converts one vector's worth of random bits to floats in [1, 2).
- // NOTE: as the convolution kernel sums to 0, it doesn't matter if inputs are in
-diff --git a/lib/jxl/modular/transform/squeeze.cc b/lib/jxl/modular/transform/squeeze.cc
-index de685f7..cb2677a 100644
---- a/lib/jxl/modular/transform/squeeze.cc
-+++ b/lib/jxl/modular/transform/squeeze.cc
-@@ -25,6 +25,8 @@ HWY_BEFORE_NAMESPACE();
- namespace jxl {
- namespace HWY_NAMESPACE {
- 
-+#if HWY_TARGET != HWY_SCALAR
-+
- // These templates are not found via ADL.
- using hwy::HWY_NAMESPACE::Abs;
- using hwy::HWY_NAMESPACE::Add;
-@@ -34,6 +36,7 @@ using hwy::HWY_NAMESPACE::IfThenElse;
- using hwy::HWY_NAMESPACE::IfThenZeroElse;
- using hwy::HWY_NAMESPACE::Lt;
- using hwy::HWY_NAMESPACE::MulEven;
-+using hwy::HWY_NAMESPACE::MulOdd;
- using hwy::HWY_NAMESPACE::Ne;
- using hwy::HWY_NAMESPACE::Neg;
- using hwy::HWY_NAMESPACE::OddEven;
-@@ -43,7 +46,10 @@ using hwy::HWY_NAMESPACE::ShiftRight;
- using hwy::HWY_NAMESPACE::Sub;
- using hwy::HWY_NAMESPACE::Xor;
- 
--#if HWY_TARGET != HWY_SCALAR
-+using D = HWY_CAPPED(pixel_type, 8);
-+using DU = RebindToUnsigned<D>;
-+constexpr D d;
-+constexpr DU du;
- 
- JXL_INLINE void FastUnsqueeze(const pixel_type *JXL_RESTRICT p_residual,
-                               const pixel_type *JXL_RESTRICT p_avg,
-@@ -51,8 +57,6 @@ JXL_INLINE void FastUnsqueeze(const pixel_type *JXL_RESTRICT p_residual,
-                               const pixel_type *p_pout,
-                               pixel_type *JXL_RESTRICT p_out,
-                               pixel_type *p_nout) {
--  const HWY_CAPPED(pixel_type, 8) d;
--  const RebindToUnsigned<decltype(d)> du;
-   const size_t N = Lanes(d);
-   auto onethird = Set(d, 0x55555556);
-   for (size_t x = 0; x < 8; x += N) {
-@@ -68,12 +72,13 @@ JXL_INLINE void FastUnsqueeze(const pixel_type *JXL_RESTRICT p_residual,
-     auto absan = Abs(an);
-     auto absBn = Abs(Sub(top, next_avg));
-     // Compute a3 = absBa / 3
--    auto a3e = BitCast(d, ShiftRight<32>(MulEven(absBa, onethird)));
--    auto a3oi = MulEven(Reverse(d, absBa), onethird);
--    auto a3o = BitCast(
--        d, Reverse(hwy::HWY_NAMESPACE::Repartition<pixel_type_w, decltype(d)>(),
--                   a3oi));
--    auto a3 = OddEven(a3o, a3e);
-+    auto a3eh = MulEven(absBa, onethird);
-+    auto a3oh = MulOdd(absBa, onethird);
-+#if HWY_IS_LITTLE_ENDIAN
-+    auto a3 = InterleaveOdd(d, BitCast(d, a3eh), BitCast(d, a3oh));
-+#else
-+    auto a3 = InterleaveEven(d, BitCast(d, a3eh), BitCast(d, a3oh));
-+#endif
-     a3 = Add(a3, Add(absBn, Set(d, 2)));
-     auto absdiff = ShiftRight<2>(a3);
-     auto skipdiff = Ne(Ba, Zero(d));
-@@ -99,7 +104,7 @@ JXL_INLINE void FastUnsqueeze(const pixel_type *JXL_RESTRICT p_residual,
-   }
- }
- 
--#endif
-+#endif  // HWY_TARGET != HWY_SCALAR
- 
- Status InvHSqueeze(Image &input, uint32_t c, uint32_t rc, ThreadPool *pool) {
-   JXL_ENSURE(c < input.channel.size());
-@@ -174,7 +179,6 @@ Status InvHSqueeze(Image &input, uint32_t c, uint32_t rc, ThreadPool *pool) {
-     HWY_ALIGN pixel_type b_p_out_odd[8 * kRowsPerThread];
-     HWY_ALIGN pixel_type b_p_out_evenT[8 * kRowsPerThread];
-     HWY_ALIGN pixel_type b_p_out_oddT[8 * kRowsPerThread];
--    const HWY_CAPPED(pixel_type, 8) d;
-     const size_t N = Lanes(d);
-     if (chin_residual.w > 16 && rows == kRowsPerThread) {
-       for (; x < chin_residual.w - 9; x += 8) {
-@@ -202,7 +206,7 @@ Status InvHSqueeze(Image &input, uint32_t c, uint32_t rc, ThreadPool *pool) {
-         }
-       }
-     }
--#endif
-+#endif  // HWY_TARGET != HWY_SCALAR
-     for (size_t y = 0; y < rows; y++) {
-       unsqueeze_row(y0 + y, x);
-     }
-diff --git a/lib/jxl/render_pipeline/stage_noise.cc b/lib/jxl/render_pipeline/stage_noise.cc
-index 5a24118..3498352 100644
---- a/lib/jxl/render_pipeline/stage_noise.cc
-+++ b/lib/jxl/render_pipeline/stage_noise.cc
-@@ -28,14 +28,16 @@ using hwy::HWY_NAMESPACE::Min;
- using hwy::HWY_NAMESPACE::Mul;
- using hwy::HWY_NAMESPACE::MulAdd;
- using hwy::HWY_NAMESPACE::Or;
-+using hwy::HWY_NAMESPACE::Rebind;
-+using hwy::HWY_NAMESPACE::Repartition;
- using hwy::HWY_NAMESPACE::Sub;
- using hwy::HWY_NAMESPACE::TableLookupBytes;
- using hwy::HWY_NAMESPACE::Vec;
- using hwy::HWY_NAMESPACE::ZeroIfNegative;
- 
- using D = HWY_CAPPED(float, kBlockDim);
--using DI = hwy::HWY_NAMESPACE::Rebind<int32_t, D>;
--using DI8 = hwy::HWY_NAMESPACE::Repartition<uint8_t, D>;
-+using DI = Rebind<int32_t, D>;
-+using DI8 = Repartition<uint8_t, D>;
- 
- // [0, max_value]
- template <class D, class V>
-@@ -65,6 +67,7 @@ class StrengthEvalLut {
-     uint32_t lut[NoiseParams::kNumNoisePoints];
-     memcpy(lut, noise_params.lut.data(),
-            NoiseParams::kNumNoisePoints * sizeof(uint32_t));
-+    // TODO(eustas): make sure it works on big-endian
-     for (size_t i = 0; i < NoiseParams::kNumNoisePoints; i++) {
-       low16_lut[2 * i] = (lut[i] >> 0) & 0xFF;
-       low16_lut[2 * i + 1] = (lut[i] >> 8) & 0xFF;
diff -upNr jpeg-xl-0.11.2/debian/patches/help_return_no_error.patch jpeg-xl-0.12.0/debian/patches/help_return_no_error.patch
--- jpeg-xl-0.11.2/debian/patches/help_return_no_error.patch	2026-04-15 04:01:40.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/help_return_no_error.patch	2026-09-07 16:34:31.576808594 +0200
@@ -7,12 +7,12 @@ Index: libjxl/tools/ssimulacra2_main.cc
 ===================================================================
 --- libjxl.orig/tools/ssimulacra2_main.cc
 +++ libjxl/tools/ssimulacra2_main.cc
-@@ -48,7 +48,7 @@ int PrintUsage(char** argv) {
-   fprintf(stderr,
-           "                             average output of cjxl -q 90 or "
-           "mozjpeg -quality 90)\n");
+@@ -69,7 +69,7 @@ int PrintUsage(char** argv) {
+           "or libjpeg-turbo quality 95 (4:4:4)\n");
+   fprintf(stderr, "     100 = mathematically lossless\n");
+
 -  return 1;
 +  return 0;
  }
- 
+
  int main(int argc, char** argv) {
diff -upNr jpeg-xl-0.11.2/debian/patches/hwy.patch jpeg-xl-0.12.0/debian/patches/hwy.patch
--- jpeg-xl-0.11.2/debian/patches/hwy.patch	2026-04-15 04:01:40.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/hwy.patch	2026-09-07 16:33:24.327493959 +0200
@@ -1,39 +1,18 @@
 Description: Transition to hwy config.cmake
 Author: Mathieu Malaterre <[email protected]>
 Forwarded: no
-Last-Update: 2023-02-01
+Last-Update: 2026-09-07
 
 Index: libjxl/CMakeLists.txt
 ===================================================================
 --- libjxl.orig/CMakeLists.txt
 +++ libjxl/CMakeLists.txt
-@@ -8,6 +8,8 @@ cmake_minimum_required(VERSION 3.16...3.
+@@ -8,6 +8,8 @@ cmake_minimum_required(VERSION 3.16...3.27)
  list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
- 
+
  project(LIBJXL LANGUAGES C CXX)
 +# Make sure HWY variable are at top-level:
 +find_package(HWY 1.0.0 REQUIRED)
- 
- # TODO(sboukortt): remove once oss-fuzz passes -DBUILD_SHARED_LIBS=OFF
- if(JPEGXL_ENABLE_FUZZERS)
-Index: libjxl/lib/jpegli.cmake
-===================================================================
---- libjxl.orig/lib/jpegli.cmake
-+++ libjxl/lib/jpegli.cmake
-@@ -3,6 +3,7 @@
- # Use of this source code is governed by a BSD-style
- # license that can be found in the LICENSE file.
- 
-+find_package(HWY CONFIG REQUIRED)
- include(jxl_lists.cmake)
- 
- set(JPEGLI_INTERNAL_LIBS
-@@ -86,7 +87,7 @@ foreach (TESTFILE IN LISTS JPEGXL_INTERN
-     "${CMAKE_CURRENT_BINARY_DIR}/include"
-   )
-   target_link_libraries(${TESTNAME}
--    hwy
-+    hwy::hwy
-     jpegli-static
-     GTest::GTest
-     GTest::Main
+
+ message(STATUS "CMake version: ${CMAKE_VERSION}")
+ message(STATUS "Compiler IDs\
diff -upNr jpeg-xl-0.11.2/debian/patches/series jpeg-xl-0.12.0/debian/patches/series
--- jpeg-xl-0.11.2/debian/patches/series	2026-08-13 15:09:49.000000000 +0200
+++ jpeg-xl-0.12.0/debian/patches/series	2026-09-07 17:43:52.551273757 +0200
@@ -1,9 +1,4 @@
 0008-Fix-conformance-test.patch
 hwy.patch
 help_return_no_error.patch
-Fix-modular-on-big-endian-machines-4095.patch
-0001-Fix-test-on-loong64-4654.patch
-disable_test.patch
-CVE-2025-70103.patch
-0001-Fix-possible-overflow-in-APNG-decoder-4870.patch
-0002-Further-undisable-tests-4041.patch
+0001-README.md-in-test-data-directory-will-fail-in-Debian.patch
diff -upNr jpeg-xl-0.11.2/debian/rules jpeg-xl-0.12.0/debian/rules
--- jpeg-xl-0.11.2/debian/rules	2026-05-26 03:59:30.000000000 +0200
+++ jpeg-xl-0.12.0/debian/rules	2026-09-07 17:40:34.645653418 +0200
@@ -69,6 +69,7 @@ CMAKE_EXTRA_FLAGS += \
 	-DJPEGXL_ENABLE_DOXYGEN:BOOL=$(ENABLE_DOXYGEN) \
 	-DJPEGXL_ENABLE_EXAMPLES:BOOL=ON \
 	-DJPEGXL_ENABLE_JNI:BOOL=$(ENABLE_JNI) \
+	-DJPEGXL_ENABLE_LTO:BOOL=ON \
 	-DJPEGXL_ENABLE_OPENEXR:BOOL=$(ENABLE_OPENEXR) \
 	-DJPEGXL_ENABLE_PLUGINS:BOOL=ON \
 	-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF:BOOL=ON \
@@ -95,7 +96,7 @@ override_dh_auto_build-indep:
 override_dh_auto_install-indep:
 
 override_dh_install-indep:
-	dh_install -X.md5 -pjpeg-xl-doc obj-*/html usr/share/doc/jpeg-xl-doc
+	dh_install -X.md5 -pjpeg-xl-doc obj-*/doc/html usr/share/doc/jpeg-xl-doc
 
 override_dh_auto_test-indep:
 

Reply via email to