xenadmin icon indicating copy to clipboard operation
xenadmin copied to clipboard

Mono

Open ila-embsys opened this issue 11 months ago • 1 comments

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:

xenadmin-mono

So if someone interested in Mono build too, he could start from here.

ila-embsys avatar Mar 02 '24 02:03 ila-embsys

Since an attention to this groundwork is existing, I decided to prepare this MR for review and discussion:

  • Whole code changes are separated to a set of commits, where each is affecting a piece of app function.

  • Each commit is commented to explain why the change was introduced and which effects to the app is expected.

  • Each commit title is marked by the labels 'ci', 'project', 'resource', 'mono':

    • The label 'mono' is set on commits that are expected to be avoiding any effect to a non-mono runtime, while have a direct effect to Mono.
    • The other labels are set on commits that are expected to be having effects in any runtime, and those commits need a detailed attention.
  • Each commit that disable a piece of the app function, have a note about the reasons in the code comments too, to easy find a related commit in the future.

Summary to current Mono build state

  • Mostly works fine and stable for basic workflow like observing lists and states for VMs, disks, networks etc. However, nothing have detailed testing.
  • The interface rendering have glitches like missing rendering some lists until them gets clicking.
  • The VM console viewing is works, but have troubles in rendering a background and the mouse/keyboard input is disabled due to some functions are non-implemented in a cross-platform way. While technically, the feature is nearly working, actually it is unusable.

Artifacts and packages The build artefacts for testing the result are available on the Actions page of my project fork that builds on the same branch as this MR. The CI here on the MR page is not approved and disabled.

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.

ila-embsys avatar May 04 '24 17:05 ila-embsys