Qt World Summit: Submit your Presentation

Static Qt 5.14.2 and ICU results in a much bigger AppImage – do I need ICU?

  • Hi :-)

    I create an AppImage for one of my projects using a minimalistic static Qt. Until recently, I used Qt 5.7, and the AppImage was about 8 MB. I now had to update Qt due to the use of newer features. I still try to be as minimalistic as possible to keep the AppImage size small.

    Doing the (hopefully?) smallest possible build in my Ubuntu 16.04.6 LTS VM, only having the packages listed in https://doc.qt.io/qt-5/linux-requirements.html and libxkbcommon-dev installed, the AppImage size is still about 8 MB. I get some strange warnings on the console though:

    Only C and default locale supported with the posix collation implementation
    Case insensitive sorting unsupported in the posix collation implementation
    Numeric mode unsupported in the posix collation implementation

    I figured out that I can get rid of those by having libicu-dev installed when building my static Qt. This makes the messages disappear, but the AppImage size grows to 19 MB(!), because the following libs are included by linuxdeployqt:

    libicudata.so.55 (25M)
    libicui18n.so.55 (2,8M)
    libicuuc.so.55   (1,7M)

    I wonder if I really need those (what about Qt 5.7? I didn't needed them there and didn't have any warnings), and if so, can I save some space anyhow?

    Any help/explanation would be greatly appreciated! Thanks in advance!

  • What does ICU actually do when it's included in the Qt build? I just tried it, using a German locale here. Both the normal build created here with my current Gentoo installation using Qt installed via the distribution and the AppImage do the sorting correctly for the locale, and also case insensitive: I tried it with A à a B b C ć S s ß T (the C locale sorting would put all non-ASCII characters at the end of the list), and the result is the same.

    So do I even need that ICU stuff? But what about those warnings?!

Log in to reply