Bugzilla – Bug 944754
libgdiplus0 doesn't contain symlink libgdiplus.so
Last modified: 2016-02-08 19:01:21 UTC
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0 Build Identifier: The package: Repository: openSUSE-13.2-Oss Name: libgdiplus0 Version: 3.8-1.2 Arch: x86_64 Vendor: openSUSE Installed: Yes Status: up-to-date Installed Size: 424.1 KiB Summary: Open Source Implementation of the GDI+ API Contains: /usr/lib64/libgdiplus.so.0 /usr/lib64/libgdiplus.so.0.0.0 /usr/share/doc/packages/libgdiplus0 /usr/share/doc/packages/libgdiplus0/AUTHORS /usr/share/doc/packages/libgdiplus0/COPYING /usr/share/doc/packages/libgdiplus0/ChangeLog /usr/share/doc/packages/libgdiplus0/NEWS /usr/share/doc/packages/libgdiplus0/README but not the symlink for /usr/lib64/libgdiplus.so which is required to start applications with it. Reproducible: Always Steps to Reproduce: 1. Install library 2. Run application that uses it. Actual Results: Application crashes with DLL not found error. Expected Results: With the symlinked file (.so) the application starts normally.
What application would that be? the .so link is correctly in the -devel package
The application was AirVPN's client. I don't remember how it was installed, but apparently it installed "mono" through OpenSUSE? Oh right, here is the RPM: https://airvpn.org/repository/2.10/airvpn_linux_x64_rpm.rpm In any case I don't see what it has to do with the package.
Here is their page on it: https://airvpn.org/topic/11573-opensuse/ They wrote: "It was a "notorious" bug in openSUSE libgdiplus installation that's been documented by us a long time ago."
I regret fixing the rpmlint warning by putting libgdiplus.so in the -devel package. In practice the DllImport all seem to reference libgdiplus.so so you need to fix every package with Requires: libgdiplus-devel which triggers another rpmlint warning (non-devel package requiring devel package) so well no win only incompatibility. That is what we did in our Mono repositories. The hint to sudo ln -s /usr/lib64/libgdiplus.so.0 /usr/lib64/libgdiplus.so in that forum is terrible. Just install libgdiplus-devel please.
I'm just one ordinary user who happens to know that .so.0 files are often symlinked to .so files. I don't think installing -devel packages when you don't need to compile anything is such a good idea, but that's just me. In any case the symlink is something I was able to resolve by myself, I would never have come up with checking a -devel package. So I did by myself what that page also suggested. I'm not responsible for that page but I would have offered the same advice. It quickly fixes the situation for a user, I'm sorry to hear that the real solution also produces warnings and errors. Regards..
The correct fix would be submitting a patch towards Mono to reference libgdiplus.so.0 instead in the System.Imaging framework class. It hasn't been a problem in practice, because GDI+ reimplementation is pretty stall and there don't seem to be ABI changes planned, but it would be the proper way to solve it.
If you say so.
Hi Matthias, so would you like to fix this issue please?
I informed upstream at https://bugzilla.xamarin.com/show_bug.cgi?id=34314 about the problem. There may be a reason they did things this way.
I submitted a patch on my own: https://build.opensuse.org/request/show/351820
https://build.opensuse.org/request/show/352724 has been accepted last month.
*** Bug 965504 has been marked as a duplicate of this bug. ***