https://bugs.kde.org/show_bug.cgi?id=403042
Bug ID: 403042
Summary: Qt5 from KDE 5.12 runtime requires Linux kernel >=
3.17
Product: kde
Version: unspecified
Platform: Flatpak
OS: Linux
Status: REPORTED
Severity: critical
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
It seems that Qt5 from KDE 5.12 requires Linux kernel >= *3.17*.
https://github.com/flathub/flathub/issues/805
```
> $ flatpak run --command=file org.kde.Sdk//5.11 -L /usr/lib/libQt5Core.so.5
> /usr/lib/libQt5Core.so.5: ELF 64-bit LSB shared object, x86-64, version 1
> (SYSV), dynamically linked, interpreter /lib/ld-linux-x86-64.so.2, for
> GNU/Linux 2.6.28, BuildID[sha1]=55f0af0db424e36d4747078c3983937f41761d75,
> stripped
```
```
> $ flatpak run --command=file org.kde.Sdk//5.12 -L
> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: ELF 64-bit LSB pie executable
> x86-64, version 1 (GNU/Linux), dynamically linked, interpreter
> /lib64/ld-linux-x86-64.so.2,
> BuildID[sha1]=343152921fe7eb79af20efb2f735659b0982991b, for GNU/Linux 3.17.0,
> stripped
```
According to the minimum-linux_p.h, it is probably because Qt started using the
`getrandom` syscall which was introduced in Linux *3.17*.
https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/global/minimum-linux_p.h?id=4d9ac14bf8d1c1a33a2720c7f7dcaf8d912a592f#n77
It is possible build Qt without the `getentropy` feature and that would lower
the required kernel version to *3.16*. Disabling `renameat2` will further
reduce the requirements to *2.6.28*.
As you can see, it is possible to build Qt 5.12 against older kernel (RHEL 7.6,
Devtoolset 7):
```
> $ file lib/libQt5Core.so.5.12.0
> lib/libQt5Core.so.5.12.0: ELF 64-bit LSB shared object, x86-64, version 1
> (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.28,
> BuildID[sha1]=acde2ce7459f76f3edae7e4caa75230fe0fbaad9, not stripped
```
See also:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895718#51
https://forum.critterandguitari.com/t/problems-with-qt/2246/9
Anyway, this means that on systems with the older kernel, you can't neither
build nor run Qt5-based applications. We're still talking about the KDE 5.12
runtime, of course.
Examples of build failures:
```
> /cfgtest_QtCore: error while loading shared libraries: libQt5Core.so.5:
> cannot open shared object file: No such file or directory
```
```
> /usr/bin/lrelease: error while loading shared libraries: libQt5Core.so.5:
> cannot open shared object file: No such file or directory
```
Examples of run failures:
```
> $ flatpak run org.pencil2d.Pencil2D
> bwrap: Can't mkdir /usr/lib/sdk: Read-only file system
> error: ldconfig failed, exit status 256
```
```
> $ flatpak run org.olivevideoeditor.Olive
> bwrap: Can't mkdir /usr/lib/sdk: Read-only file system
> error: ldconfig failed, exit status 256
```
```
> $ flatpak run org.bunkus.mkvtoolnix-gui
> bwrap: Can't mkdir /usr/lib/sdk: Read-only file system
> error: ldconfig failed, exit status 256
```
List of affected systems:
* EL 7 (Red Hat Enterprise Linux 7, CentOS 7, Scientific Linux 7, Oracle Linux
7 with the Red Hat compatible kernel) - End Of Life: 2024-06
* Debian 8 (oldstable) - End Of Life: 2020-05
* Ubuntu 14.04 LTS - End Of Life: 2019-04
Currently affected apps from Flathub repo:
* org.bunkus.mkvtoolnix-gui - https://github.com/flathub/flathub/pull/533
* org.olivevideoeditor.Olive - https://github.com/flathub/flathub/pull/794
* org.pencil2d.Pencil2D - https://github.com/flathub/flathub/pull/527
```
> $ grep -HERi 'runtime-version.*5\.12' *
> org.bunkus.mkvtoolnix-gui/org.bunkus.mkvtoolnix-gui.yaml:runtime-version:
> '5.12'
> org.kde.KStyle.Adwaita/org.kde.KStyle.Adwaita.json: "runtime-version":
> "5.12",
> org.kde.KStyle.HighContrast/org.kde.KStyle.HighContrast.json:
> "runtime-version": "5.12",
> org.kde.PlatformTheme.QGnomePlatform/org.kde.PlatformTheme.QGnomePlatform.json:
> "runtime-version": "5.12",
> org.olivevideoeditor.Olive/org.olivevideoeditor.Olive.yaml:runtime-version:
> '5.12'
> org.pencil2d.Pencil2D/org.pencil2d.Pencil2D.yaml:runtime-version: '5.12'
```
What is worse, this problem affects all applications from the KDE repository.
https://phabricator.kde.org/source/flatpak-kde-applications
I would like to ask you to rebuild KDE 5.12 against Linux <= 3.2.
https://phabricator.kde.org/source/flatpak-kde-runtime
There is already an idea to document and verify allowed kernel dependencies, in
particular for runtimes.
https://github.com/flatpak/flatpak/issues/2551#issuecomment-452697898
Please keep in mind that Freedesktop 18.08 (on which KDE 5.12 is based)
contains glibc 2.27, so it requires at least Linux *3.2*, but it shouldn't be a
problem.
On the other hand, Freedesktop 1.6 uses glibc 2.24, which requires kernel
*2.6.32*, at least for i686 and x86_64.
https://www.sourceware.org/ml/libc-alpha/2016-08/msg00212.html
> The GNU C Library version 2.24 is now available
> (...)
> The minimum Linux kernel version that this version of the GNU C Library can
> be used with is 3.2, except on i[4567]86 and x86_64, where Linux kernel
> version 2.6.32 or later suffices (on architectures that already required
> kernel versions more recent than 3.2, those requirements remain unchanged).
https://sourceware.org/ml/libc-alpha/2017-08/msg00010.html
> The GNU C Library version 2.26 is now available
> (...)
> Linux kernel 3.2 or later is required at runtime, on all architectures
> supported by that kernel. (This is a change from version 2.25 only for x86-32
> and x86-64.)
See also:
https://github.com/flathub/flathub/issues/805
https://github.com/flatpak/flatpak/issues/2551
https://github.com/flathub/net.ankiweb.Anki/pull/19#issuecomment-451034931
https://github.com/flathub/net.ankiweb.Anki/pull/19#issuecomment-452248896
https://github.com/KDE/flatpak-kde-runtime/pull/5
--
You are receiving this mail because:
You are watching all bug changes.