Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package krita for openSUSE:Factory checked 
in at 2024-01-19 23:02:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/krita (Old)
 and      /work/SRC/openSUSE:Factory/.krita.new.16006 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "krita"

Fri Jan 19 23:02:30 2024 rev:74 rq:1139919 version:5.2.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/krita/krita.changes      2023-12-19 
23:16:30.631015006 +0100
+++ /work/SRC/openSUSE:Factory/.krita.new.16006/krita.changes   2024-01-19 
23:02:46.751308395 +0100
@@ -1,0 +2,8 @@
+Fri Jan 19 09:40:36 UTC 2024 - Fabian Vogt <fab...@ritter-vogt.de>
+
+- Add patches to support libjxl >= 0.9.0:
+  * 0001-Fix-build-with-libjxl-0.9.0.patch
+  * 0002-KisFileIconCreator-add-workaround-for-JPEG-XL-too.patch
+  * 0003-JPEG-XL-Disable-export-bug-workaround-for-libjxl-0.9.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Fix-build-with-libjxl-0.9.0.patch
  0002-KisFileIconCreator-add-workaround-for-JPEG-XL-too.patch
  0003-JPEG-XL-Disable-export-bug-workaround-for-libjxl-0.9.patch

BETA DEBUG BEGIN:
  New:- Add patches to support libjxl >= 0.9.0:
  * 0001-Fix-build-with-libjxl-0.9.0.patch
  * 0002-KisFileIconCreator-add-workaround-for-JPEG-XL-too.patch
  New:  * 0001-Fix-build-with-libjxl-0.9.0.patch
  * 0002-KisFileIconCreator-add-workaround-for-JPEG-XL-too.patch
  * 0003-JPEG-XL-Disable-export-bug-workaround-for-libjxl-0.9.patch
  New:  * 0002-KisFileIconCreator-add-workaround-for-JPEG-XL-too.patch
  * 0003-JPEG-XL-Disable-export-bug-workaround-for-libjxl-0.9.patch
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ krita.spec ++++++
--- /var/tmp/diff_new_pack.l72XeA/_old  2024-01-19 23:02:47.999354048 +0100
+++ /var/tmp/diff_new_pack.l72XeA/_new  2024-01-19 23:02:47.999354048 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package krita
 #
-# Copyright (c) 2023 SUSE LLC
+# 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
@@ -42,6 +42,10 @@
 Source1:        
https://download.kde.org/stable/krita/%{version}/krita-%{version}.tar.xz.sig
 Source2:        krita.keyring
 %endif
+# PATCH-FIX-UPSTREAM
+Patch1:         0001-Fix-build-with-libjxl-0.9.0.patch
+Patch2:         0002-KisFileIconCreator-add-workaround-for-JPEG-XL-too.patch
+Patch3:         0003-JPEG-XL-Disable-export-bug-workaround-for-libjxl-0.9.patch
 BuildRequires:  OpenEXR-devel
 BuildRequires:  extra-cmake-modules
 BuildRequires:  fftw3-devel
@@ -53,6 +57,7 @@
 BuildRequires:  libboost_system1_75_0-devel
 #!BuildIgnore:  libboost_headers1_66_0-devel
 %endif
+BuildRequires:  libQt5Gui-private-headers-devel
 BuildRequires:  libeigen3-devel
 BuildRequires:  libexiv2-devel
 BuildRequires:  libheif-devel
@@ -60,7 +65,6 @@
 BuildRequires:  liblcms2-devel
 BuildRequires:  libpng-devel
 BuildRequires:  libpoppler-qt5-devel
-BuildRequires:  libQt5Gui-private-headers-devel
 BuildRequires:  libraw-devel
 BuildRequires:  libtiff-devel
 BuildRequires:  openjpeg2-devel
@@ -119,8 +123,8 @@
 BuildRequires:  pkgconfig(libmypaint)
 BuildRequires:  pkgconfig(libunibreak)
 BuildRequires:  pkgconfig(libwebp)
-BuildRequires:  pkgconfig(xcb-xinput)
 BuildRequires:  pkgconfig(xcb-atom)
+BuildRequires:  pkgconfig(xcb-xinput)
 BuildRequires:  pkgconfig(xi) >= 1.4.99.1
 %if %{with python}
 Recommends:     python3-qt5

++++++ 0001-Fix-build-with-libjxl-0.9.0.patch ++++++
>From 0bb4659b49ba3086cb757bd5db1839a91db9ffa9 Mon Sep 17 00:00:00 2001
From: Timo Gurr <timo.g...@gmail.com>
Date: Fri, 5 Jan 2024 14:04:50 +0000
Subject: [PATCH 1/3] Fix build with libjxl 0.9.0

