[Bug 262637] lang/mono6.8: Updating Mono 6 portage with a lang/mono6 port (GitHub)

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 17 Mar 2022 22:51:30 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262637

            Bug ID: 262637
           Summary: lang/mono6.8: Updating Mono 6 portage with a
                    lang/mono6 port (GitHub)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: mono@FreeBSD.org
          Reporter: lab+bsd@thinkum.space
             Flags: maintainer-feedback?(mono@FreeBSD.org)
          Assignee: mono@FreeBSD.org

Created attachment 232535
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=232535&action=edit
lang/mono6/Makefile (updated for git submodule distinfo at GitHub)

In the progress of trying to develop a port for omnisharp-roslyn[1] - this, as
in order to contribute a port for omnisharp-roslyn, corresponding with a patch
for Emacs and Ruby support for the Language Server Protocol (eglot,
rubygem-solargraph) in ports[2] ... in order to build omnisharp-roslyn one must
first have installed a usable dotnet SDK and mono, both, then to update the
source tree for the 'cake'[3] build tool. Cake would then be used in lieu of
msbuild for the omnisharp-roslyn build. 

In short, the 'dotnet' command would be used to ensure that the latest cake
assemblies are installed, then mono would be used for running the cake
assemblies. 

With Linux ABI emulation installed, loaded into the kernel, and enabled in the
userspace filesystem for the build -- e.g using 'service linux onestart' -- it
may be possible to simply retrieve a .NET SDK build of the appropraite version
and extract under ${WRKSRC}/.dotnet/ then to run ${WRKSRC}/.dotnet/dotnet of
that specific version ... lastly to use the a mono installed from under ports,
for running the thusly-installed cake assemblies.

The omnisharp-roslyn project's global.json could be used for determining the
version that it requires for the .NET SDK. As this would be used only to
install the assemblies for Cake, perhaps there may be some other way to
accomplish this part - assuming a known master site is availabler for those
assemblies. Then mono could be used to run nuget as under the cake build of
omnisharp-roslyn, this to retrieve any needed nupkg files etc, before figuring
out how to map this into a master sites configuration for ports.

For this process, I'm afraid that the lang/mono port (mono version 5.10.1.57)
may not be recent enough for the omnisharp-roslyn build. 

So, I'd tried to build lang/mono6.8. The build failed, in the mono external for
boringssl.

Subsequently, I took a look at the Mono master site[4]. The last mono version
distributed there (mono version 6.12.0.122) was published on 22 February, 2021.

The most recent mono version at the Mono github repository[5] is 6.12.0.173,
published this month, on 17 February, 2022[6]. 

The tagged Mono releases at GitHub have not been populated with the contents of
submodule directories. In the attached Makefile, there's one methdology
developed for working around this. It may be nono-trivial to update for
subsequent Mono revisions but perhaps there can be some tooling developed for
that.

The attached Makefile may be of use for developing a new lang/mono6 port. This
port could be updated for any later Mono 6 revisions, without the port being
bound to a minor version of the Mono 6 release, such as with mono 6.8

With the attached Makefile as lang/mono6/Makefile, I've managed to at least get
it to run 'make makesum' and 'make extract'. I'll take a look at the patches
shortly.

I'll also attach the locally generated distinfo file, for information purposes.

I hope it may be possible to develop a more up-to-date port for Mono 6. I
thought it might simply be useful to share this work-in-porgress Makefile for a
lang/mono6 as well as the rationale for it in this single instance of port
development

[1] https://github.com/OmniSharp/omnisharp-roslyn/
[2] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262610
[3] https://cakebuild.net/docs/running-builds/runners/dotnet-tool
[4] https://download.mono-project.com/sources/mono/
[5] https://github.com/mono/mono
[6] https://github.com/mono/mono/tree/mono-6.12.0.173/

-- 
You are receiving this mail because:
You are the assignee for the bug.