aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--community/krita/APKBUILD9
-rw-r--r--community/krita/fix-crash-with-c-locale.patch75
2 files changed, 81 insertions, 3 deletions
diff --git a/community/krita/APKBUILD b/community/krita/APKBUILD
index 110a3e6cd9..ed2b569bef 100644
--- a/community/krita/APKBUILD
+++ b/community/krita/APKBUILD
@@ -2,14 +2,16 @@
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=krita
pkgver=4.2.9
-pkgrel=0
+pkgrel=1
arch="all !armhf !mips !mips64" # Blocked by py3-qt5 -> qt5-qtdeclarative
url="https://krita.org/"
pkgdesc="Free digital painting application. Digital Painting, Creative Freedom!"
license="GPL-2.0-or-later"
makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev qt5-qtmultimedia-dev qt5-qttools-dev kconfig-dev kwidgetsaddons-dev kcompletion-dev kcoreaddons-dev kguiaddons-dev ki18n-dev kitemmodels-dev kitemviews-dev kwindowsystem-dev karchive-dev kcrash-dev libxi-dev boost-dev libraw-dev fftw-dev eigen-dev exiv2-dev lcms2-dev quazip-dev gsl-dev zlib-dev openexr-dev tiff-dev libjpeg-turbo-dev giflib-dev libheif-dev python3-dev py3-qt5 poppler-qt5-dev xcb-util-dev"
checkdepends="xvfb-run"
-source="https://download.kde.org/stable/krita/$pkgver/krita-$pkgver.tar.xz"
+source="https://download.kde.org/stable/krita/$pkgver/krita-$pkgver.tar.xz
+ fix-crash-with-c-locale.patch
+ "
subpackages="$pkgname-lang"
options="!check" # Breaks compilation on Musl https://bugs.kde.org/show_bug.cgi?id=412058
@@ -32,4 +34,5 @@ package() {
DESTDIR="$pkgdir" make -C build install
}
-sha512sums="66eef3d1b5647e62551276662ef4332f15abc022f1032f27a2ad695a8d2dc5fa758146492a9da2b8cbd4a52e47c576473029d2aa9728dea3bec869b8173f08c0 krita-4.2.9.tar.xz"
+sha512sums="66eef3d1b5647e62551276662ef4332f15abc022f1032f27a2ad695a8d2dc5fa758146492a9da2b8cbd4a52e47c576473029d2aa9728dea3bec869b8173f08c0 krita-4.2.9.tar.xz
+e7a9117d012df4181e05de970f2210264b8685ee76c98b33795f8095d9a17b24b20e6ce920f944b4b5cb940cf672af5ba5fd0ffae9f53085a4f97da61b1e69f6 fix-crash-with-c-locale.patch"
diff --git a/community/krita/fix-crash-with-c-locale.patch b/community/krita/fix-crash-with-c-locale.patch
new file mode 100644
index 0000000000..b14abaeced
--- /dev/null
+++ b/community/krita/fix-crash-with-c-locale.patch
@@ -0,0 +1,75 @@
+From 3349c1dba99da9963eb275ae6ac7cdb8ed0c0e1b Mon Sep 17 00:00:00 2001
+From: Boudewijn Rempt <boud@valdyas.org>
+Date: Sat, 11 Apr 2020 16:33:09 +0200
+Subject: [PATCH] Check whether the uiLanguages list isn't empty
+
+Because Qt can crash or assert on list.first() if the list is
+empty.
+
+BUG:419947
+---
+ krita/main.cc | 35 ++++++++++++++++++-----------------
+ 1 file changed, 18 insertions(+), 17 deletions(-)
+
+diff --git a/krita/main.cc b/krita/main.cc
+index e01fd10969..908f7abe03 100644
+--- a/krita/main.cc
++++ b/krita/main.cc
+@@ -334,7 +334,6 @@ extern "C" int main(int argc, char **argv)
+ qputenv("LANG", locale.name().toLocal8Bit());
+ #endif
+
+-
+ const QStringList rtlLanguages = QStringList()
+ << "ar" << "dv" << "he" << "ha" << "ku" << "fa" << "ps" << "ur" << "yi";
+
+@@ -366,28 +365,30 @@ extern "C" int main(int argc, char **argv)
+ }
+ }
+
+- QString envLanguage = uiLanguages.first();
+- envLanguage.replace(QChar('-'), QChar('_'));
++ if (uiLanguages.size() > 0 ) {
++ QString envLanguage = uiLanguages.first();
++ envLanguage.replace(QChar('-'), QChar('_'));
+
+- for (int i = 0; i < uiLanguages.size(); i++) {
+- QString uiLanguage = uiLanguages[i];
+- // Strip the country code
+- int idx = uiLanguage.indexOf(QChar('-'));
++ for (int i = 0; i < uiLanguages.size(); i++) {
++ QString uiLanguage = uiLanguages[i];
++ // Strip the country code
++ int idx = uiLanguage.indexOf(QChar('-'));
+
+- if (idx != -1) {
+- uiLanguage = uiLanguage.left(idx);
+- uiLanguages.replace(i, uiLanguage);
++ if (idx != -1) {
++ uiLanguage = uiLanguage.left(idx);
++ uiLanguages.replace(i, uiLanguage);
++ }
+ }
+- }
+- dbgKrita << "Converted ui languages:" << uiLanguages;
++ dbgKrita << "Converted ui languages:" << uiLanguages;
+ #ifdef Q_OS_MAC
+- // See https://bugs.kde.org/show_bug.cgi?id=396370
+- KLocalizedString::setLanguages(QStringList() << uiLanguages.first());
+- qputenv("LANG", (envLanguage + ".UTF-8").toLocal8Bit());
++ // See https://bugs.kde.org/show_bug.cgi?id=396370
++ KLocalizedString::setLanguages(QStringList() << uiLanguages.first());
++ qputenv("LANG", (envLanguage + ".UTF-8").toLocal8Bit());
+ #else
+- KLocalizedString::setLanguages(QStringList() << uiLanguages);
+- qputenv("LANG", envLanguage.toLocal8Bit());
++ KLocalizedString::setLanguages(QStringList() << uiLanguages);
++ qputenv("LANG", envLanguage.toLocal8Bit());
+ #endif
++ }
+ }
+ }
+
+--
+2.26.0
+