Yesterday, in reponse to Microsoft’s Patent Pledge for Non-Compensated Developers (which was an integral part of last week's pact between the software giant and Novell), Software Freedom Law Center CTO Bradley Kuhn issued a tersely worded warning to the Free and Open Source Software (FOSS) community that the pledge is of "little value." Wrote Kuhn of the pledge's contradictions to FOSS values:
A careful examination of Microsoft's Patent Pledge for Non-Compensated Developers reveals that it has little value. The patent covenant only applies to software that you develop at home and keep for yourself; the promises don't extend to others when you distribute. You cannot pass the rights to your downstream recipients, even to the maintainers of larger projects on which your contribution is built.....Further, to qualify for the pledge, a developer must remain unpaid for her work. Experience has shown that many FOSS developers eventually expand their work into for-profit consulting. Others are hired by companies that allow or encourage Free Software development on company time. In either situation, Microsoft's patent pledge is voided for that developer.....Even if the patent pledge were to have some use aside from these problems, our community simply could not rely on it, since Microsoft has explicitly reserved the right to change its terms at any time in the future. A developer relying on the pledge could wake up any day to find it revoked. She'd have to cease development on her non-commercial and (mostly) non-distributable modifications that were previously subject to the covenant.
Although I'm not a lawyer, Microsoft's other patent pledge for individual contributors to openSUSE.org (which appears on the same page as the aforementioned pledge) also reads like a lesson on why patents trump copyrights, particularly with respect to FOSS. If I understand the language correctly, it basically says that FOSS developers can contribute to openSUSE.org and only openSUSE.org without fear of reprisal (eg: a patent infringement suit) from Microsoft provided that Novell's SUSE-based products are the ultimate beneficiaries. openSUSE.org, an open source project that's sponsored by Novell (but not owned by it) and a project from which Novell's SUSE-based products get their code, is not empowered to redistribute that code under any license to anybody. According to the pledge (I've boldfaced the important part):
Microsoft hereby covenants not to assert Microsoft Patents against each Individual Contributor (also referred to as “You”) for Your distribution of Your personally authored original work (“Original Work”) directly to openSUSE.org, but only if, and to the extent, (i) Your Original Work becomes part of SUSE Linux, SUSE Linux Enterprise Desktop or SUSE Linux Enterprise Server, and (ii) You ensure that as a result of Your contribution, openSUSE.org, and all further recipients of Your Original Work, do not receive any licenses, covenants or any other rights under any Microsoft intellectual property. This pledge is personal to You and does not apply to any use or distribution of Your Original Work by others.
One possible interpretation of the bolded text (any of you lawyers out there, please feel free to chime in), is that Microsoft promises not to sue FOSS developers so long as their contributions are made to openSUSE.org and those contributions are not accompanied by any license (eg:the GPL). The "Microsoft intellectual property" part comes several commas after the word license which technically means you could put a period after the word license, therefore causing the word license to not necessarily be specific to "Microsoft intellectual property."
Another interpretation, one that the lawyers I've consulted say is more likely, is that it's saying Microsoft won't sue FOSS developers so long as their contributions are made to openSUSE.org and those contributions are not accompanied by a Microsoft license, Microsoft covenant, or other Microsoft right. But one of the lawyers I spoke with also agrees that such language doesn't make much sense to put here since the implication is that a FOSS developer might already have a Microsoft license to transfer. Such sublicensability terms are usually codified into the license (whatever license a FOSS developer might have), and not in an orthoganal covenant.
Despite its ambiguity, I think it's pretty clear that, pursuant to the hall pass Microsoft has given to Novell, openSUSE.org can take receipt of code from FOSS developers, but that if that code "reads" on a Microsoft patent, the terms under which Microsoft won't sue Novell for eventually taking receipt of that code (from openSUSE.org) are between Microsoft and Novell and no one else. In other words, if a FOSS developer (or any developer for that matter) has code (that reads on a Microsoft patent) to contribute to anyone (be it openSUSE.org or otherwise), and there's a pre-existing and relevant Microsoft license, Microsoft covenant, or Microsoft right connected with that code, that license, covenant, or right is not transferrable. It pretty much goes without saying that if some code reads on a Microsoft patent, that it can't be licensed or sublicensed to anybody under any license (GPL or otherwise) without Microsoft's consent. It essentially prevents a FOSS developer from issuing any sort of transferrable right to openSUSE.org that openSUSE.org can go out and transfer to someone else, other than Novell.
The point is that the proviso constitutes friction to the sort of free flow of intellectual property that open source is all about. Even if it's Microsoft specific (since Microsoft seems to be saying, we have a relevant patent here), it's the same friction. Sub-licensability is a key tenant of open source. The minute each developer (a) can't get a license from other developers, (b) can't issue a license, or (c) must execute a distinctly separate license agreement with an existing intellectual property (IP) owner (eg: Microsoft) -- a requirement known as privity -- the IP in question (be it copyright or patent) is inherently not sub-licensable and the code in question stops being open source. If Microsoft has enforceable patents, then those patents trump the fundamentals of open source since open source is invariably based on copyrights. Copyrights go with specific source code which, when a patent is concerned, is nothing more than an implementation of that patent. Under current US patent law, patent holders get to decide who is allowed to implement their patents, when, and how.
Over on Groklaw Pamela Jones made the following characterization of Microsoft's patent pledge based on Kuhn's warning:
...this is Microsoft language designed to kill the GPL and the FOSS development method, whether consciously or unconsciously. Why? Because if you can't share your software with anyone for fear of a patent infringement lawsuit, in what sense is it GPL? How are you part of a community, all building a common pool of code anyone can freely use?...
But quite frankly, this has always been the case with patents on business process (aka: software).
In today's world, you want a patent for one or more of three reasons. One is defensive. If you get the patent before someone else, no one can sue you for patent infringement. Only you can sue them. A second reason is offensive. To the extent you've been able to monetize a patent, the threat of suing others is what prevents them from also monetizing your patent (thus, you get a protected market). The third reason, coming up more and more these days, is defensive-with-a-twist: it's to protect others from getting sued. This is normally done through covenants and the idea is that you allow others to infringe [sic] on your patent while offering them a defensive perimeter that prevents them from getting sued. In an open source context, if a vendor has a patent and gives developers carte blanche to develop their own implementations of it, someone else can't sue them. Only the legitimate patent holder can sue them. Covenants generally promise that the patent holder won't sue, but sometimes, there are strings attached. For example, the covenant may only be available to open source developers. Or, it may only be available to open source developers working with a specific license.
As far as patents are concerned, as would be the case with just about any commercial software provider, Microsoft's commercial software model is for the most part associated with offensive usage. In this case, it's offering a bit of defense in the event that FOSS developers contribute code that can ultimately only flow to the company that Microsoft has issued a hall pass to: Novell. Other than that, it appears to be business as usual for a commercial software company: no one, FOSS developers or otherwise, has the right to distribute implementations of Microsoft's patents without Microsoft's say-so. Does it kill open source and FOSS development? With respect to developing implementations that read on Microsoft's patent it does. But, unless a patent non-assertion covenant has been issued, the same is true of most other patents. Not only is FOSS development prevented. So too is commercial development. Could this stifle the flow of code into openSUSE.org? There's no doubt that it could. Does openSUSE.org represent all of open source? No.
Now, is this FUD-mongering or does Microsoft really have patents that apply? That's a completely different question. Can someone -- perhaps another vendor with a large patent portfolio -- throw a wrench in the works? You betcha. Part II is next.