Bug 472710

Summary: [5.2 Beta1 Appimage] Instant crash when creating a text selection area
Product: [Applications] krita Reporter: Protoniv <ss93078>
Component: Tool/TextAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: crash CC: alvin, dimula73, griffinvalley
Priority: NOR Keywords: release_blocker
Version: nightly build (please specify the git hash!)   
Target Milestone: ---   
Platform: Appimage   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Protoniv 2023-07-27 18:48:51 UTC
SUMMARY

Appimage, when using text tool to draw a rectangle area on canvas and release mouse/stylus, krita crash instantly.
(Also tried on Windows 10 portable version, krita will hang for a short while, and the text window will launch normally.)

STEPS TO REPRODUCE
1. Open a new document
2. Choose text tool and create an area for text on canvas
3. Krita crash

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: OpenSUSE 15.5
(available in About System)
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.103.0
Qt Version: 5.15.8

ADDITIONAL INFORMATION
Can't get the crashlog backtrace with appimage, but here is the output when launch from terminal.

***
krita.lib.pigment: Replacing color space factory "LABA" "L*a*b* (16 位元整數/每通道,無色彩管理)" with "LABA" "L*a*b*/Alpha (16 位元整數/每通道)"
krita.lib.pigment: Replacing color space factory "RGBA" "RGB (8 位元整數/每通道,無色彩管理)" with "RGBA" "RGB/Alpha (8 位元整數/每通道)"
krita.lib.pigment: Replacing color space factory "RGBA16" "RGB (16 位元整數/每通道,無色彩管理)" with "RGBA16" "RGB/Alpha (16 位元整數/每通道)"
QObject::startTimer: Timers cannot have negative intervals
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
/tmp/.mount_krita-FcCHkq/usr/lib/krita-python-libs/krita added to PYTHONPATH
QObject::connect: Cannot connect QAction::triggered(bool) to (nullptr)::toggle()
QAbstractItemModel::endInsertColumns:  Invalid index ( 0 , 101 ) in model KisAnimTimelineFramesModel(0x55f253542740)
/tmp/.mount_krita-FcCHkq/usr/bin/krita: symbol lookup error: /tmp/.mount_krita-FcCHkq/usr/bin/../lib/libraqm.so.0: undefined symbol: FT_Get_Transform
***
Comment 1 wolthera 2023-07-27 19:10:09 UTC
The problem is "FT_Get_Transform", which means that the appimage is somehow using the wrong version of freetype?????
Comment 2 Alvin Wong 2023-07-30 15:38:14 UTC
It looks like the AppImage does not include the shared objects for freetype, and also harfbuzz and fontconfig. This is be a problem we need to address, because we probably expect to be using some rather recent versions of them.

`FT_Get_Transform` was added in freetype 2.11.0. OpenSUSE still only has 2.10.x according to https://repology.org/project/freetype/versions.
Comment 3 wolthera 2023-07-31 09:23:28 UTC
Marking this as a release blocker.
Comment 4 Dmitry Kazakov 2023-08-08 12:22:42 UTC
Git commit c1ad0bce3930ff10a6e6aa43058901ce51a03f3c by Dmitry Kazakov.
Committed on 08/08/2023 at 14:22.
Pushed by dkazakov into branch 'master'.

Embed our font libraries into the AppImage

We require quite new font libraries for Krita with experimental features,
so we cannot expect system libraries to be present.

I first tried to use the same fallback approach like we use for
libstdc++, but then remembered that these libraries do not guarantee
backwards compatibility, so we shouldn't try that.

M  +7    -0    packaging/linux/appimage/build-image.sh

https://invent.kde.org/graphics/krita/-/commit/c1ad0bce3930ff10a6e6aa43058901ce51a03f3c
Comment 5 Dmitry Kazakov 2023-08-08 12:23:27 UTC
Git commit fcf9e4ab46939ce7475f19d8728281b85468b2fb by Dmitry Kazakov.
Committed on 08/08/2023 at 14:23.
Pushed by dkazakov into branch 'krita/5.2'.

Embed our font libraries into the AppImage

We require quite new font libraries for Krita with experimental features,
so we cannot expect system libraries to be present.

I first tried to use the same fallback approach like we use for
libstdc++, but then remembered that these libraries do not guarantee
backwards compatibility, so we shouldn't try that.

M  +7    -0    packaging/linux/appimage/build-image.sh

https://invent.kde.org/graphics/krita/-/commit/fcf9e4ab46939ce7475f19d8728281b85468b2fb