We have moved to a new Sailfish OS Forum. Please start new discussions there.
1

Non-QML plugins in Harbour

asked 2014-06-22 22:16:16 +0200

jpnurmi gravatar image

The Harbour FAQ states:

/usr/share/<HARBOUR_APP_NAME>/* <- anything else (data files, private shared libraries, private QML imports, etc..) goes here

I have a use case for non-QML plugins that I'd like to install to /usr/share/<HARBOUR_APP_NAME>/plugins, but the RPM-validator does not like the idea:

Libraries
=========
INFO [/usr/share/harbour-communi/qml/Communi/libcommuniplugin.so] Shared library for private QML import (qmldir found)
ERROR [/usr/share/harbour-communi/plugins/libquasselplugin.so] Library in wrong location (must be in /usr/share/harbour-communi/lib/)
INFO [/usr/share/harbour-communi/lib/libIrcUtil.so.3.2.0] Private shared library shipped
INFO [/usr/share/harbour-communi/lib/libIrcModel.so.3.2.0] Private shared library shipped
INFO [/usr/share/harbour-communi/lib/libIrcCore.so.3.2.0] Private shared library shipped
FAILED

Is this an oversight, or is there a desired location for non-QML plugins that do not belong to /usr/share/<HARBOUR_APP_NAME>/lib nor /usr/share/<HARBOUR_APP_NAME>/qml?

edit retag flag offensive close delete

1 Answer

Sort by » oldest newest most voted
0

answered 2014-06-23 11:45:36 +0200

Kontio gravatar image

Yes we expect *.so* files to be in /usr/share/<HARBOUR_APP_NAME>/lib or /usr/share/<HARBOUR_APP_NAME>/qml. If you have many libs you can also create a folder /usr/share/<HARBOUR_APP_NAME>/lib/plugins to have them more organized.

edit flag offensive delete publish link more

Comments

May I ask why? The plugins/ structure is typical for Qt projects, including Qt itself.

jpnurmi ( 2014-06-23 22:49:58 +0200 )edit

For easy validation reasons, we only allow .so files (the exception being the qmldir-specified plugin) in /usr/share/$APPNAME/lib/, this also eases the check for library rpaths, as otherwise we'd have to do all kinds of checks and in some situations (e.g. same library basename in two directories) it's hard to predict the linker search path with rpath, built-in search paths and all.

Is there a technical reason why you can't install the .so files into /lib/plugins, other than it being annoying that you have to change your packaging to get it working (which I can understand is annoying, but it's a one-off change)?

thp ( 2014-06-24 17:39:35 +0200 )edit

Thank you for sharing your concerns. Just to clarify, I'm talking about plugins that are dynamically loaded at runtime with QPluginLoader. There's no need for any rpath changes, so I'm not sure how the linker search path and runtime search parth are relevant. Furthermore, duplicate library basenames are just as likely with subdirs in lib/ than with separate plugins/.

jpnurmi ( 2014-06-24 20:42:23 +0200 )edit
Login/Signup to Answer

Question tools

Follow
1 follower

Stats

Asked: 2014-06-22 22:16:16 +0200

Seen: 221 times

Last updated: Jun 23 '14