Fix build with libjxl 0.9.0

BUG:478987

Test Plan
---------

* Upgrade to libjxl 0.9.0
* Apply patch from MR and build krita (5.2.2)
* Open/Display a sample image e.g. https://jpegxl.info/test-page/red-room.jxl

Formalities Checklist
---------------------

- [x] I confirmed this builds.
- [x] I confirmed Krita ran and the relevant functions work (Could successfully 
open/display a sample image https://jpegxl.info/test-page/red-room.jxl).
- [ ] I tested the relevant unit tests and can confirm they are not broken. (If 
not possible, don't hesitate to ask for help!)
- [x] I made sure my commits build individually and have good descriptions as 
per [KDE guidelines](https://community.kde.org/Policies/Commit_Policy).
- [x] I made sure my code conforms to the standards set in the HACKING file.
- [x] I can confirm the code is licensed and attributed appropriately, and that 
unattributed code is mine, as per [KDE Licensing 
Policy](https://community.kde.org/Policies/Licensing_Policy).

_**Reminder: the reviewer is responsible for merging the patch, this is to 
ensure at the least two people can build the patch. In case a patch breaks the 
build, both the author and the reviewer should be contacted to fix the build.**_
_**If this is not possible, the commits shall be reverted, and a notification 
with the reasoning and any relevant logs shall be sent to the mailing list, 
kimages...@kde.org.**_

(cherry picked from commit ace7edcca6ad322581ab39620f21ccf3ffbd3b5a)
---
 plugins/impex/jxl/JPEGXLImport.cpp | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/plugins/impex/jxl/JPEGXLImport.cpp 
b/plugins/impex/jxl/JPEGXLImport.cpp
index 573bae412473..f5b989b3b704 100644
--- a/plugins/impex/jxl/JPEGXLImport.cpp
+++ b/plugins/impex/jxl/JPEGXLImport.cpp
@@ -511,7 +511,9 @@ JPEGXLImport::convert(KisDocument *document, QIODevice *io, 
KisPropertiesConfigu
             JxlColorEncoding colorEncoding{};
             if (JXL_DEC_SUCCESS
                 == JxlDecoderGetColorAsEncodedProfile(dec.get(),
+#if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0, 9, 0)
                                                       nullptr,
+#endif
                                                       
JXL_COLOR_PROFILE_TARGET_DATA,
                                                       &colorEncoding)) {
                 const TransferCharacteristics transferFunction = [&]() {
@@ -635,7 +637,12 @@ JPEGXLImport::convert(KisDocument *document, QIODevice 
*io, KisPropertiesConfigu
                 size_t iccSize = 0;
                 QByteArray iccProfile;
                 if (JXL_DEC_SUCCESS
-                    != JxlDecoderGetICCProfileSize(dec.get(), nullptr, 
JXL_COLOR_PROFILE_TARGET_DATA, &iccSize)) {
+                    != JxlDecoderGetICCProfileSize(dec.get(),
+#if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0,9,0)
+                                                   nullptr,
+#endif
+                                                   
JXL_COLOR_PROFILE_TARGET_DATA,
+                                                   &iccSize)) {
                     errFile << "ICC profile size retrieval failed";
                     document->setErrorMessage(i18nc("JPEG-XL errors", "Unable 
to read the image profile."));
                     return ImportExportCodes::ErrorWhileReading;
@@ -643,7 +650,9 @@ JPEGXLImport::convert(KisDocument *document, QIODevice *io, 
KisPropertiesConfigu
                 iccProfile.resize(static_cast<int>(iccSize));
                 if (JXL_DEC_SUCCESS
                     != JxlDecoderGetColorAsICCProfile(dec.get(),
+#if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0,9,0)
                                                       nullptr,
+#endif
                                                       
JXL_COLOR_PROFILE_TARGET_DATA,
                                                       reinterpret_cast<uint8_t 
*>(iccProfile.data()),
                                                       
static_cast<size_t>(iccProfile.size()))) {
@@ -657,7 +666,9 @@ JPEGXLImport::convert(KisDocument *document, QIODevice *io, 
KisPropertiesConfigu
                 if (!d.m_info.uses_original_profile) {
                     if (JXL_DEC_SUCCESS
                         != JxlDecoderGetICCProfileSize(dec.get(),
+#if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0,9,0)
                                                        nullptr,
+#endif
                                                        
JXL_COLOR_PROFILE_TARGET_ORIGINAL,
                                                        &iccTargetSize)) {
                         errFile << "ICC profile size retrieval failed";
@@ -667,7 +678,9 @@ JPEGXLImport::convert(KisDocument *document, QIODevice *io, 
KisPropertiesConfigu
                     iccTargetProfile.resize(static_cast<int>(iccTargetSize));
                     if (JXL_DEC_SUCCESS
                         != JxlDecoderGetColorAsICCProfile(dec.get(),
+#if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0,9,0)
                                                           nullptr,
+#endif
                                                           
JXL_COLOR_PROFILE_TARGET_ORIGINAL,
                                                           
reinterpret_cast<uint8_t *>(iccTargetProfile.data()),
                                                           
static_cast<size_t>(iccTargetProfile.size()))) {
-- 
2.43.0


++++++ 0002-KisFileIconCreator-add-workaround-for-JPEG-XL-too.patch ++++++
>From c12b77a6a6941fabc750a590159c7f9d98776ee4 Mon Sep 17 00:00:00 2001
From: "Rasyuqa A. H." <qamp...@gmail.com>
Date: Sat, 6 Jan 2024 02:50:10 +0700
Subject: [PATCH 2/3] KisFileIconCreator: add workaround for JPEG XL too

KImageFormats / QImage can crash if we update libjxl to >= 0.9.0 due to API 
changes.
On Krita, this can result in crash whenever the thumbnail loads in welcome 
screen.

This patch also enables thumbnail generation for JXL as well.

(cherry picked from commit 1da5a7a6c2b2be5ec5e04c39a9a8663696d2b367)
---
 libs/ui/utils/KisFileIconCreator.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libs/ui/utils/KisFileIconCreator.cpp 
b/libs/ui/utils/KisFileIconCreator.cpp
index 17d0e482301a..25dd82d1fb09 100644
--- a/libs/ui/utils/KisFileIconCreator.cpp
+++ b/libs/ui/utils/KisFileIconCreator.cpp
@@ -112,8 +112,9 @@ bool KisFileIconCreator::createFileIcon(QString path, QIcon 
&icon, qreal deviceP
             } else {
                 return false;
             }
-        } else if (mimeType == "image/tiff" || mimeType == "image/x-tiff") {
+        } else if (mimeType == "image/tiff" || mimeType == "image/x-tiff" || 
mimeType == "image/jxl") {
             // Workaround for a bug in Qt tiff QImageIO plugin
+            // XXX: Also for JPEG-XL if KImageFormats haven't updated to 
accomodate libjxl >= v0.9.0 API changes.
             QScopedPointer<KisDocument> 
doc(KisPart::instance()->createTemporaryDocument());
             doc->setFileBatchMode(true);
             bool r = doc->openPath(path, KisDocument::DontAddToRecent);
-- 
2.43.0


++++++ 0003-JPEG-XL-Disable-export-bug-workaround-for-libjxl-0.9.patch ++++++
>From b299812aaf8b79223b4523a43c1427e343b2e753 Mon Sep 17 00:00:00 2001
From: "Rasyuqa A. H." <qamp...@gmail.com>
Date: Mon, 8 Jan 2024 17:48:34 +0700
Subject: [PATCH 3/3] JPEG-XL: Disable export bug workaround for libjxl >=
 0.9.0

(cherry picked from commit 546765dfd396a4bb482b98a7b6ca22f1dca809af)
---
 plugins/impex/jxl/JPEGXLExport.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/plugins/impex/jxl/JPEGXLExport.cpp 
b/plugins/impex/jxl/JPEGXLExport.cpp
index e0d22f0d298a..f662cf4476cd 100644
--- a/plugins/impex/jxl/JPEGXLExport.cpp
+++ b/plugins/impex/jxl/JPEGXLExport.cpp
@@ -832,14 +832,16 @@ KisImportExportErrorCode 
JPEGXLExport::convert(KisDocument *document, QIODevice
         }();
 
         // XXX: Workaround for a buggy lossless patches. Set to disable 
instead.
-        // TODO Kampidh: revisit this when upstream got fixed.
+        // Patch only for libjxl under v0.9.0
         //
         // See: https://github.com/libjxl/libjxl/issues/2463
         const int setPatches = [&]() -> int {
+#if JPEGXL_NUMERIC_VERSION < JPEGXL_COMPUTE_NUMERIC_VERSION(0, 9, 0)
             if ((cfg->getInt("effort", 7) > 4) && 
!cfg->getBool("flattenLayers", true)) {
                 warnFile << "Using workaround for layer exports, disabling 
patches option on effort > 4";
                 return 0;
             }
+#endif
             return cfg->getInt("patches", -1);
         }();
 
-- 
2.43.0

Reply via email to