9 Commits

Author SHA256 Message Date
7cd3b815bb Accepting request 1323332 from KDE:Extra
OBS-URL: https://build.opensuse.org/request/show/1323332
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/krita?expand=0&rev=87
2025-12-18 17:31:13 +00:00
Christophe Marin
fd834eab47 - Update to 5.2.14
https://krita.org/en/posts/2025/krita-5.2.14-released/

OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/krita?expand=0&rev=227
2025-12-17 11:28:36 +00:00
3565d8ec7c Accepting request 1307071 from KDE:Extra
Update to 5.2.13

OBS-URL: https://build.opensuse.org/request/show/1307071
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/krita?expand=0&rev=86
2025-09-25 16:45:36 +00:00
Christophe Marin
ac63ff5557 OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/krita?expand=0&rev=225 2025-09-25 10:17:40 +00:00
Christophe Marin
766843a47e OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/krita?expand=0&rev=224 2025-09-25 08:14:11 +00:00
Christophe Marin
c2d6c0681b 5.2.13
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/krita?expand=0&rev=223
2025-09-25 07:03:06 +00:00
4452942176 Accepting request 1300466 from KDE:Extra
- Update to 5.2.11
  https://krita.org/en/posts/2025/krita-5.2.11-released/
  * Fix an issue updating the canvas when entering/exiting
    canvas-only mode
  * Fix an issue in the index colors filter when trying to apply
    the filter to a layer that has only one, non-transparent color
  * Fix Python invalid escape sequence warnings (kde#489526)
- Add upstream change:
  * 0001-Fix-compilation-with-heif-1.20.2.patch

OBS-URL: https://build.opensuse.org/request/show/1300466
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/krita?expand=0&rev=85
2025-08-20 12:40:26 +00:00
Christophe Marin
e48efd355e OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/krita?expand=0&rev=221 2025-08-20 07:53:24 +00:00
Christophe Marin
5227a82aa8 5.2.11
OBS-URL: https://build.opensuse.org/package/show/KDE:Extra/krita?expand=0&rev=220
2025-08-20 07:37:01 +00:00
8 changed files with 38 additions and 291 deletions

View File

@@ -1,144 +0,0 @@
From 169339accb9e4e0e0e9921176c5cd60d340b7b04 Mon Sep 17 00:00:00 2001
From: Halla Rempt <halla@valdyas.org>
Date: Thu, 10 Jul 2025 10:08:24 +0200
Subject: [PATCH] Fix build with libheif 1.20
https://github.com/strukturag/libheif/issues/1419 introduced a
source incompatible api change, this patch by Brad Smith make
Krita build with 1.20. I've also checked with 1.15.2, which we
use and it still builds.
BUG:506778
(cherry picked from commit 6ad4fa68a9e1ce06fc884e34f3cedcdd4b9a2076)
---
plugins/impex/heif/HeifExport.cpp | 24 +++++++++++++++---------
plugins/impex/heif/HeifImport.cpp | 22 ++++++++++++++--------
2 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/plugins/impex/heif/HeifExport.cpp b/plugins/impex/heif/HeifExport.cpp
index 3e70cf925e..ccbc8034b5 100644
--- a/plugins/impex/heif/HeifExport.cpp
+++ b/plugins/impex/heif/HeifExport.cpp
@@ -137,6 +137,12 @@ KisImportExportErrorCode HeifExport::convert(KisDocument *document, QIODevice *i
HeifLock lock;
#endif
+#if LIBHEIF_HAVE_VERSION(1, 20, 0)
+ using HeifStrideType = size_t;
+#else
+ using HeifStrideType = int;
+#endif
+
KisImageSP image = document->savingImage();
const KoColorSpace *cs = image->colorSpace();
@@ -250,10 +256,10 @@ KisImportExportErrorCode HeifExport::convert(KisDocument *document, QIODevice *i
img.add_plane(heif_channel_G, width,height, 8);
img.add_plane(heif_channel_B, width,height, 8);
- int strideR = 0;
- int strideG = 0;
- int strideB = 0;
- int strideA = 0;
+ HeifStrideType strideR = 0;
+ HeifStrideType strideG = 0;
+ HeifStrideType strideB = 0;
+ HeifStrideType strideA = 0;
uint8_t *ptrR = img.get_plane(heif_channel_R, &strideR);
uint8_t *ptrG = img.get_plane(heif_channel_G, &strideG);
@@ -289,7 +295,7 @@ KisImportExportErrorCode HeifExport::convert(KisDocument *document, QIODevice *i
img.create(width, height, heif_colorspace_RGB, chroma);
img.add_plane(heif_channel_interleaved, width, height, 12);
- int stride = 0;
+ HeifStrideType stride = 0;
uint8_t *ptr = img.get_plane(heif_channel_interleaved, &stride);
@@ -330,8 +336,8 @@ KisImportExportErrorCode HeifExport::convert(KisDocument *document, QIODevice *i
img.add_plane(heif_channel_Y, width, height, 8);
- int strideG = 0;
- int strideA = 0;
+ HeifStrideType strideG = 0;
+ HeifStrideType strideA = 0;
uint8_t *ptrG = img.get_plane(heif_channel_Y, &strideG);
uint8_t *ptrA = [&]() -> uint8_t * {
@@ -363,8 +369,8 @@ KisImportExportErrorCode HeifExport::convert(KisDocument *document, QIODevice *i
img.add_plane(heif_channel_Y, width, height, 12);
- int strideG = 0;
- int strideA = 0;
+ HeifStrideType strideG = 0;
+ HeifStrideType strideA = 0;
uint8_t *ptrG = img.get_plane(heif_channel_Y, &strideG);
uint8_t *ptrA = [&]() -> uint8_t * {
diff --git a/plugins/impex/heif/HeifImport.cpp b/plugins/impex/heif/HeifImport.cpp
index 3c1a52cc28..6bceea85eb 100644
--- a/plugins/impex/heif/HeifImport.cpp
+++ b/plugins/impex/heif/HeifImport.cpp
@@ -214,6 +214,12 @@ KisImportExportErrorCode HeifImport::convert(KisDocument *document, QIODevice *i
HeifLock lock;
#endif
+#if LIBHEIF_HAVE_VERSION(1, 20, 0)
+ using HeifStrideType = size_t;
+#else
+ using HeifStrideType = int;
+#endif
+
// Wrap input stream into heif Reader object
Reader_QIODevice reader(io);
@@ -387,8 +393,8 @@ KisImportExportErrorCode HeifImport::convert(KisDocument *document, QIODevice *i
if (heifChroma == heif_chroma_monochrome) {
dbgFile << "monochrome heif file, bits:" << luma;
- int strideG = 0;
- int strideA = 0;
+ HeifStrideType strideG = 0;
+ HeifStrideType strideA = 0;
const uint8_t *imgG = heifimage.get_plane(heif_channel_Y, &strideG);
const uint8_t *imgA =
heifimage.get_plane(heif_channel_Alpha, &strideA);
@@ -409,10 +415,10 @@ KisImportExportErrorCode HeifImport::convert(KisDocument *document, QIODevice *i
} else if (heifChroma == heif_chroma_444) {
dbgFile << "planar heif file, bits:" << luma;
- int strideR = 0;
- int strideG = 0;
- int strideB = 0;
- int strideA = 0;
+ HeifStrideType strideR = 0;
+ HeifStrideType strideG = 0;
+ HeifStrideType strideB = 0;
+ HeifStrideType strideA = 0;
const uint8_t* imgR = heifimage.get_plane(heif_channel_R, &strideR);
const uint8_t* imgG = heifimage.get_plane(heif_channel_G, &strideG);
const uint8_t* imgB = heifimage.get_plane(heif_channel_B, &strideB);
@@ -439,7 +445,7 @@ KisImportExportErrorCode HeifImport::convert(KisDocument *document, QIODevice *i
displayNits,
colorSpace);
} else if (heifChroma == heif_chroma_interleaved_RGB || heifChroma == heif_chroma_interleaved_RGBA) {
- int stride = 0;
+ HeifStrideType stride = 0;
dbgFile << "interleaved SDR heif file, bits:" << luma;
const uint8_t *img = heifimage.get_plane(heif_channel_interleaved, &stride);
@@ -461,7 +467,7 @@ KisImportExportErrorCode HeifImport::convert(KisDocument *document, QIODevice *i
colorSpace);
} else if (heifChroma == heif_chroma_interleaved_RRGGBB_LE || heifChroma == heif_chroma_interleaved_RRGGBBAA_LE || heifChroma == heif_chroma_interleaved_RRGGBB_BE || heifChroma == heif_chroma_interleaved_RRGGBB_BE) {
- int stride = 0;
+ HeifStrideType stride = 0;
dbgFile << "interleaved HDR heif file, bits:" << luma;
const uint8_t *img =
--
2.50.0

View File

@@ -1,132 +0,0 @@
From 5d44af277b005692241a09f30e11bb0d16166823 Mon Sep 17 00:00:00 2001
From: Freya Lupen <penguinflyer2222@gmail.com>
Date: Thu, 25 Jul 2024 08:37:45 -0500
Subject: [PATCH] Fix Python invalid escape sequence warnings
If Python finds a string with an invalid backslash escape such as '\*',
it will throw a Syntax or Deprecation warning. In the future this will
become an error. The fix is to use a raw string r'\*' instead, which
won't attempt to interpolate the escape sequences in the regexes.
BUG:489526
---
.../comics_project_management_tools/comics_exporter.py | 6 +++---
.../exporters/CPMT_ACBF_XML_Exporter.py | 4 ++--
.../exporters/CPMT_po_parser.py | 8 ++++----
.../python/scripter/ui_scripter/editor/pythoneditor.py | 2 +-
plugins/python/scripter/ui_scripter/syntax/syntax.py | 8 ++++----
5 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/plugins/python/comics_project_management_tools/comics_exporter.py b/plugins/python/comics_project_management_tools/comics_exporter.py
index 73fe21bcbe3..6cb3f2a095f 100644
--- a/plugins/python/comics_project_management_tools/comics_exporter.py
+++ b/plugins/python/comics_project_management_tools/comics_exporter.py
@@ -420,7 +420,7 @@ class comicsExporter():
def handleShapeDescription(self, shape, list, textOnly=False):
return
# Turn off shape retrieval for now until the new text tool is finished.
- """
+ r"""
if (shape.type() != "KoSvgTextShapeID" and textOnly is True):
return
shapeDesc = {}
@@ -429,7 +429,7 @@ class comicsExporter():
listOfPoints = [rect.topLeft(), rect.topRight(), rect.bottomRight(), rect.bottomLeft()]
shapeDoc = minidom.parseString(shape.toSvg())
docElem = shapeDoc.documentElement
- svgRegExp = re.compile('[MLCSQHVATmlzcqshva]\d+\.?\d* \d+\.?\d*')
+ svgRegExp = re.compile(r'[MLCSQHVATmlzcqshva]\d+\.?\d* \d+\.?\d*')
transform = docElem.getAttribute("transform")
coord = []
adjust = QTransform()
@@ -539,7 +539,7 @@ class comicsExporter():
fontsize = int(size)
font = QFont(family, fontsize)
string = el.toxml()
- string = re.sub("\<.*?\>", " ", string)
+ string = re.sub(r"\<.*?\>", " ", string)
string = string.replace(" ", " ")
width = min(QFontMetrics(font).width(string.strip()), rect.width())
height = QFontMetrics(font).height()
diff --git a/plugins/python/comics_project_management_tools/exporters/CPMT_ACBF_XML_Exporter.py b/plugins/python/comics_project_management_tools/exporters/CPMT_ACBF_XML_Exporter.py
index 985b83b6409..386f39bd384 100644
--- a/plugins/python/comics_project_management_tools/exporters/CPMT_ACBF_XML_Exporter.py
+++ b/plugins/python/comics_project_management_tools/exporters/CPMT_ACBF_XML_Exporter.py
@@ -507,8 +507,8 @@ def write_xml(configDictionary = {}, pageData = [], pagesLocationList = [], loc
figureOut = figure_out_type(svg.documentElement())
type = figureOut[0]
inverted = figureOut[1]
- string = re.sub("\<\/*?text.*?\>",'', str(v["text"]))
- string = re.sub("\s+?", " ", string)
+ string = re.sub(r"\<\/*?text.*?\>",'', str(v["text"]))
+ string = re.sub(r"\s+?", " ", string)
translationEntry = poParser.get_entry_for_key(string, lang)
string = translationEntry.get("trans", string)
svg.setContent("<text>"+string+"</text>")
diff --git a/plugins/python/comics_project_management_tools/exporters/CPMT_po_parser.py b/plugins/python/comics_project_management_tools/exporters/CPMT_po_parser.py
index 3d35218d27e..73a1227443a 100644
--- a/plugins/python/comics_project_management_tools/exporters/CPMT_po_parser.py
+++ b/plugins/python/comics_project_management_tools/exporters/CPMT_po_parser.py
@@ -46,8 +46,8 @@ class po_file_parser():
key = ""
if self.key_xml:
text = entry.get("text", "")
- text = re.sub("\<.*?\>", " ", text)
- key += str(re.sub("\s+", " ", text)).strip()
+ text = re.sub(r"\<.*?\>", " ", text)
+ key += str(re.sub(r"\s+", " ", text)).strip()
else:
key += entry.get("text", None)
if key is not None:
@@ -111,8 +111,8 @@ class po_file_parser():
entry = {}
entry["trans"] = " "
if self.key_xml:
- key = re.sub("\<.*?\>", " ", key)
- key = re.sub("\s+", " ", key)
+ key = re.sub(r"\<.*?\>", " ", key)
+ key = re.sub(r"\s+", " ", key)
key = key.strip()
if key in self.translationDict.keys():
translations = {}
diff --git a/plugins/python/scripter/ui_scripter/editor/pythoneditor.py b/plugins/python/scripter/ui_scripter/editor/pythoneditor.py
index 76572ab1e3c..da3efbc89c1 100644
--- a/plugins/python/scripter/ui_scripter/editor/pythoneditor.py
+++ b/plugins/python/scripter/ui_scripter/editor/pythoneditor.py
@@ -271,7 +271,7 @@ class CodeEditor(QPlainTextEdit):
self.dedentBlock(blockNumber)
def autoindent(self):
- """The return key has just been pressed (and processed by the editor)
+ r"""The return key has just been pressed (and processed by the editor)
now insert leading spaces to reflect an appropriate indent level
against the previous line.
This will depend on the end of the previous line. If it ends:
diff --git a/plugins/python/scripter/ui_scripter/syntax/syntax.py b/plugins/python/scripter/ui_scripter/syntax/syntax.py
index abc7903b3cb..b0d3088e038 100644
--- a/plugins/python/scripter/ui_scripter/syntax/syntax.py
+++ b/plugins/python/scripter/ui_scripter/syntax/syntax.py
@@ -30,16 +30,16 @@ class PythonHighlighter (QSyntaxHighlighter):
# Comparison
'==', '!=', '<', '<=', '>', '>=',
# Arithmetic
- '\+', '-', '\*', '/', '//', '\%', '\*\*',
+ r'\+', '-', r'\*', '/', '//', r'\%', r'\*\*',
# In-place
- '\+=', '-=', '\*=', '/=', '\%=',
+ r'\+=', '-=', r'\*=', '/=', r'\%=',
# Bitwise
- '\^', '\|', '\&', '\~', '>>', '<<',
+ r'\^', r'\|', r'\&', r'\~', '>>', '<<',
]
# Python braces
braces = [
- '\{', '\}', '\(', '\)', '\[', '\]',
+ r'\{', r'\}', r'\(', r'\)', r'\[', r'\]',
]
def __init__(self, document, syntaxStyle):
--
GitLab

View File

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

Binary file not shown.

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

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

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

Binary file not shown.

View File

@@ -1,3 +1,33 @@
-------------------------------------------------------------------
Sun Dec 14 04:00:17 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>
- Update to 5.2.14
https://krita.org/en/posts/2025/krita-5.2.14-released/
-------------------------------------------------------------------
Thu Sep 25 06:56:31 UTC 2025 - Christophe Marin <christophe@krop.fr>
- Update to 5.2.13
https://krita.org/en/posts/2025/krita-5.2.13-released/
* Fixes CVE-2025-59820
- Drop patches:
* 5d44af277b005692241a09f30e11bb0d16166823.patch
* 0001-Fix-build-with-libheif-1.20.patch
* 0001-Fix-compilation-with-heif-1.20.2.patch
-------------------------------------------------------------------
Wed Aug 20 07:35:32 UTC 2025 - Christophe Marin <christophe@krop.fr>
- Update to 5.2.11
https://krita.org/en/posts/2025/krita-5.2.11-released/
* Fix an issue updating the canvas when entering/exiting
canvas-only mode
* Fix an issue in the index colors filter when trying to apply
the filter to a layer that has only one, non-transparent color
* Fix Python invalid escape sequence warnings (kde#489526)
- Add upstream change:
* 0001-Fix-compilation-with-heif-1.20.2.patch
-------------------------------------------------------------------
Thu Jul 10 13:23:40 UTC 2025 - Christophe Marin <christophe@krop.fr>

View File

@@ -1,7 +1,7 @@
#
# spec file for package krita
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,7 +29,7 @@
%define pyver python311
%endif
Name: krita
Version: 5.2.10
Version: 5.2.14
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
@@ -41,24 +41,15 @@ Source2: krita.keyring
%endif
# PATCH-FIX-UPSTREAM
Patch0: 0004-Fix-build-with-sip6.8.patch
# PATCH-FIX-UPSTREAM
Patch1: 5d44af277b005692241a09f30e11bb0d16166823.patch
# PATCH-FIX-UPSTREAM
Patch2: 0001-Fix-build-with-libheif-1.20.patch
BuildRequires: %{pyver}-devel
BuildRequires: %{pyver}-qt5-devel
BuildRequires: %{pyver}-sip-devel
BuildRequires: OpenEXR-devel
BuildRequires: boost-devel
BuildRequires: extra-cmake-modules
BuildRequires: fftw3-devel
BuildRequires: giflib-devel
BuildRequires: gsl-devel
%if 0%{?suse_version} > 1500
BuildRequires: libboost_system-devel
%else
BuildRequires: libboost_system1_75_0-devel
#!BuildIgnore: libboost_headers1_66_0-devel
%endif
BuildRequires: libQt5Gui-private-headers-devel
BuildRequires: libeigen3-devel
BuildRequires: libexiv2-devel
@@ -143,6 +134,8 @@ Development headers and libraries for Krita.
%prep
%autosetup -p1
sed -i 's#COMPONENTS system##' CMakeLists.txt
%build
%cmake_kf5 -d build -- -DKRITA_ENABLE_PCH:BOOL=OFF