Bug 1803954

Summary: Snap packages of KDE apps don't work on RHEL 7
Product: [Fedora] Fedora EPEL Reporter: Tomasz Tomasik <scx.mail>
Component: snapdAssignee: Zygmunt Krynicki <me>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: epel7CC: go-sig, maciek.borzecki, me, ngompa13, scx.mail
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tomasz Tomasik 2020-02-17 19:30:17 UTC
Snap packages of KDE apps don't work on RHEL 7


SUMMARY

The snap package of cantor doesn't work at all on RHEL 7.7.
CentOS 7 is affected. Fedora 30 is not affected.
I believe that this issue may be related to snapd rather than the cantor package itself, because it applies to kolourpaint and okular as well.
Since EPEL7 provides exactly the same version of snapd as Fedora does, this bug may be related to one of the snapd deps, e.g. squashfuse or squashfs.ko.
https://src.fedoraproject.org/rpms/snapd/blob/ebb6864d0a079930cfd014948ac7dbfc0b1eba2d/f/snapd.spec#_105-113


STEPS TO REPRODUCE

1. Install the latest version of snapd from the EPEL7 testing repo (tried the latest stable version of snapd from EPEL7 as well): yum --disableplugin='priorities' --enablerepo='epel*' install snap-confine snapd snapd-selinux
2. Enable snapd service: sudo systemctl enable snapd.service
3. Start snapd service: sudo systemctl start snapd.service
4. Create a symlink: sudo ln -s "/var/lib/snapd/snap" "/snap"
5. Install Snap Store: sudo snap install snap-store
6. Install cantor (any version: stable 19.08.0, candidate 19.08.3, beta 17.04.3, edge master+97ffb4e) on RHEL 7.7 via Snap Store or just type: sudo snap install cantor
7. Run "cantor" or "/var/lib/snapd/snap/bin/cantor"


OBSERVED RESULT

$ cantor 
cantor: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

$ /var/lib/snapd/snap/bin/cantor
cantor: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

$ /snap/bin/cantor 
cantor: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

$ snap run cantor
cantor: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory

Please note that the snap package of Qalculate works without any problem. However, other KDE apps (such as KolourPaint or Okular) are affected.


EXPECTED RESULT

Working application.


SOFTWARE/OS VERSIONS

Windows: N/A
macOS: N/A
Linux/KDE Plasma: RHEL 7.7/Linux 3.10.0-1062.9.1.el7.x86_64/snapd: 2.43.3/kde-frameworks-5-core18:kde-frameworks-5-core18-slot
(available in About System)
KDE Plasma Version: N/A
KDE Frameworks Version: N/A
Qt Version: N/A


ADDITIONAL INFORMATION

EL7

$ rpm -q --qf "%{NAME}: %{VERSION}\n" snap-confine snapd snapd-selinux
snap-confine: 2.43.3
snapd: 2.43.3
snapd-selinux: 2.43.3

$ which cantor 
/var/lib/snapd/snap/bin/cantor

$ snap connections cantor
Interface                             Plug                          Slot                                                  Notes
content[kde-frameworks-5-core18-all]  cantor:kde-frameworks-5-plug  kde-frameworks-5-core18:kde-frameworks-5-core18-slot  -
dbus                                  -                             cantor:session-dbus-interface                         -
desktop                               cantor:desktop                :desktop                                              -
desktop-legacy                        cantor:desktop-legacy         :desktop-legacy                                       -
home                                  cantor:home                   :home                                                 -
network                               cantor:network                :network                                              -
network-bind                          cantor:network-bind           :network-bind                                         -
opengl                                cantor:opengl                 :opengl                                               -
pulseaudio                            cantor:pulseaudio             :pulseaudio                                           -
unity7                                cantor:unity7                 :unity7                                               -
x11                                   cantor:x11                    :x11                                                  -

$ find /var/lib/snapd/snap/kde-frameworks-5-core18 -xtype f -iname 'libQt5Core.so.5*' 2>/dev/null
/var/lib/snapd/snap/kde-frameworks-5-core18/30/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
/var/lib/snapd/snap/kde-frameworks-5-core18/30/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12
/var/lib/snapd/snap/kde-frameworks-5-core18/30/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.3
/var/lib/snapd/snap/kde-frameworks-5-core18/32/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
/var/lib/snapd/snap/kde-frameworks-5-core18/32/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12
/var/lib/snapd/snap/kde-frameworks-5-core18/32/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.3

$ snap info cantor
name:      cantor
summary:   KDE Frontend to Mathematical Software
publisher: KDE✓
store-url: https://snapcraft.io/cantor
contact:   https://bugs.kde.org/enter_bug.cgi?product=neon&component=Snaps
license:   unset
description: |
  Cantor is a front-end to powerful mathematics and statistics packages. Cantor integrates them into
  the KDE Platform and provides a nice, worksheet-based, graphical user interface. It supports
  environments for KAlgebra, Lua, Maxima, R, Sage, Octave, Python, Scilab, and Qalculate!
commands:
  - cantor
snap-id:      VCjprGsSZiPuV3CmQViE4TvPMKTOlaiL
tracking:     latest/stable
refresh-date: today at 12:37 CET
channels:
  stable:    19.08.0        2019-08-15 (48) 161MB -
  candidate: 19.08.3        2019-11-06 (55) 161MB -
  beta:      17.04.3        2017-08-17  (1)  16MB -
  edge:      master+97ffb4e 2019-07-10 (47) 160MB -
installed:   19.08.0                   (48) 161MB -

$ snap version
snap    2.43.3-1.el7
snapd   2.43.3-1.el7
series  16
rhel    7.7
kernel  3.10.0-1062.9.1.el7.x86_64

$ grep -H '^VERSION' /etc/*release* 2>/dev/null
/etc/os-release:VERSION="7.7 (Maipo)"
/etc/os-release:VERSION_ID="7.7"

See also:
https://bugs.kde.org/show_bug.cgi?id=417791
https://bugs.launchpad.net/snapd/+bug/1863642

Comment 1 Tomasz Tomasik 2020-02-17 20:58:41 UTC
After a deeper analysis, I came to the conclusion that KDE (kde-frameworks-5-core18:kde-frameworks-5-core18-slot) is the problem here. Qt5 (libQt5Core.so.5) was probably built with getentropy, so it requires Linux 3.17, and EL7 uses Linux 3.10 by default. This is why it doesn't work.
Anyway, rebuilding KDE without getentropy should solve this problem.
https://bugs.kde.org/show_bug.cgi?id=417791#c7