Just after the Mono 3.0 release was announced I started working on Debian packages and after a couple of days of hard work I already have some preview packages for you.

The preview packages are currently limited to the AMD64 architecture but can be installed on Debian/Testing (Wheezy), Debian/Unstable (Sid) and Ubuntu/Quantal (12.10). After these preview packages have received some successful feedback (please leave feedback via comments!), I will upload them to Debian/Experimental.

In case you are shocked why I have packages in just 8 days after the official Mono 3.0 release, there are 3 factors that play a big role:

  1. New packaging workflow
  2. Downstream patches are management in git branches
  3. Release Early, Release Often: I no longer port and test every patch very carefully (especially with architecture specific patches), instead I port them with my best knowledge and upload them to debian.meebey.net and/or Debian/Experimental and use that as test ground. If regressions happen, let them happen, and make further uploads to address them.
  4. New packaging style
  5. Starting with my Mono 2.10 packages, each library has it's own package, which simplifies packaging.
  6. Sponsored packaging
  7. As my employer needs Mono packages for an upcoming software project, I was granted to work on Mono packages in worktime.

Install instructions

OBLIGATORY WARNING: DO NOT USE THESE PREVIEW PACKAGES ON PRODUCTION SYSTEMS NOR BLAME ME IF YOUR MONO SOFTWARE NO LONGER WORKS!

Add this line to your /etc/apt/sources.list file:

deb http://debian.meebey.net/experimental/mono /

Now update the APT database and install mono-complete from that repository:

apt-get update
apt-get install mono-complete

UPDATE: Some people reported issues with xsp4 on Mono 3.0 that look like this:

An exception has occurred while generating HttpException page:
System.NullReferenceException: Object reference not set to an instance of an object
  at System.Web.Util.HttpEncoder.GetCustomEncoderFromConfig () [0x00000] in <filename unknown>:0
  at System.Lazy`1[System.Web.Util.HttpEncoder].InitValue () [0x00000] in <filename unknown>:0

I could track these issue down to an too old XSP version. The issue can be solved by building XSP from the git repository. This was also the reason I couldn't upload the preview packages to the official repositories.

UPDATE2: I have updated the debian.meebey.net repository with Mono 3.0.6 packages. An upload to Debian/Experimental and Ubuntu/Raring will happen very soonish as promised. The final packages for official inclusion need updated copyright information and library versioning as defined in the Debian Policy and Debian CLI Policy. Have fun Mono 3.0.6ing!

Good news! Late in upstream!
Comment by CSRedRat Thu Nov 1 05:42:33 2012
:D
Comment by Alan Thu Nov 1 12:00:48 2012
Thanks! This is going to be very useful for us (7digital.com) eventually.
Comment by Andres G. Aragoneses (knocte) Thu Nov 1 12:25:11 2012

Thanks! I get this error when I load my ASP.Net MVC4 app. Do you have any idea why?

Could not load type 'System.Data.Entity.Migrations.Model.ColumnModel' from assembly 'EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Thanks and Regards

Comment by Thanks Fri Nov 2 14:59:51 2012

After upgrading to these packages on Ubuntu 12.10, I was unable to run any of my ASP.NET applications using xsp4 (such as while developing with monodevelop 3.0).

When using monodevelop to "start without debugging" I would get a standard ASP.NET error page telling me that I needed to turn off custom errors in my web config in order to see what the actual error was. This persisted even when I turned off custom errors in my web.config.

When using monodevelop to "start with debugging" I immediately received an error saying monodevelop could not start the xsp4 server and I should check to see if it was installed.

When starting xsp4 by hand, it appeared to start correctly, however upon the first page hit I would get an exception thrown during the generation of the HttpException. The stack trace looked like it had not even touched my code yet, and was trying to generate and HttpException for the exception thrown generating and HttpException. I'm surprised that it wasn't an infinite loop of exception handling at that point.

I tested it against an app that I was currently serving fine using a fastcgi-server4 instance that was still running from before the upgrade. xsp4 under mono3 failed to serve the known-good app.

I have removed all the packages from your repository, commented out your repository from my apt.sources, and reinstalled mono-complete, mono-xsp4, monodevelop, and mono-fastcgi-server4 from Ubuntu 12.10 sources. Under this setup, xsp4 is working again.

Comment by Buddha Sun Nov 4 15:22:58 2012

Maybe I'm missing but this fails to install on Ubuntu 12.10.

``` ~ % sudo apt-get install mono-complete

