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:
parent
d9c2220a56
commit
c4268c4cd9
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -9,7 +9,7 @@ Fixes build with SIP 6.8
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
+++ b/cmake/modules/pyproject.toml.in
|
||||
@@ -9,7 +9,7 @@ name = "@module_name_toml@"
|
||||
@ -20,7 +20,4 @@ index 090b2d4b0cb..085ddf41799 100644
|
||||
+abi-version = "12.8"
|
||||
|
||||
[tool.sip.bindings.@module_name_toml@]
|
||||
tags = @module_tags@
|
||||
--
|
||||
GitLab
|
||||
|
||||
pep484-pyi = true
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:41515784d65b5bf12919df909f7406dc90f37076587b8c459ef2abd569a71adb
|
||||
size 189146788
|
@ -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
3
krita-5.2.3.tar.xz
Normal 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
BIN
krita-5.2.3.tar.xz.sig
Normal file
Binary file not shown.
@ -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>
|
||||
|
||||
|
31
krita.spec
31
krita.spec
@ -18,7 +18,7 @@
|
||||
|
||||
%bcond_without released
|
||||
# Build fails on x86 and powerpc with xsimd (kde#462122)
|
||||
%ifnarch %ix86 ppc64 ppc64le
|
||||
%ifnarch %{ix86} ppc64 ppc64le
|
||||
%bcond_without xsimd
|
||||
%endif
|
||||
# Default python version is too old in Leap 15
|
||||
@ -28,12 +28,8 @@
|
||||
%else
|
||||
%define pyver python311
|
||||
%endif
|
||||
# SR#1043861 for 15.5
|
||||
%if 0%{?suse_version} > 1500 || (0%{?is_opensuse} && 0%{?sle_version} > 150400)
|
||||
%bcond_without libjxl
|
||||
%endif
|
||||
Name: krita
|
||||
Version: 5.2.2
|
||||
Version: 5.2.3
|
||||
Release: 0
|
||||
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
|
||||
@ -44,10 +40,10 @@ Source1: https://download.kde.org/stable/krita/%{version}/krita-%{version
|
||||
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
|
||||
Patch4: 0004-Fix-build-with-sip6.8.patch
|
||||
Patch0: 0004-Fix-build-with-sip6.8.patch
|
||||
BuildRequires: %{pyver}-devel
|
||||
BuildRequires: %{pyver}-qt5-devel
|
||||
BuildRequires: %{pyver}-sip-devel
|
||||
BuildRequires: OpenEXR-devel
|
||||
BuildRequires: extra-cmake-modules
|
||||
BuildRequires: fftw3-devel
|
||||
@ -72,9 +68,6 @@ BuildRequires: libtiff-devel
|
||||
BuildRequires: openjpeg2-devel
|
||||
BuildRequires: perl
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: %{pyver}-devel
|
||||
BuildRequires: %{pyver}-qt5-devel
|
||||
BuildRequires: %{pyver}-sip-devel
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: cmake(Immer)
|
||||
@ -84,6 +77,7 @@ BuildRequires: cmake(KF5CoreAddons)
|
||||
BuildRequires: cmake(KF5Crash)
|
||||
BuildRequires: cmake(KF5GuiAddons)
|
||||
BuildRequires: cmake(KF5I18n)
|
||||
BuildRequires: cmake(KF5ItemModels)
|
||||
BuildRequires: cmake(KF5ItemViews)
|
||||
BuildRequires: cmake(KF5KDcraw)
|
||||
BuildRequires: cmake(KF5WidgetsAddons)
|
||||
@ -113,13 +107,11 @@ BuildRequires: cmake(sdl2)
|
||||
BuildRequires: cmake(xsimd)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(OpenColorIO)
|
||||
%if %{with libjxl}
|
||||
BuildRequires: pkgconfig(libjxl)
|
||||
%endif
|
||||
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(harfbuzz) >= 4.0
|
||||
BuildRequires: pkgconfig(libjxl)
|
||||
BuildRequires: pkgconfig(libmypaint)
|
||||
BuildRequires: pkgconfig(libunibreak)
|
||||
BuildRequires: pkgconfig(libwebp)
|
||||
@ -127,9 +119,9 @@ BuildRequires: pkgconfig(xcb-atom)
|
||||
BuildRequires: pkgconfig(xcb-xinput)
|
||||
BuildRequires: pkgconfig(xi) >= 1.4.99.1
|
||||
Recommends: %{pyver}-qt5
|
||||
Recommends: krita-plugin-gmic
|
||||
Obsoletes: calligra-krita < %{version}
|
||||
Provides: calligra-krita = %{version}
|
||||
Recommends: krita-plugin-gmic
|
||||
|
||||
%description
|
||||
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
|
||||
Summary: Krita Build Environment
|
||||
Requires: %{name} = %{version}
|
||||
Requires: krita = %{version}
|
||||
Requires: cmake(Qt5Core)
|
||||
|
||||
%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}/kritaplugins/
|
||||
%{_kf5_libdir}/krita-python-libs/
|
||||
%{_kf5_qmldir}
|
||||
%{_kf5_sharedir}/kritaplugins/
|
||||
%{_kf5_sharedir}/color/
|
||||
%{_kf5_sharedir}/color-schemes/
|
||||
|
Loading…
Reference in New Issue
Block a user