Victory! Murky Mono Legal Issues Settled. Or Are They?

Microsoft's Community Promise

July 22, 2009

By
Bruce Byfield

Mono, the free software implementation of .NET (C#), has been the subject of bitter debate for eight years. Yesterday, that debate ended -- or at least shifted to another level -- with Microsoft's announcement that it was extending its Community Promise to include the patents that left Mono possibly encumbered.

The move was greeted with excitement by Mono developers and distributors, but others are treating the news with caution and waiting for detailed legal opinions.

The debate over Mono has been complicated by accusations and irrelevancies on both sides. However, the main issue in the debate has always been the parts of the .NET Framework used by Mono that fall under ECMA standards covered by patents.

These parts include the form and interpretation of C#, which is covered by ECMA 334 specifications, and the Common Language Infrastructure, which is covered by ECMA 335 specifications.

Neither parts of .NET not implemented in Mono, such as ADO.NET, ASP.NET and Windows.Forms, nor libraries developed by Mono specifically for GNU/Linux, have ever been affected by these or any other patents, according to Mono's Licensing FAQ. However, the affected parts have been more than enough for sections of the free software community to reject Mono, or at least to treat it cautiously.

The greatest fear has been that Mono-based programs like GNOME's Tomboy or F-Spot could be the source of a patent violation case by Microsoft against some or all of the community.

In 2001, Microsoft released a letter to ECMA in which it promised that use of the patents involved would be available on request on a "royalty free and otherwise RAND 'Reasonable and Non-Discriminatory' basis."

However, as Miguel de Izaca, the founder of Mono and a Novell vice president, points out, "The problem with 'RAND' is that it doesn't say what 'reasonable' means. It has to be reasonable, but it doesn't have to be free. Microsoft stated publicly and on the ECMA committee that nobody had to pay, but they never actually went and published the license."

The result, de Icaza says, is that the promise "was considered a lie. To some people, it was a real issue, and I think that's justified. There was no letter, and I don't think anyone seriously approached Microsoft except Novell, because we're the only ones who have an implementation of .NET out there."

Now, in a single gesture, that uncertainty appears to be resolved. Microsoft's Community Promise is not recognized as a free license by either the Free Software Foundation or the Open Source Initiative, and its FAQ avoids answering whether the license is consistent with any free license.

However, the Community Promise itself is broadly permissive, excluding only those involved in bringing patent infringement cases against Microsoft. It requires no formal application, agreement, or even any reference to itself -- instead, users are automatically covered when they start to use a technology covered by the license. A potential loophole is that a partial implementation of the technologies is not covered, but that does not seem to be the case with Mono, if de Izaca is to be believed.

The initial impression is that the announcement has removed Mono from any immediate threat of patent violation, and that Mono-based applications can now be added to GNU/Linux distributions without any concerns.

Making the change

Coming after Richard Stallman's warning last week against Mono, and several months into an anti-Mono campaign in the community, the news might be seen as a direct response to pressure.

In fact, de Icaza states that discussion of the problem began "about six or nine months ago" during one of Novell's quarterly meetings with Microsoft. According to de Izaca, he approached Bob Mugalia, President, Server and Tools Business at Microsoft. When he asked him to clarify the situation as "a personal favor," Mugalia expressed surprise that no one had done so before.

"It was more a matter of a missing item on somebody's To Do list than anything else," de Izaca says. "I'm sure that someone dropped the ball. I mean, this stuff has been going on for ages."

Initially, de Izaca hoped that Microsoft would choose the Open Specification Promise, a license that gives broader protection and is written as more of a legal document than the Community Promise. However, he withdrew his objection rather than cause a longer delay while the relative merits of licenses were debated.