Bug 15972 - keepass does not start, tries to access %_libdir/libgdiplus.so instead of libgdiplus.so.0
Summary: keepass does not start, tries to access %_libdir/libgdiplus.so instead of lib...
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal major
Target Milestone: ---
Assignee: Guillaume Rousse
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-18 09:47 CEST by Florian Hubold
Modified: 2015-05-19 17:54 CEST (History)
0 users

See Also:
Source RPM: keepass-2.28-1.mga5.src.rpm, monodevelop
CVE:
Status comment:


Attachments

Description Florian Hubold 2015-05-18 09:47:49 CEST
On installation of keepass only the following packages were pulled as dependencies:

(Medium »Core Release«)
  keepass                        2.28         1.mga5        noarch  
  lib64xdotool2                  2.20110530.1 8.mga5        x86_64  
  xdotool                        2.20110530.1 8.mga5        x86_64


When trying to run keepass:



ââ[doktor5000@Mageia5]â[09:30:01]â[~]                                                                                                                                                                              
ââââ¼ keepass                                                                                                                                                                                                       

Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus ---> System.DllNotFoundException: libgdiplus.so
  at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Drawing.Graphics.FromHdcInternal (IntPtr hdc) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Windows.Forms.Application.EnableVisualStyles () [0x00000] in <filename unknown>:0 
  at KeePass.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.XplatUI ---> System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus ---> System.DllNotFoundException: libgdiplus.so
  at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Drawing.Graphics.FromHdcInternal (IntPtr hdc) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.XplatUIX11.SetDisplay (IntPtr display_handle) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.XplatUIX11..ctor () [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.XplatUIX11.GetInstance () [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.XplatUI..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at System.Windows.Forms.Application.EnableVisualStyles () [0x00000] in <filename unknown>:0 
  at KeePass.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
ââ[â]â[doktor5000@Mageia5]â[09:30:08]â[~]



After creating a symlink from libgdiplus.so -> libgdiplus.so.0.0.0, keepass runs just fine:


ââ[doktor5000@Mageia5]â[09:40:32]â[~]
ââââ¼ sudo ln -s libgdiplus.so.0.0.0 /usr/lib64/libgdiplus.so
ââ[doktor5000@Mageia5]â[09:40:59]â[~]
ââââ¼ ls -al /usr/lib64/libgdiplus.so
lrwxrwxrwx 1 root root 19 Mai 18 09:40 /usr/lib64/libgdiplus.so -> libgdiplus.so.0.0.0*
ââ[doktor5000@Mageia5]â[09:42:12]â[~]
ââââ¼ LC_ALL=C rpm -qf /usr/lib64/libgdiplus.so
file /usr/lib64/libgdiplus.so is not owned by any package


Originally reported via forums:
https://forums.mageia.org/en/viewtopic.php?f=15&t=9805



Please fix.

Reproducible: 

Steps to Reproduce:
Comment 1 Guillaume Rousse 2015-05-18 19:20:45 CEST
Until someone more willing to deal with mono linking issues has a better solution, 2.28-2.mga5 release should workaround the problem by forcing installation of the unversioned symlink from the devel subpackage.

Status: NEW => RESOLVED
Resolution: (none) => FIXED

Comment 2 David Walser 2015-05-18 19:37:55 CEST
Wouldn't it be better to just have it open the correct library filename?
Comment 3 Guillaume Rousse 2015-05-18 20:17:31 CEST
Sure, just do it.
Comment 4 Rémi Verschelde 2015-05-18 20:54:28 CEST
Not sure whether that's an issue with keepass, or directly with monodevelop or something else from the mono stack. See: http://www.mono-project.com/docs/advanced/pinvoke/dllnotfoundexception/

Source RPM: keepass-2.28-1.mga5.src.rpm => keepass-2.28-1.mga5.src.rpm, monodevelop

Comment 5 David Walser 2015-05-18 21:20:58 CEST
I guess it's not so simple.  I don't see the string "gdiplus" or even "gdi" anywhere in the keepass sources.
Comment 6 David Walser 2015-05-18 21:21:19 CEST
Anyway, nothing's pushed yet, so this shouldn't be closed.

Status: RESOLVED => REOPENED
Resolution: FIXED => (none)

Comment 7 Samuel Verschelde 2015-05-19 09:08:14 CEST
Now it's pushed.

Status: REOPENED => RESOLVED
Resolution: (none) => FIXED

Comment 8 David Walser 2015-05-19 17:54:57 CEST
Not that it'll be fixed right away, but we should have a bug report for it requiring a devel package to work.

Note You need to log in before you can comment on or make changes to this bug.