Brendan Scott, August 08 – see further information at this post
Knock me down with a feather – apparently the OSP covers the GPL.
In order for specifications covered by the OSP to be implemented in the free software ecosystem, and therefore for such specifications to be claimed to be interoperable with free software, a number of requirements must be met. One of those requirements is that free software implementations of the specifications must be permitted. The FAQ for the OSP has recently been updated to address some aspects of free software implementations. Apparently the new wording is as follows:
Q: I am a developer/distributor/user of software that is licensed under the GPL, does the Open Specification Promise apply to me?
A: Absolutely, yes. The OSP applies to developers, distributors, and users of Covered Implementations without regard to the development model that created such implementations, or the type of copyright licenses under which they are distributed, or the business model of distributors/implementers. The OSP provides the assurance that Microsoft will not assert its Necessary Claims against anyone who make, use, sell, offer for sale, import, or distribute any Covered Implementation under any type of development or distribution model, including the GPL. As stated in the OSP, the only time Microsoft can withdraw its promise against a specific person or company for a specific Covered Specification is if that person or company brings (or voluntarily participates in) a patent infringement lawsuit against Microsoft regarding Microsoft’s implementation of the same Covered Specification. This type of “suspension” clause is common industry practice.
Any statement from the authors of the OSP to the effect that it covers GPL implementations is a good thing. Indeed, I called for something much like this in February (actually, I asked for the addition of “A: yes” in the GPL question, but they’ve opted for “A: Absolutely, yes” instead). However, given the history of this issue it is best to receive it with at least some caution. Over an extended period during the passage of DIS 29500 through ISO the shepherds of DIS 29500 were repeatedly invited to make a statement about the OSP’s coverage of GPL implementations. They repeatedly declined to do so, including an express statement of GPL ignorance in the OSP FAQ. As recently as a month or so ago the Australian arm was bravely reiterating the ignorance line.
Now, apparently, it has always been exceedingly clear that the OSP covers GPL implementations. Had this been conceded twelve, or even six months ago it would have saved a lot of people a lot of heartache.
Or would it?
It is certainly good to see this concession to the GPL in the FAQ as well as other indications that the OSP may become free software compatible. We should ask whether this alone is sufficient or whether more would be required before covered specifications can be considered to be interoperable with free software.
One of the reasons that the GPL ignorance line was trotted out for so long might have been concern over the the SFLC’s criticism of the OSP. To put it in simple terms, the OSP does not travel with the code. So writing a (eg) GPL* implementation of an OSP covered specification in the expectation that the code may be re-used for other things (which is a cornerstone of interactions in the free software community) creates a problem. That code becomes encumbered by a patent mine which arms itself when the code is (non-conformingly) reused. At best, even with this addition to the FAQ, the OSP still fails to respect the freedom of free software implementations (whether GPL or otherwise) of covered specifications.** It is unclear, for example, what effect the “no surrender of others’ freedom” clauses of the relevant GPLs would be in the event of a successful patent action against a non-conforming implementation.
Aside: Given the clauses in GPLv3 relating to patents and discriminatory patent licences (and the fact that many GPL v2 licences permit “GPL v 2 or later” licensing) it is an interesting question as to whether this endorsement of the use of the GPL will have broader impacts on the patents related to the covered specifications.
Who’s Really to Blame?
In one sense this is a problem created by a defective patent law, rather than the terms chosen by any one company. In that sense, it would not be appropriate to criticise any particular company for granting a patent licence in terms similar to those used by other industry participants (at least, that is, if the other industry participants had expended the same amount of effort to threaten the open source ecosystem with patent liability).
* The GPL is used here only for convenience, the effect seems to be independent of the particular licence.
** There is a blog post by Richard Wilder (the link I was first given for this article has 2008/7/25 in the link, but the same article appears to be served for links with this replaced by x/y/z where x > 1000, and y and z < 100) described by Sam Ramji as a “clarification of the OSP” which discusses partially conforming implementations. It is not clear what the status of this post is in varying or affecting the interpretation of the OSP, but let’s assume it is a binding statement. I am not sure I fully understand the context, but the focus of the post seems to be on implementations which are a subset of the full specification covered by the OSP. While it mentions non conformance due to bugs it seems to indicate that if the bug-affected parts are therefore non-conforming then they will not be covered by the OSP (although the OSP coverage of the conforming part of the implementation will not be affected). If this reading is correct, then presumably the same logic would apply to non-conforming parts which are due to a modification of code made in the exercise of a person’s freedoms.