Bug 373291 - kMyMoney error loading shared library libgpgme-pthread.so.11
Summary: kMyMoney error loading shared library libgpgme-pthread.so.11
Status: RESOLVED FIXED
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: 4.8.0
Platform: Compiled Sources Linux
: NOR critical
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-05 13:21 UTC by Nicholas Loch
Modified: 2018-01-08 21:35 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nicholas Loch 2016-12-05 13:21:53 UTC
It appears that the latest version of libgpgme11 (1.8.0-neon0+16.04+build30) is no longer creating the libgpgme-pthread.  KmyMoney will not execute because of this.

Error:

kmymoney: error while loading shared libraries: libgpgme-pthread.so.11: cannot open shared object file: No such file or directory
Comment 1 Michael Tunnell 2016-12-19 00:21:22 UTC
I had the same issue with missing libgpgme-pthread.so.11 but inside of Rhythmbox rather that KMyMoney. I've also seen reports of other applications being affected by this issue so I think it is a larger problem than just KMyMoney.

The solution I used to temporarily solve this problem was to create a symlink of "libgpgme-pthread.so.11" to "libgpgme.so.11" inside of "/usr/lib/x86_64-linux-gnu/".

Forum Thread discussing this topic, this thread contains the symlink workaround. https://forum.kde.org/viewtopic.php?f=309&t=137494
Comment 2 Jack 2016-12-19 02:51:58 UTC
gpgme 1.8 is now thread safe, so it no longer provides libgpgme-pthread because it is no longer necessary.  The problem is that many programs (kmymoney included) need to be modified to not use libgpgme-pthread if gpgme is version 1.8 or above.  Creating that temporary symlink can be a short-term workaround, but eventually, all programs that link to gpgme will need to be modified (or perhaps have their build system modified) because of this.  (This applies to both 4.8.x and git master.)
Comment 3 Jonathan Riddell 2016-12-19 17:38:10 UTC
Note I added the symlink to libgpgme package now in Neon.  If there's no changes needed to kmymoney this can be closed.

A bug report asking the gpgme developers what the hell they were thinking might be legitimate but it's no longer a KDE project.
Comment 4 Jack 2016-12-19 17:50:23 UTC
No, please leave this open until kmymoney gets updated to not need the pthreads library.  

There is no bug in gpgme.  They simply made the library thread-safe.  This is a good thing, For any library, if it is not thread-safe, there is a need for a thread-safe version, thus the libgpgme-pthreads file.  My limited understanding is that it is not hard to create the ...-pthreads version, but it is sufficiently less efficient, that it is only done until the library itself is made thread-safe.
Comment 5 Michael Tunnell 2016-12-21 20:15:21 UTC
> No, please leave this open until kmymoney gets updated to not need the pthreads library.  

I agree with this point . . . until it is fixed by the application the bug report is still valid. I will also submit this bug report to the other applications I experienced the issue with.
Comment 6 Michael Tunnell 2016-12-21 22:00:08 UTC
Here is the response from Rhythmbox developers on the issue, essentially saying it is a distro level issue.

> rhythmbox ( -> ) libtotem-plparser ( -> )  libgmime ( -> ) libgpgme
>
> So, there is no direct relation between rhythmbox and libgpgme. Also, this issue should be reported to the distribution maintainer, at best. The symlinks are already there in my case ( Debian ).
Comment 7 Jack 2016-12-21 22:15:51 UTC
I agree the distribution is probably the right place for the initial report, but it should also go upstream.  Remember, the correct action is not the symlink (which is only a temporary fix) but modifying the application to not use the ..._pthreads library any more, since the underlying library is now thread-safe.  

In the case of rhythmbox (I don't run it myself, so I can't easily check) if it isn't directly calling libgpgme, then they are correct that it would be gmime or libtotem-plparser which needs to be corrected.
Comment 8 Jack 2017-09-26 18:42:08 UTC
Is this now no longer an issue?  If so, this bug could probably be safely closed as resolved.