Microsoft announced in a statement that the ECMA standards that cover the C# language and the Common Language Infrastructure will be covered by the community promise patent license. This is a legally binding document that cannot be withdrawn in the future; in other words, it's perpetually active. In a nutshell, this is what this means:
You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications.
The Promise applies to developers, distributors, and users of Covered Implementations without regard to the development model that created the implementations, the type of copyright licenses under which it is distributed, or the associated business model.
Under the Community Promise, Microsoft provides assurance that it will not assert its Necessary Claims against anyone who makes, uses, sells, offers for sale, imports, or distributes any Covered Implementation under any type of development or distribution model, including open-source licensing models such as the LGPL or GPL.
This development comes courtesy of the Mono project itself, as Miguel de Icaza explains. "A few months ago we approached Bob Muglia and Brian Goldfarb at Microsoft with a request to clarify the licensing situation for the ECMA standards covering C# and the CLI (also ISO standards, for the ISO loving among you)," he writes on his blog.
Since Mono comprises a lot more than just the parts covered by the ECMA standards, De Icaza also announced that Mono will be split in half. "In the next few months we will be working towards splitting the jumbo Mono source code that includes ECMA + A lot more into two separate source code distributions," he explains, "One will be ECMA, the other will contain our implementation of ASP.NET, ADO.NET, Winforms and others."
Before we all start cheering and getting out the champagne, I do believe it would be nice to see someone with legal expertise to look over the Community Promise to see if there's anything unclear in there. One thing that bothers me about the Promise is that it only covers those implementations that implement all required portions of a specification; partial implementations are not covered. I'm not entirely sure what this means in practice, but it does raise a few questions.
In any case, it's a good development.