This page is likely outdated (last edited on 04 Feb 2010). Visit the new documentation for updated content.
Table of contents
Packaging for Mono and related applications on FreeBSD is handled by the BSD# Project. The purpose of this project is to maintain the existing Mono/C# ports in the FreeBSD ports tree, port new applications, and work on resolving FreeBSD specific issues with Mono. BSD# is entirely user supported and is not an official FreeBSD or Mono project.
Who Are We?
- Romain Tartière <romain@FreeBSD.org>
- Christopher Nehren
- Jeremy Messenger
- Phillip Neuman
- Tom McLaughlin
- #bsd-sharp on Freenode
The BSD# Project is devoted to porting and maintaining the Mono .NET framework for FreeBSD. The Mono framework consists of not only the Mono Runtime environment and compiler but the XSP web server for handling ASP.NET applications, the IKVM Java virtual machine for handling Java within the framework, and numerous data providers to provide common library functions in C# or integration with existing C libraries.
The BSD# Project is hosted on Google Code. The project’s SVN repository currently contains FreeBSD ports for all Mono packages released by Novell. It also includes ports for applications and libraries from third parties as well with the intent that they be integrated into the standard FreeBSD ports tree. The project aims to act as a central testing point for porting new releases from Novell, for introducing new applications, and for testing framework wide changes that will affect all applications that rely on Mono before they reach the FreeBSD ports tree.
Mono on FreeBSD is user supported and there is a lot of work to do. Previous C# or .NET is not even required. We have many needs that can be handled by anybody knowledgeable of FreeBSD (or is willing to learn). Most of our work is porting related and anyone that has read the FreeBSD Porters Handbook can easily get started with work updating the existing ports or creating new ports. The project makes a great starting point for those interested in Mono and are looking for something to do. If you are interested in volunteering just subscribe and email mono@FreeBSD.org and ask what we currently need done.
Using Mono on FreeBSD
FreeBSD users interested in Mono can obtain it in two ways. For stability users can use the Mono port in the FreeBSD ports tree. For those interested in furthering Mono on FreeBSD they can use the BSD# Ports Tree. The BSD# Project also maintains different versions of Mono within in the BSD# Ports Tree.
NOTE: It is generally recommended that FreeBSD users NOT download the standard source tarball from the Mono download page and attempt to build/install it but use their ports system instead due to local patches contained in the ports tree. FreeBSD users interested in Mono can obtain it in two ways.
Using the FreeBSD ports tree (Stability)
Mono and many other related applications can already be found in the FreeBSD Ports Tree. The version there represents the latest tested version of Mono’s stable release line and is meant for those users that value a stable and working port the most. Those users that want a version of Mono simply to run other ports should use this version.
Using the BSD# Ports Tree (Development)
Those users more interested in using or developing with the latest stable version of Mono or the latest developmental version should use the BSD# Ports. We cannot guarentee that the BSD# Ports are always stable but we do our best to test ports before committing them and try to resolve reported breakage as quickly as possible.
Integrating the BSD# Ports Tree with your own is done through the portshaker script and is available in the BSD# Project.
- portshaker: Merges BSD# Ports Tree with local tree.
Instruction for using portshaker are provided on the BSD# Wiki.
Problems with Mono
Before reporting problems with Mono on FreeBSD to the regular Mono mailing lists it is better to report them to our mono@FreeBSD.org so we can take a look at the issue first. We have a few unresolved FreeBSD issues that do crop up from time to time.
Please see our problem reporting page to help give us enough information to solve your problem.