ものがたり(旧)

atsushieno.hatenablog.com に続く

Moonlight近況

MD 1.0, Monoに続いてMoonlightネタです。本当は3日連続で書くつもりだったのだけど…

全般的な状況

今月初頭にはSilverlight 2.0のbetaが出たわけですが、基本的には、moonlight開発チームは現在1.0サポートの作業を中心に行っています。つまりmoonレベル、 managed codeの関係しない領域がほとんどです。mms/media codecサポートとか、アニメーションとか、オーディオとか、ベクターグラフィックス関係とかテキストレンダリングとか。

NeverMissDiscoveryでテストしたり、Remix '07 Tokyoのサイトが動かねーぞとかいうバグレポートが上がったりとか、そんな状況です。asahi.comのビデオニュースのページは見られませんですた(試した)。

Silverlight 2.0対応

なわけでSilverlight 2.0に合わせる作業は進行していません…と数日前なら書くところだったのですが、今週になってJBがやる気になって着手したようです。どういう作業かというと、具体的にはid:atsushieno:20070810と同じ事になるのですが、Monoの2.0プロファイル(つまり3.0/3.5でもある)のアセンブリから、cecil tunerを使って、Silverlight 2.0のアセンブリ(いわゆる2.1プロファイル)にも含まれるクラス等を隠したり消したりします。tunerはMicrosoftの開発者が聞いて感心してうらやましがるようなブツなのですが、この作業はそれなりに泥臭かったりします。

具体的には…System.Xml.Core.dllがSystem.Xml.dllに戻ったりするのはまあ些細な問題として、System.dllと System.Net.dllが別々のものになって、前者に含まれるSystem.Uriの中で使われているSystem.Net.IPAddressが後者に移動してしまって使えなくなったりとか、いろいろ問題が生じるわけです。この辺をどう解決するかは現在話し合い中です(クラスライブラリだと cyclic buildですが、ハマり道ですし…)。

SL 2.0になるとmonoでサポートされていないSystem.ServiceModel.dllなんてのも出てきちゃったりして、 BasicHttpBindingしか含まれていないとは言え、対応しないといけなくなるわけですが(このクラスは既にoliveで出来上がっている)、まあその辺はJBがコア部分をやっつけて僕をせっついてきたらやりますw

テストスイート

去年のMS/Novell collaborationの話を受けて、Microsoftからテストスイートが提供されたわけですが、残念ながらこれはオープンソースライセンスで公開されていないので、Novellの中の人だけ入手して使っています(それを動かすためのサポートだけmoonの Makefile(.am)に記述されている状態)。もちろん以前からもっていたmoon自体に含まれるテストスイートも機能してはいます。

プラグイン

configure時に--enable-user-pluginを指定すると、moonlight.xpiがビルドされるようになります。僕自身はまだインストール出来たことがないのですが。後でまた試してみようっと。

ちなみにビルトインのブツが提供されるようになったので、以前よりずっとお気楽に試してもらえます
http://www.go-mono.com/moonlight/

これはVCL-1特許ライセンスとGPLの相性問題から、ffmpegサポートなどを含まないかたちでビルドされることになると思います(今すでにそうかも)。ライセンス関係で言えば、libswscaleの利用もオプションになりました。

Silverlight Control licensed under MS-PL

Silverlight Controlは完全なソースコード付きで公開されていたのだけど、ライセンスがMicrosoft Limited Public Licenseとなっていて、以下のイケてない制約が含まれていました:

(F) Platform Limitation- The licenses granted in sections 2(A) & 2(B) extend only to the software or derivative works that you create that run on any Microsoft operating system product, Microsoft run-time technology (such as Silverlight or the .NET Framework), or Microsoft application platforms (such as Microsoft Office or Microsoft Dynamics).

それを見たMiguelがMSの中の人に相談したら、上手く交渉が進んで、結果的にこれはMS-PLでライセンスされることになりました:

http://www.microsoft.com/resources/sharedsource/silverlightcontrolslicense.mspx

そのうちMS-PLライセンスをアーカイブに含むバージョンに差し替えられることになると思います。