Bug 414965

Summary: Systemsettings complains about missing shared library
Product: [Applications] systemsettings Reporter: flinux
Component: generalAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: kde, nate
Priority: NOR    
Version First Reported In: 5.17.4   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description flinux 2019-12-08 19:59:13 UTC
SUMMARY

Systemsettings complains about missing shared library, with different kcm files. The files are inside the plugins folder and everything works as intended

STEPS TO REPRODUCE
1. Execute systemsettings via terminal
2. click into a setting
3. 

OBSERVED RESULT
Terminal Log:
QQmlEngine::setContextForObject(): Object already has a QQmlContext
kf5.kactivity.stat: [Error at ResultSetPrivate::initQuery]:  QSqlError("1", "Unable to execute statement", "no such column: rl.initiatingAgent")
kf5.kactivity.stat: [Error at ResultSetPrivate::initQuery]:  QSqlError("1", "Unable to execute statement", "no such column: rl.initiatingAgent")
org.kde.kcoreaddons: Error loading plugin "kcm_desktoptheme" "The shared library was not found." 
Plugin search paths are ("/usr/lib64/qt5/plugins", "/usr/bin") 
The environment variable QT_PLUGIN_PATH might be not correctly set
QQmlEngine::setContextForObject(): Object already has a QQmlContext


SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Solus 
(available in About System)
KDE Plasma Version: 5.17.4
KDE Frameworks Version: 5.64
Qt Version: 5.13.2

ADDITIONAL INFORMATION
Comment 1 Nate Graham 2019-12-13 11:56:31 UTC
> Error loading plugin "kcm_desktoptheme" "The shared library was not found." 
That means there's a problem with your installation. Please report this to the Solus folks.
Comment 2 flinux 2019-12-15 22:02:27 UTC
I have to reopen this, I checked it with the devs from Solus and we checked it as well with kde neon unstable Edition (fully updated) and it throws the same error as well.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: KDE neon unstable Edition 
(available in About System)
KDE Plasma Version: 5.17.80
KDE Frameworks Version: 5.66
Qt Version: 5.13.2

Strace from KDE neon

