.NET ("dotnet")
Contents
Introduction
.NET is a free and open-source, managed computer software framework. It is a cross-platform successor to .NET Framework and released under the MIT License.
.NET on FreeBSD
Goals
Reliably produce FreeBSD .NET binaries on an ongoing basis, and fix blocking issues and report/resolve upstream. Status:In-Progress
Assist upstream getting native FreeBSD .NET built, tested (CI) and binary packages produced on an on-going and official basis. Status: In-Progress
Create FreeBSD Ports from source (natively) for all .NET components and produce official packages for supported architectures. Status: Not Started
Status
Adding FreeBSD Support to .NET is in progress with upstream work taking place mostly in the following issues:
Concurrently, a number of contributors are working in non-upstream repositories to resolve issues and produce FreeBSD .NET binaries (Native and under Linux Emulation) until upstream is able to do so.
Get Involved!
Developers and users can help in the following ways:
Test .NET FreeBSD Binary Releases on your systems, provide feedback and report bugs to maintainers.
Test building .NET FreeBSD Binaries yourself, provide feedback and report bugs to maintainers.
Work with and help upstream to resolve issues to get native builds running and tested continuously.
Create a proof of concept FreeBSD Port that builds .NET from source using an existing bootstrap cli binary
Building .NET on FreeBSD
This section documents maintained efforts to progress .NET FreeBSD support.
Notably, building .NET requires an existing and working dotnet cli SDK to bootstrap the build, as mentioned in the Workflow Guide: FreeBSD Requirements documentation below.
Producing this binary natively for FreeBSD is the aim of upstream issue #1139 mentioned above.
Until native bootstrap .net cli is available officially from upstream, FreeBSD .NET builds can be produced using either:
- Cross-build under Linux Emulation
- Natively, using dotnet cli binary built on FreeBSD under Linux Emulation.
Upstream Documentation
github: dotnet/runtime: .NET Workflow Guide
github: dotnet/runtime: Workflow Guide: FreeBSD Requirements
Cross-build under Linux Emulation
GitHub: Thefrank/dotnet-freebsd-crossbuild: Instructions for building dotNET for FreeBSD
Native build using Linux bootstrap binary
GitHub: sec/dotnet-core-freebsd-source-build: Collection of script to build .NET Core under FreeBSD
- Uses bootstrap binaries from Thefrank
.NET FreeBSD Binary Releases
The above GitHub (thefrank and sec) projects produce .NET FreeBSD Release Binaries:
github.com: thefrank: FreeBSD .NET Release Binaries (.NET 5, 6 and 7)
github.com: sec: FreeBSD .NET Release Binaries (.NET 6 and 7)
Developers and users are encouraged to test and provide feedback on these releases, report bugs, and provide improvements to the builds.
Earlier and Other Work
This section documents earlier work that may continue to prove useful as references.
GitHub: jasonpugsley
windows.net: dotnet/Sdk/master/dotnet-sdk-latest-freebsd-x64.tar.gz
- Radarr Project -- Ships FreeBSD .NET binaries
.NET Framework Ports
.NET Framework 2.x
lang/linux-dotnet-runtime: Cross-platform .NET implementation (Runtime)
linux-dotnet-sdk: Cross-platform .NET implementation (Software Development Kit)
.NET Framework 1.1
lang/linux-dotnet11-runtime: Cross-platform .NET implementation (Runtime)
linux-dotnet11-sdk: Cross-platform .NET implementation (Software Development Kit)
.NET Framework 1.0