feat(docker): Replace custom plugins with KDE kimageformats#2
Draft
feat(docker): Replace custom plugins with KDE kimageformats#2
Conversation
- Add multi-stage Docker build with 7 optimized stages - Build and install Qt image plugins: qt-avif-image-plugin, qt-jpegxl-image-plugin, qt-heic-image-plugin - Build libjxl 0.10.2 from source (required version not in Ubuntu noble) - Use system packages for AVIF (libavif16) and HEIC (libheif1) - No YACReader source code changes - uses Qt's dynamic plugin loading - Improves build caching and reduces rebuild times Enables support for modern image formats without code modifications, following YACReader's Qt plugin architecture as suggested in YACReader#498
- Replace 3 separate image plugin builders (AVIF, JXL, HEIC) with single kimageformats build - Reduce Dockerfile from 8 stages to 6 stages (25% reduction) - Build kimageformats 6.0.0 from KDE frameworks (patched for Qt 6.4 compatibility) - Support AVIF (avif, avifs) and JPEG XL (jxl) formats - Add 30+ bonus image formats (PSD, QOI, XCF, HDR, etc.) - Simplify build dependencies and maintenance - Note: HEIC/HEIF support not included (kimageformats 6.0.0 limitation) This provides a minimal diff alternative to PR YACReader#499 as requested by maintainers, using well-maintained KDE framework instead of multiple custom plugin builds.
- Remove libheif-dev from kimageformats builder (HEIC/HEIF not supported in v6.0.0) - Remove libheif1 from runtime dependencies - Reduces build complexity and image size - No functional change since HEIC/HEIF wasn't working anyway
- Step-by-step testing instructions - Expected outputs and success criteria - Known limitations (HEIC/HEIF not supported) - Troubleshooting section - Comparison with original PR YACReader#499 approach
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Simplifies PR YACReader#499 approach by replacing 3 separate image plugin builds with KDE's kimageformats framework, as requested by maintainers for a minimal diff.
Changes
Supported Formats
✅ Modern formats:
✅ Bonus formats (30+):
ani, hdr, pcx, psd, psb, qoi, ras, rgb, rgba, sgi, sun, tga, xcf, and more
❌ Not supported:
Testing
Successfully tested with test comics on port 8086:
Comparison to PR YACReader#499
Trade-offs
Advantages:
Disadvantages:
Next Steps
This is a draft PR for testing. If HEIC/HEIF support is essential, we can either: