Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux case fixes #106

Closed
wants to merge 3 commits into from
Closed

Linux case fixes #106

wants to merge 3 commits into from

Conversation

kallisti5
Copy link
Contributor

A series of case issues with the build system. These patches let me build with Mono after going through and adding missing packages (XML-RPC.net, etc)

@stephen-turner
Copy link
Contributor

Thank you for your contributions, Alex. After these changes, does XenCenter build and run correctly on Mono? One earlier contributor got it to compile, but it wouldn't run.

Also, I'm wondering if it would be better not to change the case of any filenames, just the references to them. What do you think?

@stephen-turner
Copy link
Contributor

Also, have you verified that a clean check-out still compiles under Visual Studio, or do we need to test that?

@kallisti5
Copy link
Contributor Author

You would need to test Visual Studio (however the changes are pretty minimal and Visual Studio shouldn't really even notice) I don't have any windows machines to test on.

I also need to mention that i'm no .NET / C# developer, so take anything I push with a grain of salt :-)

This gets 99% of stuff building once defining the package requirements through mono-develop. (requirements in #3)

I am running into a "No element named ListViewItemCount could be found" error at the end of the build while it is building resources, still looking into that one.

I'm honestly suprised that Citrix didn't port this to Mono / Linux, seems like an easy port that would of increased the usebase. I know we would of deployed XenServer at my previous job if there was a way to manage it from Linux. :-\

@kallisti5
Copy link
Contributor Author

Actually, it looks like i'm pretty much redoing the work done here: https://github.com/hoerup/xenadmin/commit/dca9a0e80069d10c7a74fcf76cdd016ddc08e47e

@kallisti5
Copy link
Contributor Author

(however my patches are better :-)

@kallisti5
Copy link
Contributor Author

actually, hoerup did more work and converted the C++ splash to C#. Let me redo my fork using his work.

@kallisti5 kallisti5 closed this Jul 2, 2014
@stephen-turner
Copy link
Contributor

The thing is, neither hoerup nor ko-85 (later in that thread) actually got it running. So I suspect there's more than just changing the filenames.

@kallisti5
Copy link
Contributor Author

eh. Giving up for now. .NET / C# is a mess outside of Windows.

All of this stuff needs cleaned up and refactored. Long-term developing towards Mono may be a good plan as it is a lot more portable vs Microsoft's .NET.

Current issue on my fork @ http://github.com/kallisti5/xenadmin

/usr/lib/mono/4.5/Microsoft.Common.targets: Error: Tool exited with code: 1. Output: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng error: invalid after png_start_read_image or png_read_update_info
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
Read in 320 resources from '/home/kallisti5/xenadmin/XenAdmin/Properties/Resources.resx'
Error: A null reference or invalid value was found [GDI+ status: InvalidParameter]

Unhandled Exception:
System.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter]
  at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000] in <filename unknown>:0 
  at System.Drawing.Image.get_RawFormat () [0x00000] in <filename unknown>:0 
  at System.Drawing.Image.System.Runtime.Serialization.ISerializable.GetObjectData (System.Runtime.Serialization.SerializationInfo si, StreamingContext context) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.GetObjectData (System.Object obj, System.Runtime.Serialization.Formatters.Binary.TypeMetadata& metadata, System.Object& data) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObject (System.IO.BinaryWriter writer, Int64 id, System.Object obj) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectInstance (System.IO.BinaryWriter writer, System.Object obj, Boolean isValueObject) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteQueuedObjects (System.IO.BinaryWriter writer) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectGraph (System.IO.BinaryWriter writer, System.Object obj, System.Runtime.Remoting.Messaging.Header[] headers) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph, System.Runtime.Remoting.Messaging.Header[] headers) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceWriter.Generate () [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceWriter.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceWriter.Dispose () [0x00000] in <filename unknown>:0 
  at ResGen.CompileResourceFile (System.String sname, System.String dname, Boolean useSourcePath) [0x00000] in <filename unknown>:0 
  at ResGen.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter]
  at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000] in <filename unknown>:0 
  at System.Drawing.Image.get_RawFormat () [0x00000] in <filename unknown>:0 
  at System.Drawing.Image.System.Runtime.Serialization.ISerializable.GetObjectData (System.Runtime.Serialization.SerializationInfo si, StreamingContext context) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.GetObjectData (System.Object obj, System.Runtime.Serialization.Formatters.Binary.TypeMetadata& metadata, System.Object& data) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObject (System.IO.BinaryWriter writer, Int64 id, System.Object obj) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectInstance (System.IO.BinaryWriter writer, System.Object obj, Boolean isValueObject) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteQueuedObjects (System.IO.BinaryWriter writer) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectGraph (System.IO.BinaryWriter writer, System.Object obj, System.Runtime.Remoting.Messaging.Header[] headers) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph, System.Runtime.Remoting.Messaging.Header[] headers) [0x00000] in <filename unknown>:0 
  at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceWriter.Generate () [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceWriter.Dispose (Boolean disposing) [0x00000] in <filename unknown>:0 
  at System.Resources.ResourceWriter.Dispose () [0x00000] in <filename unknown>:0 
  at ResGen.CompileResourceFile (System.String sname, System.String dname, Boolean useSourcePath) [0x00000] in <filename unknown>:0 
  at ResGen.Main (System.String[] args) [0x00000] in <filename unknown>:0 
 (XenAdmin)

@stephen-turner
Copy link
Contributor

That's a shame. Maybe I should start a thread where people can share their experiences of what problems they encountered when porting to Mono, and what solutions they have found.

@hoerup
Copy link

hoerup commented Jul 3, 2014

One thing is getting the thing to compile - getting it running is a whole other task.
The case correction is a first and mandatory change to get it compiling. In order to get the thing running all DllImport'ed functions must be replaced by native .net functions - which is a major task and that's where I stranded,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants