Mono - #225
Conversation
83340e5 to
6c5da4a
Compare
Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
Downgrading TargetFramework version allows building the project using Mono on Linux hosts. Expected that the change will not significantly impact Windows builds. Probably, the downgraded version currently is the latest supported by Mono. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
…urces or vice-versa The builds on Linux are usually stored on case-sensitive file systems. While on Windows is no matter how to write letter cases, the Linux build fails because of it. These changes should allow building the same code on both host platforms. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
…latform variant This taken from the page https://github.com/xcp-ng/xenadmin/wiki/Cross-Platform-Vision Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
… password is wrong The focus setting doesn't work on Mono, so just skip that behaviour if the runtime is Mono. In the result, the focus remains on the username field. The change doesn't impact user experience a lot. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
These changes are hotfixes to successfully pass building on Mono. Expected negative impacts: - Losing the cursor change behaviour by moving across snapshot items - Losing some elements positioning The TODOs left in the code should notice about the issue. Probably better to revert this commit in the future and reimplement lost behaviour in cross-platform way. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
…l fields group The cutting effect noticed by running on Mono. To fix that, the AutoSize feature on the group box is disabled. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
…tyles The change fixes a group of exceptions that were throwing by catching null values on the font argument on some internal functions. This behaviour noticed by running on Mono. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
Doesn't work on Mono. The expected negative effect is losing indication to a user that the input is sending to a VM. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
The code in `XenAdmin/VNC/KeyMap.cs` is not crossplatform. It must be reimplemented. After that, this commit can be reverted. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
It is the hotfix to avoid a program stuck on Mono because of a call loop. Expected negative impact is impossibility to send keyboard and mouse input to a VM. The issue need more investigation and after resolving it this hotfix commit can be reverted. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
This is the hotfix to avoid the exception throwing by disabling some functionality if the runtime platform is Mono. The impact is unknown. Need more investigation to revert this hotfix. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
…e frames Reimplemented update timer of frames for Mono runtime. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
The splash image that is showing on the first moments on a screen is changed to a PNG formatted variant. The previous BMP formatted variant doesn't work on Mono. Expected that the change doesn't affect Windows users. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
For some reason, enabling that HomePage tab is the cause of connection lost right after the attempt to do connect to a server. The HomePage tab shows nearly nothing useful than the add new server link. Actually the tab content is a web page that require a webbrowser library that doesn't look available at current days, and doesn't work on Mono, so just disable it. Significant negative impact to users on Mono platform doesn't expect. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
Doesn't work on Mono, so just disable it. The impact in unknown. The ClipboardViewer must be a crossplatform to revert this hotfix commit and restore lost functionality. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
Doesn't work on Mono, so just disable it. The impact in unknown. The RestartManager must be a crossplatform to revert this hotfix commit and restore lost functionality. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
…ll loop This fix disables the functionality that is a cause of the program stuck due to is a call loop. The negative impact isn't expected, since the disabled code looks like just selects some default value. This doesn't look important. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
This fix disables the functionality that is a cause of exceptions throwing. The negative impact isn't expected, since the disabled code just prints some debugging messages. This doesn't look important. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
This fix disables the functionality that is a cause of exceptions throwing and impossibility to run the program. The negative impact isn't expected, since the disabled code probably needed to run tests. Maybe that functionality need to be restored in the future to provide automated tests. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
…Pipe The function ExistsPipe could throw an exception on catching the NotFound related error. Add safe try-catch block that skip the error since if the pipe doesn't exist the code does nothing too. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
This hotfix disables the functionality that is a cause of exceptions throwing on Mono runtime. The expected negative impact is the probability to lose the horizontal scroll function somewhere. Signed-off-by: Ilya Stolyarov <ila.embsys@gmail.com>
|
Since an attention to this groundwork is existing, I decided to prepare this MR for review and discussion:
Summary to current Mono build state
Artifacts and packages Also, there are prepared packages for some distros built on OpenBuildService that could be downloaded by clicking the "Download package" button. The branch for package builds is the same as on this MR. |
|
With such large changes, maybe you could prepare a smaller "safe" change first that would reduce the scope of this PR while providing some "fixing" changes for the main Windows client. I guess the renamed files are indeed file case inconsistency fixes and they just don't affect the build because of case insensitivity but they are logically "wrong". So they will be accepted. @michael-manley will you accept a file case fix that doesn't affect the present build but improves the situation with Mono? |
|
Sure, ill look at it and merge if it doesn't break nothing. |
It's an prototype of Mono build.
I had started this experiment out of curiosity a little bit earlier than this repo got EOL notice and found that it actually possible to run the app under Mono. Then the branch was abandoned for some time until I noticed here a new maintainer. So I think better to keep the prototype here. Now I rebased the old branch to the head and added CI.
Partially, I have gone the path described in Cross-Platform-Vision.
Most changes are fixing file name cases. The functionality that crash the app and prevent it to run, currently is just commented out. Need to fix them to not break windows builds, so the request is in a draft state.
The build from CI artifact could be run by
mono XCP-ng\ Center.exe.It is how it currently looks:
So if someone interested in Mono build too, he could start from here.