stat("./kcm_cursortheme", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("./kcm_cursortheme.so", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("./libkcm_cursortheme", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("./libkcm_cursortheme.so", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/qt5/plugins/kcm_cursortheme", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/qt5/plugins/kcm_cursortheme.so", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/qt5/plugins/libkcm_cursortheme", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/qt5/plugins/libkcm_cursortheme.so", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/kcm_cursortheme", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/kcm_cursortheme.so", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/libkcm_cursortheme", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/libkcm_cursortheme.so", 0x7ffeae4a6af0) = -1 ENOENT (No such file or directory)
write(2, "org.kde.kcoreaddons: Error loadi"..., 243org.kde.kcoreaddons: Error loading plugin "kcm_cursortheme" "The shared library was not found."
Plugin search paths are ("/usr/lib/x86_64-linux-gnu/qt5/plugins", "/usr/bin")
The environment variable QT_PLUGIN_PATH might be not correctly set
) = 243
stat("./kcms/kcm_cursortheme", 0x7ffeae4a6b60) = -1 ENOENT (No such file or directory)
stat("./kcms/kcm_cursortheme.so", 0x7ffeae4a6b60) = -1 ENOENT (No such file or directory)
stat("./kcms/libkcm_cursortheme", 0x7ffeae4a6b60) = -1 ENOENT (No such file or directory)
stat("./kcms/libkcm_cursortheme.so", 0x7ffeae4a6b60) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms/kcm_cursortheme", 0x7ffeae4a6b60) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms/kcm_cursortheme.so", {st_mode=S_IFREG|0644, st_size=251320, ...}) = 0
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms/kcm_cursortheme.so", O_RDONLY|O_CLOEXEC) = 17
fstat(17, {st_mode=S_IFREG|0644, st_size=251320, ...}) = 0
fstat(17, {st_mode=S_IFREG|0644, st_size=251320, ...}) = 0
mmap(NULL, 251320, PROT_READ, MAP_SHARED, 17, 0) = 0x7f4a88049000
close(17)                               = 0
munmap(0x7f4a88049000, 251320)          = 0
stat("/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms/kcm_cursortheme.so", {st_mode=S_IFREG|0644, st_size=251320, ...}) = 0
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=118784, ...}) = 0
lstat("/usr/lib/x86_64-linux-gnu/qt5", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib/x86_64-linux-gnu/qt5/plugins", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
lstat("/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms/kcm_cursortheme.so", {st_mode=S_IFREG|0644, st_size=251320, ...}) = 0
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms/kcm_cursortheme.so", O_RDONLY|O_CLOEXEC) = 17
fstat(17, {st_mode=S_IFREG|0644, st_size=251320, ...}) = 0
fstat(17, {st_mode=S_IFREG|0644, st_size=251320, ...}) = 0
mmap(NULL, 251320, PROT_READ, MAP_SHARED, 17, 0) = 0x7f4a88049000
close(17)                               = 0
munmap(0x7f4a88049000, 251320)          = 0
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/qt5/plugins/kcms/kcm_cursortheme.so",


Strace output from my Solus system

Strace:
## Search for KCM
statx(AT_FDCWD, "./kcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "./kcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "./libkcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "./libkcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib64/qt5/plugins/kcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib64/qt5/plugins/kcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib64/qt5/plugins/libkcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib64/qt5/plugins/libkcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/bin/kcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/bin/kcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/bin/libkcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/bin/libkcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
org.kde.kcoreaddons: Error loading plugin "kcm_cursortheme" "The shared library was not found." 
Plugin search paths are ("/usr/lib64/qt5/plugins", "/usr/bin") 
The environment variable QT_PLUGIN_PATH might be not correctly set

## Now it's 'not found' search for KCM adding kcms/ to path and work as expected
statx(AT_FDCWD, "./kcms/kcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "./kcms/kcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "./kcms/libkcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "./kcms/libkcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib64/qt5/plugins/kcms/kcm_cursortheme", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffc92db4f20) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=215168, ...}) = 0
openat(AT_FDCWD, "/usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so", O_RDONLY|O_CLOEXEC) = 17</usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so>
statx(17</usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so>, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=215168, ...}) = 0
statx(17</usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so>, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=215168, ...}) = 0
statx(AT_FDCWD, "/usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=215168, ...}) = 0
lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib64", {st_mode=S_IFDIR|0755, st_size=172032, ...}) = 0
lstat("/usr/lib64/qt5", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib64/qt5/plugins", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
lstat("/usr/lib64/qt5/plugins/kcms", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so", {st_mode=S_IFREG|0755, st_size=215168, ...}) = 0
openat(AT_FDCWD, "/usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so", O_RDONLY|O_CLOEXEC) = 17</usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so>
statx(17</usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so>, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=215168, ...}) = 0
statx(17</usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so>, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=215168, ...}) = 0
openat(AT_FDCWD, "/usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so.avx2", O_RDONLY|O_CLOEXEC) = 17</usr/lib64/qt5/plugins/kcms/kcm_cursortheme.so.avx2>
Comment 3 David Edmundson 2019-12-16 01:02:40 UTC
To be clear, you're saying it has a warning line but everything works correctly?
Comment 4 flinux 2019-12-16 14:54:50 UTC
(In reply to David Edmundson from comment #3)
> To be clear, you're saying it has a warning line but everything works
> correctly?

yes, it checks for the plugin inside the /usr/lib/qt/plugins path, triggers the warning but checks right after the warning inside the /usr/lib/qt/plugins/kcms path finds it and continues it. 

one of the annoying part is, it fills as well as my journalctl log with errors
Comment 5 Nate Graham 2020-10-12 22:15:30 UTC
This search paths issue was fixed a release or two ago.