Closed UristMcEngineer closed 1 week ago
Probably need to update the RPM spec file:
https://github.com/KSP-CKAN/CKAN/blob/7568b2eb119ae8d929040add2bb5934d51a6068a/rpm/ckan.spec#L9
@UristMcEngineer, since I assume you believe Losing is Fun™️, would you be able to test the RPM in a completely fresh OS to see if there are any other missing dependencies? We might as well try to hit the full list while we're looking at this.
I could spin up a virtual machine tomorrow and test it.
libgdiplus0 is in the recommended packages of mono-core but not the required ones. This means that on a fresh openSUSE Tumbleweed install libgidplus0 is automatically installed. Only if you disable installing recommended packages like I did (and I believe this to be quite a common configuration) is it not installed. In my mind this still makes libgdiplus0 a requirement of ckan because it cannot start without it, but this additional information might be helpful to you.
I am struggling to get ckan to run in the virtual machine. After a fresh install of openSUSE Tumbleweed with the KDE Plasma Desktop environment, I installed ckan and libgdiplus0. The following error message is thrown when I try to start ckan:
KDE colorscheme read failure, using built-in colorscheme
\[ERROR\] FATAL UNHANDLED EXCEPTION: System.ArgumentException: A null reference or invalid value was found \[GDI+ status: InvalidParameter\]
at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status status) \[0x00098\] in <f53901eff2cb48d5b78faf585ca58078>:0
at System.Drawing.Bitmap..ctor ([System.Int](http://system.int/)32 width, [System.Int](http://system.int/)32 height, System.Drawing.Imaging.PixelFormat format) \[0x00016\] in <f53901eff2cb48d5b78faf585ca58078>:0
at System.Drawing.Bitmap..ctor (System.Drawing.Image original, [System.Int](http://system.int/)32 width, [System.Int](http://system.int/)32 height) \[0x00000\] in <f53901eff2cb48d5b78faf585ca58078>:0
at System.Drawing.Bitmap..ctor (System.Drawing.Image original, System.Drawing.Size newSize) \[0x00010\] in <f53901eff2cb48d5b78faf585ca58078>:0
at (wrapper remoting-invoke-with-check) System.Drawing.Bitmap..ctor(System.Drawing.Image,System.Drawing.Size)
at [System.Windows](http://system.windows/).Forms.XplatUIX11.DefineCursor (System.Drawing.Bitmap bitmap, System.Drawing.Bitmap mask, System.Drawing.Color cursor_pixel, System.Drawing.Color mask_pixel, [System.Int](http://system.int/)32 xHotSpot, [System.Int](http://system.int/)32 yHotSpot) \[0x00045\] in <f6663a5f065d4ea09e257119004995d3>:0
at [System.Windows](http://system.windows/).Forms.XplatUI.DefineCursor (System.Drawing.Bitmap bitmap, System.Drawing.Bitmap mask, System.Drawing.Color cursor_pixel, System.Drawing.Color mask_pixel, [System.Int](http://system.int/)32 xHotSpot, [System.Int](http://system.int/)32 yHotSpot) \[0x00000\] in <f6663a5f065d4ea09e257119004995d3>:0
at [System.Windows](http://system.windows/).Forms.Cursor.CreateCursor ([System.IO.Stream](http://system.io.stream/) stream) \[0x00058\] in <f6663a5f065d4ea09e257119004995d3>:0
at [System.Windows](http://system.windows/).Forms.Cursor..ctor (System.Type type, System.String resource) \[0x0001e\] in <f6663a5f065d4ea09e257119004995d3>:0
at [System.Windows](http://system.windows/).Forms.Cursors.get_SizeNWSE () \[0x00014\] in <f6663a5f065d4ea09e257119004995d3>:0
at [System.Windows](http://system.windows/).Forms.SizeGrip..ctor ([System.Windows](http://system.windows/).Forms.Control CapturedControl) \[0x00006\] in <f6663a5f065d4ea09e257119004995d3>:0
at (wrapper remoting-invoke-with-check) [System.Windows](http://system.windows/).Forms.SizeGrip..ctor([System.Windows](http://system.windows/).Forms.Control)
at [System.Windows](http://system.windows/).Forms.ScrollableControl.CreateScrollbars () \[0x000c2\] in <f6663a5f065d4ea09e257119004995d3>:0
at [System.Windows](http://system.windows/).Forms.ScrollableControl..ctor () \[0x000b0\] in <f6663a5f065d4ea09e257119004995d3>:0
at [System.Windows](http://system.windows/).Forms.ContainerControl..ctor () \[0x0000e\] in <f6663a5f065d4ea09e257119004995d3>:0
at [System.Windows](http://system.windows/).Forms.Form..ctor () \[0x00012\] in <f6663a5f065d4ea09e257119004995d3>:0
at CKAN.GUI.Main..ctor (System.String\[\] cmdlineArgs, CKAN.GameInstanceManager mgr, System.String userAgent) \[0x0000b\] in <e7a11ea66e094dd1a3ac6d97032c8cd9>:0
at (wrapper remoting-invoke-with-check) CKAN.GUI.Main..ctor(string\[\],CKAN.GameInstanceManager,string)
at CKAN.GUI.GUI.Main\_ (System.String\[\] args, System.String userAgent, CKAN.GameInstanceManager manager, System.Boolean showConsole) \[0x0003b\] in <e7a11ea66e094dd1a3ac6d97032c8cd9>:0
at CKAN.CmdLine.MainClass.Gui (CKAN.GameInstanceManager manager, CKAN.CmdLine.GuiOptions options, System.String\[\] args) \[0x0003e\] in <e7a11ea66e094dd1a3ac6d97032c8cd9>:0
at CKAN.CmdLine.MainClass.RunSimpleAction (CKAN.CmdLine.Options cmdline, CKAN.CmdLine.CommonOptions options, System.String\[\] args, CKAN.IUser user, CKAN.GameInstanceManager manager) \[0x00296\] in <e7a11ea66e094dd1a3ac6d97032c8cd9>:0
at CKAN.CmdLine.MainClass.Execute (CKAN.GameInstanceManager manager, CKAN.CmdLine.CommonOptions opts, System.String\[\] args) \[0x002b9\] in <e7a11ea66e094dd1a3ac6d97032c8cd9>:0
at CKAN.CmdLine.MainClass.Main (System.String\[\] args) \[0x000e9\] in <e7a11ea66e094dd1a3ac6d97032c8cd9>:0
Maybe this means something to you. I have barely worked with windows forms before and cannot find a fix to this online. Some mentions of this error online talk about images with size 0. Maybe the bitmap for the cursor can't be found or accessed and the fallback is an image of size 0.
Maybe it doesn't even matter. When this code is executed all dynamic libraries should be loaded, right? So at least when it comes to dynamic libraries there seem to be no further undeclared dependencies (other than possibly those allready present on a fresh install).
Looks like the package is called simply libgdiplus
on Fedora, without the 0
. If we added a dependency on that, would openSUSE be able to figure it out?
https://packages.fedoraproject.org/search?query=libgdiplus https://packages.fedoraproject.org/search?query=libgdiplus0
Looking at the build-spec for mono-core which recommends libgdiplus, it is specified as Recommends: libgdiplus0
.
Sadly I have no experience with building rpm-packages, but I would assume that this means that the requirement isn't compatible between Fedora and openSUSE.
Is this what people mean, when they talk about how annoying it is to provide software for linux? ^^
Nah, it's fine—a problem that we can't solve, isn't our problem to solve!
Is there an existing issue for this?
Operating System
openSUSE Tumbleweed
CKAN Version
1.35.0
Games
KSP 1
Game Version
Not relevant
Did you make any manual changes to your game folder (i.e., not via CKAN)?
No response
Describe the bug
After successfully installing ckan through the rpm-repository, at startup the exception
System.DllNotFoundException: libgdiplus.so.0
is thrown. Installing the package libgdiplus0 from the Tumbleweed OSS repository fixes the error. Adding libgdiplus0 as a dependecy for the ckan-package seems neccessary.Steps to reproduce
Relevant log output