Bug 16929 - OpenRA fails to launch (depends on libgdiplus.so instead of proper soname)
Summary: OpenRA fails to launch (depends on libgdiplus.so instead of proper soname)
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 5
Hardware: x86_64 Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: MGA5-64-OK advisory
Keywords: validated_update
Depends on:
Blocks:
 
Reported: 2015-10-09 20:35 CEST by Alket Rexhepi
Modified: 2015-11-05 23:46 CET (History)
5 users (show)

See Also:
Source RPM: mono-3.12.1-1.mga5
CVE:
Status comment:


Attachments

Description Alket Rexhepi 2015-10-09 20:35:36 CEST
After installing OpenRA, I got this problem. I fixed it by installing lib64gdiplus-devel.

Platform is Linux
Using SDL 2 with OpenGL renderer
Desktop resolution: 1280x1024
No custom resolution provided, using desktop resolution
Using resolution: 1280x1024
Detected OpenGL version: 4.5
Using OpenAL sound engine
Using default device
Available mods:
        cnc: Tiberian Dawn ({DEV_VERSION})
        d2k: Dune 2000 ({DEV_VERSION})
        modchooser: Mod Chooser ({DEV_VERSION})
        ra: Red Alert ({DEV_VERSION})
Exception of type `System.TypeInitializationException`: An exception was thrown by the type initializer for OpenRA.Support.PerfHistory
Inner Exception of type `System.TypeInitializationException`: An exception was thrown by the type initializer for System.Drawing.KnownColors
  Inner Exception of type `System.TypeInitializationException`: An exception was thrown by the type initializer for System.Drawing.GDIPlus
    Inner Exception of type `System.DllNotFoundException`: libgdiplus.so
      TypeName=``
        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 
      at System.Drawing.KnownColors..cctor () [0x00000] in <filename unknown>:0 
    at System.Drawing.Color.get_Red () [0x00000] in <filename unknown>:0 
  at OpenRA.Support.PerfHistory..cctor () [0x00000] in <filename unknown>:0 
  at OpenRA.Game.Initialize (OpenRA.Arguments args) [0x00000] in <filename unknown>:0 
  at OpenRA.Program.Run (System.String[] args) [0x00000] in <filename unknown>:0 
  at OpenRA.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Created new window in existing browser session.


Reproducible: 

Steps to Reproduce:
Samuel Verschelde 2015-10-12 10:05:37 CEST

Assignee: bugsquad => rverschelde
Summary: OpenRA fails to launch => OpenRA fails to launch (missing dependency)

Comment 1 Rémi Verschelde 2015-10-13 18:57:41 CEST
I can reproduce the issue; only lib64gdiplus0 is needed though, not the -devel package.

It seems to be a mono packaging issue though more than an openra problem. The mono package that provides mono(System.Drawing) (apparently mono-winforms) should require %{_lib}gdiplus0.

Assigning to our mono maintainer. It might be worth looking whether other mono subpackages would need %{_lib}gdiplus0 too (maybe by checking the packages that require libgdiplus in Debian?).

CC: (none) => rverschelde
Version: 5 => Cauldron
Assignee: rverschelde => matteo.pasotti
Summary: OpenRA fails to launch (missing dependency) => OpenRA fails to launch (missing libgdiplus dependency in some mono components)
Source RPM: (none) => mono-3.12.1-1.mga5
Whiteboard: (none) => MGA5TOO

