From 17d5c10c8edea30f65340108ae76b6e8485fe775 Mon Sep 17 00:00:00 2001 From: Evgenii Kliuchnikov Date: Fri, 20 Mar 2026 12:55:26 +0000 Subject: [PATCH] Updated the Debian build Borrowed from #31 --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- CHANGELOG.md | 394 +----------------- CMakeLists.txt | 4 +- bash_test.sh | 10 +- ci.sh | 10 +- debian/changelog | 124 +----- debian/control | 114 +++-- debian/copyright | 2 +- debian/jpegli.install | 3 + debian/jxl.install | 3 - ...bjxl-dev.install => libjpegli-dev.install} | 0 debian/libjpegli.install | 1 + debian/libjxl.install | 1 - lib/CMakeLists.txt | 20 +- lib/cms/libjxl_cms.pc.in | 2 +- lib/jxl_cms.cmake | 4 +- lib/jxl_extras.cmake | 4 +- lib/jxl_threads.cmake | 4 +- lib/threads/libjxl_threads.pc.in | 2 +- 19 files changed, 129 insertions(+), 575 deletions(-) create mode 100644 debian/jpegli.install delete mode 100644 debian/jxl.install rename debian/{libjxl-dev.install => libjpegli-dev.install} (100%) create mode 100644 debian/libjpegli.install delete mode 100644 debian/libjxl.install diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index a7a142986..bc7d569ac 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -23,7 +23,7 @@ If applicable, add screenshots or example input/output images to help explain yo - OS: [e.g. Windows] - Compiler version: [e.g. clang 11.0.1] - CPU type: [e.g. x86_64] - - cjxl/djxl version string: [e.g. cjxl [v0.3.7 | SIMD supported: SSE4,Scalar]] + - cjpegli/djpegli version string: [e.g. cjpegli [v0.3.7 | SIMD supported: SSE4,Scalar]] **Additional context** Add any other context about the problem here. diff --git a/CHANGELOG.md b/CHANGELOG.md index a96bb68fe..38fb86642 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,397 +7,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased -### Fixed - - Huffman lookup table size fix (#3871 - - [CVE-2024-11403](https://www.cve.org/cverecord?id=CVE-2024-11403)) - - Check height limit in modular trees. (#3943 - - [CVE-2024-11498](https://www.cve.org/cverecord?id=CVE-2024-11498)) - -## [0.11.0] - 2024-09-13 - -### Added - - Gain Map API (#3552 and #3628): `JxlGainMapBundle` struct and API functions - to read and write gain map bundles`JxlGainMapWriteBundle` and - `JxlGainMapReadBundle` as well as handling compressed ICC profiles: - `JxlICCProfileEncode` and `JxlICCProfileDecode`. - - decoder API: added `JXL_DEC_BOX_COMPLETE` event to signal that the output - buffer for the current box has received all contents. Previously, this was - to be determined from the fact that the decoder had moved on either to - `JXL_DEC_SUCCESS` or to another subsequent `JXL_DEC_BOX`. This change is - made backward-compatible by the fact that the new event must be explicitly - subscribed to, and that `JXL_DEC_SUCCESS` / `JXL_DEC_BOX` still occur - afterwards and still imply that the previous box must be complete. - -### Changed / clarified - - avoiding abort in release build (#3631 and #3639) - -## [0.10.2] - 2024-03-08 - -### Fixed - - bugs in (lossless) encoding (#3367, #3359 and #3386) - - re-enable installation of MIME file (#3375) - - bugs in streaming mode (#3379 and #3380) - -## [0.10.1] - 2024-02-28 - -### Fixed - - reduce allocations (#3336 and #3339), - fixing a significant speed regression present since 0.9.0 - - bug in streaming encoding (#3331) - -## [0.10.0] - 2024-02-21 - -### Added - - decoder API: added `JxlDecoderGetBoxSizeContents` for getting the size of the - content of a box without the headers. - - encoder API: implemented new api functions for streaming encoding. - -### Changed / clarified - - decoder/encoder API: return failure when surface allocation fail - - encoder API / cjxl: updated modular effort levels to faster settings; the - effort range is now 1-10, with 11 available in advanced mode. - -## [0.9.2] - 2024-02-07 - -### Fixed - - bugs in the gdk-pixbuf plugin - - some build issues - -## [0.9.1] - 2024-01-08 - -### Fixed - - multiple build issues - -## [0.9.0] - 2023-12-22 - -### Added - - encoder API: add `JxlEncoderSetExtraChannelDistance` to adjust the quality - of extra channels (like alpha) separately. - - encoder API: new api functions for streaming encoding: - - `JxlEncoderSetOutputProcessor` - - `JxlEncoderFlushInput` - - `JxlEncoderOutputProcessor` struct - - `JxlEncoderSetOutputCallback` - - `JxlChunkedFrameInputSource` struct - - `JxlEncoderAddChunkedFrame` - - encoder API: new options for more fine-grained control over metadata - preservation when using `JxlEncoderAddJPEGFrame`: - - `JXL_ENC_FRAME_SETTING_JPEG_KEEP_EXIF` - - `JXL_ENC_FRAME_SETTING_JPEG_KEEP_XMP` - - `JXL_ENC_FRAME_SETTING_JPEG_KEEP_JUMBF` - - encoder API: new function `JxlEncoderSetUpsamplingMode` to change the upsampling - method, e.g. to use nearest-neighbor upsampling for pixel art - - decoder API: implemented `JxlDecoderSetOutputColorProfile` and - `JxlDecoderSetCms` to enable decoding to desired colorspace. - - cjxl can now be used to explicitly add/update/strip Exif/XMP/JUMBF metadata using - the decoder-hints syntax, e.g. `cjxl input.ppm -x exif=input.exif output.jxl` - - djxl can now be used to extract Exif/XMP/JUMBF metadata - - encoder API: new function `JxlEncoderDistanceFromQuality` for convenience to - calculate a `distance` given a `quality` - -### Removed - - API: the Butteraugli API (`jxl/butteraugli.h`) was removed. - - encoder and decoder API: all deprecated functions were removed: - `JxlDecoderDefaultPixelFormat`, `JxlEncoderOptionsSetLossless`, - `JxlEncoderOptionsSetEffort`, `JxlEncoderOptionsSetDecodingSpeed`, - `JxlEncoderOptionsSetDistance`, `JxlEncoderOptionsCreate`, as well as - the deprecated enumerator values `JXL_DEC_EXTENSIONS`, `JXL_ENC_NOT_SUPPORTED`, - `JXL_TYPE_BOOLEAN`, `JXL_TYPE_UINT32`, and deprecated type `JxlEncoderOptions`. - - decoder API: the signature of `JxlDecoderGetColorAsEncodedProfile`, - `JxlDecoderGetICCProfileSize`, and `JxlDecoderGetColorAsICCProfile` - changed: a deprecated unused argument was removed. - -### Changed / clarified - - changed the name of the cjxl flag `photon_noise` to `photon_noise_iso` - - fixed how large boxes are decoded (#2958) - - fixed encoding files with unreadable patches (#3042, #3046) - -## [0.8.2] - 2023-06-14 - -### Changed - - Security: Fix an integer underflow bug in patch decoding (#2551- CVE-2023-35790). - -## [0.8.1] - 2023-02-03 - -### Changed - - Allow fast-lossless for 16-bit float input (#2093) - - Fix bug in palette (#2120) - - Security: Fix OOB read in exif.h (#2101 - [CVE-2023-0645](https://www.cve.org/cverecord?id=CVE-2023-0645)) - -## [0.8.0] - 2023-01-18 - -### Added - - decoder API: new function `JxlDecoderSetImageBitDepth` to set the bit depth - of the output buffer. - - decoder API proposal: add `JxlDecoderSetOutputColorProfile` and - `JxlDecoderSetCms` to enable decoding to desired colorspace; NB: not - implemented yet. - - encoder API: new function `JxlEncoderSetFrameBitDepth` to set the bit depth - of the input buffer. - - encoder API: add an effort 10 option for lossless compression; using this - setting requires calling `JxlEncoderAllowExpertOptions`. - - encoder API: new `JXL_ENC_FRAME_SETTING_JPEG_COMPRESS_BOXES` enum value to - allow explicit control of metadata compression - -### Removed - - common API: removed `JxlIntrinsicSizeHeader` - - decoder API: removed deprecated `JXL_DEC_NEED_DC_OUT_BUFFER` and - `JXL_DEC_DC_IMAGE` events, `JxlDecoderDCOutBufferSize` and - `JxlDecoderSetDCOutBuffer` functions - -### Changed / clarified - - encoder API: `JxlEncoderProcessOutput` requires at least 32 bytes of output - space to proceed and guarantees that at least one byte will be written - -## [0.7] - 2022-07-21 - -### Added - - Export version information in headers. - - decoder API: Ability to decode the content of metadata boxes: - `JXL_DEC_BOX`, `JXL_DEC_BOX_NEED_MORE_OUTPUT`, `JxlDecoderSetBoxBuffer`, - `JxlDecoderGetBoxType`, `JxlDecoderGetBoxSizeRaw` and - `JxlDecoderSetDecompressBoxes`. - - decoder API: ability to mark the input is finished: `JxlDecoderCloseInput`. - - decoder API: ability to request updates on different progressive events using - `JxlDecoderSetProgressiveDetail`; currently supported events are - `kDC`, `kLastPasses` and `kPasses`. - - decoder API: ability to specify desired intensity target using - `JxlDecoderSetDesiredIntensityTarget` - - decoder API: new function `JxlDecoderSetCoalesced` to allow decoding - non-coalesced (unblended) frames, e.g. layers of a composite still image - or the cropped frames of a recompressed GIF/APNG. - - decoder API: new function `JxlDecoderSetUnpremultiplyAlpha` to set - preference for getting an associated alpha channel with premultiplied or - unpremultiplied colors. - - decoder API: field added to `JxlFrameHeader`: a `JxlLayerInfo` struct - that contains crop dimensions and offsets and blending information for - the non-coalesced case. - - decoder API: new function `JxlDecoderGetExtraChannelBlendInfo` to get - the blending information for extra channels in the non-coalesced case. - - decoder API: new function `JxlDecoderSetMultithreadedImageOutCallback`, - allowing output callbacks to receive more information about the number of - threads on which they are running. - - decoder API: new function `JxlDecoderSkipCurrentFrame` to skip processing - the current frame after a progressive detail is reached. - - decoder API: new function `JxlDecoderGetIntendedDownsamplingRatio` to get - the intended downsampling ratio of progressive steps, based on the - information in the frame header. - - decoder API: new function `JxlDecoderSetRenderSpotcolors` to allow disabling - rendering of spot colors. - - decoder/encoder API: add two fields to `JXLBasicInfo`: `intrinsic_xsize` - and `intrinsic_ysize` to signal the intrinsic size. - - encoder API: ability to add metadata boxes, added new functions - `JxlEncoderAddBox`, `JxlEncoderUseBoxes`, `JxlEncoderCloseBoxes` and - `JxlEncoderCloseFrames`. - - encoder API: added ability to set several encoder options / extra fields to - frames using `JxlEncoderSetFrameName`, `JxlEncoderFrameSettingsSetOption`, - `JxlEncoderFrameSettingsSetFloatOption`. - - encoder API: added ability to check required codestream compatibility level - and force specified using `JxlEncoderGetRequiredCodestreamLevel` and - `JxlEncoderSetCodestreamLevel`. - - encoder API: added ability to force emitting box-based container format - using `JxlEncoderUseContainer`. - - encoder API: added ability to store JPEG metadata for lossless reconstruction - using `JxlEncoderStoreJPEGMetadata` - - encoder API: new functions `JxlEncoderSetFrameHeader` and - `JxlEncoderSetExtraChannelBlendInfo` to set animation - and blending parameters of the frame, and `JxlEncoderInitFrameHeader` and - `JxlEncoderInitBlendInfo` to initialize the structs to set. - - encoder API: ability to encode arbitrary extra channels: - `JxlEncoderInitExtraChannelInfo`, `JxlEncoderSetExtraChannelInfo`, - `JxlEncoderSetExtraChannelName` and `JxlEncoderSetExtraChannelBuffer`. - - encoder API: ability to plug custom CMS implementation using - `JxlEncoderSetCms(JxlEncoder* enc, JxlCmsInterface cms)` - - encoder API: added `JxlEncoderGetError` to retrieve last encoder error. - -### Changed -- decoder API: using `JxlDecoderCloseInput` at the end of all input is required - when using JXL_DEC_BOX, and is now also encouraged in other cases, but not - required in those other cases for backwards compatibility. -- encoder API: `JxlEncoderCloseInput` now closes both frames and boxes input. -- CLI: `cjxl` and `djxl` have been reimplemented on the base of public decoder - and encoder API; dropped dependency on `gflags` for argument parsing. - -### Deprecated -- decoder API: `JXL_DEC_EXTENSIONS` event: use `JXL_DEC_BASIC_INFO` -- decoder / encoder API: pixel types `JXL_TYPE_BOOLEAN` and `JXL_TYPE_UINT32`: - consider using `JXL_TYPE_UINT8` and `JXL_TYPE_FLOAT` correspondingly. -- decoder API: pixel format parameter for `JxlDecoderGetColorAsEncodedProfile` - and `JxlDecoderGetICCProfileSize`: pass `NULL`. -- decoder API: `JxlDecoderDefaultPixelFormat` -- encoder API: `JxlEncoderOptions`: use `JxlEncoderFrameSettings` instead. -- encoder API: `JxlEncoderOptionsCreate`: use `JxlEncoderFrameSettingsCreate` - instead. -- encoder API: `JxlEncoderOptionsSetDistance`: use `JxlEncoderSetFrameDistance` - instead. -- encoder API: `JxlEncoderOptionsSetLossless`: use `JxlEncoderSetFrameLossless` - instead. -- encoder API: `JxlEncoderOptionsSetEffort`: use - `JxlEncoderFrameSettingsSetOption(frame_settings, JXL_ENC_FRAME_SETTING_EFFORT, effort)` - instead. -- encoder API: `JxlEncoderOptionsSetDecodingSpeed`: use - `JxlEncoderFrameSettingsSetOption(frame_settings, JXL_ENC_FRAME_SETTING_DECODING_SPEED, tier)` - instead. -- encoder API: deprecated `JXL_ENC_NOT_SUPPORTED`, the encoder returns - `JXL_ENC_ERROR` instead and there is no need to handle - `JXL_ENC_NOT_SUPPORTED`. - -## [0.6.1] - 2021-10-29 -### Changed - - Security: Fix OOB read in splines rendering (#735 - - [CVE-2021-22563](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22563)) - - Security: Fix OOB copy (read/write) in out-of-order/multi-threaded decoding - (#708 - [CVE-2021-22564](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22564)) - - Fix segfault in `djxl` tool with `--allow_partial_files` flag (#781). - - Fix border in extra channels when using upsampling (#796) - -## [0.6] - 2021-10-04 -### Added - - API: New functions to decode extra channels: - `JxlDecoderExtraChannelBufferSize` and `JxlDecoderSetExtraChannelBuffer`. - - API: New function `JxlEncoderInitBasicInfo` to initialize `JxlBasicInfo` - (only needed when encoding). NOTE: it is now required to call this function - when using the encoder. Padding was added to the struct for forward - compatibility. - - API: Support for encoding oriented images. - - API: FLOAT16 support in the encoder API. - - Rewrite of the GDK pixbuf loader plugin. Added proper color management and - animation support. - - Rewrite of GIMP plugin. Added compression parameters dialog and switched to - using the public C API. - - Debian packages for GDK pixbuf loader (`libjxl-gdk-pixbuf`) and GIMP - (`libjxl-gimp-plugin`) plugins. - - `cjxl`/`djxl` support for `stdin` and `stdout`. - -### Changed - - API: Renamed the field `alpha_associated` in `JxlExtraChannelInfo` to - `alpha_premultiplied`, to match the corresponding name in `JxlBasicInfo`. - - Improved the 2x2 downscaling method in the encoder for the optional color - channel resampling for low bit rates. - - Fixed: the combination of floating point original data, XYB color encoding, - and Modular mode was broken (in both encoder and decoder). It now works. - NOTE: this can cause the current encoder to write jxl bitstreams that do - not decode with the old decoder. In particular this will happen when using - cjxl with PFM, EXR, or floating point PSD input, and a combination of XYB - and modular mode is used (which caused an encoder error before), e.g. - using options like `-m -q 80` (lossy modular), `-d 4.5` or `--progressive_dc=1` - (modular DC frame), or default lossy encoding on an image where patches - end up being used. There is no problem when using cjxl with PNG, JPEG, GIF, - APNG, PPM, PGM, PGX, or integer (8-bit or 16-bit) PSD input. - - `libjxl` static library now bundles skcms, fixing static linking in - downstream projects when skcms is used. - - Spline rendering performance improvements. - - Butteraugli changes for less visual masking. - -## [0.5] - 2021-08-02 -### Added - - API: New function to decode the image using a callback outputting a part of a - row per call. - - API: 16-bit float output support. - - API: `JxlDecoderRewind` and `JxlDecoderSkipFrames` functions to skip more - efficiently to earlier animation frames. - - API: `JxlDecoderSetPreferredColorProfile` function to choose color profile in - certain circumstances. - - encoder: Adding `center_x` and `center_y` flags for more control of the tile - order. - - New encoder speeds `lightning` (1) and `thunder` (2). - -### Changed - - Re-licensed the project under a BSD 3-Clause license. See the - [LICENSE](LICENSE) and [PATENTS](PATENTS) files for details. - - Full JPEG XL part 1 specification support: Implemented all the spec required - to decode files to pixels, including cases that are not used by the encoder - yet. Part 2 of the spec (container format) is final but not fully implemented - here. - - Butteraugli metric improvements. Exact numbers are different from previous - versions. - - Memory reductions during decoding. - - Reduce the size of the jxl_dec library by removing dependencies. - - A few encoding speedups. - - Clarify the security policy. - - Significant encoding improvements (~5 %) and less ringing. - - Butteraugli metric to have some less masking. - - `cjxl` flag `--speed` is deprecated and replaced by the `--effort` synonym. - -### Removed -- API for returning a downsampled DC was deprecated - (`JxlDecoderDCOutBufferSize` and `JxlDecoderSetDCOutBuffer`) and will be - removed in the next release. - -## [0.3.7] - 2021-03-29 -### Changed - - Fix a rounding issue in 8-bit decoding. - -## [0.3.6] - 2021-03-25 -### Changed - - Fix a bug that could result in the generation of invalid codestreams as - well as failure to decode valid streams. - -## [0.3.5] - 2021-03-23 -### Added - - New encode-time options for faster decoding at the cost of quality. - - Man pages for cjxl and djxl. - -### Changed - - Memory usage improvements. - - Faster decoding to 8-bit output with the C API. - - GIMP plugin: avoid the sRGB conversion dialog for sRGB images, do not show - a console window on Windows. - - Various bug fixes. - -## [0.3.4] - 2021-03-16 -### Changed - - Improved box parsing. - - Improved metadata handling. - - Performance and memory usage improvements. - -## [0.3.3] - 2021-03-05 -### Changed - - Performance improvements for small images. - - Add a (flag-protected) non-high-precision mode with better speed. - - Significantly speed up the PQ EOTF. - - Allow optional HDR tone mapping in djxl (--tone_map, --display_nits). - - Change the behavior of djxl -j to make it consistent with cjxl (#153). - - Improve image quality. - - Improve EXIF handling. - -## [0.3.2] - 2021-02-12 -### Changed - - Fix embedded ICC encoding regression - [#149](https://gitlab.com/wg1/jpeg-xl/-/issues/149). - -## [0.3.1] - 2021-02-10 -### Changed - - New experimental Butteraugli API (`jxl/butteraugli.h`). - - Encoder improvements to low quality settings. - - Bug fixes, including fuzzer-found potential security bug fixes. - - Fixed `-q 100` and `-d 0` not triggering lossless modes. - -## [0.3] - 2021-01-29 -### Changed - - Minor change to the Decoder C API to accommodate future work for other ways - to provide input. - - Future decoder C API changes will be backwards compatible. - - Lots of bug fixes since the previous version. - -## [0.2] - 2020-12-24 -### Added - - JPEG XL bitstream format is frozen. Files encoded with 0.2 will be supported - by future versions. - -### Changed - - Files encoded with previous versions are not supported. - -## [0.1.1] - 2020-12-01 - -## [0.1] - 2020-11-14 ### Added - - Initial release of an encoder (`cjxl`) and decoder (`djxl`) that work - together as well as a benchmark tool for comparison with other codecs - (`benchmark_xl`). - - Note: JPEG XL format is in the final stages of standardization, minor changes - to the codestream format are still possible but we are not expecting any - changes beyond what is required by bug fixing. - - API: new decoder API in C, check the `examples/` directory for its example - usage. The C API is a work in progress and likely to change both in API and - ABI in future releases. + - Initial release of an encoder (`cjpegli`) and decoder (`djpegli`). diff --git a/CMakeLists.txt b/CMakeLists.txt index f3bf29ee3..d016556e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,7 +131,7 @@ set(JPEGXL_ENABLE_FUZZERS ${ENABLE_FUZZERS_DEFAULT} CACHE BOOL set(JPEGXL_ENABLE_DEVTOOLS false CACHE BOOL "Build JPEGXL developer tools.") set(JPEGXL_ENABLE_TOOLS true CACHE BOOL - "Build JPEGXL user tools: cjxl and djxl.") + "Build JPEGXL user tools: cjpegli and djpegli.") set(JPEGXL_ENABLE_JPEGLI_LIBJPEG true CACHE BOOL "Build libjpeg.so shared library based on jpegli.") set(JPEGXL_INSTALL_JPEGLI_LIBJPEG false CACHE BOOL @@ -461,7 +461,7 @@ if(JPEGXL_ENABLE_MANPAGES) if (ASCIIDOC_PY_FOUND) set(MANPAGE_FILES "") set(MANPAGES "") - foreach(PAGE IN ITEMS cjxl djxl) + foreach(PAGE IN ITEMS cjpegli djpegli) # Invoking the Python interpreter ourselves instead of running the a2x binary # directly is necessary on MSYS2, otherwise it is run through cmd.exe which # does not recognize it. diff --git a/bash_test.sh b/bash_test.sh index 97f5ff3fd..fde736894 100755 --- a/bash_test.sh +++ b/bash_test.sh @@ -196,17 +196,17 @@ get_version() { } test_version() { - local major=$(get_version JPEGXL_MAJOR_VERSION) - local minor=$(get_version JPEGXL_MINOR_VERSION) - local patch=$(get_version JPEGXL_PATCH_VERSION) + local major=$(get_version JPEGLI_MAJOR_VERSION) + local minor=$(get_version JPEGLI_MINOR_VERSION) + local patch=$(get_version JPEGLI_PATCH_VERSION) # Check that the version is not empty if [[ -z "${major}${minor}${patch}" ]]; then echo "Couldn't parse version from CMakeLists.txt" >&2 return 1 fi local pkg_version=$(head -n 1 debian/changelog) - # Get only the part between the first "jpeg-xl (" and the following ")". - pkg_version="${pkg_version#jpeg-xl (}" + # Get only the part between the first "jpegli (" and the following ")". + pkg_version="${pkg_version#jpegli (}" pkg_version="${pkg_version%%)*}" if [[ -z "${pkg_version}" ]]; then echo "Couldn't parse version from debian package" >&2 diff --git a/ci.sh b/ci.sh index a63c2a518..d38ce5324 100755 --- a/ci.sh +++ b/ci.sh @@ -1441,8 +1441,8 @@ cmd_bump_version() { fi if [[ -z "${newver}" ]]; then - local major=$(get_version JPEGXL_MAJOR_VERSION) - local minor=$(get_version JPEGXL_MINOR_VERSION) + local major=$(get_version JPEGLI_MAJOR_VERSION) + local minor=$(get_version JPEGLI_MINOR_VERSION) local patch=0 minor=$(( ${minor} + 1)) else @@ -1460,9 +1460,9 @@ cmd_bump_version() { echo "Bumping version to ${newver} (${major}.${minor}.${patch})" sed -E \ - -e "s/(set\\(JPEGXL_MAJOR_VERSION) [0-9]+\\)/\\1 ${major})/" \ - -e "s/(set\\(JPEGXL_MINOR_VERSION) [0-9]+\\)/\\1 ${minor})/" \ - -e "s/(set\\(JPEGXL_PATCH_VERSION) [0-9]+\\)/\\1 ${patch})/" \ + -e "s/(set\\(JPEGLI_MAJOR_VERSION) [0-9]+\\)/\\1 ${major})/" \ + -e "s/(set\\(JPEGLI_MINOR_VERSION) [0-9]+\\)/\\1 ${minor})/" \ + -e "s/(set\\(JPEGLI_PATCH_VERSION) [0-9]+\\)/\\1 ${patch})/" \ -i lib/CMakeLists.txt sed -E \ -e "s/(LIBJXL_VERSION: )\"[0-9.]+\"/\\1\"${major}.${minor}.${patch}\"/" \ diff --git a/debian/changelog b/debian/changelog index 650177187..d6f15f019 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,125 +1,5 @@ -jpeg-xl (0.12.0) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.12.0. - - -- JPEG XL Maintainers Fri, 13 Sep 2024 09:19:23 +0200 - -jpeg-xl (0.11.0) unstable; urgency=medium - - * Bump JPEG XL version to 0.11.0. - - -- JPEG XL Maintainers Fri, 13 Sep 2024 09:19:23 +0200 - -jpeg-xl (0.10.2) unstable; urgency=medium - - * Bump JPEG XL version to 0.10.2. - - -- JPEG XL Maintainers Thu, 07 Mar 2024 13:50:05 +0100 - -jpeg-xl (0.10.1) unstable; urgency=medium - - * Bump JPEG XL version to 0.10.1. - - -- JPEG XL Maintainers Wed, 28 Feb 2024 12:52:20 +0100 - -jpeg-xl (0.10.0) unstable; urgency=medium - - * Bump JPEG XL version to 0.10.0. - - -- JPEG XL Maintainers Wed, 21 Feb 2024 08:37:00 +0100 - -jpeg-xl (0.9.0) unstable; urgency=medium - - * Bump JPEG XL version to 0.9.0. - - -- JPEG XL Maintainers Tue, 21 Nov 2023 10:32:59 +0100 - -jpeg-xl (0.8) unstable; urgency=medium - - * Bump JPEG XL version to 0.8. - - -- JPEG XL Maintainers Wed, 11 Jan 2023 16:12:34 +0000 - -jpeg-xl (0.7) unstable; urgency=medium - - * Bump JPEG XL version to 0.7. - - -- JPEG XL Maintainers Mon, 08 Aug 2022 14:43:58 +0000 - -jpeg-xl (0.6) unstable; urgency=medium - - * Bump JPEG XL version to 0.6. - - -- JPEG XL Maintainers Fri, 10 Sep 2021 16:08:17 +0200 - -jpeg-xl (0.5.0) unstable; urgency=medium - - * Bump JPEG XL version to 0.5.0. - - -- JPEG XL Maintainers Thu, 12 Aug 2021 23:49:40 +0200 - -jpeg-xl (0.3.7) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.3.7. - - -- Sami Boukortt Mon, 29 Mar 2021 12:14:20 +0200 - -jpeg-xl (0.3.6) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.3.6. - - -- Sami Boukortt Thu, 25 Mar 2021 17:40:58 +0100 - -jpeg-xl (0.3.5) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.3.5. - - -- Sami Boukortt Tue, 23 Mar 2021 15:20:44 +0100 - -jpeg-xl (0.3.4) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.3.4. - - -- Sami Boukortt Tue, 16 Mar 2021 12:13:59 +0100 - -jpeg-xl (0.3.3) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.3.3. - - -- Sami Boukortt Fri, 5 Mar 2021 19:15:26 +0100 - -jpeg-xl (0.3.2) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.3.2. - - -- Alex Deymo Fri, 12 Feb 2021 21:00:12 +0100 - -jpeg-xl (0.3.1) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.3.1. - - -- Alex Deymo Tue, 09 Feb 2021 09:48:43 +0100 - -jpeg-xl (0.3) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.3. - - -- Alex Deymo Wed, 27 Jan 2021 22:36:32 +0100 - -jpeg-xl (0.2) UNRELEASED; urgency=medium - - * Bump JPEG XL version to 0.2. - - -- Alex Deymo Wed, 23 Nov 2020 20:42:10 +0100 - -jpeg-xl (0.1) UNRELEASED; urgency=medium - - * JPEG XL format release candidate. - - -- Alex Deymo Fri, 13 Nov 2020 17:42:24 +0100 - -jpeg-xl (0.0.2-1) UNRELEASED; urgency=medium +jpegli (0.1.0) UNRELEASED; urgency=medium * Initial debian package. - -- Alex Deymo Tue, 27 Oct 2020 15:27:59 +0100 + -- Martin Bruse Wed, 18 Sep 2024 10:51:00 +0100 diff --git a/debian/control b/debian/control index d3a049c11..76737db78 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: jpeg-xl +Source: jpegli Maintainer: JPEG XL Maintainers Section: misc Priority: optional @@ -19,47 +19,113 @@ Build-Depends: pkg-config, xdg-utils, xmlto, -Homepage: https://github.com/libjxl/libjxl +Homepage: https://github.com/google/jpegli Rules-Requires-Root: no -Package: jxl +Package: jpegli Architecture: any Section: utils Depends: ${misc:Depends}, ${shlibs:Depends} -Description: JPEG XL Image Coding System - "JXL" (command line utility) - The JPEG XL Image Coding System (ISO/IEC 18181) is a lossy and - lossless image compression format. It has a rich feature set and is - particularly optimized for responsive web environments, so that - content renders well on a wide range of devices. Moreover, it includes - several features that help transition from the legacy JPEG format. +Description: Jpegli JPEG codec (command line utility) + Jpegli is a new JPEG coding library that is designed to be faster, more + efficient, and more visually pleasing than traditional JPEG. It uses a number + of new techniques to achieve these goals, including: + . + 1) It provides both a fully interoperable encoder and decoder complying with + the original JPEG standard and its most conventional 8-bit formalism, and + API/ABI compatibility with libjpeg-turbo and MozJPEG. + . + 2) High quality results. When images are compressed or decompressed through + Jpegli, more precise and psychovisually effective computations are performed + and images will look clearer and have fewer observable artifacts. + . + 3) Fast. While improving on image quality/compression density ratio, Jpegli's + coding speed is comparable to traditional approaches, such as libjpeg-turbo and + MozJPEG. This means that web developers can effortlessly integrate Jpegli into + their existing workflows without sacrificing coding speed performance or memory + use. + . + 4) 10+ bits. Jpegli can be encoded with 10+ bits per component. Traditional + JPEG coding solutions offer only 8 bit per component dynamics causing visible + banding artifacts in slow gradients. Jpegli's 10+ bits coding happens in the + original 8-bit formalism and the resulting images are fully interoperable with + 8-bit viewers. 10+ bit dynamics are available as an API extension and + application code changes are needed to benefit from it. + . + 5) More dense: Jpegli compresses images more efficiently than traditional JPEG + codecs, which can save bandwidth and storage space, and speed up web pages. . This package installs the command line utilities. -Package: libjxl-dev +Package: libjpegli-dev Architecture: any Section: libdevel -Depends: libjxl (= ${binary:Version}), ${misc:Depends} +Depends: jpegli (= ${binary:Version}), ${misc:Depends} libhwy-dev, -Description: JPEG XL Image Coding System - "JXL" (development files) - The JPEG XL Image Coding System (ISO/IEC 18181) is a lossy and - lossless image compression format. It has a rich feature set and is - particularly optimized for responsive web environments, so that - content renders well on a wide range of devices. Moreover, it includes - several features that help transition from the legacy JPEG format. +Description: Jpegli JPEG codec (development files) + Jpegli is a new JPEG coding library that is designed to be faster, more + efficient, and more visually pleasing than traditional JPEG. It uses a number + of new techniques to achieve these goals, including: + . + 1) It provides both a fully interoperable encoder and decoder complying with + the original JPEG standard and its most conventional 8-bit formalism, and + API/ABI compatibility with libjpeg-turbo and MozJPEG. + . + 2) High quality results. When images are compressed or decompressed through + Jpegli, more precise and psychovisually effective computations are performed + and images will look clearer and have fewer observable artifacts. + . + 3) Fast. While improving on image quality/compression density ratio, Jpegli's + coding speed is comparable to traditional approaches, such as libjpeg-turbo and + MozJPEG. This means that web developers can effortlessly integrate Jpegli into + their existing workflows without sacrificing coding speed performance or memory + use. + . + 4) 10+ bits. Jpegli can be encoded with 10+ bits per component. Traditional + JPEG coding solutions offer only 8 bit per component dynamics causing visible + banding artifacts in slow gradients. Jpegli's 10+ bits coding happens in the + original 8-bit formalism and the resulting images are fully interoperable with + 8-bit viewers. 10+ bit dynamics are available as an API extension and + application code changes are needed to benefit from it. + . + 5) More dense: Jpegli compresses images more efficiently than traditional JPEG + codecs, which can save bandwidth and storage space, and speed up web pages. . This package installs development files. -Package: libjxl +Package: libjpegli Architecture: any Multi-Arch: same Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} Pre-Depends: ${misc:Pre-Depends} -Description: JPEG XL Image Coding System - "JXL" (shared libraries) - The JPEG XL Image Coding System (ISO/IEC 18181) is a lossy and - lossless image compression format. It has a rich feature set and is - particularly optimized for responsive web environments, so that - content renders well on a wide range of devices. Moreover, it includes - several features that help transition from the legacy JPEG format. +Description: Jpegli JPEG codec (shared libraries) + Jpegli is a new JPEG coding library that is designed to be faster, more + efficient, and more visually pleasing than traditional JPEG. It uses a number + of new techniques to achieve these goals, including: + . + 1) It provides both a fully interoperable encoder and decoder complying with + the original JPEG standard and its most conventional 8-bit formalism, and + API/ABI compatibility with libjpeg-turbo and MozJPEG. + . + 2) High quality results. When images are compressed or decompressed through + Jpegli, more precise and psychovisually effective computations are performed + and images will look clearer and have fewer observable artifacts. + . + 3) Fast. While improving on image quality/compression density ratio, Jpegli's + coding speed is comparable to traditional approaches, such as libjpeg-turbo and + MozJPEG. This means that web developers can effortlessly integrate Jpegli into + their existing workflows without sacrificing coding speed performance or memory + use. + . + 4) 10+ bits. Jpegli can be encoded with 10+ bits per component. Traditional + JPEG coding solutions offer only 8 bit per component dynamics causing visible + banding artifacts in slow gradients. Jpegli's 10+ bits coding happens in the + original 8-bit formalism and the resulting images are fully interoperable with + 8-bit viewers. 10+ bit dynamics are available as an API extension and + application code changes are needed to benefit from it. + . + 5) More dense: Jpegli compresses images more efficiently than traditional JPEG + codecs, which can save bandwidth and storage space, and speed up web pages. . This package installs shared libraries. diff --git a/debian/copyright b/debian/copyright index 7786a8775..bc3359e24 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,5 +1,5 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: jpeg-xl +Upstream-Name: jpegli Files: * Copyright: 2020 the JPEG XL Project diff --git a/debian/jpegli.install b/debian/jpegli.install new file mode 100644 index 000000000..f7b724a52 --- /dev/null +++ b/debian/jpegli.install @@ -0,0 +1,3 @@ +usr/bin/* +usr/share/man/man1/cjpegli.1 +usr/share/man/man1/djpegli.1 diff --git a/debian/jxl.install b/debian/jxl.install deleted file mode 100644 index c3bae3ed1..000000000 --- a/debian/jxl.install +++ /dev/null @@ -1,3 +0,0 @@ -usr/bin/* -usr/share/man/man1/cjxl.1 -usr/share/man/man1/djxl.1 diff --git a/debian/libjxl-dev.install b/debian/libjpegli-dev.install similarity index 100% rename from debian/libjxl-dev.install rename to debian/libjpegli-dev.install diff --git a/debian/libjpegli.install b/debian/libjpegli.install new file mode 100644 index 000000000..1a8a2b0ab --- /dev/null +++ b/debian/libjpegli.install @@ -0,0 +1 @@ +usr/lib/*/libjpegli*.so.* diff --git a/debian/libjxl.install b/debian/libjxl.install deleted file mode 100644 index cd157a7a5..000000000 --- a/debian/libjxl.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/*/libjxl*.so.* diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index ee1c829f2..4c120d955 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -4,11 +4,11 @@ # license that can be found in the LICENSE file or at # https://developers.google.com/open-source/licenses/bsd -set(JPEGXL_MAJOR_VERSION 0) -set(JPEGXL_MINOR_VERSION 12) -set(JPEGXL_PATCH_VERSION 0) -set(JPEGXL_LIBRARY_VERSION - "${JPEGXL_MAJOR_VERSION}.${JPEGXL_MINOR_VERSION}.${JPEGXL_PATCH_VERSION}") +set(JPEGLI_MAJOR_VERSION 0) +set(JPEGLI_MINOR_VERSION 1) +set(JPEGLI_PATCH_VERSION 0) +set(JPEGLI_LIBRARY_VERSION + "${JPEGLI_MAJOR_VERSION}.${JPEGLI_MINOR_VERSION}.${JPEGLI_PATCH_VERSION}") # This is the library API/ABI compatibility version. Changing this value makes # the shared library incompatible with previous version. A program linked @@ -16,12 +16,12 @@ set(JPEGXL_LIBRARY_VERSION # It is important to update this value when making incompatible API/ABI changes # so that programs that depend on libjxl can update their dependencies. Semantic # versioning allows 0.y.z to have incompatible changes in minor versions. -set(JPEGXL_SO_MINOR_VERSION 12) -if (JPEGXL_MAJOR_VERSION EQUAL 0) - set(JPEGXL_LIBRARY_SOVERSION - "${JPEGXL_MAJOR_VERSION}.${JPEGXL_SO_MINOR_VERSION}") +set(JPEGLI_SO_MINOR_VERSION 12) +if (JPEGLI_MAJOR_VERSION EQUAL 0) + set(JPEGLI_LIBRARY_SOVERSION + "${JPEGLI_MAJOR_VERSION}.${JPEGLI_SO_MINOR_VERSION}") else() - set(JPEGXL_LIBRARY_SOVERSION "${JPEGXL_MAJOR_VERSION}") + set(JPEGLI_LIBRARY_SOVERSION "${JPEGLI_MAJOR_VERSION}") endif() # List of warning and feature flags for our library and tests. diff --git a/lib/cms/libjxl_cms.pc.in b/lib/cms/libjxl_cms.pc.in index deab7367a..5105ed0ea 100644 --- a/lib/cms/libjxl_cms.pc.in +++ b/lib/cms/libjxl_cms.pc.in @@ -5,7 +5,7 @@ includedir=@PKGCONFIG_TARGET_INCLUDES@ Name: libjxl_cms Description: CMS support library for libjxl -Version: @JPEGXL_LIBRARY_VERSION@ +Version: @JPEGLI_LIBRARY_VERSION@ @JPEGXL_REQUIRES_TYPE@: @JPEGXL_CMS_LIBRARY_REQUIRES@ Libs: -L${libdir} -ljxl_cms @JPEGXL_CMS_PUBLIC_LIBS@ Libs.private: @JPEGXL_CMS_PRIVATE_LIBS@ diff --git a/lib/jxl_cms.cmake b/lib/jxl_cms.cmake index a939c6661..16eef2d00 100644 --- a/lib/jxl_cms.cmake +++ b/lib/jxl_cms.cmake @@ -43,8 +43,8 @@ endif() target_link_libraries(jxl_cms PRIVATE hwy) set_target_properties(jxl_cms PROPERTIES - VERSION ${JPEGXL_LIBRARY_VERSION} - SOVERSION ${JPEGXL_LIBRARY_SOVERSION}) + VERSION ${JPEGLI_LIBRARY_VERSION} + SOVERSION ${JPEGLI_LIBRARY_SOVERSION}) # Check whether the linker support excluding libs if (MSVC) diff --git a/lib/jxl_extras.cmake b/lib/jxl_extras.cmake index 4ee03b065..0490c0aad 100644 --- a/lib/jxl_extras.cmake +++ b/lib/jxl_extras.cmake @@ -160,8 +160,8 @@ target_link_libraries(jxl_extras_codec PRIVATE ) target_link_libraries(jxl_extras_codec PUBLIC jxl) set_target_properties(jxl_extras_codec PROPERTIES - VERSION ${JPEGXL_LIBRARY_VERSION} - SOVERSION ${JPEGXL_LIBRARY_SOVERSION} + VERSION ${JPEGLI_LIBRARY_VERSION} + SOVERSION ${JPEGLI_LIBRARY_SOVERSION} ) install(TARGETS jxl_extras_codec RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} diff --git a/lib/jxl_threads.cmake b/lib/jxl_threads.cmake index 86c2ffeb0..3ab125492 100644 --- a/lib/jxl_threads.cmake +++ b/lib/jxl_threads.cmake @@ -36,8 +36,8 @@ install(TARGETS jxl_threads ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) set_target_properties(jxl_threads PROPERTIES - VERSION ${JPEGXL_LIBRARY_VERSION} - SOVERSION ${JPEGXL_LIBRARY_SOVERSION}) + VERSION ${JPEGLI_LIBRARY_VERSION} + SOVERSION ${JPEGLI_LIBRARY_SOVERSION}) set_target_properties(jxl_threads PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/threads/lib.version) diff --git a/lib/threads/libjxl_threads.pc.in b/lib/threads/libjxl_threads.pc.in index dfbaa3ffb..4d1cf2f58 100644 --- a/lib/threads/libjxl_threads.pc.in +++ b/lib/threads/libjxl_threads.pc.in @@ -5,7 +5,7 @@ includedir=@PKGCONFIG_TARGET_INCLUDES@ Name: libjxl_threads Description: JPEG XL multi-thread runner using std::threads. -Version: @JPEGXL_LIBRARY_VERSION@ +Version: @JPEGLI_LIBRARY_VERSION@ @JPEGXL_REQUIRES_TYPE@: @JPEGXL_THREADS_LIBRARY_REQUIRES@ Libs: -L${libdir} -ljxl_threads Libs.private: -lm