New Mono Packages in RPM form

by Miguel de Icaza

Last year we ported various ASP.NET Starter Kits and we also started an effort to package popular Mono and .NET-based software in easy to install RPM packages using the OpenSUSE build service.

The OpenSUSE build service allowed us to submit source packages with a specification on how to build it, and get RPM packages for various Linux distributions and various versions of those distributions. Currently we support Fedora, OpenSUSE and SUSE Enterprise.

ASP.NET Starter Kits

The starter kits were a useful test of Mono's ASP.NET implementation, and we routinely use these for QA before we make a release.

When we did the port of these applications, this is what we did:

  • Switch the database to Postgress (so it is easier to test on Linux).
  • Cooked up a policy that our ASP.NET applications should follow to integrate with the system (Apache or FastCGI and our xsp engine). The docs are currently here and we are going to migrate them into our main server.
  • Integrate the application with the system, you can install and remove ASP.NET apps using the mono-asp-apps command line tool.

RPMs of the Starter Kits are available from the Mono:Community directory from the build service, we have packages for various distributions there (OpenSUSE, Fedora and SUSE Enterprise).

The OpenSUSE 10.3/noarch (platform independent, that means, they do not contain any x86 code) packages can be downloaded from here:

There are of course many new starter kits published at www.asp.net, and someone (hint, hint) should look at porting them as well ;-)

More Software

Also, over the past few months we have been packaging some other popular Mono-based applications. Packages can be found from the community page as well, some favorites include:

Web Apps:

  • MindTouch's DekiWiki: the GUI Wiki from Mindtouch. The cutest Wiki engine in the world.
  • MojoPortal: one-stop portal software based on .NET.

Hopefully, when it comes to ASP.NET, our recent work on supporting FastCGI with Mono should expand the ways you can deploy ASP.NET apps on your Linux systems (in addition to our Apache support).

Libraries and Tools:

  • gnome-keyring-sharp (access to the Gnome keyring from your desktop application).
  • Google GData's APIs for C#.
  • MySQL 5 connector.
  • The latest NUnit.
  • OpenTF, client and libraries to communicate with Team Foundation servers.
  • The TAO Framework for building cross-platform OpenGL, OpenAL, SDL, Cg, PhysicsFS and FreeGlut applications with C# and Mono.
  • Mono.ZeroConf, for all your Bonjour needs, with tutorials here.
  • Mono.Fuse: support for writing user-level file systems on Linux using C#. A sample is here.

Desktop Apps and Libraries:

  • Banshee with ipod-sharp and podsleuth (the latest versions).
  • Gnome-do, the crazy delicious application starter for Gnome.
  • GBrainy, Jordi Mas' puzzles and training game.
  • WF-Apps: a collection of open source Windows.Forms applications that we use to test Mono's Windows.Forms.
  • Last Exit, the Last.FM player.

Installing the Software

You can either download the individual RPMs from your distribution and have your browser install the software, or you can subscribe your package management software to the repositories.

OpenSUSE users for example, have to type this command:

$ zypper ar -r http://download.opensuse.org/repositories/Mono:/Community/openSUSE_10.3/Mono:Community.repo
	

Or add it from the GUI Yast tool.

After you have done that, the software collection will be ready to use, and you will be able to search for the new packages and install or upgrade software that we put in the Mono:Community group.

YUM users just need to grab the above .repo file and save it in /etc/yum.repos.d.

Debian and Ubuntu Users

Although the OpenSUSE build system supports both of these platforms, it requires us to create new "descriptions" on how to build the software for those platforms.

So far, we lack the experience and the time to maintain the Debian based packages ourselves.

We would love if someone with Debian/Ubuntu experience wants to co-maintain the packages here (maybe a script to transform the .spec + sources into a debian package can be written?).

Future Directions

We have a long list of things that we want to package for Mono. The only thing that is limiting us at this point is the lack of time (some software needs to be massaged a bit to make it conform to our ASP.NET deployment guidelines, or our Application Deployment Guidelines.

The Build Service is an open service (and its also open source, if you want to host your own build service in the comfort of your own living room).

Hopefully some folks in the community can help us package some of the other pieces of software that we have listed there.

Thanks!

Thanks to our QA team, Marek and everyone else that has contributed to package this software for Mono.

Posted on 23 Jan 2008