Comment 2 Alket Rexhepi 2015-10-13 19:12:28 CEST
I tried the one without -devel, but for some reason it didn't work for me (or i just installed devel to make sure, i dont remember)
Comment 3 Rémi Verschelde 2015-10-13 21:43:52 CEST
(In reply to Alket Rexhepi from comment #2)
> I tried the one without -devel, but for some reason it didn't work for me
> (or i just installed devel to make sure, i dont remember)

Thanks, I double checked and indeed it does not work without lib64gdiplus-devel. And lib64gdiplus0 is actually already a dependency of some mono components, so what I said in comment 1 seems to be wrong.

I guess something tries to dlopen libgdiplus.so (the devel symlink) instead of libgdiplus.so.0 (the actual library). Adding the devel package as a dependency of openra for that would be bogus, so I'll see if I can fix this wrong library lookup.

CC: rverschelde => (none)
Assignee: matteo.pasotti => rverschelde
Summary: OpenRA fails to launch (missing libgdiplus dependency in some mono components) => OpenRA fails to launch (depends on libgdiplus.so instead of proper soname)
Source RPM: mono-3.12.1-1.mga5 => openra, mono?

Comment 4 Rémi Verschelde 2015-10-13 21:54:47 CEST
So it _is_ actually a bug in mono, as /etc/mono/config lists:

        <dllmap dll="gdiplus" target="libgdiplus.so" os="!windows"/>
        <dllmap dll="gdiplus.dll" target="libgdiplus.so"  os="!windows"/>
        <dllmap dll="gdi32" target="libgdiplus.so" os="!windows"/>
        <dllmap dll="gdi32.dll" target="libgdiplus.so" os="!windows"/>

It should be libgdiplus.so.0. I'll have a look at patching that.

CC: (none) => rverschelde
Assignee: rverschelde => matteo.pasotti
Source RPM: openra, mono? => mono-3.12.1-1.mga5

Comment 5 Rémi Verschelde 2015-10-13 21:55:48 CEST
Assigning to myself, but feel free to comment on the proposed solution Matteo (comment 4).

CC: (none) => matteo.pasotti
Assignee: matteo.pasotti => rverschelde

Comment 6 Rémi Verschelde 2015-10-13 22:43:24 CEST
I pushed an update candidate for mono in Mageia 5, based on this fix: http://svnweb.mageia.org/packages?view=revision&revision=890509

@Alket: Could you try to update the packages listed here that are installed on your system (you'd have to enable Core Updates Testing first) and confirms that it fixes the bug (you'd also have to uninstall lib64gdiplus-devel to make sure).

RPMs:
=====
lib(64)mono0-3.12.1-1.1.mga5
lib(64)mono2.0_1-3.12.1-1.1.mga5
lib(64)mono-devel-3.12.1-1.1.mga5
mono-3.12.1-1.1.mga5
mono-data-3.12.1-1.1.mga5
mono-data-oracle-3.12.1-1.1.mga5
mono-data-postgresql-3.12.1-1.1.mga5
mono-data-sqlite-3.12.1-1.1.mga5
mono-debuginfo-3.12.1-1.1.mga5
mono-doc-3.12.1-1.1.mga5.noarch
monodoc-core-3.12.1-1.1.mga5
mono-extras-3.12.1-1.1.mga5
mono-ibm-data-db2-3.12.1-1.1.mga5
mono-locale-extras-3.12.1-1.1.mga5
mono-nunit-3.12.1-1.1.mga5
mono-rx-core-3.12.1-1.1.mga5
mono-rx-desktop-3.12.1-1.1.mga5
mono-wcf-3.12.1-1.1.mga5
mono-web-3.12.1-1.1.mga5
mono-winforms-3.12.1-1.1.mga5
mono-winfxcore-3.12.1-1.1.mga5

SRPM:
=====
 - mono-3.12.1-1.1.mga5
Comment 7 Rémi Verschelde 2015-10-28 19:23:24 CET
I had also pushed the change to cauldron btw, so it's fixed there.

Tested on Mageia 5 x86_64, openra works fine with the updated mono, even without lib64gdiplus-devel. Let's assign to QA.

Advisory:
=========

  Mono in Mageia 5 had an incorrect configuration to match the gdiplus DLL,
  searching for the development library name instead of the normal one.

  This has been fixed, thus enabling to run mono applications using gdiplus
  without having to install the development library for gdiplus.

Version: Cauldron => 5
Assignee: rverschelde => qa-bugs
Whiteboard: MGA5TOO => (none)

Comment 8 Len Lawrence 2015-11-04 16:14:20 CET
x86_64  4.1.12-desktop-1.mga5  Mate
Installed the pre-update packages, where required, then installed the updates.
OpenRA is a game.
Launched OpenRA from the Games menu and the top level interface opened to give a choice of three battlefields.  They all seemed to need "mods", presumably modules or libraries.  Left it there.

Giving this the OK for 64 bit systems.

CC: (none) => tarazed25

Len Lawrence 2015-11-04 16:15:43 CET

Whiteboard: (none) => MGA5-64-OK

Dave Hodgins 2015-11-05 22:38:14 CET

Keywords: (none) => validated_update
Whiteboard: MGA5-64-OK => MGA5-64-OK advisory
CC: (none) => davidwhodgins, sysadmin-bugs

Comment 9 Mageia Robot 2015-11-05 23:46:48 CET
An update for this issue has been pushed to Mageia Updates repository.

http://advisories.mageia.org/MGAA-2015-0171.html

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


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