Bug 342984

Summary: plasma framework plugins should be built as a bundle plugin and not a shared library
Product: [Frameworks and Libraries] libplasma Reporter: Hanspeter Niederstrasser <niederstrasser>
Component: libplasmaAssignee: Marco Martin <notmart>
Status: RESOLVED INTENTIONAL    
Severity: normal CC: nate
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Fink Packages   
OS: macOS   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: patch to build plugins as MODULE

Description Hanspeter Niederstrasser 2015-01-17 23:03:25 UTC
The plasma-framework plugins (calendarplugin, corebindingsplugin, plasmacomponentsplugin, plasmaextracomponentsplugin, and platformcomponentsplugin) are being built as shared libraries. They should be built as bundles (MODULE) in the CMakeLists.txt file. 

Reproducible: Always


Actual Results:  
When built as SHARED as in the current code, libplasmacomponentsplugin.dylib gets installed to $PREFIX/share/qt5/qml/org/kde/plasma/components, but is given an install_name of $PREFIX/lib/libplasmacomponentsplugin.dylib. This mismatch can cause problems. It is also given a compatibility_version of 0.0.0. Expected Results: Since the plugin is not supposed to be a linkable library, it should be built as MODULE in CMakeLists.txt. This corrects the install_name/install location mismatch. The change should not have any effect on non-OS X systems.
Comment 1 Hanspeter Niederstrasser 2015-01-17 23:05:57 UTC
Created attachment 90486 [details]
patch to build plugins as MODULE
Comment 2 Marco Martin 2015-03-12 09:33:44 UTC
can you do a review request with it?
Comment 3 Hanspeter Niederstrasser 2015-03-14 11:13:19 UTC
Trying to figure out how to use reviewboard.  Current rbtools and the instructions at https://techbase.kde.org/Development/Review_Board don't match up.
Comment 4 Nate Graham 2020-11-24 20:00:22 UTC
I tried this out and it looks like Plasma relies on the old behavior:

"file:///home/nate/kde/usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml" 
 "Error loading QML file.\n22: module \"org.kde.plasma.core\" plugin \"corebindingsplugin\" not found\n"
Could not set containment property on rootObject
"file:///home/nate/kde/usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Panel.qml" 
 "Error loading QML file.\n23: module \"org.kde.plasma.core\" plugin \"corebindingsplugin\" not found\n"

As a result I'm afraid we cannot change this without breaking ABI compatibility among users of the current shared library, sorry. Perhaps we can re-think this for KF6. :)