diff options
| -rw-r--r-- | community/krita/APKBUILD | 9 | ||||
| -rw-r--r-- | community/krita/fix-crash-with-c-locale.patch | 75 |
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 + |
