SHA256
1
0
forked from pool/krita

Update to 5.2.3

OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/krita?expand=0&rev=199
This commit is contained in:
Christophe Marin 2024-06-28 15:10:54 +00:00 committed by Git OBS Bridge
parent d9c2220a56
commit c4268c4cd9
10 changed files with 53 additions and 208 deletions

View File

@ -1,95 +0,0 @@
From 0bb4659b49ba3086cb757bd5db1839a91db9ffa9 Mon Sep 17 00:00:00 2001
From: Timo Gurr <timo.gurr@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, kimageshop@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

View File

@ -1,33 +0,0 @@
From c12b77a6a6941fabc750a590159c7f9d98776ee4 Mon Sep 17 00:00:00 2001
From: "Rasyuqa A. H." <qampidh@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

View File

@ -1,36 +0,0 @@
From b299812aaf8b79223b4523a43c1427e343b2e753 Mon Sep 17 00:00:00 2001
From: "Rasyuqa A. H." <qampidh@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

View File

@ -9,7 +9,7 @@ Fixes build with SIP 6.8
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmake/modules/pyproject.toml.in b/cmake/modules/pyproject.toml.in diff --git a/cmake/modules/pyproject.toml.in b/cmake/modules/pyproject.toml.in
index 090b2d4b0cb..085ddf41799 100644 index 44ca263..462063b 100644
--- a/cmake/modules/pyproject.toml.in --- a/cmake/modules/pyproject.toml.in
+++ b/cmake/modules/pyproject.toml.in +++ b/cmake/modules/pyproject.toml.in
@@ -9,7 +9,7 @@ name = "@module_name_toml@" @@ -9,7 +9,7 @@ name = "@module_name_toml@"
@ -20,7 +20,4 @@ index 090b2d4b0cb..085ddf41799 100644
+abi-version = "12.8" +abi-version = "12.8"
[tool.sip.bindings.@module_name_toml@] [tool.sip.bindings.@module_name_toml@]
tags = @module_tags@ pep484-pyi = true
--
GitLab

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:41515784d65b5bf12919df909f7406dc90f37076587b8c459ef2abd569a71adb
size 189146788

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEBkGCRAxnTZ+ND2+LTaee2iMchSsFAmVxpvEACgkQTaee2iMc
hSsMOg/+Jp2BHdqvG2TJvFFNKLVOTTX2oKyIhxk3vMsfOaUtA6UixlPnL2QPq1Rl
l/VtcJ7sj/cFwwOyzk6bu++VJPSjPaOQDxJBhXsgtmDso4RWlSynMMx+1hf5tdx3
0sgTlhD5fNJ4BI70vXUrjtO3MVagGxTu74Aicxe06dHuCSRcydBdCJcUlKloazZH
hQ2uPfCvgkyB+v3mT6s96AUQhDnfaRCqNJ++IaWG3uZMmSeYjs3GnUn7VZHjQh9r
vy7pmWa31JwMsfkvPomuYtHwfokCoQ2upvKQKedYp+iUf7zvnVCy6sqgTmsGSrgZ
KV0Q+CEM2Z8l+8Yhj4sq6Fn2oHY2RE352sa6WPgRp3LY5U41catZqneG32Zdv4QQ
gqXTZWTG4xo/OkjVjVir0m3n5DfMfLaN4u+athGvQIw7BN7z/ZUpSD1i4oJ2KmCg
IeMll937HVbgpoy8PuIP0X2dw12vI+ALIe8h451zMo4/EB3rt/CuWFu5vck9PY4Y
uXQd1MCf/gkRI3h6pKWdiogb8r16b1HaTKJq5ifJIcqXDxWcq0f10ddYjodTlVzF
dvXJrq7vFraK0YBI0U9Wld33mbkPP4jVQxffu6aAfmI1N2corbWUNcEmi8skkOJK
CuAn+fYIG2X4iwA1042KIoKvnoehTRL0v2RZUJUYMgGn25w67qk=
=BpOP
-----END PGP SIGNATURE-----

3
krita-5.2.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cf78ddb39700c92928cf14d7611b8ef3870d8f5b83ef590d43e218bec5dafd54
size 186685456

BIN
krita-5.2.3.tar.xz.sig Normal file

