So, the all-new all-updated Covenant to End Users of Moonlight 3 and 4 is up!

Here’s the text, to save you a trip:

Covenant to End Users of Moonlight 3 and 4

Microsoft, on behalf of itself and its Subsidiaries, hereby covenants not to sue End Users for infringement under Necessary Claims of Microsoft and its Subsidiaries on account of such End Users’ use of Moonlight Implementations to the extent originally provided by Novell during the Term and, if applicable, the Extension or Post-Extension Period, but only to the extent such Moonlight Implementations are used as Conforming Runtimes. The foregoing covenants shall survive termination of the Agreement, but only as to specific copies of such Moonlight Implementations distributed during the Term, and if applicable, the Extension or Post-Extension Period.

Microsoft reserves the right to update (including discontinue) the foregoing covenant pursuant to the terms of the New Moonlight Collaboration Agreement between Novell and Microsoft that was publicly announced on or about December 17, 2009 (the “Agreement”); however, the foregoing covenant will continue as to specific copies of Moonlight Implementations originally provided by Novell and distributed before any such update.

All rights not expressly granted by the foregoing covenant are reserved by Microsoft. No additional rights (including any implied licenses, covenants, releases, or other rights) are granted by implication, estoppel, or otherwise, including no rights under any additional patents of Microsoft and no rights to any technology not included in such Moonlight Implementations, even if additional related or enabling technologies (e.g., operating systems, web browsers, or other platform technologies) are required to use the Moonlight Implementations. Microsoft is not bound by, nor grants any rights under, any third party licenses with respect to the Moonlight Implementations (e.g., any versions of the General Public License).

Now let’s look at a few of the issues – I’m sure many more will turn up as more people analyze this “covenant”.

Problem #1: Novell-Only, Pt. 1

According to the defined term Conforming Host, only Novell can create “launchers” for non-browser applications. You aren’t Novell? You can’t implement it.

Problem #2: No Deviations

Furthermore, such shell applications are quite restricted. Again, according to the defined terms, shell applications can not:

(i) Do anything that a web browser plug-in would not be able to.
(ii) Do anything more or less than Silverlight can do.
(iii) Prevent anything that a web browser plug-in can do.

Problem #3: OS Limitiations

Current and future versions of Windows and Mac are specifically excluded from the Covered Operating System definition. Yes, you read that right. Moonlight can not be cross-platform.

Problem #4: The Killswitch

Microsoft can at any time change or discontinue the covenant. Sure, previously distributed instances will be “safe”, but that does little for future versions.

Problem #5: Overlapping Promises

Microsoft explicitly states that no other licenses, covenants, releases or other rights are granted, even if they are related or enabling. This means that any technologies under the so-called Microsoft Open Specification Promis or Microsoft Community Promise that Moonlight requires can not be covered under both sets of promises/covenants.

Problem #6: Novell-Only, Pt. 2

The definitions of “Moonlight” and the covered portions clearly only apply to “those portions developed by or on behalf of Novell”.

Problem #7: Novell-Only, Pt. 3

The Media Packs are only covered if you get Novell-Provided Copies of Moonlight.

Problem #8: Platform Limited

Only Personal Computers are covered. The covenant explicity excludes, “personal digital assistants (PDAs), Pocket PCs, personal media players (PMPs), or mobile telephones”.

Problem #9: GPL-Hostile

The Microsoft “covenant” is specifically GPLv3 hostile. You are not covered if any portion is under a GPLv3 or similar license, even if every other qualification is met. The sole act of chosing a GPLv3 or similar license is sufficient to void the covenant.

Problem #10: Expiration Date

Not only does the covenant end on December 31, 2012 (it may be extended or terminated earlier), but the covenant only applies during the Term. That is, if the software is covered on December 30, 2012 and the covenant was not extended, then that same software is no longer covered on Jan 1, 2013, even if the prior use was covered.

Summary

There you have it then, 10 problems I see with the new Moonlight Covenant. Some I noticed in the old agreement, and some I didn’t really notice until reading through the new agreement.

Here’s the interesting point to me: I do not think you can develop and distribute Moonlight as “Open Source” and still remain in compliance with the covenant.

  • The covenant does not permit Point 3 of the OSI OSD (Derived Works), because it only covers Novell implementations.
  • The covenant does not permit Point 8 of the OSI OSD (License Must Not Be Specific to a Product), because the rights attached to the product do indeed depend on the program being part of a particular software distribution.
  • The covenant does not permint Point 10 of the OSI OSD (License Must Be Technology-Neutral), because the covenant explicity excluded PDA, cell phone, and similar platforms.

I reject the notion that Open Source-licensed software can remain Open Source if it is under extra-license conditions. The uncritical focus on the-only-thing-that -matters- is-the-license-Open-Source misses a very important point. In fact, the OSI OSD touches on this in Point 2 (Source Code) when it states that obfuscated source code is not allowed.

What is the difference between “Open Source” code restricted by obfuscation or encryption and “Open Source” code restricted by “covenant” requirements?

I don’t think that “Open Source” can be vendor-specific, platform-restricted, time-limited, and modification restricted. Yet, in order to fall under the coverage of the covenant, Moonlight must be all of these things.

How exactly is that  working in a “purely open source fashion”?