The following packages have unmet dependencies: mono-complete : Depends: mono-runtime (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-runtime-sgen (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-utils (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-devel (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-mcs (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-gmcs (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-dmcs (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-csharp-shell (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-2.0-gac (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-4.0-gac (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-2.0-service (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: mono-4.0-service (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: monodoc-base (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: monodoc-manual (= 2.10.8.1-5ubuntu1) but it is not going to be installed Depends: libmono-cil-dev (= 2.10.8.1-5ubuntu1) but it is not going to be installed E: Unable to correct problems, you have held broken packages. ```

Comment by mark Mon Nov 5 05:51:53 2012
Hi - I would like to try out the preview packages, but would prefer to have access to the sources, too - and I cannot find those in your APT repository
Comment by Peder Chr. Nørgaard Thu Nov 8 10:55:10 2012
great work! but seems like there are no xsp4 and mono-fastcgi packages? I tried using your 3.0 packages plus xsp4 2.10-2.1 from ubuntu packages but I'm getting some weird errors...
Comment by axel Sun Nov 11 14:30:25 2012
Another Thanks from me.
Comment by Jarle Wed Nov 14 13:56:49 2012
Thanks, I wanted to try out Mono 3.0 and this helped me get going quickly.
Comment by Timothy Sat Nov 17 14:45:56 2012

Hi, In mono 2.8 I can run my application, but then install this version and now I'm getting this:

An exception has occurred while generating HttpException page: System.NullReferenceException: Object reference not set to an instance of an object at System.Web.Util.HttpEncoder.GetCustomEncoderFromConfig () [0x00000] in :0 at System.Lazy`1[System.Web.Util.HttpEncoder].InitValue () [0x00000] in :0

The actual exception which was being reported was: System.Web.HttpException: ---> System.NullReferenceException: Object reference not set to an instance of an object

... and other stuff

What can I do? Thanks in advance for help me.

Comment by Hipolito Lopez Thu Nov 22 03:51:02 2012

Thanks for doing all the work!

I second the request for source packages since I need to (try to) backport to Debian 6.0.

Again, thanks

Comment by thamsborg Thu Nov 29 08:47:55 2012

I have a similar problem on debian 6.0

root@debian1:/home/dan/loc# apt-get install mono-complete Reading package lists... Done Building dependency tree
Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:

The following packages have unmet dependencies: mono-complete : Depends: mono-runtime (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-runtime-sgen (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-utils (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-devel (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-mcs (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-csharp-shell (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-2.0-gac (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-4.0-gac (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-2.0-service (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: mono-4.0-service (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: monodoc-base (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: monodoc-manual (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed Depends: libmono-cil-dev (= 3.0.1+dfsg-1~exp1~pre1) but it is not going to be installed E: Broken packages

Comment by Dan Thu Dec 20 11:01:03 2012
Thank for this, work flawlessly!
Comment by Xyro Thu Dec 20 13:18:38 2012

Hi,

Is there any chance you could release build scripts for 3.x ?

The trunk is updated regularly and it would be nice to make nightly builds for fixes etc..

Any hints, gotcha's would be appreciated.

Regards Andrew

Comment by Andrew Tierney Wed Jan 16 15:06:11 2013

It tells me at the end "E: Unable to correct problems, you have held broken packages. " what should I do,help please?

Comment by Mohamed Assem Tue Jan 22 06:51:49 2013
So where are 32-bit packages? I can see amd64 only for mono 3.0
Comment by xxxx Tue Jan 22 12:18:05 2013
Just wanted to echo Andrew comments, build scripts would be fantastic.
Comment by Peter Fri Jan 25 04:56:18 2013

Just upgraded to the 3.0.6 packages and get the following when trying to start any xsp4 web site. I may have some baggage left over from the previous 2.10.x install but so far haven't found it.

Missing method System.Configuration.IConfigurationSectionHandler::Create(object,object,XmlNode) in assembly /usr/lib/mono/4.0/System.dll, referenced in assembly /usr/lib/mono/4.0/System.Configuration.dll
Exception caught during reading the configuration file:
System.MissingMethodException: Method not found: 'System.Configuration.IConfigurationSectionHandler.Create'.
  at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0 
  at System.Configuration.ConfigurationManager.get_AppSettings () [0x00000] in <filename unknown>:0 
  at Mono.WebServer.XSP.Server.get_AppSettings () [0x00000] in <filename unknown>:0 
  at Mono.WebServer.XSP.Server+ApplicationSettings..ctor () [0x00000] in <filename unknown>:0 
xsp4
Listening on address: 0.0.0.0
Root directory: /home/bmurphy/workspace
Error: System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.Sockets.Socket ---> System.InvalidCastException: Cannot cast from source type to destination type.
  at System.Net.Sockets.Socket.CheckProtocolSupport () [0x00000] in <filename unknown>:0 
  at System.Net.Sockets.Socket..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Mono.WebServer.XSPWebSource.CreateSocket () [0x00000] in <filename unknown>:0 
  at Mono.WebServer.ApplicationServer.Start (Boolean bgThread) [0x00000] in <filename unknown>:0 
  at Mono.WebServer.ApplicationServer.Start (Boolean bgThread, System.Exception initialException) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) Mono.WebServer.ApplicationServer:Start (bool,System.Exception)
  at Mono.WebServer.XSP.Server.RealMain (System.String[] args, Boolean root, IApplicationHost ext_apphost, Boolean quiet) [0x00000] in <filename unknown>:0 
Comment by Bryan Murphy Thu Mar 14 22:42:35 2013
I'd like to build / get a 3.0.8 drop
Comment by Dan Shechter Tue Apr 9 10:55:18 2013

Any chance you could update these packages to Mono 3.0.9?

Alternatively, post the scripts to build the packages?

Comment by Ben Winkel Tue Apr 16 11:25:09 2013
Nice Thanks alot
Comment by Filip J. Fri May 3 11:46:01 2013
Worked fine (so far so good) on Ubuntu 12.10, thank you very much!
Comment by Nikolaos Georgiou Thu May 16 20:19:17 2013

Today Mono 3.0.12 was released. (http://news.mono-project.com/2013/06/19/new-mono-releases/)

Could you update the PPA to sometime soon?

3.0.6 is working fine at least!

Comment by KP Wed Jun 19 22:26:29 2013

Any thoughts on either updating or providing the scripts which create the package? It looks like there have been some good fixes since 3.0.6 and I'd love to get those.

Thanks for your work into making these packages.

Comment by Giuliano Wed Jun 26 23:12:05 2013
I'm getting the same error as bryan... any ideas?
Comment by Martin Thwaites Tue Jul 2 22:53:17 2013

I just tested this with Ubuntu 13.04 and I got only one error at the end:

https://gist.github.com/knocte/5943237

Other than that (I don't really use monodoc), all seems to work well.

Comment by Andrés G. Aragoneses Sun Jul 7 14:00:44 2013

I just tried this tonight on my Ubuntu 13.04 box without any mono history at all... I got this at the end of the install:

Setting up mono-complete (3.0.6+dfsg-1~exp1~pre1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place Processing triggers for dictionaries-common ... Processing triggers for monodoc-browser ... generating monodoc search index... grep: /etc/gre.d/*.conf: No such file or directory

Unhandled Exception: System.TypeLoadException: Could not load type 'Monodoc.EditMerger' from assembly 'monodoc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'. [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'Monodoc.EditMerger' from assembly 'monodoc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'.

Comment by Brad Wed Jul 31 04:31:17 2013

Hi,

Could you please share the packages build script?

Thanks

Comment by Anonymous Thu Aug 15 14:56:48 2013
Been using your packages for years, thank you again so very much.
Comment by Benjamin Joldersma Sat Aug 17 01:27:07 2013
I am getting this error when trying to compile a server file. It is making assembly reference and will not process. What can I do to make Mono use the .Net 4.0 references?
Comment by Raven Sun Sep 22 08:38:55 2013
Great..... Good Job.. you are amazing... :)
Comment by Marda Firmansyah Sun Sep 29 19:06:59 2013

Missing dependencies, couldn't install :(

Reading package lists... Done
Building dependency tree... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mono-complete : Depends: mono-runtime (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
                 Depends: mono-runtime-sgen (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
                 Depends: mono-utils (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
                 Depends: mono-devel (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
                 Depends: mono-mcs (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
                 Depends: mono-csharp-shell (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
                 Depends: mono-2.0-gac (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
                 Depends: mono-4.0-gac (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
             Depends: mono-2.0-service (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
             Depends: mono-4.0-service (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
             Depends: monodoc-base (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
             Depends: monodoc-manual (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
             Depends: libmono-cil-dev (= 3.0.6+dfsg-1~exp1~pre1) but it is not going to be installed
E: Broken packages
Comment by Anonymous Fri Oct 4 23:03:31 2013

THank you for this great work. I was able to install on ubuntu 12 machine with no problems. I ran program in monodevelop and some of my bugs were fixed (listview double click no longer crashes).

Some bugs remain for me (having trouble with UDP)

Any idea if you will be able to get newer versions of mono packaged in this way. apt-get is great for a noob like me. I notice current version is 3.2.5

Thanks

GB

Comment by Graham Briggs Tue Nov 26 07:10:49 2013
Much C#, very code, alter Freund!
Comment by Daniel Wirtz Fri Dec 20 17:45:39 2013

This needs to be bumped to 3.2.5. 3.0 to 3.2 was not a minor release. It encompasses many months of hard work, and id love to see this go to debian main.

2.10 is archaic and needs to be deprecated. 2.10 and 3.0 branches are no longer maintained or supported by Xamarin.

Also, where can I get the source for this package you've made?

Comment by Nicholas Terry Tue Dec 24 05:55:41 2013