Binary file not shown.

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
Fri Jun 28 13:40:53 UTC 2024 - Christophe Marin <christophe@krop.fr>
- Update to 5.2.3
https://krita.org/en/posts/2024/krita-5-2-3-released/
* Various fixes to tool canvas input shortcut behaviour
* Various fixes to how we use MLT for synchronising audio to
animation
* Python SIP type stub generation, this will help autocompletion
in external python editors that support using these stubs
* Crash fix with adding animation keyframe column on locked
layer (kde#486893)
* Fix update of "read-only" state of the document when loading
and saving (kde#487544)
* Ask to use PSD data in TIFF only if any was found (kde#488024)
* Reworked default FFmpeg profiles (kde#455006, kde#450790,
kde#429326, kde#485515, kde#485514)
* Fix issue in KisMergeLabeledLayersCommand when masks where
involved (kde#486419)
* Update batch exporter Python plugin to fix trim option
issue (kde#488343)
* Welcome Page: Fix "DEV BUILD" button going to a 404
* WEBP & JPEG-XL: preemptive check for animation (kde#476761)
* Fix copy-pasting selection of File Layer (kde#459849)
* Fix color sampler in wrap around mode (kde#478190)
* Replace old QML touch docker with QWidget-based touch docker
to avoid problems on Android (kde#476690)
* Add support for XSIMD13 (kde#488116)
* Redraw layers docker thumbnails if the canvas checkers color
was changed
* Fix animation playback freezes when pausing past the end of
audio (kde#487371, kde#478185)
- Drop patches, merged upstream:
* 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
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Mar 1 21:47:15 UTC 2024 - Christophe Marin <christophe@krop.fr> Fri Mar 1 21:47:15 UTC 2024 - Christophe Marin <christophe@krop.fr>

View File

@ -18,7 +18,7 @@
%bcond_without released %bcond_without released
# Build fails on x86 and powerpc with xsimd (kde#462122) # Build fails on x86 and powerpc with xsimd (kde#462122)
%ifnarch %ix86 ppc64 ppc64le %ifnarch %{ix86} ppc64 ppc64le
%bcond_without xsimd %bcond_without xsimd
%endif %endif
# Default python version is too old in Leap 15 # Default python version is too old in Leap 15
@ -28,12 +28,8 @@
%else %else
%define pyver python311 %define pyver python311
%endif %endif
# SR#1043861 for 15.5
%if 0%{?suse_version} > 1500 || (0%{?is_opensuse} && 0%{?sle_version} > 150400)
%bcond_without libjxl
%endif
Name: krita Name: krita
Version: 5.2.2 Version: 5.2.3
Release: 0 Release: 0
Summary: Digital Painting Application Summary: Digital Painting Application
License: BSD-2-Clause AND GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-3.0-or-later AND CC0-1.0 AND LGPL-2.0-only License: BSD-2-Clause AND GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-3.0-or-later AND CC0-1.0 AND LGPL-2.0-only
@ -44,10 +40,10 @@ Source1: https://download.kde.org/stable/krita/%{version}/krita-%{version
Source2: krita.keyring Source2: krita.keyring
%endif %endif
# PATCH-FIX-UPSTREAM # PATCH-FIX-UPSTREAM
Patch1: 0001-Fix-build-with-libjxl-0.9.0.patch Patch0: 0004-Fix-build-with-sip6.8.patch
Patch2: 0002-KisFileIconCreator-add-workaround-for-JPEG-XL-too.patch BuildRequires: %{pyver}-devel
Patch3: 0003-JPEG-XL-Disable-export-bug-workaround-for-libjxl-0.9.patch BuildRequires: %{pyver}-qt5-devel
Patch4: 0004-Fix-build-with-sip6.8.patch BuildRequires: %{pyver}-sip-devel
BuildRequires: OpenEXR-devel BuildRequires: OpenEXR-devel
BuildRequires: extra-cmake-modules BuildRequires: extra-cmake-modules
BuildRequires: fftw3-devel BuildRequires: fftw3-devel
@ -72,9 +68,6 @@ BuildRequires: libtiff-devel
BuildRequires: openjpeg2-devel BuildRequires: openjpeg2-devel
BuildRequires: perl BuildRequires: perl
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: %{pyver}-devel
BuildRequires: %{pyver}-qt5-devel
BuildRequires: %{pyver}-sip-devel
BuildRequires: update-desktop-files BuildRequires: update-desktop-files
BuildRequires: zlib-devel BuildRequires: zlib-devel
BuildRequires: cmake(Immer) BuildRequires: cmake(Immer)
@ -84,6 +77,7 @@ BuildRequires: cmake(KF5CoreAddons)
BuildRequires: cmake(KF5Crash) BuildRequires: cmake(KF5Crash)
BuildRequires: cmake(KF5GuiAddons) BuildRequires: cmake(KF5GuiAddons)
BuildRequires: cmake(KF5I18n) BuildRequires: cmake(KF5I18n)
BuildRequires: cmake(KF5ItemModels)
BuildRequires: cmake(KF5ItemViews) BuildRequires: cmake(KF5ItemViews)
BuildRequires: cmake(KF5KDcraw) BuildRequires: cmake(KF5KDcraw)
BuildRequires: cmake(KF5WidgetsAddons) BuildRequires: cmake(KF5WidgetsAddons)
@ -113,13 +107,11 @@ BuildRequires: cmake(sdl2)
BuildRequires: cmake(xsimd) BuildRequires: cmake(xsimd)
%endif %endif
BuildRequires: pkgconfig(OpenColorIO) BuildRequires: pkgconfig(OpenColorIO)
%if %{with libjxl}
BuildRequires: pkgconfig(libjxl)
%endif
BuildRequires: pkgconfig(fontconfig) >= 2.13.1 BuildRequires: pkgconfig(fontconfig) >= 2.13.1
BuildRequires: pkgconfig(freetype2) >= 2.10.0 BuildRequires: pkgconfig(freetype2) >= 2.11.0
BuildRequires: pkgconfig(fribidi) >= 1.0.6 BuildRequires: pkgconfig(fribidi) >= 1.0.6
BuildRequires: pkgconfig(harfbuzz) >= 4.0 BuildRequires: pkgconfig(harfbuzz) >= 4.0
BuildRequires: pkgconfig(libjxl)
BuildRequires: pkgconfig(libmypaint) BuildRequires: pkgconfig(libmypaint)
BuildRequires: pkgconfig(libunibreak) BuildRequires: pkgconfig(libunibreak)
BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libwebp)
@ -127,9 +119,9 @@ BuildRequires: pkgconfig(xcb-atom)
BuildRequires: pkgconfig(xcb-xinput) BuildRequires: pkgconfig(xcb-xinput)
BuildRequires: pkgconfig(xi) >= 1.4.99.1 BuildRequires: pkgconfig(xi) >= 1.4.99.1
Recommends: %{pyver}-qt5 Recommends: %{pyver}-qt5
Recommends: krita-plugin-gmic
Obsoletes: calligra-krita < %{version} Obsoletes: calligra-krita < %{version}
Provides: calligra-krita = %{version} Provides: calligra-krita = %{version}
Recommends: krita-plugin-gmic
%description %description
Krita is a painting program. It supports concept art, texture and Krita is a painting program. It supports concept art, texture and
@ -137,7 +129,7 @@ matte painters, as well as illustrations and comics.
%package devel %package devel
Summary: Krita Build Environment Summary: Krita Build Environment
Requires: %{name} = %{version} Requires: krita = %{version}
Requires: cmake(Qt5Core) Requires: cmake(Qt5Core)
%description devel %description devel
@ -179,7 +171,6 @@ sed -i "/#!\/usr\/bin\/env/d" %{buildroot}%{_kf5_libdir}/krita-python-libs/krita
%{_kf5_libdir}/libkrita*.so.* %{_kf5_libdir}/libkrita*.so.*
%{_kf5_libdir}/kritaplugins/ %{_kf5_libdir}/kritaplugins/
%{_kf5_libdir}/krita-python-libs/ %{_kf5_libdir}/krita-python-libs/
%{_kf5_qmldir}
%{_kf5_sharedir}/kritaplugins/ %{_kf5_sharedir}/kritaplugins/
%{_kf5_sharedir}/color/ %{_kf5_sharedir}/color/
%{_kf5_sharedir}/color-schemes/ %{_kf5_sharedir}/color-schemes/