Hi,

This is a port of MSBuild, the build system for .NET. lang/mono ships with
xbuild which was an initial replacement for MSBuild, however since the more
official integration of mono into .NET, xbuild has been deprecated by mono for
several years now. Of note, that happened without MSBuild actually shipping
with mono.

At this point there is a growing list of .NET projects that only build with
MSBuild. That's the raison d'etre for this port.

This port is heavily inspired by FreeBSD's port which helped me simplify things
and find some solutions. It bootstraps itself with a bundled MSBuild assembly
that is invoked with mono, and pulls in a gargantuan (1G after extraction)
amount of NuGet dependencies via a bundled NuGet assembly. I have created a
separate tar.xz of those dependencies, so that it builds without internet
connection.

Passes make port-lib-depends-check and portcheck. I have built a few projects
like the latest (upstream) version of games/openra which refuses to work with
xbuild successfully. There are still a lot of projects that look for
non-existant components which are likely included with Microsoft's dotnet/
corefx/coreclr distributions.

Other things of note about the port:

- This is not the very latest version upstream, but newer ones seem to require
  dotnet CLI. It's the same as in FreeBSD's tree though.
- Versioning is confusing between mono's 0.06, and the MSBuild versioning. I
  chose 15.8pre0 based on what FreeBSD does ("15.8-preview")
- The license is MIT. There are 137 NuGet packages in the build. These are a
  mix of MIT, Apache-2.0, and Microsoft .NET library license [1]
- 'make test' doesn't work at this point, therefore is disabled (see comment in
  Makefile)

Thanks to bcallah@ for hosting the NuGet dependencies.

Comments, concerns, ok's are welcome.

[1] https://dotnet.microsoft.com/en/dotnet_library_license.htm

Attachment: msbuild.tgz
Description: Binary data

Reply via email to