FS#77491 - [godot] offer mono support

Attached to Project: Community Packages
Opened by hurricane pootis (HurricanePootis) - Tuesday, 14 February 2023, 00:41 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:09 GMT
Task Type Feature Request
Category Packages
Status Closed
Assigned To Alexander F. Rødseth (xyproto)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

It would be really cool if the official Arch Linux godot package could offer mono support by default. I have modified the original PKGBUILD and made it compile in mono support seamlessly. Godot with mono functionally works the same as normal godot. Of course, since godot-mono requires godot to be installed into /opt, you will have to have a bash script to launcher godot. But, I have tested this bash script (super simple), and it works flawlessly with the .desktop file and command line.

I have attached the bash script and .patch file to this task. I hope you find my contribution well suited!
This task depends upon

Closed by  Buggy McBugFace (bugbot)
Saturday, 25 November 2023, 20:09 GMT
Reason for closing:  Moved
Additional comments about closing:  https://gitlab.archlinux.org/archlinux/p ackaging/packages/godot/issues/1
Comment by hurricane pootis (HurricanePootis) - Tuesday, 14 February 2023, 00:41 GMT
I totally forgot to add a title, my bad!
Comment by Toolybird (Toolybird) - Wednesday, 15 February 2023, 01:07 GMT
IIUC, you want an *additional* pkg "godot-mono"? It already exists in the AUR...so, unsure if this request will fly.
Comment by hurricane pootis (HurricanePootis) - Wednesday, 15 February 2023, 03:41 GMT
godot-mono builds with dotnet when it is completely unnecessary. Plus, it doesn't unbundle the libraries like `godot` does, nor does it use all of the build flags in `godot`. If I am going to use a `godot-mono` package, I don't want it to deviate from the base `godot` in anyway beside it using mono (which it doesn't even do due to dotnet)
Comment by Alexander F. Rødseth (xyproto) - Friday, 10 March 2023, 13:27 GMT
Thanks for the feature request. I think adding support for Mono to the godot package (or a separate godot-mono package) is a good idea.
Comment by hurricane pootis (HurricanePootis) - Saturday, 11 March 2023, 23:47 GMT
I think it would be best to have Mono support be added to the already existing `godot` package. To my knowledge, mono support shouldn't get in the way of the functionality of normal Godot work. I have attached a patch file that builds the current godot package with dotnet, with seamless integration.
Comment by hurricane pootis (HurricanePootis) - Saturday, 11 March 2023, 23:48 GMT
Here is the patch
Comment by Alexander F. Rødseth (xyproto) - Thursday, 23 March 2023, 11:43 GMT
Thanks for the patch.

As long as introducing an /opt directory + a wrapper script + depending on dotnet-sdk is needed, I think a separate godot-mono package might be better.

I also think that it's a slight disadvantage to need to depend on nuget, xorg-server-xvfb and python at build time.

C# is used a lot for game development, though, so it's probably a good idea to support it sooner or later (unless we as a community wish to promote GDScript instead).

I'll think about what to do some more.
Comment by Alexander F. Rødseth (xyproto) - Wednesday, 12 April 2023, 21:36 GMT
I tried making a split package, but after building for a long while, I get an error message that msbuild can not be found, even though it is in the list of dependencies.

It's getting late here now, so I'll examine this further some other day. 'module_mono_enabled=no' might need to be added to the first list of scons configuration values and 'mono-msbuild' might need to be added as to the depends array in package_godot-mono. Input on this is welcome.
   PKGBUILD (5.6 KiB)
Comment by Alexander F. Rødseth (xyproto) - Thursday, 06 July 2023, 22:07 GMT
godot 4.1 is out. I adjusted the PKGBUILD attached above, but godot-mono did not build here. I got the same error about msbuild not being find, despite it being in the list of dependencies.

I'll try the "--generate-mono-glue" trick that the godot-mono-git package is using.

Loading...