commit 624cb90f15f9350b2f6a6fcbb1844f01a341f3ac Author: Adrian Schröter Date: Mon Feb 19 17:55:59 2024 +0100 Sync from SUSE:ALP:Source:Standard:1.0 libjpeg-turbo revision de3094534ad69255f5c29f2eb8aaa19b diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /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/_multibuild b/_multibuild new file mode 100644 index 0000000..3fd4f86 --- /dev/null +++ b/_multibuild @@ -0,0 +1,4 @@ + + libjpeg62-turbo + + diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..0631e63 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,13 @@ +libjpeg8 +libjpeg8-devel + conflicts "jpeg-devel-" + provides "jpeg-devel-" + requires "libjpeg8- = " +libjpeg62 + obsoletes "libjpeg- = 6.2.0" +libjpeg62-devel + obsoletes "libjpeg-devel- = 6.2.0" + conflicts "jpeg-devel-" + provides "jpeg-devel-" + requires "libjpeg62- = " +libturbojpeg0 diff --git a/libjpeg-turbo-1.3.0-tiff-ojpeg.patch b/libjpeg-turbo-1.3.0-tiff-ojpeg.patch new file mode 100644 index 0000000..ce95863 --- /dev/null +++ b/libjpeg-turbo-1.3.0-tiff-ojpeg.patch @@ -0,0 +1,38 @@ +--- a/jdhuff.c ++++ b/jdhuff.c +@@ -649,3 +649,35 @@ + entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL; + } + } ++/* ++ * BEWARE OF KLUDGE: This subroutine is a hack for decoding illegal JPEG-in- ++ * TIFF encapsulations produced by Microsoft's Wang Imaging ++ * for Windows application with the public-domain TIFF Library. Based upon an ++ * examination of selected output files, this program apparently divides a JPEG ++ * bit-stream into consecutive horizontal TIFF "strips", such that the JPEG ++ * encoder's/decoder's DC coefficients for each image component are reset before ++ * each "strip". Moreover, a "strip" is not necessarily encoded in a multiple ++ * of 8 bits, so one must sometimes discard 1-7 bits at the end of each "strip" ++ * for alignment to the next input-Byte storage boundary. IJG JPEG Library ++ * decoder state is not normally exposed to client applications, so this sub- ++ * routine provides the TIFF Library with a "hook" to make these corrections. ++ * It should be called after "jpeg_start_decompress()" and before ++ * "jpeg_finish_decompress()", just before decoding each "strip" using ++ * "jpeg_read_raw_data()" or "jpeg_read_scanlines()". ++ * ++ * This kludge is not sanctioned or supported by the Independent JPEG Group, and ++ * future changes to the IJG JPEG Library might invalidate it. Do not send bug ++ * reports about this code to IJG developers. Instead, contact the author for ++ * advice: Scott B. Marovich , Hewlett-Packard Labs, 6/01. ++ */ ++GLOBAL(void) ++jpeg_reset_huff_decode (register j_decompress_ptr cinfo,register float *refbw) ++{ register huff_entropy_ptr entropy = (huff_entropy_ptr)cinfo->entropy; ++ register int ci = 0; ++ ++ /* Re-initialize DC predictions */ ++ do entropy->saved.last_dc_val[ci] = -refbw[ci << 1]; ++ while (++ci < cinfo->comps_in_scan); ++ /* Discard encoded input bits, up to the next Byte boundary */ ++ entropy->bitstate.bits_left &= ~7; ++} diff --git a/libjpeg-turbo-3.0.2.tar.gz b/libjpeg-turbo-3.0.2.tar.gz new file mode 100644 index 0000000..0dcfaf0 --- /dev/null +++ b/libjpeg-turbo-3.0.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2ce515a78d91b09023773ef2770d6b0df77d674e144de80d63e0389b3a15ca6 +size 2831164 diff --git a/libjpeg-turbo-3.0.2.tar.gz.sig b/libjpeg-turbo-3.0.2.tar.gz.sig new file mode 100644 index 0000000..a173a9a Binary files /dev/null and b/libjpeg-turbo-3.0.2.tar.gz.sig differ diff --git a/libjpeg-turbo.changes b/libjpeg-turbo.changes new file mode 100644 index 0000000..be9bf36 --- /dev/null +++ b/libjpeg-turbo.changes @@ -0,0 +1,1002 @@ +------------------------------------------------------------------- +Mon Feb 5 19:40:36 UTC 2024 - Martin Hauke + +- Update to version 3.0.2 + * Fixed a signed integer overflow in the tj3CompressFromYUV8(), + tj3DecodeYUV8(), tj3DecompressToYUV8(), and tj3EncodeYUV8() + functions, detected by the Clang and GCC undefined behavior + sanitizers, that could be triggered by setting the align + parameter to an unreasonably large value. This issue did not + pose a security threat, but removing the warning made it + easier to detect actual security issues, should they arise in + the future. + * Introduced a new parameter (TJPARAM_MAXMEMORY in the + TurboJPEG C API and TJ.PARAM_MAXMEMORY in the TurboJPEG Java + API) and a corresponding TJBench option (-maxmemory) for + specifying the maximum amount of memory (in megabytes) that + will be allocated for intermediate buffers, which are used + with progressive JPEG compression and decompression, optimized + baseline entropy coding, lossless JPEG compression, and + lossless transformation. The new parameter and option serve + the same purpose as the max_memory_to_use field in the + jpeg_memory_mgr struct in the libjpeg API, the JPEGMEM + environment variable, and the cjpeg/djpeg/jpegtran -maxmemory + option. + * Introduced a new parameter (TJPARAM_MAXPIXELS in the TurboJPEG + C API and TJ.PARAM_MAXPIXELS in the TurboJPEG Java API) and a + corresponding TJBench option (-maxpixels) for specifying the + maximum number of pixels that the decompression, lossless + transformation, and packed-pixel image loading + functions/methods will process. + * Fixed an error ("Unsupported color conversion request") that + occurred when attempting to decompress a 3-component lossless + JPEG image without an Adobe APP14 marker. The decompressor + now assumes that a 3-component lossless JPEG image without an + Adobe APP14 marker uses the RGB colorspace if its component + IDs are 1, 2, and 3. + +------------------------------------------------------------------- +Mon Jan 15 15:56:37 UTC 2024 - Andreas Schwab + +- Do not require SIMD support when it does not exist + +------------------------------------------------------------------- +Mon Jan 1 20:58:26 UTC 2024 - Dirk Müller + +- update to 3.0.1 (bsc#1211542, CVE-2023-2804): + * The x86-64 SIMD functions now use a standard stack frame, + prologue, and epilogue so that debuggers and profilers can + reliably capture backtraces from within the functions. + * Fixed two minor issues in the interblock smoothing algorithm + that caused mathematical (but not necessarily perceptible) + edge block errors when decompressing progressive JPEG images + exactly two MCU blocks in width or that use vertical + chrominance subsampling. + * The TurboJPEG API now supports 4:4:1 (transposed 4:1:1) + chrominance subsampling, which allows losslessly transposed or + rotated 4:1:1 JPEG images to be losslessly cropped, partially + decompressed, or decompressed to planar YUV images. + * Fixed various segfaults and buffer overruns (CVE-2023-2804) + * that occurred when attempting to decompress various + specially-crafted malformed 12-bit-per-component and + 16-bit-per-component lossless JPEG images using color + quantization or merged chroma upsampling/color conversion. The + underlying cause of these issues was that the color + quantization and merged chroma upsampling/color conversion + algorithms were not designed with lossless decompression + in mind. Since libjpeg-turbo explicitly does not support color + conversion when compressing or decompressing lossless JPEG + images, merged chroma upsampling/color conversion never should + have been enabled for such images. Color quantization is a + legacy feature that serves little or no purpose with lossless + JPEG images, so it is also now disabled when decompressing such + images. (As a result, djpeg can no longer decompress a + lossless JPEG image into a GIF image.) + * Fixed an oversight in 1.4 beta1[8] that caused various + segfaults and buffer overruns when attempting to decompress + various specially-crafted malformed 12-bit-per-component JPEG + images using djpeg with both color quantization and RGB565 + color conversion enabled. + * Fixed an issue whereby `jpeg_crop_scanline()` sometimes + miscalculated the downsampled width for components with 4x2 or + 2x4 subsampling factors if decompression scaling was enabled. + This caused the components to be upsampled incompletely, which + caused the color converter to read from uninitialized memory. + With 12-bit data precision, this caused a buffer overrun or + underrun and subsequent segfault if the sample value read from + uninitialized memory was outside of the valid sample range. + * Fixed a long-standing issue whereby the `tj3Transform()` + function, when used with the `TJXOP_TRANSPOSE`, + `TJXOP_TRANSVERSE`, `TJXOP_ROT90`, or `TJXOP_ROT270` transform + operation and without automatic JPEG destination buffer + (re)allocation or lossless cropping, computed the worst-case + transformed JPEG image size based on the source image + dimensions rather than the transformed image dimensions. If a + calling program allocated the JPEG destination buffer based on + the transformed image dimensions, as the API documentation + instructs, and attempted to transform a specially-crafted + 4:2:2, 4:4:0, 4:1:1, or 4:4:1 JPEG source image containing a + large amount of metadata, the issue caused `tj3Transform()` to + overflow the JPEG destination buffer rather than fail + gracefully. The issue could be worked around by setting + `TJXOPT_COPYNONE`. Note that, irrespective of this issue, + `tj3Transform()` cannot reliably transform JPEG source images + that contain a large amount of metadata unless automatic JPEG + destination buffer (re)allocation is used or `TJXOPT_COPYNONE` + is set. + * Significantly sped up the computation of optimal Huffman + tables. This speeds up the compression of tiny images by as + much as 2x and provides a noticeable speedup for images as + large as 256x256 when using optimal Huffman tables. + * All deprecated fields, constructors, and methods in the + TurboJPEG Java API have been removed. + * Arithmetic entropy coding is now supported with + 12-bit-per-component JPEG images. + * Overhauled the TurboJPEG API to address long-standing + limitations and to make the API more extensible and intuitive. + +------------------------------------------------------------------- +Fri Jun 23 17:39:37 UTC 2023 - pgajdos@suse.com + +- merge two spec files into one + +------------------------------------------------------------------- +Thu May 4 11:37:31 UTC 2023 - Dominique Leuenberger + +- Add _multibuild to define 2nd spec file as additional flavor. + Eliminates the need for source package links in OBS. + +------------------------------------------------------------------- +Wed Mar 8 13:00:00 UTC 2023 - Martin Pluskal + +- Build AVX2 enabled hwcaps library for x86_64-v3 + +------------------------------------------------------------------- +Tue Feb 21 08:22:09 UTC 2023 - Paolo Stivanin + +- update to 2.1.5.1: + * Fixed a regression introduced by 2.0 beta1[15] that caused a buffer + overrun in the progressive Huffman encoder when attempting to transform + a specially-crafted malformed 12-bit-per-component JPEG image into a + progressive 12-bit-per-component JPEG image using a 12-bit-per-component + build of libjpeg-turbo. + * Fixed an issue whereby, when using a 12-bit-per-component build of + libjpeg-turbo (-DWITH_12BIT=1), passing samples with values greater than 4095 + or less than 0 to jpeg_write_scanlines() caused a buffer overrun or + underrun in the RGB-to-YCbCr color converter. + * Fixed a floating point exception that occurred when attempting to use + the jpegtran -drop and -trim options to losslessly transform a + specially-crafted malformed JPEG image. + * Fixed an issue in tjBufSizeYUV2() whereby it returned a bogus result, + rather than throwing an error, if the align parameter was not a power of 2. + * Fixed a similar issue in tjCompressFromYUV() whereby it generated a corrupt + JPEG image in certain cases, rather than throwing an error, + if the align parameter was not a power of 2. + * Fixed an issue whereby tjDecompressToYUV2(), which is a wrapper for + tjDecompressToYUVPlanes(), used the desired YUV image dimensions + rather than the actual scaled image dimensions when computing the plane + pointers and strides to pass to tjDecompressToYUVPlanes(). + This caused a buffer overrun and subsequent segfault if the desired + image dimensions exceeded the scaled image dimensions. + * Fixed an issue whereby, when decompressing a 12-bit-per-component JPEG + image (-DWITH_12BIT=1) using an alpha-enabled output color space such as + JCS_EXT_RGBA, the alpha channel was set to 255 rather than 4095. + * Fixed an issue whereby the Java version of TJBench did not accept a range + of quality values. + * Fixed an issue whereby, when -progressive was passed to TJBench, + the JPEG input image was not transformed into a progressive JPEG image + prior to decompression. + +------------------------------------------------------------------- +Sat Dec 24 12:04:53 UTC 2022 - Dirk Stoecker + +- Add explicit provides for jpegtran, so it can be installed easier + +------------------------------------------------------------------- +Wed Aug 17 19:01:13 UTC 2022 - Dirk Müller + +- update to 2.1.4: + * The `tjDecompressHeader3()` function in the TurboJPEG C API and the + `TJDecompressor.setSourceImage()` method in the TurboJPEG Java API now accept + "abbreviated table specification" (AKA "tables-only") datastreams, which can be + used to prime the decompressor with quantization and Huffman tables that can be + used when decompressing subsequent "abbreviated image" datastreams. + * libjpeg-turbo now performs run-time detection of AltiVec instructions on + OS X/PowerPC systems if AltiVec instructions are not enabled at compile time. + This allows both AltiVec-equipped (PowerPC G4 and G5) and non-AltiVec-equipped + (PowerPC G3) CPUs to be supported using the same build of libjpeg-turbo. + * Fixed an error ("Bogus virtual array access") that occurred when attempting + to decompress a progressive JPEG image with a height less than or equal to one + iMCU (8 * the vertical sampling factor) using buffered-image mode with + interblock smoothing enabled. + * Fixed two issues that prevented partial image decompression from working + properly with buffered-image mode: + - Attempting to call `jpeg_crop_scanline()` after + `jpeg_start_decompress()` but before `jpeg_start_output()` resulted in an error + ("Improper call to JPEG library in state 207".) + - Attempting to use `jpeg_skip_scanlines()` resulted in an error ("Bogus + virtual array access") under certain circumstances. + +------------------------------------------------------------------- +Mon Aug 15 18:07:30 UTC 2022 - Tom Mbrt + +- update to 2.1.4: + * Fixed a regression introduced in 2.1.3 that caused build failures with + Visual Studio 2010. + + * The tjDecompressHeader3() function in the TurboJPEG C API and the + TJDecompressor.setSourceImage() method in the TurboJPEG Java API now + accept "abbreviated table specification" (AKA "tables-only") datastreams, + which can be used to prime the decompressor with quantization and Huffman + tables that can be used when decompressing subsequent "abbreviated image" + datastreams. + + * libjpeg-turbo now performs run-time detection of AltiVec instructions on + OS X/PowerPC systems if AltiVec instructions are not enabled at compile + time. This allows both AltiVec-equipped (PowerPC G4 and G5) and + non-AltiVec-equipped (PowerPC G3) CPUs to be supported using the same + build of libjpeg-turbo. + + * Fixed an error ("Bogus virtual array access") that occurred when + attempting to decompress a progressive JPEG image with a height less than + or equal to one iMCU (8 * the vertical sampling factor) using + buffered-image mode with interblock smoothing enabled. This was a + regression introduced by 2.1 beta1[6(b)]. + + * Fixed two issues that prevented partial image decompression from working + properly with buffered-image mode: + * Attempting to call jpeg_crop_scanline() after jpeg_start_decompress() + but before jpeg_start_output() resulted in an error ("Improper call to + JPEG library in state 207".) + * Attempting to use jpeg_skip_scanlines() resulted in an error ("Bogus + virtual array access") under certain circumstances. + +------------------------------------------------------------------- +Tue Jul 5 08:08:38 UTC 2022 - Jan Engelhardt + +- Add requires between baselibs + +------------------------------------------------------------------- +Mon Apr 18 20:36:09 UTC 2022 - Cristian Rodríguez + +- Use nasm instead of yasm, the latter has not released any update + in 7 years. + +------------------------------------------------------------------- +Sun Mar 20 19:33:28 UTC 2022 - Dirk Müller + +- update to 2.1.3: + * Fixed a regression introduced by 2.0 beta1[7] whereby cjpeg compressed PGM + input files into full-color JPEG images unless the `-grayscale` option was + used. + + * cjpeg now automatically compresses GIF and 8-bit BMP input files into + grayscale JPEG images if the input files contain only shades of gray. + + * The build system now enables the intrinsics implementation of the AArch64 + (Arm 64-bit) Neon SIMD extensions by default when using GCC 12 or later. + + * Fixed a segfault that occurred while decompressing a 4:2:0 JPEG image using + the merged (non-fancy) upsampling algorithms (that is, with + `cinfo.do_fancy_upsampling` set to `FALSE`) along with `jpeg_crop_scanline()`. + Specifically, the segfault occurred if the number of bytes remaining in the + output buffer was less than the number of bytes required to represent one + uncropped scanline of the output image. For that reason, the issue could only + be reproduced using the libjpeg API, not using djpeg. + +------------------------------------------------------------------- +Wed Nov 24 21:39:14 UTC 2021 - Dirk Müller + +- update to 2.1.2: + * Fixed a regression introduced by 2.1 beta1[13] that caused the remaining + GAS implementations of AArch64 (Arm 64-bit) Neon SIMD functions (which are used + by default with GCC for performance reasons) to be placed in the `.rodata` + section rather than in the `.text` section. This caused the GNU linker to + automatically place the `.rodata` section in an executable segment, which + prevented libjpeg-turbo from working properly with other linkers and also + represented a potential security risk. + * Fixed an issue whereby the `tjTransform()` function incorrectly computed the + MCU block size for 4:4:4 JPEG images with non-unary sampling factors and thus + unduly rejected some cropping regions, even though those regions aligned with + 8x8 MCU block boundaries. + * Fixed a regression introduced by 2.1 beta1[13] that caused the build system + to enable the Arm Neon SIMD extensions when targetting Armv6 and other legacy + architectures that do not support Neon instructions. + * libjpeg-turbo now performs run-time detection of AltiVec instructions on + FreeBSD/PowerPC systems if AltiVec instructions are not enabled at compile + time. This allows both AltiVec-equipped and non-AltiVec-equipped CPUs to be + supported using the same build of libjpeg-turbo. + * cjpeg now accepts a `-strict` argument similar to that of djpeg and + jpegtran, which causes the compressor to abort if an LZW-compressed GIF input + image contains incomplete or corrupt image data. + +------------------------------------------------------------------- +Wed Sep 29 13:03:15 UTC 2021 - pgajdos@suse.com + +- previous version updates fixes following bugs: + CVE-2014-9092, CVE-2018-14498, CVE-2019-2201, CVE-2020-17541 + (bsc#1128712, bsc#1186764, bsc#807183, bsc#906761) + +------------------------------------------------------------------- +Fri Aug 20 11:43:06 UTC 2021 - pgajdos@suse.com + +- version update to 2.1.1 + 1. Fixed a regression introduced in 2.1.0 that caused build failures + with non-GCC-compatible compilers for Un*x/Arm platforms. + 2. Fixed a regression introduced by 2.1 beta1[13] that prevented the + Arm 32-bit (AArch32) Neon SIMD extensions from building unless + the C compiler flags included -mfloat-abi=softfp or -mfloat-abi=hard. + 3. Fixed an issue in the AArch32 Neon SIMD Huffman encoder whereby + reliance on undefined C compiler behavior led to crashes + ("SIGBUS: illegal alignment") on Android systems when running + AArch32/Thumb builds of libjpeg-turbo built with recent versions + of Clang. + 4. Added a command-line argument (-copy icc) to jpegtran that causes + it to copy only the ICC profile markers from the source file and + discard any other metadata. + 5. libjpeg-turbo should now build and run on CHERI-enabled + architectures, which use capability pointers that are larger than + the size of size_t. + 6. Fixed a regression introduced by 2.1 beta1[5] that caused a segfault + in the 64-bit SSE2 Huffman encoder when attempting to losslessly + transform a specially-crafted malformed JPEG image. + +------------------------------------------------------------------- +Tue May 4 11:12:57 UTC 2021 - Dirk Müller + +- disable SIMD for armv6hl, not available + +------------------------------------------------------------------- +Mon Apr 26 15:30:08 UTC 2021 - Guillaume GARDET + +- version update to 2.1.0 + lot of changes, see + * https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/2.0.90 + * https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/2.1.0 + +------------------------------------------------------------------- +Mon Jan 11 10:58:07 UTC 2021 - Andreas Schwab + +- Fix setting of FLOATTEST + +------------------------------------------------------------------- +Mon Dec 28 15:39:18 UTC 2020 - pgajdos@suse.com + +- version update to 2.0.6 + 1. Fixed "using JNI after critical get" errors that occurred on Android + platforms when using any of the YUV encoding/compression/decompression/decoding + methods in the TurboJPEG Java API. + 2. Fixed or worked around multiple issues with `jpeg_skip_scanlines()`: + - Fixed segfaults or "Corrupt JPEG data: premature end of data segment" + errors in `jpeg_skip_scanlines()` that occurred when decompressing 4:2:2 or + 4:2:0 JPEG images using merged (non-fancy) upsampling/color conversion (that + is, when setting `cinfo.do_fancy_upsampling` to `FALSE`.) 2.0.0[6] was a + similar fix, but it did not cover all cases. + - `jpeg_skip_scanlines()` now throws an error if two-pass color + quantization is enabled. Two-pass color quantization never worked properly + with `jpeg_skip_scanlines()`, and the issues could not readily be fixed. + - Fixed an issue whereby `jpeg_skip_scanlines()` always returned 0 when + skipping past the end of an image. + 3. The Arm 64-bit (Armv8) Neon SIMD extensions can now be built using MinGW + toolchains targetting Arm64 (AArch64) Windows binaries. + 4. Fixed unexpected visual artifacts that occurred when using + `jpeg_crop_scanline()` and interblock smoothing while decompressing only the DC + scan of a progressive JPEG image. + 5. Fixed an issue whereby libjpeg-turbo would not build if 12-bit-per-component + JPEG support (`WITH_12BIT`) was enabled along with libjpeg v7 or libjpeg v8 + API/ABI emulation (`WITH_JPEG7` or `WITH_JPEG8`.) +- modified sources + % libjpeg-turbo.keyring + +------------------------------------------------------------------- +Wed Aug 12 21:24:44 UTC 2020 - Matthias Eliasson + +- Update to version 2.0.5 + * Worked around issues in the MIPS DSPr2 SIMD extensions that caused failures + in the libjpeg-turbo regression tests. Specifically, the + jsimd_h2v1_downsample_dspr2() and jsimd_h2v2_downsample_dspr2() functions + in the MIPS DSPr2 SIMD extensions are now disabled until/unless they can be + fixed, and other functions that are incompatible with big endian MIPS CPUs + are disabled when building libjpeg-turbo for such CPUs. + * Fixed an oversight in the TJCompressor.compress(int) method in the + TurboJPEG Java API that caused an error ("java.lang.IllegalStateException: + No source image is associated with this instance") when attempting to use + that method to compress a YUV image. + * Fixed an issue (CVE-2020-13790) in the PPM reader that caused a buffer + overrun in cjpeg, TJBench, or the tjLoadImage() function if one of the + values in a binary PPM/PGM input file exceeded the maximum value defined in + the file's header and that maximum value was less than 255. libjpeg-turbo + 1.5.0 already included a similar fix for binary PPM/PGM files with maximum + values greater than 255. + * The TurboJPEG API library's global error handler, which is used in + functions such as tjBufSize() and tjLoadImage() that do not require a + TurboJPEG instance handle, is now thread-safe on platforms that support + thread-local storage. +- Fix source verification +- Drop patches fixed upstream: + * ctest-depends.patch + * libjpeg-turbo-CVE-2020-13790.patch +- Run spec-cleaner + * Remove package groups + * Use make macros + +------------------------------------------------------------------- +Mon Jun 8 11:49:47 UTC 2020 - pgajdos@suse.com + +- security update +- added patches + fix CVE-2020-13790 [bsc#1172491], heap-based buffer over-read in get_rgb_row() in rdppm.c via a malformed PPM input file + + libjpeg-turbo-CVE-2020-13790.patch + +------------------------------------------------------------------- +Sun Mar 29 10:02:02 UTC 2020 - Aaron Stern + +- Upate to version 2.0.4: +- bug 388 was fixed upstream + https://github.com/libjpeg-turbo/libjpeg-turbo/issues/388 +- removed patches, as it is included in this release. + * Fixed a regression in the Windows packaging system + (introduced by 2.0 beta1[2]) whereby, if both the 64-bit libjpeg-turbo + SDK for GCC and the 64-bit libjpeg-turbo SDK for Visual C++ were installed + on the same system, only one of them could be uninstalled. + * Fixed a signed integer overflow and subsequent segfault that occurred when + attempting to decompress images with more than 715827882 pixels using the 64-bit C version of TJBench. + * Fixed out-of-bounds write in tjDecompressToYUV2() and tjDecompressToYUVPlanes() + (sometimes manifesting as a double free) that occurred when attempting to decompress + grayscale JPEG images that were compressed with a sampling factor other than 1 + (for instance, with cjpeg -grayscale -sample 2x2). + * Fixed a regression introduced by 2.0.2[5] that caused the TurboJPEG API to incorrectly + identify some JPEG images with unusual sampling factors as 4:4:4 JPEG images. + This was known to cause a buffer overflow when attempting to decompress some such images using + tjDecompressToYUV2() or tjDecompressToYUVPlanes(). + * Fixed an issue, detected by ASan, whereby attempting to losslessly transform a specially-crafted + malformed JPEG image containing an extremely-high-frequency coefficient block + (junk image data that could never be generated by a legitimate JPEG compressor) could cause the + Huffman encoder's local buffer to be overrun. (Refer to 1.4.0[9] and 1.4beta1[15].) + Given that the buffer overrun was fully contained within the stack and did not cause a segfault + or other user-visible errant behavior, and given that the lossless transformer (unlike the decompressor) + is not generally exposed to arbitrary data exploits, this issue did not likely pose a security risk. + The ARM 64-bit (ARMv8) NEON SIMD assembly code now stores constants in a separate read-only data + section rather than in the text section, to support execute-only memory layouts. +- libjpeg-turbo-issue-388.patch upstreamed + +------------------------------------------------------------------- +Tue Mar 17 05:52:14 UTC 2020 - John Whately + +- Added If statments for Fedora not having sertain openSUSE macros + +------------------------------------------------------------------- +Tue Nov 12 14:09:12 UTC 2019 - pgajdos@suse.com + +- fix upstream bug 388 [bsc#1156402] +- added patches + https://github.com/libjpeg-turbo/libjpeg-turbo/issues/388 + + libjpeg-turbo-issue-388.patch + +------------------------------------------------------------------- +Sat Oct 5 09:08:03 UTC 2019 - Bjørn Lie + +- Update to version 2.0.3: + * Fixed "using JNI after critical get" errors that occurred on + Android platforms when passing invalid arguments to certain + methods in the TurboJPEG Java API. + * Fixed a regression in the SIMD feature detection code, + introduced by the AVX2 SIMD extensions (2.0 beta1), that was + known to cause an illegal instruction exception, in rare cases, + on CPUs that lack support for CPUID leaf (or on which the + maximum CPUID leaf has been limited by way of a BIOS setting.) + * The 4:4:0 (h1v2) fancy (smooth) chroma upsampling algorithm in + the decompressor now uses a similar bias pattern to that of the + 4:2:2 (h2v1) fancy chroma upsampling algorithm, rounding up or + down the upsampled result for alternate pixels rather than + always rounding down. This ensures that, regardless of whether + a 4:2:2 JPEG image is rotated or transposed prior to + decompression (in the frequency domain) or after decompression + (in the spatial domain), the final image will be similar. + * Fixed an integer overflow and subsequent segfault that occurred + when attempting to compress or decompress images with more than + 1 billion pixels using the TurboJPEG API. + * Fixed a regression introduced by 2.0 beta1[15] whereby + attempting to generate a progressive JPEG image on an + SSE2-capable CPU using a scan script containing one or more + scans with lengths divisible by 16 would result in an error + ("Missing Huffman code table entry") and an invalid JPEG image. + * Fixed an issue whereby `tjDecodeYUV()` and + `tjDecodeYUVPlanes()` would throw an error ("Invalid + progressive parameters") or a warning ("Inconsistent + progression sequence") if passed a TurboJPEG instance that was + previously used to decompress a progressive JPEG image. + +------------------------------------------------------------------- +Wed Mar 27 06:46:43 UTC 2019 - pgajdos@suse.com + +- use -O0 for debugging like everywhere (better experience) + +------------------------------------------------------------------- +Wed Mar 13 12:02:57 UTC 2019 - pgajdos@suse.com + +- updated to version 2.0.2: + 1. Fixed a regression introduced by 2.0.1[5] that prevented a runtime search + path (rpath) from being embedded in the libjpeg-turbo shared libraries and + executables for macOS and iOS. This caused a fatal error of the form + "dyld: Library not loaded" when attempting to use one of the executables, + unless `DYLD_LIBRARY_PATH` was explicitly set to the location of the + libjpeg-turbo shared libraries. + 2. Fixed an integer overflow and subsequent segfault (CVE-2018-20330) that + occurred when attempting to load a BMP file with more than 1 billion pixels + using the `tjLoadImage()` function. + 3. Fixed a buffer overrun (CVE-2018-19664) that occurred when attempting to + decompress a specially-crafted malformed JPEG image to a 256-color BMP using + djpeg. + 4. Fixed a floating point exception that occurred when attempting to + decompress a specially-crafted malformed JPEG image with a specified image + width or height of 0 using the C version of TJBench. + 5. The TurboJPEG API will now decompress 4:4:4 JPEG images with 2x1, 1x2, 3x1, + or 1x3 luminance and chrominance sampling factors. This is a non-standard way + of specifying 1x subsampling (normally 4:4:4 JPEGs have 1x1 luminance and + chrominance sampling factors), but the JPEG format and the libjpeg API both + allow it. + 6. Fixed a regression introduced by 2.0 beta1[7] that caused djpeg to generate + incorrect PPM images when used with the `-colors` option. + 7. Fixed an issue whereby a static build of libjpeg-turbo (a build in which + `ENABLE_SHARED` is `0`) could not be installed using the Visual Studio IDE. + 8. Fixed a severe performance issue in the Loongson MMI SIMD extensions that + occurred when compressing RGB images whose image rows were not 64-bit-aligned. +- modified patches + % ctest-depends.patch (refreshed) +- deleted patches + - libjpeg-turbo-CVE-2018-19644.patch (upstreamed) + - libjpeg-turbo-CVE-2018-20330.patch (upstreamed) +- added sources + + libjpeg-turbo-2.0.2.tar.gz.sig + + libjpeg-turbo.keyring + +------------------------------------------------------------------- +Thu Jan 24 08:51:58 UTC 2019 - Jan Engelhardt + +- Use -Og for debug_build + +------------------------------------------------------------------- +Thu Jan 3 16:45:38 UTC 2019 - Petr Gajdos + +- security update + * CVE-2018-20330 [bsc#1120646] + + libjpeg-turbo-CVE-2018-20330.patch + +------------------------------------------------------------------- +Wed Jan 2 10:13:10 UTC 2019 - Petr Gajdos + +- security update + * CVE-2018-19644 [bsc#1117890] + + libjpeg-turbo-CVE-2018-19644.patch + +------------------------------------------------------------------- +Mon Dec 3 10:48:42 UTC 2018 - Petr Gajdos + +- asan_build: build ASAN included +- debug_build: build more suitable for debugging + +------------------------------------------------------------------- +Tue Nov 13 11:14:01 UTC 2018 - Petr Gajdos + +- update to version 2.0.1: + * jsimd_quantize_float_dspr2() and jsimd_convsamp_float_dspr2() + functions in the MIPS DSPr2 SIMD extensions are now disabled + at compile time if the soft float ABI is enabled + * Fixed a regression in the SIMD feature detection code, + introduced by the AVX2 SIMD extensions + * Fixed out-of-bounds read in cjpeg that occurred when attempting + to compress a specially-crafted malformed color-index + (8-bit-per-sample) Targa file + +------------------------------------------------------------------- +Mon Sep 24 07:11:27 UTC 2018 - schwab@suse.de + +- Define FLOATTEST=64bit on ppc +- ctest-depends.patch: Add missing testsuite depedencies + +------------------------------------------------------------------- +Wed Aug 8 15:45:50 UTC 2018 - jengelh@inai.de + +- Update description and switch out MMX/SSE by the more generic + term SIMD. + +------------------------------------------------------------------- +Wed Aug 1 11:39:01 UTC 2018 - tchvatal@suse.com + +- Version update to 2.0.0: + * Cmake as a buildsystem + * avx support + * Better error handling + * More use of SSE2 +- Drop patch libjpeg-1.4.0-ocloexec.patch; conflicts, would be better + handled by upstream anyway +- Drop patches merged upstream: + * libjpeg-turbo-CVE-2018-11813.patch + * libjpeg-turbo-CVE-2018-1152.patch + +------------------------------------------------------------------- +Tue Jun 19 13:40:32 UTC 2018 - pgajdos@suse.com + +- security update: + * CVE-2018-1152 [bsc#1098155] + + libjpeg-turbo-CVE-2018-1152.patch + +------------------------------------------------------------------- +Tue Jun 12 13:34:11 UTC 2018 - pgajdos@suse.com + +- security update: + * CVE-2018-11813 [bsc#1096209] + + libjpeg-turbo-CVE-2018-11813.patch + * remove redundant libjpeg-turbo-CVE-2017-15232.patch + [bsc#1062937#c17] + +------------------------------------------------------------------- +Mon Dec 18 13:29:30 UTC 2017 - pgajdos@suse.com + +- - update to version 1.5.3 + 1. Fixed a NullPointerException in the TurboJPEG Java wrapper that occurred + when using the YUVImage constructor that creates an instance backed by separate + image planes and allocates memory for the image planes. + 2. Fixed an issue whereby the Java version of TJUnitTest would fail when + testing BufferedImage encoding/decoding on big endian systems. + 3. Fixed a segfault in djpeg that would occur if an output format other than + PPM/PGM was selected along with the `-crop` option. The `-crop` option now + works with the GIF and Targa formats as well (unfortunately, it cannot be made + to work with the BMP and RLE formats due to the fact that those output engines + write scanlines in bottom-up order.) djpeg will now exit gracefully if an + output format other than PPM/PGM, GIF, or Targa is selected along with the + `-crop` option. + 4. Fixed an issue whereby `jpeg_skip_scanlines()` would segfault if color + quantization was enabled. + 5. TJBench (both C and Java versions) will now display usage information if any + command-line argument is unrecognized. This prevents the program from silently + ignoring typos. + 6. Fixed an access violation in tjbench.exe (Windows) that occurred when the + program was used to decompress an existing JPEG image. + 7. Fixed an ArrayIndexOutOfBoundsException in the TJExample Java program that + occurred when attempting to decompress a JPEG image that had been compressed + with 4:1:1 chrominance subsampling. + 8. Fixed an issue whereby, when using `jpeg_skip_scanlines()` to skip to the + end of a single-scan (non-progressive) image, subsequent calls to + `jpeg_consume_input()` would return `JPEG_SUSPENDED` rather than + `JPEG_REACHED_EOI`. + 9. `jpeg_crop_scanlines()` now works correctly when decompressing grayscale + JPEG images that were compressed with a sampling factor other than 1 (for + instance, with `cjpeg -grayscale -sample 2x2`). + +------------------------------------------------------------------- +Thu Oct 12 10:59:03 UTC 2017 - pgajdos@suse.com + +- security update: + * CVE-2017-15232 [bsc#1062937] + + libjpeg-turbo-CVE-2017-15232.patch + +------------------------------------------------------------------- +Thu Oct 12 10:22:05 UTC 2017 - pgajdos@suse.com + +- Update to version 1.5.2 + + Fixed several memory leaks in the TurboJPEG API library that + could occur if the library was built with certain compilers + and optimization levels. + + The libjpeg-turbo memory manager will now honor the + max_memory_to_use structure member in jpeg_memory_mgr, + which can be set to the maximum amount of memory (in bytes) + that libjpeg-turbo should use during decompression or + multi-pass (including progressive) compression. This limit + can also be set using the JPEGMEM environment variable or + using the -maxmemory switch in cjpeg/djpeg/jpegtran. + + TJBench will now run each benchmark for 1 second prior to + starting the timer, in order to improve the consistency of + the results. Furthermore, the -warmup option is now used to + specify the amount of warmup time rather than the number of + warmup iterations. + + Fixed an error (short jump is out of range) that occurred + when assembling the 32-bit x86 SIMD extensions with NASM + versions prior to 2.04. + + Fixed a regression introduced by 1.5 beta1[11] that prevented + the Java version of TJBench from outputting any reference images + (the -nowrite switch was accidentally enabled by default.) + libjpeg-turbo should now build and run with full AltiVec SIMD + acceleration on PowerPC-based AmigaOS 4 and OpenBSD systems. + +------------------------------------------------------------------- +Wed Jan 18 10:07:00 UTC 2017 - bwiedemann@suse.com + +- set build date to enable reproducible builds + +------------------------------------------------------------------- +Wed Sep 21 10:50:36 UTC 2016 - idonmez@suse.com + +- Update to version 1.5.1 fate#324061 + + Fix for PowerPC platforms lacking AltiVec instructions + + Fix ABI problem with clang/llvm on aarch64. + + Fancy upsampling is now supported when decompressing JPEG + images that use 4:4:0 (h1v2) chroma subsampling. + + If merged upsampling isn't SIMD-accelerated but YCbCr-to-RGB + conversion is, then libjpeg-turbo will now disable merged + upsampling when decompressing YCbCr JPEG images into RGB + or extended RGB output images. This significantly speeds up + the decompression of 4:2:0 and 4:2:2 JPEGs on ARM platforms + if fancy upsampling is not used + (for example, if the -nosmooth option to djpeg is specified.) + + The TurboJPEG API will now decompress 4:2:2 and 4:4:0 JPEG + images with 2x2 luminance sampling factors and 2x1 or 1x2 + chrominance sampling factors. + + Fixed an unsigned integer overflow in the libjpeg memory manager. + + Fixed additional negative left shifts and other issues reported + by the GCC and Clang undefined behavior sanitizers when + attempting to decompress specially-crafted malformed JPEG + images. None of these issues posed a security threat, but + removing the warnings makes it easier to detect actual + security issues, should they arise in the future. + + Fixed an out-of-bounds array reference, introduced by + 1.4.902 and detected by the Clang undefined behavior sanitizer, + that could be triggered by a specially-crafted malformed + JPEG image with more than four components. Because the + out-of-bounds reference was still within the same structure, + it was not known to pose a security threat, but removing + the warning makes it easier to detect actual security issues, + should they arise in the future. + +------------------------------------------------------------------- +Wed Jun 8 07:53:26 UTC 2016 - idonmez@suse.com + +- Update to version 1.5.0 + + Fixed an issue whereby a malformed motion-JPEG frame could + cause the "fast path" of libjpeg-turbo's Huffman decoder to + read from uninitialized memory. + + Added libjpeg-turbo version and build information to the global + string table of the libjpeg and TurboJPEG API libraries. + + Fixed a couple of issues in the PPM reader that would cause + buffer overruns in cjpeg if one of the values in a binary + PPM/PGM input file exceeded the maximum value defined in the + file's header. libjpeg-turbo 1.4.2 already included a similar + fix for ASCII PPM/PGM files. Note that these issues were not + security bugs, since they were confined to the cjpeg program + and did not affect any of the libjpeg-turbo libraries. + + Fixed an issue whereby attempting to decompress a JPEG file with + a corrupt header using the tjDecompressToYUV2() function would + cause the function to abort without returning an error and, + under certain circumstances, corrupt the stack. This only + occurred if tjDecompressToYUV2() was called prior to calling + tjDecompressHeader3(), or if the return value from + tjDecompressHeader3() was ignored (both cases represent + incorrect usage of the TurboJPEG API.) + + The jpeg_stdio_src(), jpeg_mem_src(), jpeg_stdio_dest(), + and jpeg_mem_dest() functions in the libjpeg API will now + throw an error if a source/destination manager has already + been assigned to the compress or decompress object by a + different function or by the calling program. + +------------------------------------------------------------------- +Thu Oct 8 07:53:53 UTC 2015 - idonmez@suse.com + +- Update to version 1.4.2 + + Crash fixes + + clang compatibility fixes + + See the included ChangeLog.txt for the details +- Drop libjpeg-turbo-1.4.0-int32.patch, not needed anymore. +- Drop libjpeg-turbo-remove-test.patch, fixed upstream. + +------------------------------------------------------------------- +Thu Mar 5 11:43:27 UTC 2015 - jengelh@inai.de + +- Remove useless same-name provides. Use download URLs not + dependent on directory structure. + +------------------------------------------------------------------- +Mon Mar 2 16:22:23 UTC 2015 - normand@linux.vnet.ibm.com + +- Remove float tests with new libjpeg-turbo-remove-test.patch + same as Fedora bug 1161585 related to upstream issue + https://sourceforge.net/p/libjpeg-turbo/bugs/83/ + +------------------------------------------------------------------- +Sat Jan 10 00:39:57 UTC 2015 - p.drouand@gmail.com + +- Update to version 1.4.0 + + Fixed a build issue on OS X PowerPC platforms (md5cmp failed to build + because OS X does not provide the le32toh() and htole32() functions.) + + The non-SIMD RGB565 color conversion code did not work correctly on big + endian machines. This has been fixed. + + Fixed an issue in tjPlaneSizeYUV() whereby it would erroneously return 1 + instead of -1 if componentID was > 0 and subsamp was TJSAMP_GRAY. + + Fixed an issue in tjBufSizeYUV2() wherby it would erroneously return 0 + instead of -1 if width was < 1. + + The Huffman encoder now uses clz and bsr instructions for bit counting on + ARM64 platforms (see 1.4 beta1 [5].) + + The close() method in the TJCompressor and TJDecompressor Java classes is + now idempotent. Previously, that method would call the native tjDestroy() + function even if the TurboJPEG instance had already been destroyed. This + caused an exception to be thrown during finalization, if the close() method had + already been called. The exception was caught, but it was still an expensive + operation. + + The TurboJPEG API previously generated an error ("Could not determine + subsampling type for JPEG image") when attempting to decompress grayscale JPEG + images that were compressed with a sampling factor other than 1 (for instance, + with 'cjpeg -grayscale -sample 2x2'). Subsampling technically has no meaning + with grayscale JPEGs, and thus the horizontal and vertical sampling factors + for such images are ignored by the decompressor. However, the TurboJPEG API + was being too rigid and was expecting the sampling factors to be equal to 1 + before it treated the image as a grayscale JPEG. + + cjpeg, djpeg, and jpegtran now accept an argument of -version, which will + print the library version and exit. + + Referring to 1.4 beta1 [15], another extremely rare circumstance was + discovered under which the Huffman encoder's local buffer can be overrun + when a buffered destination manager is being used and an + extremely-high-frequency block (basically junk image data) is being encoded. + Even though the Huffman local buffer was increased from 128 bytes to 136 bytes + to address the previous issue, the new issue caused even the larger buffer to + be overrun. Further analysis reveals that, in the absolute worst case (such as + setting alternating AC coefficients to 32767 and -32768 in the JPEG scanning + order), the Huffman encoder can produce encoded blocks that approach double the + size of the unencoded blocks. Thus, the Huffman local buffer was increased to + 256 bytes, which should prevent any such issue from re-occurring in the future. + + The new tjPlaneSizeYUV(), tjPlaneWidth(), and tjPlaneHeight() functions + were not actually usable on any platform except OS X and Windows, because + those functions were not included in the libturbojpeg mapfile. This has been + fixed. + + Restored the JPP(), JMETHOD(), and FAR macros in the libjpeg-turbo header + files. The JPP() and JMETHOD() macros were originally implemented in libjpeg + as a way of supporting non-ANSI compilers that lacked support for prototype + parameters. libjpeg-turbo has never supported such compilers, but some + software packages still use the macros to define their own prototypes. + Similarly, libjpeg-turbo has never supported MS-DOS and other platforms that + have far symbols, but some software packages still use the FAR macro. A pretty + good argument can be made that this is a bad practice on the part of the + software in question, but since this affects more than one package, it's just + easier to fix it here. + + Fixed issues that were preventing the ARM 64-bit SIMD code from compiling + for iOS, and included an ARMv8 architecture in all of the binaries installed by + the "official" libjpeg-turbo SDK for OS X. +- Adapt patches to upstream changes + libjpeg-ocloexec.patch > libjpeg-1.4.0-ocloexec.patch + libjpeg-turbo-1.3.0-int32.patch > libjpeg-turbo-1.4.0-int32.patch +- Remove libjpeg-turbo-CVE-2014-9092.patch; fixed on upstream release +- Bump tminor to 1 + +------------------------------------------------------------------- +Thu Nov 27 09:50:00 UTC 2014 - pgajdos@suse.com + +- security update CVE-2014-9092 [bnc#906761] + * added libjpeg-turbo-CVE-2014-9092.patch + +------------------------------------------------------------------- +Wed Oct 15 11:39:09 UTC 2014 - olaf@aepfle.de + +- Obsolete jpeg version 6b, 8.0.1 and 8.0.2 to avoid conflicts + during zypper dup + +------------------------------------------------------------------- +Mon Mar 31 09:29:11 UTC 2014 - pgajdos@suse.com + +- update to 1.3.1: + * Fixed a bug whereby attempting to encode a progressive JPEG + with arithmetic entropy coding (by passing arguments of + -progressive -arithmetic to cjpeg or jpegtran, for instance) + would result in an error, "Requested feature was omitted at + compile time". + * Fixed a couple of issues whereby malformed JPEG images would + cause libjpeg-turbo to use uninitialized memory during + decompression. + * Fixed an error ("Buffer passed to JPEG library is too small") + that occurred when calling the TurboJPEG YUV encoding function + with a very small (< 5x5) source image, and added a unit test + to check for this error. + * etc. see ChangeLog.txt + +------------------------------------------------------------------- +Thu Feb 20 21:16:13 UTC 2014 - tchvatal@suse.com + +- Provide right name for turbo library 32bit generating. + +------------------------------------------------------------------- +Fri Feb 7 13:55:46 UTC 2014 - tchvatal@suse.com + +- Require libturbojpeg in the devel package. + Otherwise we just have dangling symlink there. + +------------------------------------------------------------------- +Tue Sep 10 12:42:45 UTC 2013 - pgajdos@suse.com + +- update do 1.3.0: + * Fixed a Huffman encoder bug that prevented I/O suspension from + working properly. + * Added support for additional scaling factors (3/8, 5/8, 3/4, + 7/8, 9/8, 5/4, 11/8, 3/2, 13/8, 7/4, 15/8, and 2) when + decompressing. Note that the IDCT will not be SIMD-accelerated + when using any of these new scaling factors. + * The tjDecompressToYUV() function now supports the TJFLAG_FASTDCT + flag. + * cjpeg can now be used to generate JPEG files with the RGB + colorspace (feature ported from jpeg-8d.) + * etc. see ChangeLog.txt + +------------------------------------------------------------------- +Mon May 27 18:21:55 UTC 2013 - crrodriguez@opensuse.org + +- Build with full RELRO as this library is exposed to + possible malicious images. + +------------------------------------------------------------------- +Fri May 17 07:28:47 UTC 2013 - pgajdos@suse.com + +- libjpeg62-turbo package created [bnc#807183] + +------------------------------------------------------------------- +Mon Aug 13 17:05:35 UTC 2012 - dmueller@suse.com + +- selfconflicts are not possible, remove it + +------------------------------------------------------------------- +Mon Jul 23 11:33:56 UTC 2012 - pgajdos@suse.com + +- Update to version 1.2.1: + * fixed heap overflow [bnc#771791] + +------------------------------------------------------------------- +Thu Mar 22 13:25:09 UTC 2012 - idonmez@suse.com + +- Update to version 1.2.0 + * Fixed out-of-bounds read in SSE2 SIMD code + * Added a compile-time macro (LIBJPEG_TURBO_VERSION) that can + be used to check the version of libjpeg-turbo against which + an application was compiled. + * Added new RGBA/BGRA/ABGR/ARGB colorspace extension constants + * libjpeg-turbo will now correctly decompress erroneous + CMYK/YCCK JPEGs whose K component is assigned a component ID + of 1 instead of 4. + * Added SIMD routines for RGB-to-grayscale color conversion + * Improved the performance of the C color conversion routines + * Added a function to the TurboJPEG API that performs lossless + transforms. + * Added support for 4:4:0 (transposed 4:2:2) subsampling + +------------------------------------------------------------------- +Sat Nov 19 20:38:03 UTC 2011 - coolo@suse.com + +- add libtool as buildrequire to avoid implicit dependency + +------------------------------------------------------------------- +Sat Nov 12 22:54:58 UTC 2011 - crrodriguez@opensuse.org + +- Open all file descriptors with O_CLOEXEC, extended description + in the patch file. + +------------------------------------------------------------------- +Thu May 19 14:44:56 CEST 2011 - pgajdos@suse.cz + +- updated to 1.1.1: + * Fixed a 1-pixel error in row 0, column 21 of the luminance + plane generated by tjEncodeYUV(). + * libjpeg-turbo's accelerated Huffman decoder previously + ignored unexpected markers found in the middle of the + JPEG data stream during decompression. It will now + hand off decoding of a particular block to the unaccelerated + Huffman decoder if an unexpected marker is found, so that + the unaccelerated Huffman decoder can generate an appropriate + warning. + * Fixed a bug in jpeg_read_coefficients() whereby it would + not initialize cinfo->image_width and cinfo->image_height + if libjpeg v7 or v8 emulation was enabled. This specifically + caused the jpegoptim program to fail if it was linked against + a version of libjpeg-turbo that was built with libjpeg v7 or + v8 emulation. + * Eliminated excessive I/O overhead that occurred when reading + BMP files in cjpeg. + * + +------------------------------------------------------------------- +Thu Mar 3 13:53:18 CET 2011 - pgajdos@suse.cz + +- updated to 1.1.0: + * Added further protections against invalid Huffman codes. + * Added an extended version of tjDecompressHeader(). + * Added arithmetic encoding and decoding support. + * TurboJPEG/OSS can now compress from/decompress to + grayscale bitmaps. + * Added emulation of the libjpeg v7 and v8 APIs and ABIs. + * Added two new TurboJPEG API functions, tjEncodeYUV() and + tjDecompressToYUV(). + * The TurboJPEG dynamic library now uses versioned symbols. + * Fixed visual artifacts in grayscale JPEG compression + caused by a typo in the RGB-to-chrominance lookup tables. +- see ChangeLog.txt for details. +- removed upstreamed jpegtran.patch and rh639672.patch + +------------------------------------------------------------------- +Tue Dec 14 14:32:56 CET 2010 - pgajdos@suse.cz + +- spec file cleanup + +------------------------------------------------------------------- +Fri Dec 10 13:02:58 UTC 2010 - pgajdos@novell.com + +- this jpeg version will be the default to the prejudice of jpeg8 + from now on + +------------------------------------------------------------------- +Sun Nov 7 12:53:26 UTC 2010 - prusnak@opensuse.org + +- created package based on Fedora one (v 1.0.1) diff --git a/libjpeg-turbo.keyring b/libjpeg-turbo.keyring new file mode 100644 index 0000000..6bd34e7 --- /dev/null +++ b/libjpeg-turbo.keyring @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: SKS 1.1.6 +Comment: Hostname: sks.pod02.fleetstreetops.com + +mQINBF+tkd4BEADFFp/owDcrHfGDEfxJfaDaUlHaxs2F5jWvhyThimpJbuDdrtZ06dAw7CJ+ +LY/53Xo1ogZJZb1UuJ9qFunkA601WmbKeOOxSj4UNdQM+T8oMxJklnQh3iNTb4DeLh6+eS2j +VO/q4lEGYC3XwuinuhpqMsvAFfbDkgSp3nm0rI2hEOysm+UBp/xyBISPzUYKzZGC24MKt8Nz +oevKq86JfVUMkvgb756fWoRrbBkGn3tZEDr3EClMTiQSyxdKdVpwa9EtEuezXptgbQcjXV5H +Hhh8XEF9zbnkY7VYaCn/Cd0ETjscPRig9H2IFjSyF5tmAfezGB5D5kCRu60ufCnFG1YXIuD2 +Mc0o9msHfEwD7Uy7jRgxpgljMeaQhRG2tcwd1fW34vNOBd5spRNULGkdlbzAOczd6RTNrD10 +24xE5OHve2t1+Qc9TyJz8mjAk2bbbeFNYjKTMbKIrxfBEL+kYpUD9mr1xl7lM3qZKrwFvu/C +Rp1rohvW9M7JZLusYthyA8Cv/OL8bQkTYc1Cpod1QCtN1OKt33cyjEKkO5B5EKay0x1vz85X +ATXUbEUeeFe6TLICylK18FxM6i6D7aKJcw0cu1nigvWFrnBhc84xz0d6PwhXGFYVkvMIPFBX +R98rWMJi6Aryby1oQModVyjgefMEl167NNGFUVfjmTZSJP4ywwARAQABtF1UaGUgbGlianBl +Zy10dXJibyBQcm9qZWN0IChTaWduaW5nIGtleSBmb3Igb2ZmaWNpYWwgYmluYXJpZXMpIDxp +bmZvcm1hdGlvbkBsaWJqcGVnLXR1cmJvLm9yZz6JAjYEEwECACAFAl+tkd4CGwMGCwkIBwMC +BBUCCAMEFgIDAQIeAQIXgAAKCRB+wtu29Nv0NEBcEACbJw1RHP2T622KVvO5oq2RW5vRn4Rv ++hOyJgZHsgNkchP+6QqxgVPdxl3N7la286KfDblFGsqvNt7sce873Qlh/KuMcJ+3mBbmO8v7 +4mRbG9aLk/M0UdlZBTnGs9D26jpXfyOGOXVeiFW621ghKq7WbdpXa75rK4afpVP9VFvgvw51 +Ms9ZoAI81+rnp+H2Kkmo328i+HZcIaGo2K/F6rRvhdEz24PwFA9o8xHmSIHiBUYv/oOrlqM3 +VFXcAGwU7zAIATUSmPgmdmcrxlKI75wwAm4tCxk5Vo1BPxCQEP7rjblPDkqLhTjhwphhSu0S +NfpLopiIB4IH8iaM02DhC7SNILhCyKcTyTLdiDQLbY1tCEfYdu90kmD7lLBR+Ek0exOec3QL +ZR8bajj7gmABfL1gkw0UJWST/H+crmTYV2Iu6T96zQo/37xg0XeWKQUsRQv85dK0qyvUxBAp +964ey07DuFz/eLJbX9FzeHhEWS+QRMHntrn211BzhSm7BPWx79wmmyQ8xhof29Z+DsfluS5X +yDnwA9KaZ4g77Ig9sub8RNJxJfVrXns2tTBnVLsysNbdIMT0M42NPk3QWCGcNhCwoyri7fu3 +1AGjeo7bg1mqP4xFZVxsx7CWimFPBemClj+R94c7URT1I5IEK7Q+HxkML49Ou3IF2+aEXKJP +geTXZ4hGBBMRAgAGBQJfrZInAAoJEIXHBE4DP94W3McAoNmyT2L9j+7JbZgNkuKz442R2s7K +AKDh2mL458y99LgK/U7AtLi8uWnVvA== +=R+n+ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/libjpeg-turbo.spec b/libjpeg-turbo.spec new file mode 100644 index 0000000..8c12599 --- /dev/null +++ b/libjpeg-turbo.spec @@ -0,0 +1,230 @@ +# +# spec file for package libjpeg-turbo +# +# 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}" == "" +%global flavor libjpeg-turbo +%endif + +%define asan_build 0 +%define debug_build 0 +%define srcver 3.0.2 +%if "%{flavor}" == "libjpeg-turbo" +%define major 8 +%define minor 3 +%define micro 2 +%define tmajor 0 +%define tminor 3 +%define tmicro 0 +%define tlibver %{tmajor}.%{tminor}.%{tmicro} +%endif +%if "%{flavor}" == "libjpeg62-turbo" +%define major 62 +%define minor 4 +%define micro 0 +%endif +%define libver %{major}.%{minor}.%{micro} +Name: %{flavor} +Version: %{srcver} +Release: 0 +Summary: A SIMD-accelerated library for manipulating JPEG image files +License: BSD-3-Clause +URL: https://libjpeg-turbo.org/ +Source0: https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/%{version}/libjpeg-turbo-%{version}.tar.gz +Source1: https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/%{version}/libjpeg-turbo-%{version}.tar.gz.sig +Source2: libjpeg-turbo.keyring +Source3: baselibs.conf +Patch1: libjpeg-turbo-1.3.0-tiff-ojpeg.patch +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: nasm +BuildRequires: pkgconfig +%if "%{flavor}" == "libjpeg-turbo" +Conflicts: jpeg%{major} +Obsoletes: jpeg = 6b +Obsoletes: jpeg = 8.0.1 +Obsoletes: jpeg = 8.0.2 +Provides: jpeg = %{version} +Obsoletes: jpeg < %{version} +Provides: jpegtran = %{version} +%{?suse_build_hwcaps_libs} +%endif +%if "%{flavor}" == "libjpeg62-turbo" +# needed for tests as we remove the lib here +BuildRequires: libturbojpeg0 >= 8.2.2 +Conflicts: jpeg%{major} +%endif + +%description +The libjpeg-turbo package contains a library of functions for manipulating +JPEG images. It supports architecture-specific SIMD instructions, +such as SSE/SSE2/AVX2, AltiVec, NEON, MIPS DSPR2, and Loongson MMI. +%if "%{flavor}" == "libjpeg-turbo" +It also includes the following command line utilities: + djpeg - decompress a JPEG file to an image file + jpegtran - lossless transformation of JPEG files + rdjpgcom - display text comments from a JPEG file + wrjpgcom - insert text comments into a JPEG file + tjbench - a JPEG decompression/compression benchmark +%endif + +%package -n libjpeg%{major} +Version: %{libver} +Release: 0 +Summary: A SIMD-accelerated JPEG compression/decompression library + +%description -n libjpeg%{major} +A library for manipulating JPEG images. It supports +architecture-specific SIMD instructions, such as SSE/SSE2/AVX2, +AltiVec, NEON, MIPS DSPR2, and Loongson MMI. + +%if "%{flavor}" == "libjpeg-turbo" +%package -n libturbojpeg%{tmajor} +Version: %{version} +Release: 0 +Summary: A SIMD-accelerated JPEG compression/decompression library + +%description -n libturbojpeg%{tmajor} +A library for manipulating JPEG images. It supports +architecture-specific SIMD instructions, such as SSE/SSE2/AVX2, +AltiVec, NEON, MIPS DSPR2, and Loongson MMI. +%endif + +%package -n libjpeg%{major}-devel +Version: %{libver} +Release: 0 +Summary: Development Tools for applications which will use the Libjpeg Library +Requires: libjpeg%{major} = %{version} +%if "%{flavor}" == "libjpeg-turbo" +Requires: libturbojpeg%{tmajor} = %{version} +%endif +Conflicts: libjpeg-devel +Provides: libjpeg-devel = %{version} +Obsoletes: libjpeg-devel < %{version} + +%description -n libjpeg%{major}-devel +The libjpeg-devel package includes the header files and libraries +necessary for compiling and linking programs which will manipulate JPEG +files using the libjpeg library. + +%prep +%autosetup -p1 -n libjpeg-turbo-%{srcver} + +%build +MYLDFLAGS="-Wl,-z,relro,-z,now" +MYCFLAGS="%{optflags}" +%if %{asan_build} +MYLDFLAGS="$MYLDFLAGS -lasan" +MYCFLAGS="$MYCFLAGS -fsanitize=address" +%endif +%if %{debug_build} +MYCFLAGS="$MYCFLAGS -O0 -g" +%endif +%cmake \ +%if "%{flavor}" == "libjpeg-turbo" + -DWITH_JPEG8=ON \ +%endif +%if %{debug_build} || %{asan_build} + -DCMAKE_BUILD_TYPE=DEBUG \ + -DCMAKE_C_FLAGS_DEBUG="$MYCFLAGS" \ +%endif +%ifarch armv6l armv6hl + -DWITH_SIMD=FALSE \ +%endif +%ifarch x86_64 %{ix86} aarch64 ppc64le + -DREQUIRE_SIMD=TRUE \ +%endif + -DCMAKE_SHARED_LINKER_FLAGS="$MYLDFLAGS" \ + -DENABLE_STATIC=OFF \ +%ifarch s390x riscv64 + -DFLOATTEST=fp-contract \ +%endif + %{nil} +%make_build + +%check +%if %{asan_build} +# ASAN needs /proc to be mounted +exit 0 +%endif +export LD_LIBRARY_PATH=%{buildroot}%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} +%if 0%{?fedora_version} || 0%{?centos_version} + ctest --output-on-failure --force-new-ctest-process +%else + %ctest +%endif + +%install +%if 0%{?fedora_version} || 0%{?centos_version} + make DESTDIR=%{buildroot} install/fast +%else + %cmake_install +%endif +# Remove docs, we'll select docs manually +rm -rf %{buildroot}%{_datadir}/doc/ +%if "%{flavor}" == "libjpeg62-turbo" +# Remove unwanted files +rm %{buildroot}%{_bindir}/* +rm %{buildroot}%{_mandir}/man1/* +# libjpegturbo is provided with libjpeg-turbo.spec yet +rm %{buildroot}%{_includedir}/turbojpeg.h +rm %{buildroot}%{_libdir}/libturbojpeg.so* +rm %{buildroot}%{_libdir}/pkgconfig/libturbojpeg.pc +rm -r %{buildroot}%{_libdir}/cmake +%endif + +%post -n libjpeg%{major} -p /sbin/ldconfig +%postun -n libjpeg%{major} -p /sbin/ldconfig +%if "%{flavor}" == "libjpeg-turbo" +%post -n libturbojpeg%{tmajor} -p /sbin/ldconfig +%postun -n libturbojpeg%{tmajor} -p /sbin/ldconfig +%endif + +%if "%{flavor}" == "libjpeg-turbo" +%files +%doc README.md change.log ChangeLog.md +%doc usage.txt wizard.txt +%{_bindir}/* +%{_mandir}/man1/* +%endif + +%files -n libjpeg%{major} +%license LICENSE.md +%{_libdir}/libjpeg.so.%{libver} +%{_libdir}/libjpeg.so.%{major} + +%if "%{flavor}" == "libjpeg-turbo" +%files -n libturbojpeg%{tmajor} +%license LICENSE.md +%{_libdir}/libturbojpeg.so.%{tmajor} +%{_libdir}/libturbojpeg.so.%{tlibver} +%endif + +%files -n libjpeg%{major}-devel +%{_includedir}/*.h +%{_libdir}/libjpeg.so +%{_libdir}/pkgconfig/libjpeg.pc +%doc coderules.txt jconfig.txt libjpeg.txt structure.txt tjexample.c +%if "%{flavor}" == "libjpeg-turbo" +%{_libdir}/libturbojpeg.so +%{_libdir}/pkgconfig/libturbojpeg.pc +%dir %{_libdir}/cmake/libjpeg-turbo +%{_libdir}/cmake/libjpeg-turbo/* +%endif + +%changelog