Possible compatibility issue with kde-frameworks-5-core18 and CentOS 7

Hi all,

Two Snaps I tested on Ubuntu don’t work on CentOS 7 - Flameshot and Ksnip. Have been having issues for some time, but today took a deeper look into it.

Upon opening both Snaps, I got libQt5Core.so.5 not found error, even though they exist on kde-frameworks-5-core18 and were correctly mapped inside Snap runtime space.

After digging a little, found this. Applying to both Snaps, they would work. Default (AFAIK) CentOS 7 kernel version is 3.10, and library exposes compatibility with 3.17 .

CentOS 7 is an “old” release - old as for package versions - but also “current” - current as actively maintained and supported until 2024; it’s also widely deployed, despite version 8 being around (and CentOS Stream debate). So, questions are:

  1. Is this a know issue? If so, are there know ways of fixing?
  2. In case it is a “new” problem, is it fixable for the kde5 Snap? Know nothing about Qt, maybe it really doesn’t support such an old kernel.

Thanks!

AFAIK this snap is maintained by KDE, have you tried filing a bug or otherwise reaching out to them?

No, didn’t know they were the maintainers. You try to reach them, thanks.

Thanks for pointing the right direction, was able to find a bug report for it, both on LP and upstream Bugzilla - open for almost two years now, so we’re out of luck…

LaunchPad
KDE Bugzilla

As a side note, Flatpak had the same issues and they were closed two years ago… Too bad this package supports kde-neon extension on Snapcraft.

I think the framework snaps just pull in the packages from the neon repositories at https://origin.archive.neon.kde.org/release/ (see https://invent.kde.org/packaging/snap-kf5/-/blob/core18/Rakefile#L9)

So a fix would likely need to be applied to those neon packages. Probably here https://invent.kde.org/neon/qt/qtbase. You’d need to include the same patch as they did for the flatpak runtime (https://phabricator.kde.org/R257:a029f2957e947f6e32fe8a595edb0ac553654e90)

It appears that the flatpak equivalent builds the Qt distribution and can thus manipulate the build configuration more easily for this specific problem.

From what you told, it seems the best way would be to adopt the same strategy as Flatpak - building the packages specifically. I’m not very optimist, though.

Wonder how many packages are being affected.

I’ll give this a try, building now. I’ll need testers once it’s in
https://invent.kde.org/neon/qt/qtbase/commit/dea86b2117aafc8fcb7ea3c6f78c2aa75776e939

4 Likes

I’ve now uploaded kde-frameworks-5-qt-5-15-3-core20 5.85.0 revision 5 to candidate channel. Please test.

3 Likes

Thanks for prompt response, @jriddell . Seems I was wrong about this issue not being worked on so soon… :slight_smile:

Do you intend to rebuild core18 too? I’ll try to find an app using core20 in order to test, but for core18, the ones I mentioned on this topic would be super easy to test.

No it’s not possible to update the core18 kde frameworks snap, the packages used to build it has long since disappeared. I’ve asked the authors of the two apps if they’re interested in using the newer kde-frameworks snap (in which case I’d need to do the process to make it available to third party projects).

3 Likes

Ow, I didn’t know the core18 kde frameworks snap was so problematic. I’ll look at porting Krita ASAP!

1 Like

Would it be the case of summoning @sergiusens in here, since kde-neon extension uses kde-frameworks-5-core18 for core18 Snaps? Or update docs to reflect the issues with kde-neon extensions on older than 3.17 kernels?

Side note: if I got it right, you’re working on newer content Snaps; out of curiosity, will they support also core18 ?

Hi, I’m one of the devs of the ksinp snap package.
Is it possible to use kde-frameworks-5-qt-5-15-3-core20 with the kde-neon extension?
Otherwise the only solution is to not build with the extension, right?
Thanks

As per doc, you’ll have to port your Snap to core20 and use --enable-experimental-extensions Snapcraft flag.

This would enable using the version of KDE framework for core20 . After installed, you’d need to refresh it to candidate channel, in order to properly test @jriddell fix.

If you happen to upload a version of KSnip with mentioned corrections, I’ll gladly test it for you (or you can do it yourself, by running it on CentOS 7 VM, for instance).

Edit: re-reading Jonathan’s posts, it seems the Snap he’s creating is different to the one used by the extension, so you’d have not to use the extension,as you said. I’ll leave this post here, for reference, in case I got it wrong.

kde-neon uses kde-frameworks-5-qt-5-15-3-core20 on core20. So that’s correct.
And there’s a global autoconnect request for it too: Allow Global auto connect for kde-frameworks-5-qt-5-15-3-core20