Navigation

Moonlight

From Mono

A page to track the various projects that make up the Mono-based implementation of Silverlight.

The goals are:

  • To run Silverlight applications on Linux.
  • To provide a Linux SDK to build Silverlight applications.
  • To reuse the Silverlight engine we have built for desktop applications.

You can see screenshots of the work in progress here.

Table of contents

Getting Started

Up-to-date packages ready to test are available from:

These builds do not include media codecs (video or audio), for that, you must currently build Moonlight from source code.

To build Moonlight on Linux, you need to get a source code distribution either from a released tarball or from SVN.

Steps:

  • Install dependencies for Moonlight from your distro:
    • Gtk+ 2.0 development package
    • ffmpeg from SVN (Optional, can be skipped, but moonlight won't be able to play any media)
      • I use: svn co -r 10885 svn://svn.mplayerhq.hu/ffmpeg/trunk
      • In ffmpeg, libswscale is actually an external repo. Update this to -r 25850
    • Mozilla NSPR development package
      • one of: nspr mozilla-nspr firefox-nspr xulrunner-nspr seamonkey-nspr)
    • Mozilla NSS development package
      • one of: nss mozilla-nss firefox-nss xulrunner-nss seamonkey-nss
    • Mozilla XPCOM
      • one of: xpcom mozilla-xpcom firefox-xpcom xulrunner-xpcom
    • Alsa
  • Download and install the moon tarball or moon SVN module from SVN:
    • configure like this: ./configure --with-mono=no
    • Build and install, run: make && make install
      • If you didn't install ffmpeg, you need to pass --with-ffmpeg=no to configure
    • To install the plugin in your home: make test-plugin

Alpha support for Silverlight 2.0

Currently support for Silverlight 2.0 is in pre-Alpha stage, but if you want to test it, or contribute to the code, you will need to:

  • Obtain Mono from SVN or AnonSVN (version 1.9.1 is not enough).
  • Run the configuration for Mono like this:
    • ./autogen.sh --with-moonlight=yes
  • Install Mono
    • make install
  • Re-run the moonlight configuration, pass --with-mono=yes to the configure script

This will produce a new compiler smcs which defaults C# to the 3.0 version and will include the Silverlight assemblies by default in a compilation. You will use this compiler to generate assemblies and libraries that are intended to be ran on Microsoft's Silverlight or Mono's Moonlight.

Groups and Mailing List

Discussion on the development of Moonlight happens on the moonlight-list (http://lists.ximian.com/mailman/listinfo/moonlight-list) mailing list, topics on new features of Mono and the .NET framework are discussed in the the mono-olive (http://groups.google.com/group/mono-olive) group.

It is also recommended that interested parties subscribe to the mono-devel-list (http://lists.ximian.com/mailman/listinfo/mono-devel-list) (for general issues on Mono development and the mono-svn-patches list (http://groups.google.com/group/mono-svn-patches) that tracks all of the Subversion commits that go into Mono's source code control repository.

We are also using the #moonlight IRC channel on irc.gnome.org

Testing

To check the status of the various sites that we are testing for Moonlight, check:

Bugs

  • Moonlight 1.0 Bugs (http://bugzilla.novell.com/buglist.cgi?action=wrap&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Mono&product=Moonlight&bug_severity=Blocker&bug_severity=Critical&bug_severity=Major&bug_severity=Normal&bug_severity=Minor&version=1.0.0)
  • Moonlight 2.0 Bugs (http://bugzilla.novell.com/buglist.cgi?action=wrap&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=Mono&product=Moonlight&bug_severity=Blocker&bug_severity=Critical&bug_severity=Major&bug_severity=Normal&bug_severity=Minor&version=2.0.0)

Known Issues with Firefox 3 and Silverlight

These are issues that even affect Silverlight and Firefox 3 on Windows.

Licensing

Moonlight will be distributed for most major Linux distributions directly from the Novell site.

Users of Moonlight interested in using this on embedded systems should contact mono@novell.com (mailto:mono@novell.com) to obtain a commercial license. See our Licensing page for details.

The Microsoft covenant for Moonlight users is posted here (http://www.microsoft.com/interop/msnovellcollab/moonlight.mspx).

Development Notes

Users interested in details about the implementation of Moonlight can read our MoonlightNotes.

Specification details that are not very obvious can be found in MoonlightQuirks